├── .codebeatignore ├── .github ├── CODEOWNERS └── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── feature_request.md │ └── template-request.md ├── .gitignore ├── .jshintignore ├── .jshintrc ├── .travis.yml ├── CNAME ├── LICENSE ├── README.md ├── credits.json ├── favicon.png ├── img ├── bluentlogo.png ├── daislogo.png ├── eclogo.png ├── fleetlogo.png ├── ntlogo.png ├── sfplogo.png ├── sollogo.png ├── terralogo.png ├── torchltd.png ├── uscmlogo.png ├── wylogo.png └── xynlogo.png ├── index.html ├── package.json ├── script ├── credits.js ├── jquery-ui-1.12.1.custom │ ├── AUTHORS.txt │ ├── LICENSE.txt │ ├── external │ │ └── jquery │ │ │ └── jquery.js │ ├── images │ │ ├── ui-icons_333333_256x240.png │ │ ├── ui-icons_444444_256x240.png │ │ ├── ui-icons_555555_256x240.png │ │ ├── ui-icons_777777_256x240.png │ │ └── ui-icons_ffffff_256x240.png │ ├── jquery-ui.css │ ├── jquery-ui.js │ ├── jquery-ui.min.css │ ├── jquery-ui.min.js │ ├── jquery-ui.structure.css │ ├── jquery-ui.structure.min.css │ ├── jquery-ui.theme.css │ ├── jquery-ui.theme.min.css │ └── package.json ├── pen.js ├── settings.js └── templates.js ├── style ├── dark.css ├── main.css └── solarized.css ├── templates ├── admin │ ├── excom_autoreply.txt │ └── exo_autoreply.txt ├── cm │ ├── commandfax.txt │ └── companyfax.txt ├── command │ ├── access_mod.txt │ ├── arrival.txt │ ├── crew_transfer.txt │ ├── department_audit.txt │ ├── exo │ │ ├── complaint_exo.txt │ │ ├── complaint_nexo.txt │ │ ├── memo.txt │ │ ├── memo_ext.txt │ │ ├── pod.txt │ │ ├── sales.txt │ │ ├── termination.txt │ │ ├── test_subject.txt │ │ ├── test_subject_no.txt │ │ └── visa.txt │ ├── incident.txt │ ├── sitrep.txt │ ├── transmission.txt │ └── visa.txt ├── engineering │ └── compliance.txt ├── exploration │ ├── away_manifest.txt │ ├── exoplanet.txt │ ├── fauna.txt │ └── uf301a_preflight.txt ├── general │ ├── cover.txt │ └── cover_end.txt ├── index.json ├── instructions.txt ├── medical │ ├── autopsy.txt │ ├── autopsy2.txt │ ├── blood_donation.txt │ ├── cyborgification.txt │ ├── discharge.txt │ └── prescription.txt ├── records │ ├── antag.txt │ ├── employment_fleet.txt │ ├── medical.txt │ ├── public.txt │ ├── security.txt │ └── sierrakomodo │ │ ├── employment_contractor.txt │ │ ├── employment_military.txt │ │ ├── medical.txt │ │ ├── public_contractor.txt │ │ ├── public_military.txt │ │ ├── security_contractor.txt │ │ └── security_military.txt ├── research │ ├── anomaly.txt │ └── xenoflora.txt ├── security │ ├── armory.txt │ ├── arrest_report.txt │ ├── hot_sheet.txt │ ├── incident_report.txt │ ├── investigation.txt │ ├── patrol_assignment.txt │ ├── patrol_assignment2.txt │ ├── personnel_watchlist.txt │ ├── personnel_watchlist2.txt │ ├── secarm_inventory.txt │ └── shift_report.txt ├── service │ └── kosher.txt └── supply │ ├── docked_vessel.txt │ └── uf102b_requisition_special.txt └── test ├── .requirements.txt ├── .test.py ├── credits.py ├── img.py ├── meta.py ├── pencode.py └── templates.py /.codebeatignore: -------------------------------------------------------------------------------- 1 | script/jquery-ui-1.12.1.custom/** -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @Dibasic -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Report a format or functionality issue 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Web Browser (please complete the following information):** 24 | - Browser [e.g. chrome, safari] 25 | - Version [e.g. 22] 26 | 27 | **Screenshots** 28 | If applicable, add screenshots to help explain your problem. Include BOTH simulator and ingame screenshots, if the way pencode is displayed differs. 29 | 30 | **Pen Code** 31 | If applicable, add pencode that reproduces the problem. 32 | 33 | **Additional context** 34 | Add any other context about the problem here. 35 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: 'Feature Request: ' 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/template-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Template request 3 | about: Request a new paperwork template 4 | title: 'Template Request: ' 5 | labels: content 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the template you'd like** 11 | 12 | Which department would use this template: 13 | 14 | A clear and concise description of the template you want to be added: 15 | 16 | A description of the situation or workflow this template would be used in: 17 | 18 | What fields are important for this template: 19 | 20 | **Additional context** 21 | Add any other context about your request here. 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # compiled output 4 | /dist 5 | /tmp 6 | /out-tsc 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # IDEs and editors 15 | .idea 16 | .project 17 | .classpath 18 | .c9/ 19 | *.launch 20 | .settings/ 21 | *.sublime-workspace 22 | 23 | # IDE - VSCode 24 | .vscode/* 25 | !.vscode/settings.json 26 | !.vscode/tasks.json 27 | !.vscode/launch.json 28 | !.vscode/extensions.json 29 | 30 | # misc 31 | .sass-cache 32 | connect.lock 33 | typings 34 | 35 | # Logs 36 | logs 37 | *.log 38 | npm-debug.log* 39 | yarn-debug.log* 40 | yarn-error.log* 41 | 42 | # System Files 43 | .DS_Store 44 | Thumbs.db 45 | -------------------------------------------------------------------------------- /.jshintignore: -------------------------------------------------------------------------------- 1 | script/jquery-ui-1.12.1.custom/** 2 | test/** 3 | node_modules/** -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "browser": true, 3 | "devel": true, 4 | "globalstrict": true, 5 | "jquery": true 6 | } -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | matrix: 2 | include: 3 | - language: node_js 4 | node_js: 5 | - node 6 | - language: python 7 | python: 8 | - 3.6 9 | install: 10 | - pip install -r test/.requirements.txt 11 | script: 12 | - python test/.test.py -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | ps.ss13.net -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://travis-ci.org/Dibasic/SS13PaperworkSimulator.svg?branch=master)](https://travis-ci.org/Dibasic/SS13PaperworkSimulator) 2 | [![codebeat badge](https://codebeat.co/badges/84dbf211-3be0-4d21-a76a-3b340dade910)](https://codebeat.co/projects/github-com-dibasic-ss13paperworksimulator-master) 3 | [![License: CC BY-NC-SA 3.0](https://img.shields.io/badge/license-CC%20BY--NC--SA%203.0-blue.svg)](https://creativecommons.org/licenses/by-nc-sa/3.0/legalcode) 4 | 5 | # SS13PaperworkSimulator 6 | Renders SS13 (Baystation12) pencode into HTML. 7 | 8 | It aims to replicate the same process the game uses to render pencode, so whatever you see in the output will look similar to the same pencode rendered on paper ingame. 9 | 10 | Hosted on GitHub Pages at [ps.ss13.net](http://ps.ss13.net/) 11 | Baystation12 Forums thread: [Paperwork Simulator 2307](https://forums.baystation12.net/threads/paperwork-simulator-2307.6877/) 12 | Baystation12 Wiki resources: [Guide to Paperwork](https://wiki.baystation12.net/Guide_to_Paperwork), [Example Paperwork](https://wiki.baystation12.net/Example_Paperwork) 13 | 14 | # Contribution 15 | Please feel free to submit your own work if you are willing to have it available under CC BY-NC-SA 3.0. 16 | 17 | To add a template, place it in a `.txt` file in a directory inside `templates/`, then add its name and path to `templates/index.json`. Submit via pull request and check here for requested changes until it is merged. When submitting your work, you may add your name or ckey to `credits.json`. 18 | 19 | # Attribution 20 | All included images have been sourced from the Baystation12/Baystation12 repository and are attributed to their respective original authors. All included templates, whether sourced from the Baystation12 Wiki or committed by or on behalf of their original authors, are attributed to their respective original authors. Any characters, settings, and events referred to as part of the Baystation12 story and lore are attributed to their respective original authors. 21 | -------------------------------------------------------------------------------- /credits.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "title": "Development and Design", 4 | "columns": 1, 5 | "credits": [ 6 | { 7 | "_name": "Persona E", 8 | "fab fa-github": "https://github.com/Dibasic/", 9 | "fas fa-toolbox": "https://forums.baystation12.net/members/persona-e.4702/" 10 | }, 11 | { 12 | "_name": "Climax708", 13 | "fab fa-github": "https://github.com/soryy708/", 14 | "fas fa-toolbox": "https://forums.baystation12.net/members/climax708.7963/" 15 | } 16 | ] 17 | }, 18 | { 19 | "title": "Template Design and Writing", 20 | "columns": 3, 21 | "credits": [ 22 | "AlabasterTempest", 23 | "Atseuki", 24 | "Boznar", 25 | "Cakey", 26 | "Climax708", 27 | "CrimsonShrike", 28 | "DisreputableSquid", 29 | "dryerlint", 30 | "Eonoc", 31 | "Kyos", 32 | "Legodude9", 33 | "masterrbc", 34 | "Novus Luna", 35 | "Persona E", 36 | "Piccione", 37 | "Randall Hynes", 38 | "sabiram", 39 | "SierraKomodo", 40 | "ThatOneGuy", 41 | "YourDaddy117", 42 | "Za_Redman", 43 | "Lorwp" 44 | ] 45 | }, 46 | { 47 | "title": "Other Thanks", 48 | "columns": 1, 49 | "credits": [ 50 | "The many players and lore staff who have contributed to the Baystation12 setting and story", 51 | "The many players and developers who have contributed to Baystation12 on GitHub", 52 | "The many people who have contributed to the Baystation 12 Wiki", 53 | "The many developers of /tg/station, /vg/station, GoonStation and the original Space Station 13", 54 | "The past and present maintainers of BYOND" 55 | ] 56 | } 57 | ] -------------------------------------------------------------------------------- /favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dibasic/SS13PaperworkSimulator/feb8cc82b0d3b737aeaeb155dd169a7e78c53541/favicon.png -------------------------------------------------------------------------------- /img/bluentlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dibasic/SS13PaperworkSimulator/feb8cc82b0d3b737aeaeb155dd169a7e78c53541/img/bluentlogo.png -------------------------------------------------------------------------------- /img/daislogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dibasic/SS13PaperworkSimulator/feb8cc82b0d3b737aeaeb155dd169a7e78c53541/img/daislogo.png -------------------------------------------------------------------------------- /img/eclogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dibasic/SS13PaperworkSimulator/feb8cc82b0d3b737aeaeb155dd169a7e78c53541/img/eclogo.png -------------------------------------------------------------------------------- /img/fleetlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dibasic/SS13PaperworkSimulator/feb8cc82b0d3b737aeaeb155dd169a7e78c53541/img/fleetlogo.png -------------------------------------------------------------------------------- /img/ntlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dibasic/SS13PaperworkSimulator/feb8cc82b0d3b737aeaeb155dd169a7e78c53541/img/ntlogo.png -------------------------------------------------------------------------------- /img/sfplogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dibasic/SS13PaperworkSimulator/feb8cc82b0d3b737aeaeb155dd169a7e78c53541/img/sfplogo.png -------------------------------------------------------------------------------- /img/sollogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dibasic/SS13PaperworkSimulator/feb8cc82b0d3b737aeaeb155dd169a7e78c53541/img/sollogo.png -------------------------------------------------------------------------------- /img/terralogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dibasic/SS13PaperworkSimulator/feb8cc82b0d3b737aeaeb155dd169a7e78c53541/img/terralogo.png -------------------------------------------------------------------------------- /img/torchltd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dibasic/SS13PaperworkSimulator/feb8cc82b0d3b737aeaeb155dd169a7e78c53541/img/torchltd.png -------------------------------------------------------------------------------- /img/uscmlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dibasic/SS13PaperworkSimulator/feb8cc82b0d3b737aeaeb155dd169a7e78c53541/img/uscmlogo.png -------------------------------------------------------------------------------- /img/wylogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dibasic/SS13PaperworkSimulator/feb8cc82b0d3b737aeaeb155dd169a7e78c53541/img/wylogo.png -------------------------------------------------------------------------------- /img/xynlogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dibasic/SS13PaperworkSimulator/feb8cc82b0d3b737aeaeb155dd169a7e78c53541/img/xynlogo.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | SS13 Paperwork Simulator 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 142 |
143 | 144 | 145 |
146 |
147 |
148 | 149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 | 157 | 158 | 159 |
160 |
161 | 162 | 163 | 164 |
165 |
166 | 167 | 172 | 173 |
174 |
175 | 176 | 187 | 188 |
189 |
190 | 191 | 196 |
197 |
198 |
199 |
200 |
201 | 202 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "devDependencies": { 3 | "jshint": "^2.6.0" 4 | }, 5 | "scripts": { 6 | "test": "jshint ." 7 | } 8 | } -------------------------------------------------------------------------------- /script/credits.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var CREDITS_TAGS; 4 | 5 | $(document).ready(function() { 6 | setCreditsTags(); 7 | loadCredits(); 8 | setupCreditsDialog(); 9 | }); 10 | 11 | // set up all of our HTML building blocks 12 | function setCreditsTags() { 13 | CREDITS_TAGS = { 14 | KEY_NAME: '_name', 15 | START_SECT: '
', 16 | START_HEAD: '
', 17 | START_ROW: '
', 18 | START_CELL: '
', 19 | END_DIV: '
', 20 | START_LINK: '', 22 | END_LINK: '', 23 | START_FA: '' 25 | }; 26 | } 27 | 28 | // constructs and inserts credits HTML 29 | function loadCredits() { 30 | $.getJSON('./credits.json', null, function(data) { 31 | var html = constructCreditsHtml(data); 32 | $('#credits').html(html); 33 | }); 34 | } 35 | 36 | // constructs valid HTML for credits 37 | function constructCreditsHtml(data) { 38 | var str = ''; 39 | 40 | for (var i = 0; i < data.length; ++i) { 41 | var obj = data[i]; 42 | 43 | // open our credits section 44 | str += CREDITS_TAGS.START_SECT; 45 | // set our header 46 | str += CREDITS_TAGS.START_HEAD + obj.title + CREDITS_TAGS.END_DIV; 47 | 48 | // figure out how many rows and columns we need 49 | var cols = obj.columns; 50 | var rows = obj.credits.length / cols; 51 | if (obj.credits.length % cols > 0) { 52 | rows += 1; 53 | } 54 | 55 | for (var r = 0; r < rows; ++r) { 56 | // open our credits row 57 | str += CREDITS_TAGS.START_ROW; 58 | 59 | for (var c = 0; c < cols; ++c) { 60 | // pick our next credit 61 | var credit = obj.credits[r * cols + c]; 62 | 63 | // set the text for our credit 64 | str += handleCreditsCell(credit); 65 | } 66 | 67 | // close our credits row 68 | str += CREDITS_TAGS.END_DIV; 69 | } 70 | 71 | // close our credits section 72 | str += CREDITS_TAGS.END_DIV; 73 | } 74 | return str; 75 | } 76 | 77 | // returns what a cell's text should be based on its contents and data type 78 | function handleCreditsCell(cell) { 79 | var result = ''; 80 | switch(typeof cell) { 81 | case 'string': 82 | // normal credit with a name or blurb 83 | result = CREDITS_TAGS.START_CELL + cell + CREDITS_TAGS.END_DIV; 84 | break; 85 | case 'object': 86 | // development credit with links 87 | for (var i = 0; i < Object.keys(cell).length; ++i) { 88 | // find the key and value of our next credit 89 | var key = Object.keys(cell)[i]; 90 | var value = Object.values(cell)[i]; 91 | 92 | // construct our cell 93 | result += CREDITS_TAGS.START_CELL; 94 | if (key === CREDITS_TAGS.KEY_NAME) { 95 | // developer's name 96 | result += value; 97 | } 98 | else { 99 | // developer's icon and link 100 | result += CREDITS_TAGS.START_LINK + value + CREDITS_TAGS.MID_LINK; 101 | result += CREDITS_TAGS.START_FA + key + CREDITS_TAGS.END_FA; 102 | result += CREDITS_TAGS.END_LINK; 103 | } 104 | result += CREDITS_TAGS.END_DIV; 105 | } 106 | break; 107 | default: 108 | // empty cell at the end of credits, or an error 109 | result = CREDITS_TAGS.START_CELL + CREDITS_TAGS.END_DIV; 110 | } 111 | return result; 112 | } 113 | 114 | // sets up jQuery UI dialog for credits 115 | function setupCreditsDialog() { 116 | $("#credits-dialog").dialog({ 117 | autoOpen: false 118 | }); 119 | 120 | $('#credits-btn').click(function() { 121 | $("#credits-dialog").dialog({ 122 | minWidth: 500, 123 | minHeight: 700 124 | }); 125 | $("#credits-dialog").dialog('open'); 126 | }); 127 | } -------------------------------------------------------------------------------- /script/jquery-ui-1.12.1.custom/AUTHORS.txt: -------------------------------------------------------------------------------- 1 | Authors ordered by first contribution 2 | A list of current team members is available at http://jqueryui.com/about 3 | 4 | Paul Bakaus 5 | Richard Worth 6 | Yehuda Katz 7 | Sean Catchpole 8 | John Resig 9 | Tane Piper 10 | Dmitri Gaskin 11 | Klaus Hartl 12 | Stefan Petre 13 | Gilles van den Hoven 14 | Micheil Bryan Smith 15 | Jörn Zaefferer 16 | Marc Grabanski 17 | Keith Wood 18 | Brandon Aaron 19 | Scott González 20 | Eduardo Lundgren 21 | Aaron Eisenberger 22 | Joan Piedra 23 | Bruno Basto 24 | Remy Sharp 25 | Bohdan Ganicky 26 | David Bolter 27 | Chi Cheng 28 | Ca-Phun Ung 29 | Ariel Flesler 30 | Maggie Wachs 31 | Scott Jehl 32 | Todd Parker 33 | Andrew Powell 34 | Brant Burnett 35 | Douglas Neiner 36 | Paul Irish 37 | Ralph Whitbeck 38 | Thibault Duplessis 39 | Dominique Vincent 40 | Jack Hsu 41 | Adam Sontag 42 | Carl Fürstenberg 43 | Kevin Dalman 44 | Alberto Fernández Capel 45 | Jacek Jędrzejewski (http://jacek.jedrzejewski.name) 46 | Ting Kuei 47 | Samuel Cormier-Iijima 48 | Jon Palmer 49 | Ben Hollis 50 | Justin MacCarthy 51 | Eyal Kobrigo 52 | Tiago Freire 53 | Diego Tres 54 | Holger Rüprich 55 | Ziling Zhao 56 | Mike Alsup 57 | Robson Braga Araujo 58 | Pierre-Henri Ausseil 59 | Christopher McCulloh 60 | Andrew Newcomb 61 | Lim Chee Aun 62 | Jorge Barreiro 63 | Daniel Steigerwald 64 | John Firebaugh 65 | John Enters 66 | Andrey Kapitcyn 67 | Dmitry Petrov 68 | Eric Hynds 69 | Chairat Sunthornwiphat 70 | Josh Varner 71 | Stéphane Raimbault 72 | Jay Merrifield 73 | J. Ryan Stinnett 74 | Peter Heiberg 75 | Alex Dovenmuehle 76 | Jamie Gegerson 77 | Raymond Schwartz 78 | Phillip Barnes 79 | Kyle Wilkinson 80 | Khaled AlHourani 81 | Marian Rudzynski 82 | Jean-Francois Remy 83 | Doug Blood 84 | Filippo Cavallarin 85 | Heiko Henning 86 | Aliaksandr Rahalevich 87 | Mario Visic 88 | Xavi Ramirez 89 | Max Schnur 90 | Saji Nediyanchath 91 | Corey Frang 92 | Aaron Peterson 93 | Ivan Peters 94 | Mohamed Cherif Bouchelaghem 95 | Marcos Sousa 96 | Michael DellaNoce 97 | George Marshall 98 | Tobias Brunner 99 | Martin Solli 100 | David Petersen 101 | Dan Heberden 102 | William Kevin Manire 103 | Gilmore Davidson 104 | Michael Wu 105 | Adam Parod 106 | Guillaume Gautreau 107 | Marcel Toele 108 | Dan Streetman 109 | Matt Hoskins 110 | Giovanni Giacobbi 111 | Kyle Florence 112 | Pavol Hluchý 113 | Hans Hillen 114 | Mark Johnson 115 | Trey Hunner 116 | Shane Whittet 117 | Edward A Faulkner 118 | Adam Baratz 119 | Kato Kazuyoshi 120 | Eike Send 121 | Kris Borchers 122 | Eddie Monge 123 | Israel Tsadok 124 | Carson McDonald 125 | Jason Davies 126 | Garrison Locke 127 | David Murdoch 128 | Benjamin Scott Boyle 129 | Jesse Baird 130 | Jonathan Vingiano 131 | Dylan Just 132 | Hiroshi Tomita 133 | Glenn Goodrich 134 | Tarafder Ashek-E-Elahi 135 | Ryan Neufeld 136 | Marc Neuwirth 137 | Philip Graham 138 | Benjamin Sterling 139 | Wesley Walser 140 | Kouhei Sutou 141 | Karl Kirch 142 | Chris Kelly 143 | Jason Oster 144 | Felix Nagel 145 | Alexander Polomoshnov 146 | David Leal 147 | Igor Milla 148 | Dave Methvin 149 | Florian Gutmann 150 | Marwan Al Jubeh 151 | Milan Broum 152 | Sebastian Sauer 153 | Gaëtan Muller 154 | Michel Weimerskirch 155 | William Griffiths 156 | Stojce Slavkovski 157 | David Soms 158 | David De Sloovere 159 | Michael P. Jung 160 | Shannon Pekary 161 | Dan Wellman 162 | Matthew Edward Hutton 163 | James Khoury 164 | Rob Loach 165 | Alberto Monteiro 166 | Alex Rhea 167 | Krzysztof Rosiński 168 | Ryan Olton 169 | Genie <386@mail.com> 170 | Rick Waldron 171 | Ian Simpson 172 | Lev Kitsis 173 | TJ VanToll 174 | Justin Domnitz 175 | Douglas Cerna 176 | Bert ter Heide 177 | Jasvir Nagra 178 | Yuriy Khabarov <13real008@gmail.com> 179 | Harri Kilpiö 180 | Lado Lomidze 181 | Amir E. Aharoni 182 | Simon Sattes 183 | Jo Liss 184 | Guntupalli Karunakar 185 | Shahyar Ghobadpour 186 | Lukasz Lipinski 187 | Timo Tijhof 188 | Jason Moon 189 | Martin Frost 190 | Eneko Illarramendi 191 | EungJun Yi 192 | Courtland Allen 193 | Viktar Varvanovich 194 | Danny Trunk 195 | Pavel Stetina 196 | Michael Stay 197 | Steven Roussey 198 | Michael Hollis 199 | Lee Rowlands 200 | Timmy Willison 201 | Karl Swedberg 202 | Baoju Yuan 203 | Maciej Mroziński 204 | Luis Dalmolin 205 | Mark Aaron Shirley 206 | Martin Hoch 207 | Jiayi Yang 208 | Philipp Benjamin Köppchen 209 | Sindre Sorhus 210 | Bernhard Sirlinger 211 | Jared A. Scheel 212 | Rafael Xavier de Souza 213 | John Chen 214 | Robert Beuligmann 215 | Dale Kocian 216 | Mike Sherov 217 | Andrew Couch 218 | Marc-Andre Lafortune 219 | Nate Eagle 220 | David Souther 221 | Mathias Stenbom 222 | Sergey Kartashov 223 | Avinash R 224 | Ethan Romba 225 | Cory Gackenheimer 226 | Juan Pablo Kaniefsky 227 | Roman Salnikov 228 | Anika Henke 229 | Samuel Bovée 230 | Fabrício Matté 231 | Viktor Kojouharov 232 | Pawel Maruszczyk (http://hrabstwo.net) 233 | Pavel Selitskas 234 | Bjørn Johansen 235 | Matthieu Penant 236 | Dominic Barnes 237 | David Sullivan 238 | Thomas Jaggi 239 | Vahid Sohrabloo 240 | Travis Carden 241 | Bruno M. Custódio 242 | Nathanael Silverman 243 | Christian Wenz 244 | Steve Urmston 245 | Zaven Muradyan 246 | Woody Gilk 247 | Zbigniew Motyka 248 | Suhail Alkowaileet 249 | Toshi MARUYAMA 250 | David Hansen 251 | Brian Grinstead 252 | Christian Klammer 253 | Steven Luscher 254 | Gan Eng Chin 255 | Gabriel Schulhof 256 | Alexander Schmitz 257 | Vilhjálmur Skúlason 258 | Siebrand Mazeland 259 | Mohsen Ekhtiari 260 | Pere Orga 261 | Jasper de Groot 262 | Stephane Deschamps 263 | Jyoti Deka 264 | Andrei Picus 265 | Ondrej Novy 266 | Jacob McCutcheon 267 | Monika Piotrowicz 268 | Imants Horsts 269 | Eric Dahl 270 | Dave Stein 271 | Dylan Barrell 272 | Daniel DeGroff 273 | Michael Wiencek 274 | Thomas Meyer 275 | Ruslan Yakhyaev 276 | Brian J. Dowling 277 | Ben Higgins 278 | Yermo Lamers 279 | Patrick Stapleton 280 | Trisha Crowley 281 | Usman Akeju 282 | Rodrigo Menezes 283 | Jacques Perrault 284 | Frederik Elvhage 285 | Will Holley 286 | Uri Gilad 287 | Richard Gibson 288 | Simen Bekkhus 289 | Chen Eshchar 290 | Bruno Pérel 291 | Mohammed Alshehri 292 | Lisa Seacat DeLuca 293 | Anne-Gaelle Colom 294 | Adam Foster 295 | Luke Page 296 | Daniel Owens 297 | Michael Orchard 298 | Marcus Warren 299 | Nils Heuermann 300 | Marco Ziech 301 | Patricia Juarez 302 | Ben Mosher 303 | Ablay Keldibek 304 | Thomas Applencourt 305 | Jiabao Wu 306 | Eric Lee Carraway 307 | Victor Homyakov 308 | Myeongjin Lee 309 | Liran Sharir 310 | Weston Ruter 311 | Mani Mishra 312 | Hannah Methvin 313 | Leonardo Balter 314 | Benjamin Albert 315 | Michał Gołębiowski 316 | Alyosha Pushak 317 | Fahad Ahmad 318 | Matt Brundage 319 | Francesc Baeta 320 | Piotr Baran 321 | Mukul Hase 322 | Konstantin Dinev 323 | Rand Scullard 324 | Dan Strohl 325 | Maksim Ryzhikov 326 | Amine HADDAD 327 | Amanpreet Singh 328 | Alexey Balchunas 329 | Peter Kehl 330 | Peter Dave Hello 331 | Johannes Schäfer 332 | Ville Skyttä 333 | Ryan Oriecuia 334 | -------------------------------------------------------------------------------- /script/jquery-ui-1.12.1.custom/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright jQuery Foundation and other contributors, https://jquery.org/ 2 | 3 | This software consists of voluntary contributions made by many 4 | individuals. For exact contribution history, see the revision history 5 | available at https://github.com/jquery/jquery-ui 6 | 7 | The following license applies to all parts of this software except as 8 | documented below: 9 | 10 | ==== 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining 13 | a copy of this software and associated documentation files (the 14 | "Software"), to deal in the Software without restriction, including 15 | without limitation the rights to use, copy, modify, merge, publish, 16 | distribute, sublicense, and/or sell copies of the Software, and to 17 | permit persons to whom the Software is furnished to do so, subject to 18 | the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be 21 | included in all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 30 | 31 | ==== 32 | 33 | Copyright and related rights for sample code are waived via CC0. Sample 34 | code is defined as all source code contained within the demos directory. 35 | 36 | CC0: http://creativecommons.org/publicdomain/zero/1.0/ 37 | 38 | ==== 39 | 40 | All files located in the node_modules and external directories are 41 | externally maintained libraries used by this software which have their 42 | own licenses; we recommend you read them, as their terms may differ from 43 | the terms above. 44 | -------------------------------------------------------------------------------- /script/jquery-ui-1.12.1.custom/images/ui-icons_333333_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dibasic/SS13PaperworkSimulator/feb8cc82b0d3b737aeaeb155dd169a7e78c53541/script/jquery-ui-1.12.1.custom/images/ui-icons_333333_256x240.png -------------------------------------------------------------------------------- /script/jquery-ui-1.12.1.custom/images/ui-icons_444444_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dibasic/SS13PaperworkSimulator/feb8cc82b0d3b737aeaeb155dd169a7e78c53541/script/jquery-ui-1.12.1.custom/images/ui-icons_444444_256x240.png -------------------------------------------------------------------------------- /script/jquery-ui-1.12.1.custom/images/ui-icons_555555_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dibasic/SS13PaperworkSimulator/feb8cc82b0d3b737aeaeb155dd169a7e78c53541/script/jquery-ui-1.12.1.custom/images/ui-icons_555555_256x240.png -------------------------------------------------------------------------------- /script/jquery-ui-1.12.1.custom/images/ui-icons_777777_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dibasic/SS13PaperworkSimulator/feb8cc82b0d3b737aeaeb155dd169a7e78c53541/script/jquery-ui-1.12.1.custom/images/ui-icons_777777_256x240.png -------------------------------------------------------------------------------- /script/jquery-ui-1.12.1.custom/images/ui-icons_ffffff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dibasic/SS13PaperworkSimulator/feb8cc82b0d3b737aeaeb155dd169a7e78c53541/script/jquery-ui-1.12.1.custom/images/ui-icons_ffffff_256x240.png -------------------------------------------------------------------------------- /script/jquery-ui-1.12.1.custom/jquery-ui.structure.min.css: -------------------------------------------------------------------------------- 1 | /*! jQuery UI - v1.12.1 - 2019-03-06 2 | * http://jqueryui.com 3 | * Copyright jQuery Foundation and other contributors; Licensed MIT */ 4 | 5 | .ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup > .ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup > .ui-controlgroup-item:focus,.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical > .ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc( 100% - 2.4em )}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px} -------------------------------------------------------------------------------- /script/jquery-ui-1.12.1.custom/jquery-ui.theme.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI CSS Framework 1.12.1 3 | * http://jqueryui.com 4 | * 5 | * Copyright jQuery Foundation and other contributors 6 | * Released under the MIT license. 7 | * http://jquery.org/license 8 | * 9 | * http://api.jqueryui.com/category/theming/ 10 | * 11 | * To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=custom-theme&bgImgOpacityError=&bgImgOpacityHighlight=&bgImgOpacityActive=&bgImgOpacityHover=&bgImgOpacityDefault=&bgImgOpacityContent=&bgImgOpacityHeader=&cornerRadiusShadow=8px&offsetLeftShadow=0px&offsetTopShadow=0px&thicknessShadow=5px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=%23666666&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=%23aaaaaa&iconColorError=%23ffffff&fcError=%23ffffff&borderColorError=%23962424&bgTextureError=flat&bgColorError=%23962424&iconColorHighlight=%23333333&fcHighlight=%23333333&borderColorHighlight=%23ffcc27&bgTextureHighlight=flat&bgColorHighlight=%23ffcc27&iconColorActive=%23ffffff&fcActive=%23ffffff&borderColorActive=%236aa3e7&bgTextureActive=flat&bgColorActive=%236aa3e7&iconColorHover=%23555555&fcHover=%232b2b2b&borderColorHover=%23cccccc&bgTextureHover=flat&bgColorHover=%23ededed&iconColorDefault=%23777777&fcDefault=%23454545&borderColorDefault=%23c5c5c5&bgTextureDefault=flat&bgColorDefault=%23f6f6f6&iconColorContent=%23444444&fcContent=%23333333&borderColorContent=%23dddddd&bgTextureContent=flat&bgColorContent=%23ffffff&iconColorHeader=%23444444&fcHeader=%23333333&borderColorHeader=%23dddddd&bgTextureHeader=flat&bgColorHeader=%23e9e9e9&cornerRadius=1px&fwDefault=normal&fsDefault=1em&ffDefault=Verdana%2CArial%2CHelvetica%2Csans-serif 12 | */ 13 | 14 | 15 | /* Component containers 16 | ----------------------------------*/ 17 | .ui-widget { 18 | font-family: Verdana,Arial,Helvetica,sans-serif; 19 | font-size: 1em; 20 | } 21 | .ui-widget .ui-widget { 22 | font-size: 1em; 23 | } 24 | .ui-widget input, 25 | .ui-widget select, 26 | .ui-widget textarea, 27 | .ui-widget button { 28 | font-family: Verdana,Arial,Helvetica,sans-serif; 29 | font-size: 1em; 30 | } 31 | .ui-widget.ui-widget-content { 32 | border: 1px solid #c5c5c5; 33 | } 34 | .ui-widget-content { 35 | border: 1px solid #dddddd; 36 | background: #ffffff; 37 | color: #333333; 38 | } 39 | .ui-widget-content a { 40 | color: #333333; 41 | } 42 | .ui-widget-header { 43 | border: 1px solid #dddddd; 44 | background: #e9e9e9; 45 | color: #333333; 46 | font-weight: bold; 47 | } 48 | .ui-widget-header a { 49 | color: #333333; 50 | } 51 | 52 | /* Interaction states 53 | ----------------------------------*/ 54 | .ui-state-default, 55 | .ui-widget-content .ui-state-default, 56 | .ui-widget-header .ui-state-default, 57 | .ui-button, 58 | 59 | /* We use html here because we need a greater specificity to make sure disabled 60 | works properly when clicked or hovered */ 61 | html .ui-button.ui-state-disabled:hover, 62 | html .ui-button.ui-state-disabled:active { 63 | border: 1px solid #c5c5c5; 64 | background: #f6f6f6; 65 | font-weight: normal; 66 | color: #454545; 67 | } 68 | .ui-state-default a, 69 | .ui-state-default a:link, 70 | .ui-state-default a:visited, 71 | a.ui-button, 72 | a:link.ui-button, 73 | a:visited.ui-button, 74 | .ui-button { 75 | color: #454545; 76 | text-decoration: none; 77 | } 78 | .ui-state-hover, 79 | .ui-widget-content .ui-state-hover, 80 | .ui-widget-header .ui-state-hover, 81 | .ui-state-focus, 82 | .ui-widget-content .ui-state-focus, 83 | .ui-widget-header .ui-state-focus, 84 | .ui-button:hover, 85 | .ui-button:focus { 86 | border: 1px solid #cccccc; 87 | background: #ededed; 88 | font-weight: normal; 89 | color: #2b2b2b; 90 | } 91 | .ui-state-hover a, 92 | .ui-state-hover a:hover, 93 | .ui-state-hover a:link, 94 | .ui-state-hover a:visited, 95 | .ui-state-focus a, 96 | .ui-state-focus a:hover, 97 | .ui-state-focus a:link, 98 | .ui-state-focus a:visited, 99 | a.ui-button:hover, 100 | a.ui-button:focus { 101 | color: #2b2b2b; 102 | text-decoration: none; 103 | } 104 | 105 | .ui-visual-focus { 106 | box-shadow: 0 0 3px 1px rgb(94, 158, 214); 107 | } 108 | .ui-state-active, 109 | .ui-widget-content .ui-state-active, 110 | .ui-widget-header .ui-state-active, 111 | a.ui-button:active, 112 | .ui-button:active, 113 | .ui-button.ui-state-active:hover { 114 | border: 1px solid #6aa3e7; 115 | background: #6aa3e7; 116 | font-weight: normal; 117 | color: #ffffff; 118 | } 119 | .ui-icon-background, 120 | .ui-state-active .ui-icon-background { 121 | border: #6aa3e7; 122 | background-color: #ffffff; 123 | } 124 | .ui-state-active a, 125 | .ui-state-active a:link, 126 | .ui-state-active a:visited { 127 | color: #ffffff; 128 | text-decoration: none; 129 | } 130 | 131 | /* Interaction Cues 132 | ----------------------------------*/ 133 | .ui-state-highlight, 134 | .ui-widget-content .ui-state-highlight, 135 | .ui-widget-header .ui-state-highlight { 136 | border: 1px solid #ffcc27; 137 | background: #ffcc27; 138 | color: #333333; 139 | } 140 | .ui-state-checked { 141 | border: 1px solid #ffcc27; 142 | background: #ffcc27; 143 | } 144 | .ui-state-highlight a, 145 | .ui-widget-content .ui-state-highlight a, 146 | .ui-widget-header .ui-state-highlight a { 147 | color: #333333; 148 | } 149 | .ui-state-error, 150 | .ui-widget-content .ui-state-error, 151 | .ui-widget-header .ui-state-error { 152 | border: 1px solid #962424; 153 | background: #962424; 154 | color: #ffffff; 155 | } 156 | .ui-state-error a, 157 | .ui-widget-content .ui-state-error a, 158 | .ui-widget-header .ui-state-error a { 159 | color: #ffffff; 160 | } 161 | .ui-state-error-text, 162 | .ui-widget-content .ui-state-error-text, 163 | .ui-widget-header .ui-state-error-text { 164 | color: #ffffff; 165 | } 166 | .ui-priority-primary, 167 | .ui-widget-content .ui-priority-primary, 168 | .ui-widget-header .ui-priority-primary { 169 | font-weight: bold; 170 | } 171 | .ui-priority-secondary, 172 | .ui-widget-content .ui-priority-secondary, 173 | .ui-widget-header .ui-priority-secondary { 174 | opacity: .7; 175 | filter:Alpha(Opacity=70); /* support: IE8 */ 176 | font-weight: normal; 177 | } 178 | .ui-state-disabled, 179 | .ui-widget-content .ui-state-disabled, 180 | .ui-widget-header .ui-state-disabled { 181 | opacity: .35; 182 | filter:Alpha(Opacity=35); /* support: IE8 */ 183 | background-image: none; 184 | } 185 | .ui-state-disabled .ui-icon { 186 | filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ 187 | } 188 | 189 | /* Icons 190 | ----------------------------------*/ 191 | 192 | /* states and images */ 193 | .ui-icon { 194 | width: 16px; 195 | height: 16px; 196 | } 197 | .ui-icon, 198 | .ui-widget-content .ui-icon { 199 | background-image: url("images/ui-icons_444444_256x240.png"); 200 | } 201 | .ui-widget-header .ui-icon { 202 | background-image: url("images/ui-icons_444444_256x240.png"); 203 | } 204 | .ui-state-hover .ui-icon, 205 | .ui-state-focus .ui-icon, 206 | .ui-button:hover .ui-icon, 207 | .ui-button:focus .ui-icon { 208 | background-image: url("images/ui-icons_555555_256x240.png"); 209 | } 210 | .ui-state-active .ui-icon, 211 | .ui-button:active .ui-icon { 212 | background-image: url("images/ui-icons_ffffff_256x240.png"); 213 | } 214 | .ui-state-highlight .ui-icon, 215 | .ui-button .ui-state-highlight.ui-icon { 216 | background-image: url("images/ui-icons_333333_256x240.png"); 217 | } 218 | .ui-state-error .ui-icon, 219 | .ui-state-error-text .ui-icon { 220 | background-image: url("images/ui-icons_ffffff_256x240.png"); 221 | } 222 | .ui-button .ui-icon { 223 | background-image: url("images/ui-icons_777777_256x240.png"); 224 | } 225 | 226 | /* positioning */ 227 | .ui-icon-blank { background-position: 16px 16px; } 228 | .ui-icon-caret-1-n { background-position: 0 0; } 229 | .ui-icon-caret-1-ne { background-position: -16px 0; } 230 | .ui-icon-caret-1-e { background-position: -32px 0; } 231 | .ui-icon-caret-1-se { background-position: -48px 0; } 232 | .ui-icon-caret-1-s { background-position: -65px 0; } 233 | .ui-icon-caret-1-sw { background-position: -80px 0; } 234 | .ui-icon-caret-1-w { background-position: -96px 0; } 235 | .ui-icon-caret-1-nw { background-position: -112px 0; } 236 | .ui-icon-caret-2-n-s { background-position: -128px 0; } 237 | .ui-icon-caret-2-e-w { background-position: -144px 0; } 238 | .ui-icon-triangle-1-n { background-position: 0 -16px; } 239 | .ui-icon-triangle-1-ne { background-position: -16px -16px; } 240 | .ui-icon-triangle-1-e { background-position: -32px -16px; } 241 | .ui-icon-triangle-1-se { background-position: -48px -16px; } 242 | .ui-icon-triangle-1-s { background-position: -65px -16px; } 243 | .ui-icon-triangle-1-sw { background-position: -80px -16px; } 244 | .ui-icon-triangle-1-w { background-position: -96px -16px; } 245 | .ui-icon-triangle-1-nw { background-position: -112px -16px; } 246 | .ui-icon-triangle-2-n-s { background-position: -128px -16px; } 247 | .ui-icon-triangle-2-e-w { background-position: -144px -16px; } 248 | .ui-icon-arrow-1-n { background-position: 0 -32px; } 249 | .ui-icon-arrow-1-ne { background-position: -16px -32px; } 250 | .ui-icon-arrow-1-e { background-position: -32px -32px; } 251 | .ui-icon-arrow-1-se { background-position: -48px -32px; } 252 | .ui-icon-arrow-1-s { background-position: -65px -32px; } 253 | .ui-icon-arrow-1-sw { background-position: -80px -32px; } 254 | .ui-icon-arrow-1-w { background-position: -96px -32px; } 255 | .ui-icon-arrow-1-nw { background-position: -112px -32px; } 256 | .ui-icon-arrow-2-n-s { background-position: -128px -32px; } 257 | .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } 258 | .ui-icon-arrow-2-e-w { background-position: -160px -32px; } 259 | .ui-icon-arrow-2-se-nw { background-position: -176px -32px; } 260 | .ui-icon-arrowstop-1-n { background-position: -192px -32px; } 261 | .ui-icon-arrowstop-1-e { background-position: -208px -32px; } 262 | .ui-icon-arrowstop-1-s { background-position: -224px -32px; } 263 | .ui-icon-arrowstop-1-w { background-position: -240px -32px; } 264 | .ui-icon-arrowthick-1-n { background-position: 1px -48px; } 265 | .ui-icon-arrowthick-1-ne { background-position: -16px -48px; } 266 | .ui-icon-arrowthick-1-e { background-position: -32px -48px; } 267 | .ui-icon-arrowthick-1-se { background-position: -48px -48px; } 268 | .ui-icon-arrowthick-1-s { background-position: -64px -48px; } 269 | .ui-icon-arrowthick-1-sw { background-position: -80px -48px; } 270 | .ui-icon-arrowthick-1-w { background-position: -96px -48px; } 271 | .ui-icon-arrowthick-1-nw { background-position: -112px -48px; } 272 | .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } 273 | .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } 274 | .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } 275 | .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } 276 | .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } 277 | .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } 278 | .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } 279 | .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } 280 | .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } 281 | .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } 282 | .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } 283 | .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } 284 | .ui-icon-arrowreturn-1-w { background-position: -64px -64px; } 285 | .ui-icon-arrowreturn-1-n { background-position: -80px -64px; } 286 | .ui-icon-arrowreturn-1-e { background-position: -96px -64px; } 287 | .ui-icon-arrowreturn-1-s { background-position: -112px -64px; } 288 | .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } 289 | .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } 290 | .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } 291 | .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } 292 | .ui-icon-arrow-4 { background-position: 0 -80px; } 293 | .ui-icon-arrow-4-diag { background-position: -16px -80px; } 294 | .ui-icon-extlink { background-position: -32px -80px; } 295 | .ui-icon-newwin { background-position: -48px -80px; } 296 | .ui-icon-refresh { background-position: -64px -80px; } 297 | .ui-icon-shuffle { background-position: -80px -80px; } 298 | .ui-icon-transfer-e-w { background-position: -96px -80px; } 299 | .ui-icon-transferthick-e-w { background-position: -112px -80px; } 300 | .ui-icon-folder-collapsed { background-position: 0 -96px; } 301 | .ui-icon-folder-open { background-position: -16px -96px; } 302 | .ui-icon-document { background-position: -32px -96px; } 303 | .ui-icon-document-b { background-position: -48px -96px; } 304 | .ui-icon-note { background-position: -64px -96px; } 305 | .ui-icon-mail-closed { background-position: -80px -96px; } 306 | .ui-icon-mail-open { background-position: -96px -96px; } 307 | .ui-icon-suitcase { background-position: -112px -96px; } 308 | .ui-icon-comment { background-position: -128px -96px; } 309 | .ui-icon-person { background-position: -144px -96px; } 310 | .ui-icon-print { background-position: -160px -96px; } 311 | .ui-icon-trash { background-position: -176px -96px; } 312 | .ui-icon-locked { background-position: -192px -96px; } 313 | .ui-icon-unlocked { background-position: -208px -96px; } 314 | .ui-icon-bookmark { background-position: -224px -96px; } 315 | .ui-icon-tag { background-position: -240px -96px; } 316 | .ui-icon-home { background-position: 0 -112px; } 317 | .ui-icon-flag { background-position: -16px -112px; } 318 | .ui-icon-calendar { background-position: -32px -112px; } 319 | .ui-icon-cart { background-position: -48px -112px; } 320 | .ui-icon-pencil { background-position: -64px -112px; } 321 | .ui-icon-clock { background-position: -80px -112px; } 322 | .ui-icon-disk { background-position: -96px -112px; } 323 | .ui-icon-calculator { background-position: -112px -112px; } 324 | .ui-icon-zoomin { background-position: -128px -112px; } 325 | .ui-icon-zoomout { background-position: -144px -112px; } 326 | .ui-icon-search { background-position: -160px -112px; } 327 | .ui-icon-wrench { background-position: -176px -112px; } 328 | .ui-icon-gear { background-position: -192px -112px; } 329 | .ui-icon-heart { background-position: -208px -112px; } 330 | .ui-icon-star { background-position: -224px -112px; } 331 | .ui-icon-link { background-position: -240px -112px; } 332 | .ui-icon-cancel { background-position: 0 -128px; } 333 | .ui-icon-plus { background-position: -16px -128px; } 334 | .ui-icon-plusthick { background-position: -32px -128px; } 335 | .ui-icon-minus { background-position: -48px -128px; } 336 | .ui-icon-minusthick { background-position: -64px -128px; } 337 | .ui-icon-close { background-position: -80px -128px; } 338 | .ui-icon-closethick { background-position: -96px -128px; } 339 | .ui-icon-key { background-position: -112px -128px; } 340 | .ui-icon-lightbulb { background-position: -128px -128px; } 341 | .ui-icon-scissors { background-position: -144px -128px; } 342 | .ui-icon-clipboard { background-position: -160px -128px; } 343 | .ui-icon-copy { background-position: -176px -128px; } 344 | .ui-icon-contact { background-position: -192px -128px; } 345 | .ui-icon-image { background-position: -208px -128px; } 346 | .ui-icon-video { background-position: -224px -128px; } 347 | .ui-icon-script { background-position: -240px -128px; } 348 | .ui-icon-alert { background-position: 0 -144px; } 349 | .ui-icon-info { background-position: -16px -144px; } 350 | .ui-icon-notice { background-position: -32px -144px; } 351 | .ui-icon-help { background-position: -48px -144px; } 352 | .ui-icon-check { background-position: -64px -144px; } 353 | .ui-icon-bullet { background-position: -80px -144px; } 354 | .ui-icon-radio-on { background-position: -96px -144px; } 355 | .ui-icon-radio-off { background-position: -112px -144px; } 356 | .ui-icon-pin-w { background-position: -128px -144px; } 357 | .ui-icon-pin-s { background-position: -144px -144px; } 358 | .ui-icon-play { background-position: 0 -160px; } 359 | .ui-icon-pause { background-position: -16px -160px; } 360 | .ui-icon-seek-next { background-position: -32px -160px; } 361 | .ui-icon-seek-prev { background-position: -48px -160px; } 362 | .ui-icon-seek-end { background-position: -64px -160px; } 363 | .ui-icon-seek-start { background-position: -80px -160px; } 364 | /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ 365 | .ui-icon-seek-first { background-position: -80px -160px; } 366 | .ui-icon-stop { background-position: -96px -160px; } 367 | .ui-icon-eject { background-position: -112px -160px; } 368 | .ui-icon-volume-off { background-position: -128px -160px; } 369 | .ui-icon-volume-on { background-position: -144px -160px; } 370 | .ui-icon-power { background-position: 0 -176px; } 371 | .ui-icon-signal-diag { background-position: -16px -176px; } 372 | .ui-icon-signal { background-position: -32px -176px; } 373 | .ui-icon-battery-0 { background-position: -48px -176px; } 374 | .ui-icon-battery-1 { background-position: -64px -176px; } 375 | .ui-icon-battery-2 { background-position: -80px -176px; } 376 | .ui-icon-battery-3 { background-position: -96px -176px; } 377 | .ui-icon-circle-plus { background-position: 0 -192px; } 378 | .ui-icon-circle-minus { background-position: -16px -192px; } 379 | .ui-icon-circle-close { background-position: -32px -192px; } 380 | .ui-icon-circle-triangle-e { background-position: -48px -192px; } 381 | .ui-icon-circle-triangle-s { background-position: -64px -192px; } 382 | .ui-icon-circle-triangle-w { background-position: -80px -192px; } 383 | .ui-icon-circle-triangle-n { background-position: -96px -192px; } 384 | .ui-icon-circle-arrow-e { background-position: -112px -192px; } 385 | .ui-icon-circle-arrow-s { background-position: -128px -192px; } 386 | .ui-icon-circle-arrow-w { background-position: -144px -192px; } 387 | .ui-icon-circle-arrow-n { background-position: -160px -192px; } 388 | .ui-icon-circle-zoomin { background-position: -176px -192px; } 389 | .ui-icon-circle-zoomout { background-position: -192px -192px; } 390 | .ui-icon-circle-check { background-position: -208px -192px; } 391 | .ui-icon-circlesmall-plus { background-position: 0 -208px; } 392 | .ui-icon-circlesmall-minus { background-position: -16px -208px; } 393 | .ui-icon-circlesmall-close { background-position: -32px -208px; } 394 | .ui-icon-squaresmall-plus { background-position: -48px -208px; } 395 | .ui-icon-squaresmall-minus { background-position: -64px -208px; } 396 | .ui-icon-squaresmall-close { background-position: -80px -208px; } 397 | .ui-icon-grip-dotted-vertical { background-position: 0 -224px; } 398 | .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } 399 | .ui-icon-grip-solid-vertical { background-position: -32px -224px; } 400 | .ui-icon-grip-solid-horizontal { background-position: -48px -224px; } 401 | .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } 402 | .ui-icon-grip-diagonal-se { background-position: -80px -224px; } 403 | 404 | 405 | /* Misc visuals 406 | ----------------------------------*/ 407 | 408 | /* Corner radius */ 409 | .ui-corner-all, 410 | .ui-corner-top, 411 | .ui-corner-left, 412 | .ui-corner-tl { 413 | border-top-left-radius: 1px; 414 | } 415 | .ui-corner-all, 416 | .ui-corner-top, 417 | .ui-corner-right, 418 | .ui-corner-tr { 419 | border-top-right-radius: 1px; 420 | } 421 | .ui-corner-all, 422 | .ui-corner-bottom, 423 | .ui-corner-left, 424 | .ui-corner-bl { 425 | border-bottom-left-radius: 1px; 426 | } 427 | .ui-corner-all, 428 | .ui-corner-bottom, 429 | .ui-corner-right, 430 | .ui-corner-br { 431 | border-bottom-right-radius: 1px; 432 | } 433 | 434 | /* Overlays */ 435 | .ui-widget-overlay { 436 | background: #aaaaaa; 437 | opacity: .3; 438 | filter: Alpha(Opacity=30); /* support: IE8 */ 439 | } 440 | .ui-widget-shadow { 441 | -webkit-box-shadow: 0px 0px 5px #666666; 442 | box-shadow: 0px 0px 5px #666666; 443 | } 444 | -------------------------------------------------------------------------------- /script/jquery-ui-1.12.1.custom/jquery-ui.theme.min.css: -------------------------------------------------------------------------------- 1 | /*! jQuery UI - v1.12.1 - 2019-03-06 2 | * http://jqueryui.com 3 | * Copyright jQuery Foundation and other contributors; Licensed MIT */ 4 | 5 | .ui-widget{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #c5c5c5}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;color:#333;font-weight:bold}.ui-widget-header a{color:#333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:normal;color:#454545}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#454545;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #ccc;background:#ededed;font-weight:normal;color:#2b2b2b}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #6aa3e7;background:#6aa3e7;font-weight:normal;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#6aa3e7;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #ffcc27;background:#ffcc27;color:#333}.ui-state-checked{border:1px solid #ffcc27;background:#ffcc27}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#333}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #962424;background:#962424;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_555555_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_333333_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_777777_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:1px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:1px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:1px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:1px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:0 0 5px #666;box-shadow:0 0 5px #666} -------------------------------------------------------------------------------- /script/jquery-ui-1.12.1.custom/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery-ui", 3 | "title": "jQuery UI", 4 | "description": "A curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.", 5 | "version": "1.12.1", 6 | "homepage": "http://jqueryui.com", 7 | "author": { 8 | "name": "jQuery Foundation and other contributors", 9 | "url": "https://github.com/jquery/jquery-ui/blob/1.12.1/AUTHORS.txt" 10 | }, 11 | "main": "ui/widget.js", 12 | "maintainers": [ 13 | { 14 | "name": "Scott González", 15 | "email": "scott.gonzalez@gmail.com", 16 | "url": "http://scottgonzalez.com" 17 | }, 18 | { 19 | "name": "Jörn Zaefferer", 20 | "email": "joern.zaefferer@gmail.com", 21 | "url": "http://bassistance.de" 22 | }, 23 | { 24 | "name": "Mike Sherov", 25 | "email": "mike.sherov@gmail.com", 26 | "url": "http://mike.sherov.com" 27 | }, 28 | { 29 | "name": "TJ VanToll", 30 | "email": "tj.vantoll@gmail.com", 31 | "url": "http://tjvantoll.com" 32 | }, 33 | { 34 | "name": "Felix Nagel", 35 | "email": "info@felixnagel.com", 36 | "url": "http://www.felixnagel.com" 37 | }, 38 | { 39 | "name": "Alex Schmitz", 40 | "email": "arschmitz@gmail.com", 41 | "url": "https://github.com/arschmitz" 42 | } 43 | ], 44 | "repository": { 45 | "type": "git", 46 | "url": "git://github.com/jquery/jquery-ui.git" 47 | }, 48 | "bugs": "https://bugs.jqueryui.com/", 49 | "license": "MIT", 50 | "scripts": { 51 | "test": "grunt" 52 | }, 53 | "dependencies": {}, 54 | "devDependencies": { 55 | "commitplease": "2.3.0", 56 | "grunt": "0.4.5", 57 | "grunt-bowercopy": "1.2.4", 58 | "grunt-cli": "0.1.13", 59 | "grunt-compare-size": "0.4.0", 60 | "grunt-contrib-concat": "0.5.1", 61 | "grunt-contrib-csslint": "0.5.0", 62 | "grunt-contrib-jshint": "0.12.0", 63 | "grunt-contrib-qunit": "1.0.1", 64 | "grunt-contrib-requirejs": "0.4.4", 65 | "grunt-contrib-uglify": "0.11.1", 66 | "grunt-git-authors": "3.1.0", 67 | "grunt-html": "6.0.0", 68 | "grunt-jscs": "2.1.0", 69 | "load-grunt-tasks": "3.4.0", 70 | "rimraf": "2.5.1", 71 | "testswarm": "1.1.0" 72 | }, 73 | "keywords": [] 74 | } 75 | -------------------------------------------------------------------------------- /script/pen.js: -------------------------------------------------------------------------------- 1 | /* exported checkFieldCount */ 2 | /* global loadFile, updateFields */ 3 | 'use strict'; 4 | 5 | var yearmod = 288; 6 | 7 | $(document).ready(function () { 8 | hideWarning(); 9 | $('#year').html(getYear()); 10 | 11 | $('#input').bind('input change', run); 12 | $('#save').click(function () { download('pencode.txt', $('#input').val()); }); 13 | 14 | $('.controlgroup').controlgroup(); 15 | 16 | setTimeout(function () { 17 | var hash = $(location).attr('hash'); 18 | loadFile((hash && hash.substring(1) + '.txt') || 'instructions.txt'); 19 | }, 100); 20 | 21 | $('.has-tooltip').tooltip(); 22 | 23 | setKeyBindings(); 24 | }); 25 | 26 | function setKeyBindings() { 27 | var justAdded = false; 28 | $(document).keyup(function(e) { 29 | if (e.ctrlKey) { 30 | switch (e.key) { 31 | case('b'): 32 | case('i'): 33 | case('u'): 34 | case('e'): 35 | justAdded = false; 36 | break; 37 | case('>'): 38 | case('<'): 39 | if (e.shiftKey) { 40 | justAdded = false; 41 | } 42 | break; 43 | } 44 | } 45 | }); 46 | $(document).keydown(function(e) { 47 | if (e.ctrlKey) { 48 | switch (e.key) { 49 | case('b'): 50 | case('i'): 51 | case('u'): 52 | handleAddition(e.key); 53 | break; 54 | case('e'): 55 | handleAddition('center'); 56 | break; 57 | } 58 | if (e.shiftKey) { 59 | switch (e.key) { 60 | case('>'): 61 | handleAddition('large'); 62 | break; 63 | case('<'): 64 | handleAddition('small'); 65 | break; 66 | } 67 | } 68 | } 69 | 70 | function handleAddition(type) { 71 | e.preventDefault(); 72 | if(!justAdded) { 73 | addBlock(type); 74 | justAdded = true; 75 | } 76 | } 77 | }); 78 | } 79 | 80 | function run() { 81 | $('#output').html(processText($('#input').val())); 82 | $('#output span.sig').css('font-style', 'italic'); 83 | updateFields(); 84 | } 85 | 86 | String.prototype.replaceAll = function(strReplace, strWith) { 87 | // See http://stackoverflow.com/a/3561711/556609 88 | var esc = strReplace.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); 89 | var reg = new RegExp(esc, 'ig'); 90 | return this.replace(reg, strWith); 91 | }; 92 | 93 | function processText(str) { 94 | 95 | str = ( 96 | str 97 | .replaceAll('&', '&') // Has to happen before other escaping, else it messes them up 98 | .replaceAll('<', '<') 99 | .replaceAll('>', '>') 100 | .replaceAll('\n', '
') 101 | 102 | // Digital tags 103 | .replaceAll('[pre]', '
')
104 |         .replaceAll('[/pre]', '
') 105 | .replaceAll('[fontred]', '') 106 | .replaceAll('[fontgreen]', '') 107 | .replaceAll('[fontblue]', '') 108 | .replaceAll('[/font]', '') 109 | 110 | .replaceAll('[center]', '
') 111 | .replaceAll('[/center]', '
') 112 | 113 | .replaceAll('[br]', '
') 114 | .replaceAll('[hr]', '
') 115 | 116 | .replaceAll('[b]', '') 117 | .replaceAll('[/b]', '') 118 | .replaceAll('[i]', '') 119 | .replaceAll('[/i]', '') 120 | .replaceAll('[u]', '') 121 | .replaceAll('[/u]', '') 122 | 123 | .replaceAll('[time]', getTimeString()) 124 | .replaceAll('[date]', getDateString()) 125 | .replaceAll('[sign]', 'John Doe') 126 | 127 | .replaceAll('[large]', '') 128 | .replaceAll('[/large]', '') 129 | .replaceAll('[small]', '') 130 | .replaceAll('[/small]', '') 131 | 132 | .replaceAll('[field]', '') 133 | .replaceAll('[h1]', '

') 134 | .replaceAll('[/h1]', '

') 135 | .replaceAll('[h2]', '

') 136 | .replaceAll('[/h2]', '

') 137 | .replaceAll('[h3]', '

') 138 | .replaceAll('[/h3]', '

') 139 | 140 | .replaceAll('[list]', '
    ') 141 | .replaceAll('[/list]', '
') 142 | .replaceAll('[*]', '
  • ') 143 | 144 | .replaceAll('[table]', '') 145 | .replaceAll('[/table]', '
    ') 146 | .replaceAll('[grid]', '') 147 | .replaceAll('[/grid]', '
    ') 148 | .replaceAll('[row]', '') 149 | .replaceAll('[cell]', '') 150 | 151 | .replaceAll('[ntlogo]', '') 152 | .replaceAll('[bluelogo]', '') 153 | .replaceAll('[solcrest]', '') 154 | .replaceAll('[iccgseal]', '') 155 | .replaceAll('[logo]', '') 156 | .replaceAll('[eclogo]', '') 157 | .replaceAll('[fleetlogo]', '') 158 | .replaceAll('[daislogo]', '') 159 | .replaceAll('[xynlogo]', '') 160 | .replaceAll('[sfplogo]', '') 161 | .replaceAll('[uscm]', '') 162 | .replaceAll('[wy]', '') 163 | 164 | .replaceAll('[editorbr]', '') 165 | ); 166 | 167 | str += ''; 168 | 169 | return str; 170 | } 171 | 172 | function getDateString() { 173 | var date = new Date(); 174 | var yyyy = date.getFullYear() + yearmod; 175 | var mm = date.getMonth() + 1; 176 | mm = mm < 10 ? '0' + mm : mm; 177 | var dd = date.getDate(); 178 | dd = dd < 10 ? '0' + dd : dd; 179 | return yyyy + '-' + mm + '-' + dd; 180 | } 181 | 182 | function getYear() { 183 | return new Date().getFullYear() + yearmod; 184 | } 185 | 186 | function getTimeString() { 187 | var date = new Date(); 188 | var hh = (date.getHours() < 10 ? "0" : "") + date.getHours(); 189 | var mm = (date.getMinutes() < 10 ? "0" : "") + date.getMinutes(); 190 | return hh + ":" + mm; 191 | } 192 | 193 | function download(filename, text) { 194 | var element = document.createElement('a'); 195 | element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)); 196 | element.setAttribute('download', filename); 197 | 198 | element.style.display = 'none'; 199 | document.body.appendChild(element); 200 | 201 | element.click(); 202 | 203 | document.body.removeChild(element); 204 | 205 | alert('Document saved as ' + filename); 206 | } 207 | 208 | function addBlock(type) { 209 | if (type === 'list') { 210 | addAtSelectionStart('[list][*]'); 211 | addAtSelectionEnd('[/list]'); 212 | 213 | } else if (type === 'table') { 214 | addAtSelectionStart('[table][row][cell]'); 215 | addAtSelectionEnd('[/table]'); 216 | 217 | } else { 218 | addAtSelectionStart('[' + type + ']'); 219 | if (!isSelfClosingBlock(type)) { 220 | addAtSelectionEnd('[/' + type + ']'); 221 | } 222 | } 223 | 224 | run(); 225 | 226 | function isSelfClosingBlock(type) { 227 | return type === 'time' || type === 'date'; 228 | } 229 | 230 | function addAtSelectionStart(txtToAdd) { 231 | var txt = $('#input'); 232 | var selectionStart = txt.prop('selectionStart'); 233 | var selectionEnd = txt.prop('selectionEnd'); 234 | var textAreaTxt = txt.val(); 235 | txt.val(textAreaTxt.substring(0, selectionStart) + txtToAdd + textAreaTxt.substring(selectionStart)); 236 | setSelectionRange(selectionStart + txtToAdd.length, selectionEnd + txtToAdd.length); 237 | } 238 | 239 | function addAtSelectionEnd(txtToAdd) { 240 | var txt = $('#input'); 241 | var selectionStart = txt.prop('selectionStart'); 242 | var selectionEnd = txt.prop('selectionEnd'); 243 | var textAreaTxt = txt.val(); 244 | txt.val(textAreaTxt.substring(0, selectionEnd) + txtToAdd + textAreaTxt.substring(selectionEnd)); 245 | setSelectionRange(selectionStart, selectionEnd); 246 | } 247 | 248 | function setSelectionRange(selectionStart, selectionEnd) { 249 | var input = $('#input')[0]; 250 | input.focus(); 251 | if (input.setSelectionRange) { 252 | input.setSelectionRange(selectionStart, selectionEnd); 253 | 254 | } else if (input.createTextRange) { 255 | var range = input.createTextRange(); 256 | range.collapse(true); 257 | range.moveEnd('character', selectionEnd); 258 | range.moveStart('character', selectionStart); 259 | range.select(); 260 | 261 | } else { 262 | console.warn('Could not setCaretToPos, unsupported browser!'); 263 | } 264 | } 265 | } 266 | 267 | function checkFieldCount() { 268 | var fieldCount = $('span.paper_field').length; 269 | var fieldWarningShown = $('#warning').is(':visible'); 270 | 271 | var showFieldWarning = (fieldCount > 50); 272 | 273 | if (showFieldWarning) { 274 | showWarning('Your document has ' + fieldCount + ' fields. Only 50 fields are allowed. You may need to remove fields or format for multiple pages.'); 275 | } 276 | else if (fieldWarningShown) { 277 | hideWarning(); 278 | } 279 | } 280 | 281 | function showWarning(html) { 282 | $('#warningText').html(html); 283 | $('#wrapper').css('height', 'calc(100vh - 9em)'); 284 | $('#warning').show(); 285 | } 286 | 287 | function hideWarning() { 288 | $('#warningText').html(''); 289 | $('#wrapper').css('height', 'calc(100vh - 7em)'); 290 | $('#warning').hide(); 291 | } 292 | -------------------------------------------------------------------------------- /script/settings.js: -------------------------------------------------------------------------------- 1 | /* global checkFieldCount */ 2 | 'use strict'; 3 | 4 | $(function() { 5 | $("#settings-dialog").dialog({ 6 | autoOpen: false 7 | }); 8 | 9 | $('#settings-btn').click(function() { 10 | $("#settings-dialog").dialog('open'); 11 | }); 12 | 13 | $('#pen-checkbox').click(updateFields); 14 | $('#filled-checkbox').click(updateFields); 15 | 16 | $('#pen-style-select option').click(updateFonts); 17 | $('#pen-color-select option').click(updateFonts); 18 | 19 | $('#theme-select option').click(function(e) { 20 | var target = $(e.target); 21 | var targetSelect = target.parent(); 22 | 23 | $('.controlgroup .control').css('-webkit-transition', 'none'); 24 | $('.controlgroup .control').css('-moz-transition', 'none'); 25 | $('.controlgroup .control').css('-ms-transition', 'none'); 26 | $('.controlgroup .control').css('-o-transition', 'none'); 27 | $('.controlgroup .control').css('transition', 'none'); 28 | 29 | for (var i = 0; i < $('#theme-select option').length; ++i) { 30 | var option = $('#theme-select option')[i]; 31 | $('body').removeClass($(option).val()); 32 | } 33 | $('body').addClass(targetSelect.val()); 34 | 35 | setTimeout(function() { 36 | $('.controlgroup .control').css('-webkit-transition', ''); 37 | $('.controlgroup .control').css('-moz-transition', ''); 38 | $('.controlgroup .control').css('-ms-transition', ''); 39 | $('.controlgroup .control').css('-o-transition', ''); 40 | $('.controlgroup .control').css('transition', ''); 41 | }, 300); 42 | 43 | // Update fonts the easy way - simulate selecting the current color 44 | $('#pen-color-select option:selected').click(); 45 | }); 46 | }); 47 | 48 | function updateFields() { 49 | var innerHtml = ''; 50 | if ($('#filled-checkbox').is(':checked')) { 51 | innerHtml += 'Lorem ipsum dolor sit amet'; 52 | } 53 | if ($('#pen-checkbox').is(':checked')) { 54 | var html = 'write'; 55 | innerHtml += html; 56 | $('.output-end').html(html); 57 | $('.write-prompt').tooltip(); 58 | } else { 59 | $('.output-end').html(''); 60 | } 61 | $('.paper_field').html(innerHtml); 62 | 63 | checkFieldCount(); 64 | } 65 | 66 | function updateFonts(e) { 67 | var target = $(e.target); // The clicked
  • '; 33 | if (jQuery.type(value) === 'string') { 34 | str += '
    ' + key + '
    '; 35 | 36 | } else if (jQuery.type(value) === 'object') { 37 | str += '
    ' + key + '
      ' + constructHtml(value) + '
    '; 38 | 39 | } else { 40 | console.warn('Unexpected value type in templates/index.json:', jQuery.type(value)); 41 | } 42 | str += '
  • '; 43 | } 44 | return str; 45 | } 46 | }); 47 | }); 48 | 49 | function loadFile(filename) { 50 | var newHash = filename.substr(0, filename.indexOf('.txt')); 51 | $(location).attr('hash', newHash); 52 | 53 | $.get('./templates/' + filename, function(data) { 54 | $('#input').val(data); 55 | run(); 56 | }, 'text'); 57 | 58 | closeTemplateMenu(); 59 | } 60 | 61 | function closeTemplateMenu() { 62 | $('#template').css('display', 'none'); 63 | $('#template').menu('collapseAll'); 64 | } 65 | -------------------------------------------------------------------------------- /style/dark.css: -------------------------------------------------------------------------------- 1 | .dark-theme { 2 | background-color: #1a1a1a; 3 | color: white; 4 | } 5 | 6 | .dark-theme #menu { 7 | background-color: #1f1f1f; 8 | border-color: #3f3f3f; 9 | } 10 | 11 | .dark-theme #template, .dark-theme .ui-menu-item-wrapper, .dark-theme select { 12 | background-color: black; 13 | color: white; 14 | } 15 | .dark-theme .ui-menu-item-wrapper:hover { 16 | background-color: #3f3f3f; 17 | } 18 | 19 | .dark-theme #input, .dark-theme #output { 20 | background-color: black; 21 | color: white; 22 | border-color: #3f3f3f; 23 | box-shadow: -6px -6px 16px #1f1f1f inset; 24 | } 25 | 26 | .dark-theme #menu > legend { 27 | background-color: #1f1f1f; 28 | color: white; 29 | } 30 | 31 | .dark-theme .control, .dark-theme .control:focus { 32 | background-color: #1f1f1f; 33 | color: white; 34 | } 35 | .dark-theme .control:hover { 36 | background-color: #3f3f3f; 37 | } 38 | 39 | .dark-theme .ui-dialog { 40 | background-color: #1f1f1f; 41 | color: white; 42 | } 43 | .dark-theme .ui-dialog-titlebar, .dark-theme .ui-dialog-titlebar-close { 44 | background-color: #3f3f3f; 45 | color: white; 46 | border: none; 47 | } 48 | 49 | .dark-theme .input-field { 50 | color: white; 51 | } 52 | 53 | .dark-theme #credits, .dark-theme .ui-widget-content a { 54 | color: white; 55 | } 56 | -------------------------------------------------------------------------------- /style/main.css: -------------------------------------------------------------------------------- 1 | /* Code to make input and output line up side by side */ 2 | 3 | #wrapper { 4 | width: 100%; 5 | height: calc(100vh - 7em); 6 | position: relative; 7 | } 8 | 9 | .panel { 10 | position: absolute; 11 | top: 0; 12 | width: 50%; 13 | height: 100%; 14 | padding: 2px 0; 15 | -webkit-box-sizing: border-box; 16 | -moz-box-sizing: border-box; 17 | -ms-box-sizing: border-box; 18 | -o-box-sizing: border-box; 19 | box-sizing: border-box; 20 | } 21 | 22 | .panel-left { 23 | left: 0; 24 | } 25 | 26 | .panel-right { 27 | right: 0; 28 | } 29 | 30 | #input { 31 | margin-top: 0px; 32 | margin-bottom: 2px; 33 | width: 100%; 34 | resize: none; 35 | } 36 | 37 | #output { 38 | min-width: 100%; 39 | border-style: solid; 40 | overflow-y: auto; 41 | } 42 | 43 | #input, #output { 44 | height: 100%; 45 | padding: 4px; 46 | border-color: #ccc; 47 | border-radius: 3px; 48 | background-color: white; 49 | border-width: 1px; 50 | -webkit-box-sizing: border-box; 51 | -moz-box-sizing: border-box; 52 | -ms-box-sizing: border-box; 53 | -o-box-sizing: border-box; 54 | box-sizing: border-box; 55 | } 56 | 57 | #menu { 58 | margin-top: 1em; 59 | padding: 2em 1em 0 1em; 60 | position: relative; 61 | width: 100%; 62 | min-height: 5em; 63 | -webkit-box-sizing: border-box; 64 | -moz-box-sizing: border-box; 65 | -ms-box-sizing: border-box; 66 | -o-box-sizing: border-box; 67 | box-sizing: border-box; 68 | border: 1px solid #ccc; 69 | border-radius: 3px; 70 | 71 | display: flex; 72 | flex-wrap: wrap; 73 | flex-direction: row; 74 | } 75 | 76 | #template { 77 | position: absolute; 78 | z-index: 1; 79 | left: 5em; 80 | } 81 | 82 | #template .ui-menu-item { 83 | white-space: nowrap; 84 | } 85 | 86 | #menu > legend { 87 | position: absolute; 88 | top: -0.58em; 89 | left: 0.5em; 90 | font-weight: bold; 91 | font-size: 24px; 92 | background-color: #f1f1f1; 93 | } 94 | 95 | .controlgroup { 96 | display: inline-block; 97 | } 98 | 99 | .settings-container { 100 | flex-grow: 1; 101 | display: flex; 102 | flex-direction: row-reverse; 103 | } 104 | 105 | .settings-container .control { 106 | margin-left: auto; 107 | } 108 | 109 | .control, .control:focus { 110 | border: none; 111 | border-radius: 3px; 112 | background-color: #f1f1f1; 113 | -webkit-transition: background-color 0.3s; 114 | -moz-transition: background-color 0.3s; 115 | -ms-transition: background-color 0.3s; 116 | -o-transition: background-color 0.3s; 117 | transition: background-color 0.3s; 118 | } 119 | .control:hover { 120 | background-color: #fafafa; 121 | border: none; 122 | } 123 | .control:active { 124 | background-color: #c1c1c1; 125 | color: initial; 126 | } 127 | 128 | 129 | body { 130 | font-family: Trebuchet MS, sans-serif; 131 | background-color: #f1f1f1; 132 | } 133 | 134 | #output { 135 | font-family: Verdana, sans-serif; 136 | } 137 | 138 | .ui-dialog { 139 | box-shadow: 2px 2px 8px gray; 140 | } 141 | 142 | #settings-dialog .input-field { 143 | display: flex; 144 | } 145 | 146 | #settings-dialog .input-field label, #settings-dialog .input-field select { 147 | flex-grow: 1; 148 | } 149 | 150 | #settings-dialog input[type="checkbox"] { 151 | width: 1em; 152 | height: 1em; 153 | background-color: transparent; 154 | border: 1px solid black; 155 | } 156 | 157 | @media screen and (max-width: 852px) { 158 | .panel { 159 | position: relative; 160 | display: block; 161 | width: 100%; 162 | } 163 | 164 | .panel-right { 165 | height: 100vh; 166 | } 167 | 168 | .controlgroup { 169 | flex-grow: 1; 170 | display: flex; 171 | } 172 | 173 | .control { 174 | flex-grow: 1; 175 | } 176 | 177 | .settings-container .control { 178 | flex-grow: 0; 179 | } 180 | 181 | .optionalContent { 182 | display: none; 183 | } 184 | } 185 | 186 | /* [sign] */ 187 | span.sig { 188 | font-family: Times New Roman, serif; 189 | } 190 | 191 | /* [field] has-pen option */ 192 | .write-prompt { 193 | color: #0066cc; 194 | text-decoration: underline; 195 | cursor: not-allowed; 196 | } 197 | /* [field] sample text option */ 198 | .sample-text { 199 | font-style: italic; 200 | } 201 | 202 | /* [small] */ 203 | .small-text { 204 | font-size: 0.8rem; 205 | } 206 | /* [large] */ 207 | .large-text { 208 | font-size: 1.2rem; 209 | } 210 | 211 | /* [fontred] */ 212 | mark.fontred { 213 | color: red; 214 | } 215 | 216 | /* [fontgreen] */ 217 | mark.fontgreen { 218 | color: green; 219 | } 220 | 221 | /* [fontblue] */ 222 | mark.fontblue { 223 | color: blue; 224 | } 225 | 226 | /* warning and error styling */ 227 | #warning { 228 | padding: 4px; 229 | margin: 4px 0 2px 0; 230 | border-radius: 3px; 231 | } 232 | #warningText { 233 | padding-left: 6px; 234 | } 235 | 236 | /* flexbox formatting for credits */ 237 | #credits, .credits-section, .credits-row { 238 | display: flex; 239 | justify-content: space-between; 240 | } 241 | #credits, .credits-section { 242 | flex-direction: column; 243 | } 244 | .credits-section { 245 | margin: 20px 10px; 246 | } 247 | .credits-row { 248 | margin: 5px; 249 | } 250 | 251 | /* Credits header formatting */ 252 | .credits-header { 253 | font-weight: bold; 254 | font-size: 24px; 255 | margin-bottom: 5px; 256 | } 257 | 258 | /* Give equal width to credits cells */ 259 | .credits-section, .credits-row, .credits-cell { 260 | flex-grow: 1; 261 | } 262 | .credits-cell { 263 | flex-basis: 0; 264 | } 265 | 266 | /* Align text in credits cells */ 267 | .credits-row > .credits-cell { 268 | text-align: center; 269 | } 270 | .credits-row > .credits-cell:last-child { 271 | text-align: right; 272 | } 273 | .credits-row > .credits-cell:first-child { 274 | text-align: left; 275 | } 276 | 277 | /* Align credit icons to center to make spacing look a bit better */ 278 | #credits > .credits-section:first-child > .credits-row > .credits-cell:last-child { 279 | text-align: center !important; 280 | } -------------------------------------------------------------------------------- /style/solarized.css: -------------------------------------------------------------------------------- 1 | .solarized-theme { 2 | background-color: #05262e; 3 | color: #839496; 4 | } 5 | 6 | .solarized-theme #menu { 7 | background-color: #073642; 8 | border-color: #93a1a1; 9 | } 10 | 11 | .solarized-theme #template, .solarized-theme .ui-menu-item-wrapper, .solarized-theme select { 12 | background-color: #073642; 13 | color: #839496; 14 | } 15 | .solarized-theme .ui-menu-item-wrapper:hover { 16 | background-color: #0b4d5e; 17 | } 18 | 19 | .solarized-theme #input, .solarized-theme #output { 20 | background-color: #002b36; 21 | color: #839496; 22 | border-color: #93a1a1; 23 | box-shadow: -6px -6px 16px #1f1f1f inset; 24 | } 25 | 26 | .solarized-theme #menu > legend { 27 | background-color: #073642; 28 | color: #839496; 29 | } 30 | 31 | .solarized-theme .control, .solarized-theme .control:focus { 32 | background-color: #073642; 33 | color: #839496; 34 | } 35 | .solarized-theme .control:hover { 36 | background-color: #0b4d5e; 37 | } 38 | 39 | .solarized-theme .ui-dialog { 40 | background-color: #05262e; 41 | color: #839496; 42 | box-shadow: 3px 3px 8px black; 43 | } 44 | .solarized-theme .ui-dialog-titlebar, .solarized-theme .ui-dialog-titlebar-close { 45 | background-color: #073642; 46 | color: #839496; 47 | border: none; 48 | } 49 | 50 | .solarized-theme .input-field { 51 | color: #839496; 52 | } 53 | 54 | .solarized-theme #credits, .solarized-theme .ui-widget-content a { 55 | color: #839496; 56 | } 57 | 58 | .solarized-theme i { 59 | color: #586e75; 60 | } 61 | 62 | .solarized-theme b, .solarized-theme h1, .solarized-theme h2, .solarized-theme h3, .solarized-theme h4, .solarized-theme h5 { 63 | color: #93a1a1; 64 | } 65 | 66 | .solarized-theme .ui-state-highlight, .solarized-theme .ui-state-highlight b { 67 | color: #586e75; 68 | background-color: #b58900; 69 | border-color: #b58900; 70 | } -------------------------------------------------------------------------------- /templates/admin/excom_autoreply.txt: -------------------------------------------------------------------------------- 1 | [small]Thank you for your Inquiry! 2 | 3 | Unfortunately due to a high volume of requests, we cannot get back to you right now. We shall respond to your query in 2-3 business days. 4 | 5 | Thank you for your Patience. 6 | 7 | Regards, 8 | 9 | Expeditionary Command 10 | Sol Central Government Expeditionary Corps Observatory, Sol 11 | 12 | [i][b]This is an automated reply[/b][/i] 13 | [/small] -------------------------------------------------------------------------------- /templates/admin/exo_autoreply.txt: -------------------------------------------------------------------------------- 1 | [small]Thank you for your Inquiry! 2 | 3 | Unfortunately due to a high volume of requests, we cannot get back to you right now. We shall respond to your query in 2-3 business days. 4 | 5 | Thank you for your Patience. 6 | 7 | Regards, 8 | Expeditionary Corps Organisation 9 | New Amsterdam, Luna, Sol 10 | 11 | [b]Major Bill's! When you need it moved, Call Bill.[/b] 12 | 13 | [i][b]This is an automated reply[/b][/i] 14 | [/small] -------------------------------------------------------------------------------- /templates/cm/commandfax.txt: -------------------------------------------------------------------------------- 1 | [center][uscm] 2 | [small][b]United States Colonial Marine Corps.[/b] 3 | 4 | 5 | Form X342 6 | 7 | Situation Report[/small][/center][hr] 8 | 9 | [small]Facility: USS Almayer 10 | 11 | Date: [field] 12 | 13 | 14 | To: USCMC High Command - Missions Director 15 | 16 | Subject: [field][list][field][/list][hr] 17 | 18 | Signature: [field][/small] 19 | -------------------------------------------------------------------------------- /templates/cm/companyfax.txt: -------------------------------------------------------------------------------- 1 | [center][wy] 2 | [small][b]Corporate. Special Services Division[/b][/small][/center] 3 | 4 | [small]Form 435 5 | Liaison Operations Report[hr]Facility: USS Almayer 6 | Index: [field] 7 | Date: [field] 8 | 9 | To: The Company, Special Services Division Director 10 | Subject: [field][list][field][/list][hr] Signature: [field][/small] 11 | -------------------------------------------------------------------------------- /templates/command/access_mod.txt: -------------------------------------------------------------------------------- 1 | [center][solcrest][logo][/center] 2 | [large][i][center]SEV Torch - Office of the Executive Officer[/center][/i][br] 3 | [small][center]YOUR RANK YOUR NAME[/center][/small] 4 | [center][b][i]Crew Access Modification Application - AMA-SGF02[/i][/b][/center][/large] 5 | [hr][br] 6 | 7 | [small]Print your full ID name, and rank and branch, if applicable.[/small][br] 8 | Rank: [u][field][/u][br] 9 | Applicant: [u][field][/u][br] 10 | Organization: [u][field][/u][br] 11 | [br] 12 | Time applied: [u][field][/u][br] 13 | Present position: [u][field][/u][br] 14 | Requested access: [u][field][/u] 15 | 16 | [hr] 17 | 18 | Reason stated: [u][field][/u][br] 19 | Duration of expanded access: [u][field][/u] 20 | 21 | [hr] 22 | 23 | [small]The following fields render the document invalid if not signed clearly.[/small][br] 24 | Applicant signature: [u][field][/u][br] 25 | Executive Officer: [u][field][/u] 26 | [hr] 27 | 28 | [small]The following fields are for the executive officer only.[/small][br] 29 | Date filed: [u][date][/u][br] 30 | [br] 31 | Number of personnel in relevant position: [u][field][/u][br] 32 | Approved?: [u][field][/u] 33 | [hr] -------------------------------------------------------------------------------- /templates/command/arrival.txt: -------------------------------------------------------------------------------- 1 | [center][solcrest][u][large]Welcome to the SEV Torch![/large][/u][eclogo][/center] 2 | [hr] 3 | The Torch is a Mako-class exploratory corvette. The vessel is the result of a deep space exploration project overseen by the Sol Central Government (SCG) and multiple corporate investors, primarily the Expeditionary Corps Organisation (EXO) and certain Skrellian organizations. 4 | 5 | For your familiarization with the ship, and the departments becoming aware of your presence, you're required to fill the following form: 6 | 7 | [b]Arrival name[/b]: [field] 8 | [b]Arrival date[/b]: [field] 9 | [table] 10 | [row][cell]Department[cell]Signature[cell]Signers name[cell]Signature date[cell]Deck # 11 | [row][cell]Security[cell][field][cell][field][cell][field][cell]1 12 | [row][cell]Medical[cell][field][cell][field][cell][field][cell]1 13 | [row][cell]Supply[cell][field][cell][field][cell][field][cell]4 14 | [row][cell]Service[cell][field][cell][field][cell][field][cell]3 15 | [row][cell]Engineering[cell][field][cell][field][cell][field][cell]2 16 | [/table] 17 | [b]Executive Officer signature[/b]: [field] 18 | [b]Executive Officer stamp[/b]: [field] 19 | -------------------------------------------------------------------------------- /templates/command/crew_transfer.txt: -------------------------------------------------------------------------------- 1 | [center][solcrest][logo][/center] 2 | [large][i][center]SEV Torch - Office of the Executive Officer[/center][/i][br] 3 | [small][center]YOUR RANK YOUR NAME[/center][/small] 4 | [center][b][i]Crew Transfer Application - CTA-SGF01[/i][/b][/center][/large] 5 | [hr][br] 6 | 7 | [small]Print your full ID name, and rank and branch, if applicable.[/small][br] 8 | Rank: [u][field][/u][br] 9 | Applicant: [u][field][/u][br] 10 | Organization: [u][field][/u][br] 11 | [br] 12 | Time applied: [u][field][/u][br] 13 | Present position: [u][field][/u][br] 14 | Requested position: [u][field][/u] 15 | 16 | [hr] 17 | 18 | Reason stated: [u][field][/u] 19 | 20 | [hr] 21 | 22 | [small]The following fields render the document invalid if not [b]signed clearly[/b].[/small][br] 23 | Applicant signature: [u][field][/u][br] 24 | Executive Officer: [u][field][/u] 25 | [hr] 26 | 27 | [small]The following fields are for the executive officer only.[/small][br] 28 | Date filed: [u][date][/u][br] 29 | 30 | Number of personnel in present/previous position: [u][field][/u][br] 31 | Number of personnel in requested position: [u][field][/u][br] 32 | Approved?: [u][field][/u] 33 | [hr] -------------------------------------------------------------------------------- /templates/command/department_audit.txt: -------------------------------------------------------------------------------- 1 | [center][solcrest][/center] 2 | [br] 3 | SEV Torch Department Audit 4 | Date:[date] 5 | [br] 6 | Time:[time] 7 | [br] 8 | Name of Department: [field] 9 | [br] 10 | Positive Observations: [field] 11 | [br] 12 | Negative Observations: [field] 13 | [br] 14 | Other Notes: [field] 15 | [br] 16 | Signature: [sign] 17 | [br] 18 | Note: Document not valid unless stamped -------------------------------------------------------------------------------- /templates/command/exo/complaint_exo.txt: -------------------------------------------------------------------------------- 1 | [small][center][Logo] 2 | Corporate Complaint Form C-2202[/center] 3 | 4 | [b]EXO Personnel Complaint Form[/b] 5 | Vessel: SEV Torch 6 | DTG: [date], [time] 7 | 8 | [b]Complainant:[/b] [field] 9 | [b]Complainee(s):[/b] [field] 10 | 11 | Complaint Overview: 12 | [field] 13 | 14 | Complaint Details: 15 | [field] 16 | 17 | [hr] 18 | Complainant Signature: [field] 19 | Witness Signature: [field] 20 | 21 | [center]Stamp below if Approved[/center][hr][/small] 22 | -------------------------------------------------------------------------------- /templates/command/exo/complaint_nexo.txt: -------------------------------------------------------------------------------- 1 | [small][center][Logo] 2 | Corporate Complaint Form C-2204[/center] 3 | 4 | [b]Non-EXO Personnel Complaint Form[/b] 5 | Vessel: SEV Torch 6 | DTG: [date], [time] 7 | 8 | [b]Complainant:[/b] [field] 9 | [b]Complainee(s):[/b] [field] 10 | 11 | Complaint Overview: 12 | [field] 13 | 14 | Complaint Details: 15 | [field] 16 | 17 | [hr] 18 | Complainant Signature: [field] 19 | Witness Signature: [field] 20 | 21 | [center]Stamp below if Approved[/center][hr][/small] -------------------------------------------------------------------------------- /templates/command/exo/memo.txt: -------------------------------------------------------------------------------- 1 | [small][center][logo] 2 | Department Memo HR-NTCO-03[/center] 3 | 4 | [b]Internal Memorandum[/b] 5 | Vessel: SEV Torch 6 | DTG: [date], [time] 7 | 8 | Subject: [field] 9 | Body: 10 | 11 | [field] 12 | 13 | [hr] 14 | Authorizing Signature: 15 | [field] 16 | 17 | [center]Stamp below if Approved[/center][hr][/small] -------------------------------------------------------------------------------- /templates/command/exo/memo_ext.txt: -------------------------------------------------------------------------------- 1 | [small][center][logo] 2 | Inter-Department Memo HR-NTCO-03a[/center] 3 | 4 | [b]External Memorandum[/b] 5 | Vessel: SEV Torch 6 | DTG: [date], [time] 7 | 8 | Subject: [field] 9 | Body: 10 | 11 | [field] 12 | 13 | [hr] 14 | Authorizing Signature: 15 | [field] 16 | 17 | [center]Stamp below if Approved[/center][hr][/small] -------------------------------------------------------------------------------- /templates/command/exo/pod.txt: -------------------------------------------------------------------------------- 1 | [small][center][logo] 2 | Request Form HR-NTCO-05a[/center] 3 | 4 | [b]Next of Kin Payout Authorization[/b] 5 | Vessel: SEV Torch 6 | DTG: [date], [time] 7 | Index: [field] 8 | 9 | This document hereby authorizes the payout of the remaining salary of: 10 | [field] 11 | 12 | As well as the net-worth of any remaining personal assets: (Asset, Thaler Amount) 13 | [field] 14 | 15 | Including personal effects: 16 | [field] 17 | 18 | To be shipped and delivered directly to the employee's next of kin without delay. 19 | 20 | [hr] 21 | Signature: [field] 22 | 23 | [center]Stamp below if Approved[/center][hr][/small] -------------------------------------------------------------------------------- /templates/command/exo/sales.txt: -------------------------------------------------------------------------------- 1 | [center][logo] 2 | [small]SEV Torch - Expeditionary Corps Organisation[br] 3 | Corporate Sales Contract and Receipt HR-ECOCO-04[/small][/center] 4 | [hr] 5 | [b]Product Information[/b] 6 | 7 | Product Name: [field] 8 | Product Type: 9 | [[field]] Weapon 10 | [[field]] Tool 11 | [[field]] Entertainment 12 | [[field]] Other: [u][field][/u] 13 | 14 | Product Unit Cost: T[field] 15 | Product Units Requested: x[field] 16 | Total Cost: T[field] 17 | 18 | [b]Terms and Conditions[/b] 19 | [i]The 'Purchaser' may not return any sold product units for re-compensation in thalers, but may return the item for an identical item, or item of equal material (not thaler) value. The 'Seller' agrees to make their best effort to repair, or replace any items that fail to accomplish their designed purpose, due to malfunction or manufacturing error - but not user-caused damage. 20 | [/i] 21 | 22 | [b]Purchaser Information[/b] 23 | 24 | Name: [field] 25 | Position: [field] 26 | Signature: [field] 27 | 28 | [b]Seller Information[/b] 29 | 30 | Name: [field] 31 | Position: [field] 32 | Signature: [field] 33 | 34 | [center]Stamp below if Approved[/center][hr] -------------------------------------------------------------------------------- /templates/command/exo/termination.txt: -------------------------------------------------------------------------------- 1 | [b][center]Notice of Termination of Employment[/center][/b] 2 | 3 | Name: [field] 4 | 5 | Age: [field] 6 | 7 | Position: [field] 8 | 9 | Reason for Termination: [field] 10 | 11 | Date: [field] 12 | 13 | Authorized by: [field] 14 | 15 | [small]**Please attach employment records alongside notice of termination[/small] -------------------------------------------------------------------------------- /templates/command/exo/test_subject.txt: -------------------------------------------------------------------------------- 1 | [small][center][logo] 2 | Liability Form HR-NTCO-02b[/center] 3 | 4 | [b]Corporate Test Subject Volunteer Form[/b] 5 | Vessel: SEV Torch 6 | DTG: [date], [time] 7 | Index: [field] 8 | 9 | Name of Volunteer: 10 | [field] 11 | (Attach Crew Record) 12 | 13 | Intended Procedure(s): 14 | [field] 15 | 16 | Compensation for Volunteer: (if any) 17 | [field] 18 | 19 | Handling Researcher(s): (Name, Position) 20 | [field] 21 | [hr] 22 | [i]By signing, the "Volunteer" agrees to absolve the Expeditionary Corps Organisation, including partner corporations, and its employees, of any liability or responsibility for injuries, damages, property loss or side-effects that may result from the intended procedure. If signed by an authorized representative of the ECO, such as a Research Director or Corporate Executive - this form is deemed reviewed, but is only approved if stamped.[/i] 23 | 24 | Corporate Representative's Signature: 25 | [field] 26 | 27 | Volunteer's Signature: 28 | [field] 29 | 30 | [center]Stamp below if Approved[/center][hr][/small] -------------------------------------------------------------------------------- /templates/command/exo/test_subject_no.txt: -------------------------------------------------------------------------------- 1 | [small][center][logo] 2 | Rejection Form HR-NTCO-02b-A[/center] 3 | 4 | [b]Rejection of Test Subject Volunteer Notice[/b] 5 | Vessel: SEV Torch 6 | DTG: [date], [time] 7 | Index: [field] 8 | 9 | [i]Dear Sir/Madam, 10 | 11 | We regret to inform you that your volunteer application for service as a test subject with the Expeditionary Corps Organisation has been rejected. We thank you for your interest in the progression of research. Attached, you will find a copy of your original volunteer form for your records. 12 | 13 | Regards,[/i] 14 | 15 | [sign] 16 | [hr] 17 | Reason for Rejection: 18 | [[field]] Physically Unfit 19 | [[field]] Mentally Unfit 20 | [[field]] Project Cancellation 21 | [[field]] Other 22 | 23 | [center]Stamp below if Approved[/center][hr][/small] -------------------------------------------------------------------------------- /templates/command/exo/visa.txt: -------------------------------------------------------------------------------- 1 | [small][center][logo] 2 | Request Form HR-NTCO-05[/center] 3 | 4 | [b]Sol Central Government Work Visa Request Form[/b] 5 | Vessel: SEV Torch 6 | DTG: [date], [time] 7 | Index: [field] 8 | 9 | Intended Recipient of Visa: (Name, Position 10 | [field] 11 | 12 | Reason for Request: 13 | [field] 14 | [hr] 15 | 16 | Request Issuer's Signature: [field] 17 | Recipient's Signature: [field] 18 | Issuing Authority's Signature: [field] 19 | 20 | [center]Stamp below if Approved[/center][hr][/small] -------------------------------------------------------------------------------- /templates/command/incident.txt: -------------------------------------------------------------------------------- 1 | [center][solcrest][hr][b]Incident Report[/b][/center] 2 | [small][b]Date: [/b][date] 3 | [b]Time: [/b][time] 4 | [b]Name: [/b][field][hr][i]For any section that does not apply, simply fill in that it is not applicable or N/A, do not leave any section blank.[/i] 5 | [b]Incident Type: [/b][field] 6 | [b]Location: [/b][field] 7 | [b]Action Taken: [/b][field] 8 | [b]Action Still Needed: [/b][field] 9 | [b]Involved Parties: [/b][field] 10 | [b]Witnesses (if different than involved parties): [/b][field] 11 | [hr] 12 | [b]Incident Summary: [/b][field] 13 | [hr] 14 | [b]Additional Comments: [/b][field] 15 | 16 | [b]Signed: [/b][field][/small] -------------------------------------------------------------------------------- /templates/command/sitrep.txt: -------------------------------------------------------------------------------- 1 | [center][solcrest] 2 | [h1]SCGEC SITREP[/h1][/center][hr] 3 | [b]SITREP no.[/b][field] 4 | [b]DATE:[/b] [date] 5 | [b]TIME:[/b] [time] 6 | 7 | [b]REMOTE ASSET:[/b] EXPEDITIONARY COMMAND 8 | [b]ONSITE ASSET:[/b] SEV Torch 9 | 10 | [hr] 11 | [b]1.0 SITUATION TO DATE[/b] 12 | [field] 13 | 14 | [b]2.0 ACTIONS TO DATE[/b] 15 | [field] 16 | 17 | [b]3.0 ACTIONS TO BE COMPLETED[/b] 18 | [field] 19 | 20 | [b]4.0 ISSUES OUTSTANDING[/b] 21 | [field] 22 | 23 | [b]5.0 ESCALATION ACTIONS/DETAILS REQUIRED[/b] 24 | [field] 25 | 26 | [hr] 27 | [grid][row][cell][b]FROM:[/b][cell][field] 28 | [row][cell][b]RANK:[/b][cell][field] 29 | [row][cell][b]ROLE: [/b][cell][field] 30 | [row][cell][b]SIGN:[/b][cell][field][/grid] 31 | [grid][row][cell][b]VIA:[/b][cell][field] 32 | [row][cell][b]RANK:[/b][cell][field] 33 | [row][cell][b]ROLE: [/b][cell][field] 34 | [row][cell][b]SIGN:[/b][cell][field][/grid] 35 | [hr] 36 | 37 | [small][i]Information in a SITREP should be factual and largely without interpretation and conjecture. Information in a SITREP should cover the period between the last SITREP and the next SITREP. A SITREP should be brief and not a narrative (reading time 3-5 minutes); a report should be used for the provision of more detailed information. A SITREP should be specific for a given functional area and not present information that is outside the specific functional area. It is acceptable for a SITREP to be issued that states no change since previous SITREP, in which case the recipient should be directed to see the previous SITREP for information. A photograph or other graphic can be part of a SITREP; ensure date and time are present on the graphic and there is a reference between the graphic and the SITREP. A SITREP and an Incident Action Plan (IAP) are not interchangeable. The first part of an IAP, the Situation, is likely to contain much of the content in a SITREP assuming their time period and functional area are the same. Each electronically produced SITREP should be saved as a separate document and saved to the same directory or archive for transmission.[/i][/small] 38 | 39 | [small][i]Only a commissioned Expeditionary Corps or Fleet line officer, an acting line officer, or the resident officer in charge of the relevant command ("ONSITE ASSET") may authorize this SITREP. This SITREP is authorized if it is signed or stamped by an approving officer ("FROM") who may authorize it or if its transmission has been requested by an authorized officer of the recipient ("REMOTE ASSET") and it is signed or stamped by the approving officer. This SITREP is void unless authorized. By authorizing the transmission of this SITREP, the approving officer and preparing officer ("VIA") both verify its contents are true and correct to the best of their knowledge, and that no relevant detail has been knowingly and purposely omitted.[/i][/small] -------------------------------------------------------------------------------- /templates/command/transmission.txt: -------------------------------------------------------------------------------- 1 | [center][solcrest][/center] 2 | [center][small][i]This paper has been transmitted by the Command of the SEV Torch[/i][/small][/center][hr][hr][small]Date: [field] 3 | Time: [field] 4 | 5 | Name: [field] 6 | Rank: [field] 7 | Position: [field] 8 | 9 | Priority: [field] 10 | Subject: [field] 11 | Transmission: 12 | [field] 13 | 14 | [/small][hr][hr][small][i]Signed, [sign][/i][/small] -------------------------------------------------------------------------------- /templates/command/visa.txt: -------------------------------------------------------------------------------- 1 | [center][Solcrest] 2 | Issuing Form SCG-03b[/center] 3 | 4 | Work Visa Issuing Form 5 | Date: [date] 6 | 7 | Recipient of Work Visa: 8 | [field] 9 | 10 | Rank and Position of Recipient: 11 | [field] 12 | 13 | Species of Recipient: 14 | [field] 15 | 16 | Issuer of Work Visa Signature: 17 | [field] 18 | 19 | Recipient of Work Visa Signature: 20 | [field] 21 | 22 | Stamp Below: -------------------------------------------------------------------------------- /templates/engineering/compliance.txt: -------------------------------------------------------------------------------- 1 | [small][center] [solcrest][/center][/small] 2 | [b][h1] Engineering Certificate of Compliance[/h1][/b] 3 | [hr] 4 | [u][date][/u] 5 | 6 | This is a certificate of compliance for the [field] department/area/deck/ of the S.E.V. Torch, completed by a competent Electrical Engineer of the S.E.V. Torch Engineering Department. 7 | 8 | [b]Department inspected: [/b] [field] 9 | 10 | [b]Department essentials checked:[/b] 11 | [i][small]This field is for any essential equipment inside the department/area, this includes APC’s, Fire Alarms, Intercoms and anything else deemed essential.[/small][/i] 12 | [field] 13 | [br]Notes: 14 | [field] 15 | 16 | [b]Department machinery checked:[/b] 17 | [i][small]This field is for any machinery used by the department/area, such as an autolathe.[/small][/i] 18 | [field] 19 | [br]Notes: 20 | [field] 21 | 22 | [b]Department modular computers checked: [/b] 23 | [i][small]This field is for any modular computers in the department/area, this does not include any department specific computers[/small][/i] 24 | [field] 25 | [br]Notes: 26 | [field] 27 | 28 | [b]Department vendors checked: [/b] 29 | [i][small] This field is for anything in the department/area that vends items.[/small][/i] 30 | [field] 31 | [br] Notes: 32 | [field] 33 | 34 | [hr] 35 | Inspection conducted by[small] see below[/small] with the time of completion being [field]. 36 | [i][small] Your Signature Here:[/small][/i] [field] 37 | [i][small] Your Rank Here:[/small][/i] [field] 38 | [i][small] Your Rating Here:[/small][/i] [field] 39 | 40 | [hr] 41 | [large] Inspection Result:[/large] [field] -------------------------------------------------------------------------------- /templates/exploration/away_manifest.txt: -------------------------------------------------------------------------------- 1 | [center][eclogo] 2 | 3 | [large][b]SEV Torch 4 | 5 | Away Mission Manifest: [field] 6 | [/b][/large][/center] 7 | [hr] 8 | [small][i]The following is to be completed by members of an expedition team in order to keep an accurate crew manifest for record keeping purposes.[/i][/small] 9 | 10 | [u]Expeditionary Team Leader:[/u] [field] 11 | [u]Expeditionary Deputy Leader:[/u] [field] 12 | [u]Member:[/u] [field] 13 | [u]Member:[/u] [field] 14 | [u]Member:[/u] [field] 15 | [hr] 16 | [u]Pilot:[/u] [field] 17 | [hr] 18 | [u]Security Personnel:[/u] [field] 19 | [u]Security Personnel:[/u] [field] 20 | [u]Engineering Personnel:[/u] [field] 21 | [u]Engineering Personnel:[/u] [field] 22 | [u]Medical Personnel:[/u] [field] 23 | [u]Medical Personnel:[/u] [field] 24 | [hr] 25 | [u]Other Personnel:[/u] [field] 26 | [u]Other Personnel:[/u] [field] 27 | [u]Other Personnel:[/u] [field] 28 | [u]Other Personnel:[/u] [field] 29 | -------------------------------------------------------------------------------- /templates/exploration/exoplanet.txt: -------------------------------------------------------------------------------- 1 | [center][eclogo] 2 | 3 | [large][b]SEV Torch 4 | 5 | Exoplanet Report: [field] 6 | [/b][/large][/center] 7 | [hr] 8 | [small][i]The following is to be filled out by members of a Expedition team after an Expedition to an uncharted Exoplanet.[/i][/small] 9 | 10 | [u]Location:[/u] [field] 11 | [u]Date:[/u] [date] 12 | [cell][u]Personnel Involved:[/u] [field] 13 | 14 | [u]Atmospheric Information:[/u] [field] 15 | [u]Terrain Information:[/u] [field] 16 | [u]Habitable:[/u] [field] 17 | 18 | [u]Existence of Fauna[/u] [field] 19 | [u]Existence of Flora[/u] [field] 20 | 21 | [u]Materials/Tools Used:[/u] [field] 22 | [u]Items Retrieved:[/u] [field] 23 | 24 | [u]Observations:[/u] [field] 25 | 26 | [u]Reporting Personnel Signature: [field][/u] 27 | [hr] 28 | [i][small]On completion of this form and form approval, the Research Director should fax the form to both the corporate liason and the commanding officer and should keep a carbon copy on file.[/small][/i] 29 | -------------------------------------------------------------------------------- /templates/exploration/fauna.txt: -------------------------------------------------------------------------------- 1 | [center][eclogo] 2 | 3 | [large][b]SEV Torch 4 | 5 | Alien Fauna Report: [field] 6 | [/b][/large][/center] 7 | [hr] 8 | [small][i]The following is to be filled out by members of a Expedition team after discovery and study of new alien life.[/i][/small] 9 | 10 | [u]Location:[/u] [field] 11 | [u]Date:[/u] [date] 12 | 13 | [u]Personnel Involved:[/u] [field] 14 | 15 | [u]Anatomy/Appearance:[/u] [field] 16 | [u]Locomotion:[/u] [field] 17 | 18 | [u]Diet:[/u] [field] 19 | [u]Habitat:[/u] [field] 20 | [u]Homeworld:[/u] [field] 21 | 22 | [u]Behavior:[/u] [field] 23 | [u]Defense/Offense:[/u] [field] 24 | [u]Special Characteristics:[/u] [field] 25 | 26 | [u]Classification:[/u] [field] 27 | 28 | [i][small]On completion of this form and form approval, the Research Director should fax the form to both the corporate liaison and the commanding officer and should keep a carbon copy on file alongside any relevant exoplanet file.[/small][/i] 29 | -------------------------------------------------------------------------------- /templates/exploration/uf301a_preflight.txt: -------------------------------------------------------------------------------- 1 | [center][eclogo][/center][hr][hr][h3]SCGEC FORM UF301a: PREFLIGHT CHECKLIST - SINGLE-SEAT CRAFT, SMALL SPACECRAFT OR OTHER BOAT[/h3][hr][hr][grid][row][cell][b]DATE[/b][cell]: [date] 2 | [row][cell][b]LOCAL TIME[/b][cell]: [time] 3 | [row][cell][b]CRAFT[/b][cell]: [field] 4 | [row][cell][b]SHIP[/b][cell]: SEV TORCH 5 | [row][cell] 6 | [row][cell][b]DESTINATION[/b][cell]: [field] 7 | [row][cell][b]PURPOSE[/b][cell]: [field] 8 | [row][/grid][hr][hr][h3]CHECKLIST[/h3][hr][hr] 9 | [small][table][row][cell][b]#[/b][cell][b]INSTRUCTION OR CHECK[/b][cell][b]PASS/FAIL[/b][cell][b]AMT/QTY/NOTE[/b] 10 | [row][cell]1a[cell]Port side of hull shows no signs of damage or fatigue[cell][field][cell][field] 11 | [row][cell]1b[cell]Starboard side of hull shows no signs of damage or fatigue[cell][field][cell][field] 12 | [row][cell]1c[cell]Windows and glass panels have no visible cracks, loose 13 | or missing fastening screws, or loose or missing brackets[cell][field][cell][field] 14 | [row][cell]2a[cell]Engine nozzles show no damage or fatigue, debris, loose 15 | objects, or objects blocking nozzle exhaust[cell][field][cell][field] 16 | [row][cell]2b[cell]Area behind and below engine nozzles is free of spilled or 17 | leaking fluid, loose fastening screws, and other debris[cell][field][cell][field] 18 | [row][cell]3a[cell]Short-range or chemical fuel tank above 300 kPa* 19 | *[i]for 70L H2 at 293K; 8.62 mol H2 for other calculations[/i][cell][field][cell][field] 20 | [row][cell]3b[cell]Short-range fuel tank connected with no sign of leak[cell][field][cell][field] 21 | [row][cell]3c[cell]Short-range fuel access panel closed and latched[cell][field][cell][field] 22 | [row][cell]4a[cell]Long-range fuel pump or regulator state is ON or OPEN[cell][field][cell][field] 23 | [row][cell]4b[cell]Long-range fuel pump or regulator target pressure set to 24 | 15MPa or applicable maximum[cell][field][cell][field] 25 | [row][cell]4c[cell]Long-range fuel pump or regulator flow rate set to 500L/s 26 | or applicable maximum[cell][field][cell][field] 27 | [row][cell]4d[cell]Long-range fuel tank connected to long-range fuel port[cell][field][cell][field] 28 | [row][cell]5a[cell]All area power controllers show GREEN (100% charge) or 29 | BLUE (<100% charge, increasing) status[cell][field][cell][field] 30 | [row][cell]5b[cell]SMES or PSU total charge is at or above 80% of maximum[cell][field][cell][field] 31 | [row][cell]5c[cell]SMES or PSU connected to terminal; no wires are missing, 32 | damaged, or disconnected[cell][field][cell][field] 33 | [row][cell]5d[cell]Visible power cables show no signs of damage[cell][field][cell][field] 34 | [row][cell]6a[cell]PACMAN, MRSPACMAN, SUPERPACMAN, or other electrical 35 | generator is fixed in place and connected to power cable[cell][field][cell][field] 36 | [row][cell]6b[cell]Generator power cable leads directly to SMES or PSU 37 | terminal and not to any other power draw[cell][field][cell][field] 38 | [row][cell]6c[cell]Generator solid fuel is present and loaded into generator 39 | unit or stored in fireproof locker or crate[cell][field][cell][field] 40 | [row][cell]6d[cell]Generator power setting is equal to or less than the 41 | maximum safe output listed on bottom or rear of unit[cell][field][cell][field] 42 | [row][cell]6e[cell]Generator setting is OFF if connected to ship powernet[cell][field][cell][field] 43 | [row][cell]7a[cell]All internal atmospheric vents and scrubbers are enabled 44 | and all environmental controls are set to 'Filtering' mode[cell][field][cell][field] 45 | [row][cell]7b[cell]Air distribution tank is full or above 4MPa and air scrubber 46 | tank is empty or below 100kPa[cell][field][cell][field] 47 | [row][cell]7c[cell]Airlock buffer tank is between 200kPa and 600kPa, or 48 | airlock pressure regulator or pump is ON or OPEN and set 49 | between 100 and 120kPa with 500L/s or maximum flow[cell][field][cell][field] 50 | [row][cell]8a[cell]Enough O2 or airmix tanks for mission and crew are on 51 | board and all are set to safe* distribution pressure 52 | *[i]see manufacturer for safe distribution pressures[/i][cell][field][cell][field] 53 | [row][cell]8b[cell]Enough breath masks are on board for mission[cell][field][cell][field] 54 | [row][cell]8c[cell]Enough voidsuits or protective equipment for mission and 55 | crew are on board, all equipment is attached, and no suits 56 | show signs of punctures, melting, or tearing[cell][field][cell][field] 57 | [row][cell]8d[cell]Other mission-related cargo matches mission manifest* 58 | *[i]see form UF311[/i][cell][field][cell][field] 59 | [row][cell]9a[cell]Sensors console shows status "VACUUM SEAL BROKEN" 60 | (if atmospheric) or "OK" (if in vacuum)[cell][field][cell][field] 61 | [row][cell]9b[cell]Engine control console shows all nozzles present and 62 | power is equal for all engines on the same line[cell][field][cell][field] 63 | [row][cell]9c[cell]Engines are all turned ON and throttled to ideal limit* 64 | *[i]see manual UF3-04-1134 for discussion of ideal limits[/i][cell][field][cell][field] 65 | [row][cell]9d[cell]Helm console shows acceleration above 0.0 and within 66 | expected range[cell][field][cell][field] 67 | [row][cell]10a[cell]All mission crew are on board and match mission manifest 68 | *[i]see form UF312 or forms UF322a or UF322b[/i][cell][field][cell][field] 69 | [row][cell]10b[cell]All external airlocks are sealed[cell][field][cell][field] 70 | [row][cell]10c[cell]Relevant manifests submitted and departure authorization 71 | received from hangar control or command if required[cell][field][cell][field][/table] 72 | [b]IMPORTANT: YOU MUST WRITE "PASS", "FAIL", OR "N/A" FOR EVERY CHECK. DO NOT IGNORE OR SKIP ANY APPLICABLE CHECKS. DO NOT COMPLETE THIS CHECKLIST OUT OF ORDER. DO NOT MEMORIZE THIS CHECKLIST. DO NOT COMPLETE THIS CHECKLIST AT ANY TIME OTHER THAN WHILE PERFORMING YOUR PREFLIGHT CHECK. NEGLIGENT OPERATION OF SPACECRAFT IS PUNISHABLE BY CRIMINAL LAW AND THE SCUJ.[/b][/small] 73 | 74 | [hr][hr][h3]VERIFICATION[/h3][hr][hr] 75 | [b]PREPARING[/b] pilot, technician or flight officer 76 | 77 | [small][i]I take responsibility for any negligent preparation of the craft listed above. I verify to the best of my knowledge that I have completed all checks listed above, that I have completed them fully and in their listed order, and that I am trained and authorized to operate this craft and its equipment.[/i][/small] 78 | [grid] 79 | [row][cell][b]RANK / RATE[/b][cell]: [field] 80 | [row][cell][b]FULL NAME[/b][cell]: [field] 81 | [row][cell][b]ASSIGNMENT[/b][cell]: [field] 82 | [row][cell][b]SIGN[/b][cell]: [field] 83 | [row][cell][b]DATE[/b][cell]: [field][/grid] 84 | [hr] -------------------------------------------------------------------------------- /templates/general/cover.txt: -------------------------------------------------------------------------------- 1 | [center][b]Sol Central Goverment Internal Communication[/b] 2 | [i]SEV Torch[/i] 3 | 4 | [solcrest] 5 | 6 | [b][u]Fax Transmission[/u][/b] 7 | [/center] 8 | 9 | [b]From:[/b] [field] 10 | 11 | [b]To:[/b] [field] 12 | 13 | [b]Subject:[/b] [field] 14 | 15 | [hr] 16 | 17 | [b]Summary:[/b] 18 | [field] 19 | 20 | [b]Contents:[/b] 21 | [field] 22 | 23 | [b]Total Number of Pages:[/b] [field] 24 | [hr][small][i] 25 | This message, and the documents attached hereto, are intended only for the addressee and may contain confidential information. Any unauthorized disclosure is strictly prohibited. 26 | 27 | If this transmission is received in error, please notify both the sender and the office of Internal Affairs immediately so that corrective action may be taken. Failure to comply is a breach of government regulation and will be prosecuted to the fullest extent of the law, where applicable. 28 | [/i][/small] -------------------------------------------------------------------------------- /templates/general/cover_end.txt: -------------------------------------------------------------------------------- 1 | [center][b]END TRANSMISSION[/b] 2 | 3 | 4 | [solcrest][/center] -------------------------------------------------------------------------------- /templates/index.json: -------------------------------------------------------------------------------- 1 | { 2 | "Instructions": "instructions.txt", 3 | "General Templates": { 4 | "Cover, First Page": "general/cover.txt", 5 | "Cover, Last Page": "general/cover_end.txt" 6 | }, 7 | "Character Records": { 8 | "Public": "records/public.txt", 9 | "Employment (Fleet)": "records/employment_fleet.txt", 10 | "Medical": "records/medical.txt", 11 | "Security": "records/security.txt", 12 | "Exploitable": "records/antag.txt", 13 | "Records (SierraKomodo)": { 14 | "Public/Header (Contractor)": "records/sierrakomodo/public_contractor.txt", 15 | "Public/Header (Military)": "records/sierrakomodo/public_military.txt", 16 | "Employment (Contractor)": "records/sierrakomodo/employment_contractor.txt", 17 | "Employment (Military)": "records/sierrakomodo/employment_military.txt", 18 | "Medical (Common)": "records/sierrakomodo/medical.txt", 19 | "Security (Contractor)": "records/sierrakomodo/security_contractor.txt", 20 | "Security (Military)": "records/sierrakomodo/security_military.txt" 21 | } 22 | }, 23 | "Command": { 24 | "Access Modification": "command/access_mod.txt", 25 | "Crew Job Transfer": "command/crew_transfer.txt", 26 | "New Arrival": "command/arrival.txt", 27 | "Departmental Audit": "command/department_audit.txt", 28 | "Incident Report": "command/incident.txt", 29 | "SITREP": "command/sitrep.txt", 30 | "General Transmission": "command/transmission.txt", 31 | "Visa Issuing Form": "command/visa.txt", 32 | "Command (EXO)": { 33 | "Complaint (EXO Personnel)": "command/exo/complaint_exo.txt", 34 | "Complaint (Non-EXO Personnel)": "command/exo/complaint_nexo.txt", 35 | "Memo (Internal)": "command/exo/memo.txt", 36 | "Memo (Inter-department)": "command/exo/memo_ext.txt", 37 | "Payable on Death": "command/exo/pod.txt", 38 | "Sales Agreement": "command/exo/sales.txt", 39 | "Termination": "command/exo/termination.txt", 40 | "Test Subject Waiver": "command/exo/test_subject.txt", 41 | "Test Subject Rejection": "command/exo/test_subject_no.txt", 42 | "Visa Application": "command/exo/visa.txt" 43 | } 44 | }, 45 | "Engineering": { 46 | "Area Inspection": "engineering/compliance.txt" 47 | }, 48 | "Exploration": { 49 | "Away Team Manifest": "exploration/away_manifest.txt", 50 | "Exoplanet Report": "exploration/exoplanet.txt", 51 | "Fauna Report": "exploration/fauna.txt", 52 | "Preflight Checklist": "exploration/uf301a_preflight.txt" 53 | }, 54 | "Medical": { 55 | "Autopsy Report": "medical/autopsy.txt", 56 | "Autopsy Report (Alternate)": "medical/autopsy2.txt", 57 | "Cyborgification Waiver": "medical/cyborgification.txt", 58 | "Blood Donation": "medical/blood_donation.txt", 59 | "Prescription": "medical/prescription.txt", 60 | "Discharge": "medical/discharge.txt" 61 | }, 62 | "Research": { 63 | "Anomaly Report": "research/anomaly.txt", 64 | "Xenoflora Report": "research/xenoflora.txt" 65 | }, 66 | "Security": { 67 | "Arrest Report": "security/arrest_report.txt", 68 | "Hot Sheet": "security/hot_sheet.txt", 69 | "Incident Report": "security/incident_report.txt", 70 | "Patrol Assignment": "security/patrol_assignment.txt", 71 | "Patrol Assignment (Alternate)": "security/patrol_assignment2.txt", 72 | "POI Watchlist": "security/personnel_watchlist.txt", 73 | "POI Watchlist (Alternate)": "security/personnel_watchlist2.txt", 74 | "SECARM Inventory": "security/secarm_inventory.txt", 75 | "Shift Report": "security/shift_report.txt" 76 | }, 77 | "Supply": { 78 | "Docked Vessel": "supply/docked_vessel.txt", 79 | "Special Requisition/Command Supply": "supply/uf102b_requisition_special.txt" 80 | }, 81 | "Service": { 82 | "Kosher Certificate": "service/kosher.txt" 83 | }, 84 | "Admin": { 85 | "EXCOM Automated Reply": "admin/excom_autoreply.txt", 86 | "EXO Automated Reply": "admin/exo_autoreply.txt" 87 | }, 88 | "CM-SS13": { 89 | "W-Y Company Fax": "cm/companyfax.txt", 90 | "High Command Fax": "cm/commandfax.txt" 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /templates/instructions.txt: -------------------------------------------------------------------------------- 1 | [h1]Instructions[/h1][br][list][*]Put your paperwork entry in the box on the left 2 | [*]See the incredible result in the box on the right 3 | [*]Select a template from the dropdown at the bottom of the page, then click 'Load Template' to load it into the input area 4 | [*]Click 'Save As File' to save your work as pencode.txt in your default download location 5 | [/list] 6 | 7 | [hr] 8 | 9 | [h2]How to Contribute[/h2]If you want to contribute and are not sure how to do something with git or GitHub, please contact me! I may be able to do it for you or help show you how to do it yourself. 10 | 11 | Repository on GitHub: https://github.com/Dibasic/SS13PaperworkSimulator/ 12 | Baystation12 Forums thread: https://forums.baystation12.net/threads/paperwork-simulator-2307.6877/ 13 | Baystation12 Wiki resources: https://wiki.baystation12.net/Guide_to_Paperwork, https://wiki.baystation12.net/Example_Paperwork 14 | 15 | Want to request a template? Found a bug? Please create an issue on the tracker. 16 | 17 | Want to add a template? If the template is your own work and you are willing to license it under Creative Commons, please make a pull request. 18 | 19 | [list][h3]How to Add a New Template[/h3][*]Place your templates in the [b]templates[/b] directory in the most relevant folder. The subdirectory you choose is up to you. No good match? Add your own subfolder and put it in there. 20 | [*]In [b]templates/index.json[/b], find the category your template best fits under, usually the department. If you're adding a set of record skeletons, put them under a group in "Records" with your name instead so that they're grouped with similar templates. Add a new element where it's most appropriate. 21 | [*]Make sure the new JSON is correct. You can test in Microsoft Edge (doesn't prevent you from accessing local files via AJAX) or just paste the contents into jsonlint.com to validate. 22 | [/list] 23 | 24 | [hr] 25 | 26 | [center][h1]Pencode Cheat Sheet[/h1][/center] 27 | 28 | [center][h2]Headers[/h2][/center] 29 | [h1]h1[/h1] 30 | [h2]h2[/h2] 31 | [h3]h3[/h3] 32 | 33 | [center][h2]Formatting:[/h2][/center] 34 | 35 | table - for arranging tabular data, checklists, or other forms 36 | 37 | [table][row][cell][cell]B1[cell]C1 38 | [row][cell]A2[cell][cell]C2 39 | [row][cell]A3[cell]B3[cell] 40 | [/table] 41 | 42 | grid - just a table without borders, useful for columns or less cluttered forms 43 | 44 | [grid][row][cell][cell]B1[cell]C1 45 | [row][cell]A2[cell][cell]C2 46 | [row][cell]A3[cell]B3[cell] 47 | [/grid] 48 | 49 | list - does what it says on the tin. You can also use it for its header element if you really need an indent, I guess. 50 | [list]List header line 51 | [*]1 52 | [*]2 53 | [*]3 54 | [/list] 55 | 56 | [list]example of using list as an indent.[/list] 57 | 58 | center - nice for headers 59 | [center]centered text[/center] 60 | 61 | br 62 | you[br]don't[br]need[br]to[br]use[br]these[br]anymore,[br]line[br]breaks[br]work[br]just[br]fine by themselves, but paperwork sure was hellish back when you needed one of these on every line break. 63 | 64 | hr - makes a pretty line at the tag and leaves a space underneath, so you probably want an extra line break above one to make it look balanced: 65 | . 66 | . 67 | . 68 | [hr] 69 | . 70 | [center][h2]Font[/h2][/center] 71 | 72 | b - [b]bold[/b] 73 | i - [i]italic[/i] 74 | u - [u]underline[/u] 75 | small - [small]great for fine print, not always visible on the simulator, sorry[/small] 76 | large - [large]just the opposite[/large] 77 | 78 | [center][h2]Replacements - date/time, signatures, fields, logos[/h2][/center] 79 | 80 | date 81 | [date] 82 | 83 | time 84 | [time] 85 | 86 | sign - be careful, if you want a place on your form for someone to sign, you probably want to use a field instead 87 | [sign] 88 | 89 | field - used for forms, a user will be able to write wherever you put this tag. click the gear icon at the top to configure how fields are displayed 90 | [field] 91 | 92 | images: 93 | 94 | solcrest 95 | [solcrest] 96 | 97 | eclogo 98 | [eclogo] 99 | 100 | logo 101 | [logo] 102 | 103 | ntlogo 104 | [ntlogo] 105 | 106 | bluelogo 107 | [bluelogo] 108 | 109 | daislogo 110 | [daislogo] 111 | 112 | xynlogo 113 | [xynlogo] 114 | 115 | iccgseal 116 | [iccgseal] 117 | 118 | sfplogo 119 | [sfplogo] 120 | 121 | wy 122 | [wy] 123 | 124 | uscm 125 | [uscm] 126 | 127 | [hr] 128 | -------------------------------------------------------------------------------- /templates/medical/autopsy.txt: -------------------------------------------------------------------------------- 1 | [b]Autopsy Report[/b] 2 | [b]Name of Deceased:[/b] [field] 3 | [b]Time of Death:[/b] [date] [field] 4 | [b]Time of Retrieval:[/b] [field] 5 | [hr][i][small]Do not leave any section blank. For any section that does not apply, fill in N/A.[/small][/i] 6 | [b]Marks and Wounds on the Body:[/b] [field] 7 | [b]Location Body Discovered:[/b] [field] 8 | [b]Blood Analysis Results:[/b] [field] 9 | [b]Organ Scan Results:[/b] [field] 10 | [b]Witnesses:[/b] [field] 11 | [hr][b]Summary of the Narrative[/b] 12 | [field] 13 | [hr][b]Additional Comments[/b] 14 | [field] 15 | 16 | [b]Signed:[/b] [field] 17 | [b]Date:[/b] [date] 18 | [b]Time of Report:[/b] [time] -------------------------------------------------------------------------------- /templates/medical/autopsy2.txt: -------------------------------------------------------------------------------- 1 | [hr] 2 | [center][solcrest] 3 | [b][large]SCG MEDICAL SERVICES[/large] 4 | AUTOPSY REPORT[/b][/center] 5 | [hr] 6 | [center]PATIENT INFORMATION[/center] 7 | Name: [field] 8 | Organization: [field] 9 | Rank: [field] 10 | [hr] 11 | [center]INVESTIGATIVE FINDINGS:[/center] 12 | Date of Death: [field] 13 | Time of Death: [field] 14 | Known/Estimated: [field] 15 | 16 | Cause of Death: [field] 17 | Attended or Unattended Death: [field] 18 | 19 | Narrative: 20 | 21 | [field] 22 | [hr] 23 | [center]POST-MORTEM REQUESTS:[/center] 24 | Narrative: 25 | 26 | [field] 27 | [hr] 28 | [center]REVIEW INFORMATION:[/center] 29 | Vessel/Station Performed: [field] 30 | 31 | [small][i]I hereby declare that after receiving notice of the death described herein, I took charge of the body and made inquiries regarding the cause of death in accordance with local laws and standing orders, and that the information contained herein regarding said death is true and correct to the best of my knowledge and belief.[/i] 32 | [/small] 33 | Name: [field] 34 | Signature: [field] 35 | Organization: [field] 36 | Rank (If Applicable): [field] 37 | 38 | Chief Medical Officer on Shift: [field] 39 | Organization: [field] 40 | Rank: [field] 41 | [hr] -------------------------------------------------------------------------------- /templates/medical/blood_donation.txt: -------------------------------------------------------------------------------- 1 | [center][b]Blood Donation Informed Consent Form[/b][/center] 2 | [hr] 3 | Have you donated blood before? [field] [small](yes/no)[/small][br] 4 | [hr] 5 | [u]For Repeat Donors[/u][br] 6 | Did you encounter any problems in your last donation? [field] 7 | [small](No problems / fainting / bruise / difficulties finding vein / other)[/small][br] 8 | [hr] 9 | Blood type: [field][br] 10 | Date of Birth: [field] Sex: [field] Height: [field] Weight: [field][i]kg[/i][br] 11 | If more than 60 years old, do you have medical certificate? [field] [small](yes/no)[/small][br] 12 | Occupation: [field][br] 13 | Name: [i]Mr. / Ms. / Mrs.[/i] [field] Signature: [field][br] 14 | [hr] 15 | [hr] 16 | [center][b]For your own safety and the safety of the patient who will receive your blood, please answer the following questions, if applicable, to the best of your knowledge:[/b][/center] 17 | [hr] 18 | Category 1: [u]Obstetric History[small](if applicable)[/small][/u][br] 19 | 1. Are you now or do you plan to become pregnant? [field][br] 20 | 2. Do you breastfeed? [field][br] 21 | 3. Have you given birth or miscarried in the last 6 months? [field][br] 22 | [hr] 23 | [u]Category 2[/u] 24 | 4. Have you had diarrhea in the last 7 days? [field][br] 25 | 5. Have you undergone any surgery in the last 6 months? [field][br] 26 | 6. Do you drink alcohol? [field] If so, how many drinks do you have in a typical week? [field][br] 27 | 7. Do you have any history of drug addiction or have you been imprisoned in the last 3 years? [field][br] 28 | 8. Have you had a blood transfusion in the past 12 months? [field][br] 29 | [u]Category 3[/u] 30 | 9. Are you menstruating? [small](if applicable)[/small] [field][br] 31 | 10. Do you feel fit and well rested? [field][br] 32 | 11. What medication have you taken in the last 7 days? [field][br] 33 | 12. Do you have any history or family history of hepatitis? [field][br] 34 | 13. Do you have asthma, epilepsy, chronic skin disease, chronic cough, tuberculosis, allergies, high blood pressure, heart/kidney/thyroid disease, cancer, any bleeding disorder, or any communicable disease? [small](please list which, if any, apply)[/small] [field][br] 35 | 14. Have you had any body piercing, any tattoo applied or removed, or any acupuncture in the last 12 months? [field][br] 36 | 15. Have you had any vaccinations in the last 2 months? [field][br] 37 | 16. Other notes or issues: [field][br] 38 | [hr] 39 | [small]I certify that I have answered the above questions truthfully and that, to the best of my knowledge, my blood is safe for donation. 40 | I have been informed that my blood will be tested for syphilis, hepatitis B and C, HIV, and other bloodborne illnesses. 41 | I consent to donate blood without expecting any type of remuneration. 42 | I accept that the blood I donate may be given to any patient or used for research purposes as deemed suitable. 43 | I agree that the staff and technicians involved in my donations are not liable for any untoward effects that may occur after my donation. 44 | [/small] 45 | Donor signature: [field][br] 46 | Doctor/Staff signature: [field][br] 47 | -------------------------------------------------------------------------------- /templates/medical/cyborgification.txt: -------------------------------------------------------------------------------- 1 | [center][b]Cyborgification Contract[/b][br] 2 | Name: [field][br] 3 | Rank: [field][br] 4 | [b][i]SolGov Expeditionary Corps - SEV Torch[/i][/b][/center][hr] 5 | I, undersigned, hereby agree to willingly undergo a Regulation Lobotimization with intention of cyborgification or AI assimilation, and I am aware of all the consequences of such act. I also understand that this operation may be irreversible, and that my employment contract will be terminated.[hr] 6 | Signature of Subject: [field][br][br] 7 | Signature of Captain or Commanding Officer: [field][br][br] 8 | Stamp below with the Captains or Commanding Officers stamp: -------------------------------------------------------------------------------- /templates/medical/discharge.txt: -------------------------------------------------------------------------------- 1 | [logo] 2 | [u][center]Discharge from Medical Bay[/center][/u] 3 | 4 | The discharged: [field] 5 | Was treated in the medical bay for: [field] 6 | Discharge date: [date] 7 | Discharge reason: [field] 8 | 9 | [hr][b]Treating Doctor[/b]: [field] 10 | [b]Signature[/b]: [field] 11 | [b]Date[/b]: [field] 12 | [hr] 13 | -------------------------------------------------------------------------------- /templates/medical/prescription.txt: -------------------------------------------------------------------------------- 1 | [hr][logo] 2 | [u][center]Prescription[/center][/u] 3 | 4 | [b]Reagent name[/b]: [field] 5 | [b]Treatment period[/b]: [field] - [field] 6 | [b]Dose[/b]: [field] 7 | [b]Intake instructions[/b]: [field] 8 | 9 | Do not exceed prescribed dose. 10 | Do not cease treatment prematurely. 11 | Side effects may occur; consult physician if severe. 12 | 13 | [hr][b]Prescribing doctor[/b]: [field] 14 | [b]Signature[/b]: [field] 15 | [b]Date[/b]: [field] 16 | 17 | [hr] -------------------------------------------------------------------------------- /templates/records/antag.txt: -------------------------------------------------------------------------------- 1 | [b]MASKING UPLINK SIGNAL[/b] 2 | [b]PAYMENT RECEIVED...[/b] 3 | [b]INITIATING DATA TRANSFER...[/b] 4 | [b]....[/b] 5 | [b]....COMPLETE[/b] 6 | [b]DISPLAYING INFORMATION:[/b] 7 | [hr] 8 | [b]Name:[/b] Last, First Middle 9 | [b]Age:[/b] [age]-[b]SOL[/b] 10 | [b]Sex:[/b] 11 | [b]Species:[/b] 12 | [b]Subtype/Race:[/b] 13 | [b]Coloration:[/b] 14 | [b]Place of Residence:[/b] house number/etc, street/etc, City, Planet Region (SYSTEM) 15 | [hr] 16 | [b]Close Kin and Associates:[/b] [list][*]Surname, Forname | Relation, age | job | house number/etc, street/etc, City, Planet Region (SYSTEM) 17 | [/list][hr] 18 | [large][b]ADDITIONAL INFORMATION[/b][/large] 19 | [i]INFO - INFO BROKER NAME[/i] 20 | 21 | [b]...[/b] -------------------------------------------------------------------------------- /templates/records/employment_fleet.txt: -------------------------------------------------------------------------------- 1 | [b]MARITAL STATUS:[/b] (Single/Married/Widowed) 2 | 3 | [b]LEGALLY AUTHORIZED TO WORK IN SCG MEMBER STATES, TERRITORIES, AND OUTLYING AREAS:[/b] Yes 4 | [b]FLUENT LANGUAGES:[/b] Galactic Common; (Others) 5 | 6 | [hr] 7 | [h1]STATEMENT OF SERVICE[/h1] 8 | [i]This is to certify the following information is true and correct:[/i] 9 | 10 | [b]BRANCH:[/b] Fleet 11 | [b]OPERATING FORCE:[/b] (Nth Fleet), (Nth Group) (Find a unit here: https://wiki.baystation12.net/Defence_Forces/Fleet) 12 | [b]CURRENT COMMAND:[/b] (Make up the name of the ship or military base your character was on just before getting transferred. This paperwork probably comes from them to the Torch, so ) 13 | [b]SERVICE NUMBER:[/b] 123456789 (Make up a number.) 14 | 15 | [b]STATUS:[/b] Active 16 | [b]RATING:[/b] (Google 'navy ratings'. For a theoretical master-at-arms, depending on rank, this would be CA, CN, MA3, MA2, MA1, MAC, MACS, or MACM. A Fleet brig officer is likely to have an MA1/MAC/MACS rating, a deck chief probably just a high deck technician rating. CMCPOs all have the rating CMDMC. This is US based and not official lore.) 17 | [b]PAY RATE:[/b] E-4 MA3 (Rank and rank abbreviation.) 18 | [b]ACTIVE DUTY SERVICE:[/b] YYYY-MM-DD (When did your character begin serving in active duty?) 19 | [b]EXPIRATION OF SERVICE:[/b] YYYY-MM-DD (Probably 2-8 years in the future, or at the 20 years' service mark for an officer.) 20 | [b]COMMAND CAREER COUNSELOR:[/b] SEV Torch CMC (For officers, change it to XO.) 21 | 22 | 23 | [b]CURRENT QUALIFICATIONS:[/b][small][list][*]Discrimination Training (exp. YYYY-MM-DD) (If your character's military, there's probably a lot of routine trainings they need to get, so make some up and fill some room around the important ones like weapons, EVA and so on) 24 | [*]Extravehicular Activity (exp. YYYY-MM-DD) 25 | [*]Physical Fitness (exp. YYYY-MM-DD) 26 | [*]Psychological Evaluation (exp. YYYY-MM-DD) 27 | [*]Sexual Assault Prevention (exp. YYYY-MM-DD) 28 | [*]Small Arms Handling (exp. YYYY-MM-DD) 29 | [/list][/small] 30 | [b]CURRENT CERTIFICATIONS:[/b][small][list][*]AECF Fire Control (Just come up with a real or imagined advanced training school your character would go to and put that here, or don't if you have a simpler job.) 31 | [*]Master-at-Arms 3rd Class 32 | [*]More stuff related to your job 33 | [*]More stuff related to your job 34 | [*]More stuff related to your job 35 | [*]General Radio Operator (One I sometimes put in for NCOs or command characters.) 36 | [*](If you're repurposing these for civvies, look at trade certifications, or certifications by companies like Cisco or Oracle to work with their products.) 37 | [/list][/small] 38 | [b]CHRONOLOGICAL RECORD OF MILITARY SERVICE[/b] (Just make up some dates, leave a few days in between when your character might have been in transit before reporting to a new command. Basic is on Mars; AIT is Mars, wherever that Fleet's headquarters is, or somewhere else in SCG space. After that, they'll be on bases or ships belonging to the operating force listed earlier. Leave some breaks between ranks, a few weeks long most likely. Put some time into reading about the fleet your character is in, if they've been in a while, it's something you can bring up in conversation.) 39 | [small] 40 | [grid][row][cell]FROM[cell]TO[cell]STATUS[cell]PAY RATE[cell]UNIT OR ORGANIZATION 41 | [row][cell]YYYY-MM-DD[cell]YYYY-MM-DD[cell]Basic Training[cell]E-1 CR[cell]SCGF Mars 42 | [row][cell]YYYY-MM-DD[cell]YYYY-MM-DD[cell]AIT (AECF)[cell]E-2 CA[cell]SCGF Theia 43 | [row][cell]YYYY-MM-DD[cell]YYYY-MM-DD[cell]Active[cell]E-3 CN[cell]SFV Rocquencourt ([i]Waterloo[/i]-class) 44 | [row][cell]YYYY-MM-DD[cell]YYYY-MM-DD[cell]Active[cell]E-4 MA3[cell]SFV Rocquencourt ([i]Waterloo[/i]-class) 45 | [row][cell]YYYY-MM-DD[cell]YYYY-MM-DD[cell]Active[cell]E-5 MA2[cell]SFV Peter Romanov ([i]Midway[/i]-class) 46 | [row][cell]YYYY-MM-DD[cell]YYYY-MM-DD[cell]Active[cell]E-6 MA1[cell]SFV Peter Romanov ([i]Midway[/i]-class) 47 | [row][cell]YYYY-MM-DD[cell]YYYY-MM-DD[cell]Active[cell]E-7 MAC[cell]SFV Warspite ([i]Resolution[/i]-class) 48 | [row][cell]YYYY-MM-DD[cell]YYYY-MM-DD[cell]Active[cell]E-8 MACS[cell]SFV Warspite ([i]Resolution[/i]-class) 49 | [row][cell]YYYY-MM-DD[cell]YYYY-MM-DD[cell]Active[cell]E-9 MACM[cell]SFV Warspite ([i]Resolution[/i]-class) 50 | [row][cell]YYYY-MM-DD[cell]YYYY-MM-DD[cell]CMDMC Program[cell]E-9 FCCM[cell]SCGF Theia 51 | [row][cell]YYYY-MM-DD[cell]PRESENT[cell]Active[cell]E-9 CMDMC[cell]SEV Torch[/grid] 52 | [/small] 53 | [b]AWARDS AND HONORS[/b][small][list] (The ribbons you picked, plus anything else you want to put in. Letters of recommendation can be listed here and 'attached' below.) 54 | [*]Frontier Ribbon awarded YYYY, for continued service in good standing during frontier operations 55 | [*]Silver Sword awarded YYYY, for meritorious service including service under fire in PlaceName 56 | [/list] 57 | [/small] 58 | [b]OVERALL NOTES:[/b] 59 | [i]Write some stuff here from a senior enlisted or your character's commanding officer, with the importance of that person proportional to your character's rank. If your character's a CA or CN, you're probably getting a note from a CPO, if they're a PO or CPO probably a CMCPO, if they're an officer probably an XO or CO is writing this, if they're a CMCPO, XO or CO then a flag officer might write this.[/i] 60 | 61 | [i]The point of contact for this matter will be Rank First Last at the CurrentCommand in WhateverSystem.[/i] 62 | 63 | [b]FROM:[/b] Rank WhoeverWroteTheAboveNote [i]via LowerRank LessImportantGuy[/i], Nth Fleet, SFV Whatever (If the person writing this is important enough, they're going to have someone else send it for them.) 64 | [b]DATE:[/b] YYYY-MM-DD 65 | 66 | [hr] -------------------------------------------------------------------------------- /templates/records/medical.txt: -------------------------------------------------------------------------------- 1 | [b]HEIGHT:[/b] XXX cm (X' X") 2 | [b]WEIGHT:[/b] XX kg (XXX lbs.) 3 | 4 | [b]POSTMORTEM INSTRUCTIONS:[/b] When I'm dead just throw me into the traash. 5 | 6 | [b]EMERGENCY CONTACT[/b] 7 | [b]NAME:[/b] Last, First M. 8 | [b]RELATION:[/b] Sibling/Parent/Acquaintenace/Dogsitter 9 | [b]ADDRESS:[/b] D-1140.104, City, PLANET Region (SYSTEM) (Just make up a fancy sci-fi address) 10 | [b]MAIL:[/b] whatever@scifi.email 11 | 12 | [b]PROSETHESES/IMPLANTS:[/b] NONE 13 | 14 | [b]LATEX ALLERGY:[/b] NO 15 | [b]DRUG ALLERGIES:[/b] NONE 16 | [b]SKIN/CONTACT ALLERGIES:[/b] NONE 17 | [b]OTHER ALLERGIES:[/b] NONE 18 | 19 | [b]SURGICAL HISTORY:[/b] 20 | No surgical history available. 21 | 22 | [b]OBSTETRIC HISTORY:[/b] 23 | No obstetric history available. 24 | 25 | [b]MEDICATION HISTORY:[/b] 26 | No medication history available. 27 | 28 | [b]CURRENT MEDICATIONS/PRESCRIPTIONS:[/b] 29 | No current prescriptions. 30 | 31 | [b]DOCUMENTED PHYSIOLOGICAL DISORDERS:[/b] 32 | No physiological disorders listed. 33 | 34 | [b]PHYSICAL EVALUATION:[/b] Pass (exp. YYYY-MM-DD) 35 | [b]PSYCHOLOGICAL EVALUATIONS:[/b] Pass (exp. YYYY-MM-DD) 36 | 37 | [b]Medical Doctor's Notes:[/b] 38 | [i]Rank LastName is physically and mentally fit for service.[/i] 39 | 40 | [b]FROM:[/b] OfficerRank First Last, MD, Nth Fleet, ShipOrHQ 41 | [b]DATE:[/b] YYYY-MM-DD -------------------------------------------------------------------------------- /templates/records/public.txt: -------------------------------------------------------------------------------- 1 | [b]NAME:[/b] Last, First Middle 2 | [b]DOB:[/b] YYYY-MM-DD 3 | 4 | [b]LAST UPDATE:[/b] YYYY-MM-DD 5 | 6 | [b]SPECIES:[/b] 7 | [b]ETHNICITY/SUBSPECIES/MAKE/MODEL/COLORATION/GRADE/FLAVOR:[/b] (Make something up) 8 | 9 | [b]BRANCH:[/b] (Remove for civilians) 10 | [b]DIVISION:[/b] (Remove for civilians; UNIT: for Fleet; Field Operations for EC; Territory Support for SFP) 11 | 12 | [b]ASSIGNMENT:[/b] (Whatever job title) -------------------------------------------------------------------------------- /templates/records/security.txt: -------------------------------------------------------------------------------- 1 | [b]HUMAN IDENTIFYING FEATURES[/b] (Adjust for non-humans, color/patterning, chassis make/model, etc.) 2 | [b]HEIGHT:[/b] XXX cm (X' X") 3 | [b]WEIGHT:[/b] XX kg (XXX lbs.) 4 | [b]SKIN COLOR:[/b] X 5 | [b]HAIR COLOR:[/b] X 6 | [b]EYE COLOR:[/b] X 7 | [b]VISIBLE PROSTHESES:[/b] None 8 | 9 | [b]CITIZENSHIP STATUS:[/b] Natural-born citizen 10 | [b]PLACE OF BIRTH:[/b] City, Planet Region (System) 11 | [b]PLACE OF RESIDENCE:[/b] None Listed 12 | 13 | [b]POLITICAL AFFILIATION:[/b] X 14 | [b]RELIGION:[/b] X 15 | 16 | [b]SMALL ARMS QUALIFICATION:[/b] Yes (exp. 2567-01-01) 17 | [hr] 18 | [b]CRIMINAL RECORD:[/b] 19 | No criminal history found. 20 | 21 | [b]ARREST RECORD:[/b] 22 | No arrest history found. 23 | 24 | [b]THREAT ASSESSMENT:[/b] 25 | Hostile/Covert Actions Against the Sol Central Government 26 | Threat Level: Very Low 27 | Agent Notes: [i]A few sentences about how likely it is that your character is a shitter.[/i] 28 | 29 | Hostile/Covert Actions Against the Crew 30 | Threat Level: Very Low 31 | Agent Notes: [i]See above.[/i] 32 | 33 | [i]The point of contact for this matter will be Supervisory Agent First Last at the SFP Territory Support Division headquarters in Alpha Centauri.[/i] 34 | 35 | [b]FROM:[/b] Supervisory Agent First Last, SFP-TSD Alpha Centauri 36 | [b]DATE:[/b] YYYY-MM-DD 37 | 38 | [hr] 39 | [b]EMERGENCY CONTACT[/b] 40 | [b]NAME:[/b] Last, First M. 41 | [b]RELATION:[/b] Sibling/Parent/Acquaintenace/Dogsitter 42 | [b]ADDRESS:[/b] D-1140.104, City, PLANET Region (SYSTEM) (Just make up a fancy sci-fi address) 43 | [b]MAIL:[/b] whatever@scifi.email -------------------------------------------------------------------------------- /templates/records/sierrakomodo/employment_contractor.txt: -------------------------------------------------------------------------------- 1 | [b]Experience[/b]: 2 | - General notes on industry and years of experience in each industry - Ordered by longest experience to shortest 3 | - Field/Area - Y year(s) 4 | 5 | [b]Current Certifications[/b]: 6 | - Summarized list of current valid, non-expired certifications (I.e. piloting, EMT, etc) 7 | - Certification (Exp. YYYY-MM-DD) [i](Notes)[/i] 8 | 9 | [b]Education History[/b]: 10 | - Dated notes on post-high school enrollment, graduation, acquired degrees, etc 11 | - YYYY - School/Institution. Field/Degree. Enrollment/Graduation Status. 12 | 13 | [b]Employment History[/b]: 14 | - Dated notes on employment - Hired, fired, laid off, quit, notable promotions, etc 15 | - YYYY - Company Name. Job Title. Employment Status. 16 | -------------------------------------------------------------------------------- /templates/records/sierrakomodo/employment_military.txt: -------------------------------------------------------------------------------- 1 | [b]Experience[/b]: 2 | - General notes on industry and years of experience in each industry - Ordered by longest experience to shortest 3 | - Field/Area - Y year(s) 4 | 5 | [b]Current Certifications[/b]: 6 | - Summarized list of current valid, non-expired certifications (I.e. piloting, EMT, etc) 7 | - Certification (Exp. YYYY-MM-DD) [i](Notes)[/i] 8 | 9 | [b]Education History[/b]: 10 | - Dated notes on post-high school enrollment, graduation, acquired degrees, etc 11 | - YYYY - School/Institution. Field/Degree. Enrollment/Graduation Status. 12 | 13 | [b]Civilian Employment History[/b]: 14 | - Dated notes on employment - Hired, fired, laid off, quit, notable promotions, etc 15 | - YYYY - Company Name. Job Title. Employment Status. 16 | 17 | [b]Military Service Record[/b]: 18 | - Dated notes on military service history - Date of enlistment, promotions, transfers, demotions, etc 19 | - YYYY - Promotion/Demotion to RANK. Assigned Facility/Vessel. Promoting Officer. 20 | - YYYY - Transfer/Assignment to JOB. New assigned Facility/Vessel. New direct superior. 21 | -------------------------------------------------------------------------------- /templates/records/sierrakomodo/medical.txt: -------------------------------------------------------------------------------- 1 | [b]DO NOT XYZ (Prosthetics, borgification, resuscitation, etc)[/b] 2 | 3 | [b]Physical Status[/b]: Simple note on results from latest physical 4 | [b]Mental Status[/b]: Simple note on results from latest psych eval 5 | 6 | [b]Current Prescriptions[/b]: 7 | - Medication. Dosage. Date Prescribed - End Date. Prescribing Doctor. [i](Notes)[/i] 8 | 9 | [b]Previous Prescriptions[/b]: 10 | - Medication. Dosage. Date Prescribed - Date Ended. Prescribing Doctor. [i](Notes)[/i] 11 | 12 | [b]Next of Kin[/b]: 13 | - Name. Relation. [i](Notes)[/i] 14 | 15 | [b]Medical History[/b]: 16 | - Notes regarding dated medical procedure, surgery, physicals, checkups, diagnosis, medical leave, prescription start/stop dates, etc 17 | - YYYY - Procedure/Surgery/Physical/etc. Facility/Location. Doctor. Summary of results. 18 | 19 | [b]Medical Notes[/b]: 20 | - Summarized notes of non-dated information - Allergens, current illnesses, disabilities, etc 21 | 22 | [b]Psychiatric History[/b]: 23 | - Notes regarding dated psychiatric evaluations, diagnosis, prescription start/stop dates, etc 24 | - YYYY - Procedure/Surgery/Physical/etc. Facility/Location. Doctor. Summary of results. 25 | 26 | [b]Psychiatric Notes[/b]: 27 | - Summarized notes of non-dated information - Mental illnesses, disabilities, risks of stress-induced issues, etc 28 | 29 | [b]Post-Mortem Instructions[/b]: 30 | - What to do on death. 31 | -------------------------------------------------------------------------------- /templates/records/sierrakomodo/public_contractor.txt: -------------------------------------------------------------------------------- 1 | [b][u]SOLGOV CIVILIAN CONTRACTOR PERSONNEL FILE[/u][/b] 2 | [b]Date of Birth[/b]: YYYY-MM-DD 3 | [b]Citizenship[/b]: Nation [i](Home)[/i] 4 | [b]Known Languages[/b]: 5 | - Language (Fluency) 6 | 7 | [b]Contracted From[/b]: Company Name/Independent Contractor 8 | [b]Contract Start Date[/b]: YYYY-MM-DD 9 | [b]Contract End Date[/b]: YYYY-MM-DD 10 | [b]Assignment(s)[/b]: 11 | - Job Title [i](Notes)[/i] 12 | 13 | [b]Height[/b]: 000cm (0'00") 14 | [b]Weight[/b]: 000kg (000lb) 15 | [b]Identifying Features[/b]: Skin/fur/scale/chassis color. Hair color. Eye color. Other distinguishing features. 16 | [b]Photo[/b]: link-to-image.jpeg 17 | [i](Credit: Artwork by artist-name-here)[/i] 18 | 19 | [b]General Notes[/b]: 20 | - Public employment notes that appear on medical and security records 21 | 22 | [b]Security Notes[/b]: 23 | - Public security notes that appear on medical and employment records 24 | 25 | [b]Medical Notes[/b]: 26 | - Public medical notes that appear on employment and security records 27 | -------------------------------------------------------------------------------- /templates/records/sierrakomodo/public_military.txt: -------------------------------------------------------------------------------- 1 | [b][u]SOLGOV MILITARY PERSONNEL FILE[/u][/b] 2 | [b]Date of Birth[/b]: YYYY-MM-DD 3 | [b]Citizenship[/b]: Nation [i](Home)[/i] 4 | [b]Known Languages[/b]: 5 | - Language (Fluency) 6 | 7 | [b]Branch[/b]: Service Branch 8 | [b]Rank[/b]: Rank 9 | [b]Division[/b]: i.e., 3rd Fleet; Observatory; etc 10 | [b]Enlistment Date[/b]: YYYY-MM-DD 11 | [b]Assignment(s)[/b]: 12 | - Job Title [i](Notes)[/i] 13 | 14 | [b]Height[/b]: 000cm (0'00") 15 | [b]Weight[/b]: 000kg (000lb) 16 | [b]Identifying Features[/b]: Skin/fur/scale/chassis color. Hair color. Eye color. Other distinguishing features. 17 | [b]Photo[/b]: link-to-image.jpeg 18 | [i](Credit: Artwork by artist-name-here)[/i] 19 | 20 | [b]General Notes[/b]: 21 | - Public employment notes that appear on medical and security records 22 | 23 | [b]Security Notes[/b]: 24 | - Public security notes that appear on medical and employment records 25 | 26 | [b]Medical Notes[/b]: 27 | - Public medical notes that appear on employment and security records 28 | -------------------------------------------------------------------------------- /templates/records/sierrakomodo/security_contractor.txt: -------------------------------------------------------------------------------- 1 | [b]Arrest/Criminal Record[/b]: 2 | - Dated notes on public civilian arrest records 3 | - YYYY - Charge. Precinct/Location. Sentencing. 4 | 5 | [b]Security Notes[/b]: 6 | - Summarized list of anything security personnel should probably be aware of, that isn't included above 7 | -------------------------------------------------------------------------------- /templates/records/sierrakomodo/security_military.txt: -------------------------------------------------------------------------------- 1 | [b]Arrest/Criminal Record[/b]: 2 | - Dated notes on public civilian arrest records 3 | - YYYY - Charge. Precinct/Location. Sentencing. 4 | 5 | [b]SCUJ Record[/b]: 6 | - Dated notes on SCUJ/military violations 7 | - YYYY - Charge. Precinct/Location. Sentencing. 8 | 9 | [b]Security Notes[/b]: 10 | - Summarized list of anything security personnel should probably be aware of, that isn't included above 11 | -------------------------------------------------------------------------------- /templates/research/anomaly.txt: -------------------------------------------------------------------------------- 1 | [center][i][b] Anomalistic Object Report [/b][/i][/center] 2 | 3 | [center][logo][/center] 4 | 5 | [center][b] AO Codename:[/b][field][/center] 6 | 7 | [center][b] Reporting Scientist:[/b] [field] [/center] 8 | 9 | [center][b] Overviewing Research Director:[/b] [field] [/center] 10 | 11 | [center][b]Containment Procedures[/b][/center] 12 | 13 | [field] 14 | 15 | [center][b]Generalized Overview[/b][/center] 16 | 17 | [field] 18 | 19 | [b]Approximate Age of AO:[/b][field] 20 | 21 | [b]Threat Level of AO: [/b][field] 22 | -------------------------------------------------------------------------------- /templates/research/xenoflora.txt: -------------------------------------------------------------------------------- 1 | [center][logo] 2 | [b][large]Xenoflora Genetics Report[/large][/b][/center][hr] 3 | 4 | The following table contains the Genetic Identifier and purpose of the Xenofloral genes as identified by [u][field][/u] in the Xenobotanical Labratory aboard the SEV Torch on [u][date][/u]. 5 | 6 | [table][cell][b]Genetic Identifier[/b][cell]Genetic Sequence[row] 7 | [cell][b][field] [/b][cell][small][b]Hardiness:[/b] Endurance. Tolerance to toxins, pests, and/or weeds[/small][row][cell]-[b][field] [/b][cell][small][b]Vigour:[/b] How long the plant takes to mature and produce fruit. How much fruit it produces. Whether it can spread out of its tray(vine).[/small][row][cell]-[b][field] [/b][cell][small][b]Biochemistry:[/b] Which reagents the fruit contains; which gases the plant generates.[/small][row][cell][b]-[field] [/b][cell][small][b]Fruit:[/b] Whether the fruit is juicy and will splatter when thrown; whether the plant has stinging spines and will inject its reagents into anyone coming in contact with it.[/small][row][cell]-[b][field] [/b][cell][small][b]Diet:[/b] Whether the plant consumes gases in its environment; whether the plant is carnivorous (eats pests) or eats tray weeds; how much water and fertilizer it consumes.[/small][row][cell]-[b][field] [/b][cell][small][b]Metabolism:[/b] Whether the plant requires water or fertilizer. Whether it alters the ambient temperature.[/small][row][cell]-[b][field] [/b][cell][small][b]Environment:[/b] Plant's preferred temperature and light levels, and how much tolerance it has for changes in light level.[/small][row][cell]-[b][field] [/b][cell][small][b]Atmosphere:[/b] The plant's tolerance for changes in temperature and pressure away from its preferred levels.[/small][row][cell]-[b][field] [/b][cell][small][b]Output:[/b] Whether the plant produces electrical power or bioluminescent light.[/small][row][cell]-[b][field] [/b][cell][small][b]Appearance:[/b] The "shape" of the plant. Also affects whether it can be harvested only once or multiple times.[/small][row][cell]-[b][field] [/b][cell][small][b]Pigment:[/b] The color of the plant and its fruit; the color of any bioluminescence.[/small][row][cell][b]-[field] [/b][cell][small][b]Special:[/b] The ability to teleport the thrower or target when thrown.[/small][row][/table] -------------------------------------------------------------------------------- /templates/security/armory.txt: -------------------------------------------------------------------------------- 1 | [center][solcrest][h1]Armory Inventory[/h1][i]Revision [date] - [time][/i][/center] 2 | [hr] 3 | [b]Equipment[/b] 4 | P.A.C.M.A.N. Generator: [field] 5 | Deployable Barriers: [field] 6 | Deployable Flashes: [field] 7 | Maintenance Jack: [field] 8 | Airlock Braces: [field] 9 | Flares: [field] 10 | Handcuffs: [field] 11 | Pepper Spray Grenades: [field] 12 | Flashbang Grenades: [field] 13 | Medical Supplies: [field] 14 | [field] 15 | [hr] 16 | [b]Armor[/b] 17 | Riot Armor: [field] 18 | Ballistics Armor: [field] 19 | Ablative Armor: [field] 20 | Riot Helmets: [field] 21 | Ballistics Helmets: [field] 22 | Ablative Helmets: [field] 23 | Riot Shields: [field] 24 | [field] 25 | [hr] 26 | [b]Weaponry[/b] 27 | Smart Guns: [field] 28 | Stun Rifles: [field] 29 | Grenade Launcher: [field] 30 | Ion Rifle: [field] 31 | [field] 32 | [hr] 33 | I hereby declare all inventory of the armory at [time]. 34 | [sign] 35 | -------------------------------------------------------------------------------- /templates/security/arrest_report.txt: -------------------------------------------------------------------------------- 1 | [center][solcrest][h1]Arrest Report[/h1][field][/center] 2 | [i]Revision [date] - [time][/i] 3 | [b]Offense/Incident Type: [/b][field] 4 | [b]Location: [/b][field] 5 | [hr][h3]Arrestee Information[/h3] 6 | [small][i](B##-Brigged, ## time, H-Indefinite Hold, C-Court Martial, P-Parole/Probation, V-Verbal Warning) 7 | [table][row][cell][b]Rank[/b][cell][b]Name[/b][cell][b]Position[/b][cell][b]Charge(s)[/b][cell][b]Disposition[/b] 8 | [row][cell][b][field][/b][cell][field][cell][field][cell][field][cell][field] 9 | [/table][/i][/small][br][br][hr][h3]Personnel Involved in Incident[/h3] 10 | [b]Arresting Officer(s): [/b][field][br] 11 | [b]Other Personnel[/b] 12 | [small][i](V-Victim, S-Suspect, W-Witness, M-Missing, A-Arrested, RP-Reporting Person, D-Deceased)[/i][/small][br] 13 | [table][row][cell][b]Rank[/b][cell][b]Name[/b][cell][b]Position[/b][cell][b]Relation[/b] 14 | [row][cell][b][field][/b][cell][field][cell][field][cell][field] 15 | [row][cell][b][field][/b][cell][field][cell][field][cell][field] 16 | [row][cell][b][field][/b][cell][field][cell][field][cell][field] 17 | [row][cell][b][field][/b][cell][field][cell][field][cell][field] 18 | [row][cell][b][field][/b][cell][field][cell][field][cell][field] 19 | [/table][br][br][hr][h3]Booking Checklist[/h3] 20 | [b]Booking Officer: [/b][field][br] 21 | [table][row][cell][b]Escape Risk[/b][cell][field] 22 | [row][cell][b]Suicide Risk[/b][cell][field] 23 | [row][cell][b]Combative[/b][cell][field] 24 | [row][cell][b]Provided Required Medical Treatment[/b][cell][field] 25 | [row][cell][b]Warrant Presented[/b][cell][field] 26 | [row][cell][b]Advised of Rights[/b][cell][field] 27 | [row][cell][b]Prisoner Searched[/b][cell][field] 28 | [row][cell][b]Provided an Opportunity for Statement[/b][cell][field] 29 | [/table] 30 | [hr][small]BRIG OFFICER MUST STAMP OR SIGN THIS DOCUMENT 31 | ATTACH ALL RELEVANT DOCUMENTS TO THIS ARREST REPORT[/small] 32 | [hr] 33 | -------------------------------------------------------------------------------- /templates/security/hot_sheet.txt: -------------------------------------------------------------------------------- 1 | [center][hr][small][i]LEO/S - LAW ENFORCEMENT USE ONLY 2 | NOT FOR PUBLIC DISSEMINATION[/i][/small][hr][solcrest][b] 3 | SEV Torch Security Department 4 | [large]Hot Sheet[/large][/b] 5 | [i]Revision [date] - [time][/i] 6 | [hr][small][b]Persons Requiring Special Attention:[/b][/small][table] 7 | [row][cell][b]Name[/b][cell][b]Rank[/b][cell][b]Job[/b][cell][b]Details[/b] 8 | [row][cell][field][cell][b][field][/b][cell][field][cell][field] 9 | [row][cell][field][cell][b][field][/b][cell][field][cell][field] 10 | [row][cell][field][cell][b][field][/b][cell][field][cell][field] 11 | [row][cell][field][cell][b][field][/b][cell][field][cell][field] 12 | [row][cell][field][cell][b][field][/b][cell][field][cell][field] 13 | [/table][hr][small][b]Areas Requiring Special Attention:[/b][/small][table] 14 | [row][cell][b]Location[/b][cell][b]Reason[/b] 15 | [row][cell][field][cell][field] 16 | [row][cell][field][cell][field] 17 | [row][cell][field][cell][field] 18 | [row][cell][field][cell][field] 19 | [row][cell][field][cell][field][/table][hr][small][b]Active Special Orders:[/b][/small][table] 20 | [row][cell][b]Unit(s)[/b][cell][b]Order[/b] 21 | [row][cell][field][cell][field] 22 | [row][cell][field][cell][field] 23 | [row][cell][field][cell][field] 24 | [row][cell][field][cell][field] 25 | [row][cell][field][cell][field][/table][hr][small][i]LEO/S - LAW ENFORCEMENT USE ONLY 26 | NOT FOR PUBLIC DISSEMINATION[/i][/small][hr][/center] -------------------------------------------------------------------------------- /templates/security/incident_report.txt: -------------------------------------------------------------------------------- 1 | [center][solcrest][h1]Security Incident Report[/h1][field][/center] 2 | [i]Revision [date] - [time][/i] 3 | [b]Offense/Incident Type: [/b][field] 4 | [b]Location: [/b][field] 5 | [br][hr][h3]Personnel Involved in Incident[/h3] 6 | [b]Reporting Officer: [/b][field][br] 7 | [b]Assisting Officer(s) [/b][br] 8 | [table][row][cell][b]Rank[/b][cell][b]Name[/b][cell][b]Position[/b] 9 | [row][cell][b][field][/b][cell][field][cell][field] 10 | [/table] 11 | [b]Other Personnel[/b] 12 | [small][i](V-Victim, S-Suspect, W-Witness, M-Missing, A-Arrested, RP-Reporting Person, D-Deceased)[/i][/small][br] 13 | [table][row][cell][b]Rank[/b][cell][b]Name[/b][cell][b]Position[/b][cell][b]Code[/b] 14 | [row][cell][b][field][/b][cell][field][cell][field][cell][field] 15 | [/table] 16 | [hr][h3]Description of Items/Property [/h3] 17 | [small][i](D-Damaged, E-Evidence, L-Lost, R-Recovered, S-Stolen)[/i][/small][br] 18 | [table][row][cell][b]Name[/b][cell][b]Description[/b][cell][b]Department[/b][cell][b]Code[/b] 19 | [row][cell][b][field][/b][cell][field][cell][field][cell][field] 20 | [/table] 21 | [hr][h3]Narrative [/h3] 22 | [field][br] 23 | [b]Reporting Officer's Signature[/b][br] 24 | -------------------------------------------------------------------------------- /templates/security/investigation.txt: -------------------------------------------------------------------------------- 1 | [center][solcrest][/center] 2 | [center][b]Investigation Report[/b][/center] 3 | [center][small]For internal use only[/small][/center] 4 | [hr] 5 | [table][row][cell][b]Name: [/b][cell][field] 6 | [row][cell][b]Date: [/b][cell][date] 7 | [row][cell][b]Casename: [/b][cell][field] 8 | [row][cell][b]Summary: [/b][cell][field] 9 | [row][cell][b]Attachments: [/b][cell][field] 10 | [/table] 11 | 12 | [b]Observations: [/b][field] 13 | [hr] 14 | [center][small]SEV Torch Security Department[/small][/center] -------------------------------------------------------------------------------- /templates/security/patrol_assignment.txt: -------------------------------------------------------------------------------- 1 | [center][solcrest][h1]Patrol Designations[/h1][i]Revision [date] - [time][/i] 2 | 3 | [table][row][cell][b]Callsign[/b][cell][b]Rank[/b][cell][b]Name[/b][cell][b]Assignment[/b] 4 | [row][cell][b]SECCOM[/b][cell][field][cell][field][cell]Bridge Duty 5 | [row][cell][b]BRIG[/b][cell][field][cell][field][cell]Patrol Overwatch 6 | [row][cell][b]FORS[/b][cell][field][cell][field][cell]Forensics 7 | [row][cell][b]P1[/b][cell][field][cell][field][cell]Bridge Deck 8 | [row][cell][b]P2[/b][cell][field][cell][field][cell]Operations Deck 9 | [row][cell][b]P3[/b][cell][field][cell][field][cell]Habitation Deck 10 | [row][cell][b]P4[/b][cell][field][cell][field][cell]Hangar Deck 11 | [/table] 12 | [hr][h3]Emergency Pairings[/h3][small][i]For code blue and above[/i][/small] 13 | [table][row][cell][b]Callsign[/b][cell][b]Composition[/b][cell][b]Rally Point[/b] 14 | [row][cell][b]QRF (Quick Response Force)[/b][cell]BRIG, FORS[cell]Brig Lobby 15 | [row][cell][b]ODDS (Even Patrols)[/b][cell]P1, P3[cell]Deck 1 Checkpoint 16 | [row][cell][b]EVENS (Odd Patrols)[/b][cell]P2, P4[cell]Deck 3 Checkpoint 17 | [/table] 18 | [hr][h3]Initial orders[/h3][small][i]For patrol commencement[/i][/small] 19 | Complete a full patrol sweep of your deck, searching through maintenance at your discretion. Maintain your position within your assigned decks and only respond to calls on other decks when patrol overwatch tells you to. [b]You are responsible for the overseeing of your own assigned decks.[/b] 20 | [sign] 21 | [/center] -------------------------------------------------------------------------------- /templates/security/patrol_assignment2.txt: -------------------------------------------------------------------------------- 1 | [center][solcrest][h1]Patrol Designations[/h1][i]Revision [date] - [time][/i] 2 | 3 | [table][row][cell][b]Callsign[/b][cell][b]Rank[/b][cell][b]Name[/b][cell][b]Assignment[/b] 4 | [row][cell][b]SECCOM[/b][cell][field][cell][field][cell]Bridge Duty 5 | [row][cell][b]BRIG[/b][cell][field][cell][field][cell]Patrol Overwatch 6 | [row][cell][b]FORS[/b][cell][field][cell][field][cell]Forensics 7 | [row][cell][b]P1[/b][cell][field][cell][field][cell]Bridge Deck through Engineering Deck 8 | [row][cell][b]P2[/b][cell][field][cell][field][cell]Habitation Deck through Hangar Deck 9 | [row][cell][b]P3[/b][cell][field][cell][field][cell]Bridge Deck through Engineering Deck 10 | [row][cell][b]P4[/b][cell][field][cell][field][cell]Habitation Deck through Hangar Deck 11 | [/table] 12 | [hr][h3]Emergency Pairings[/h3][small][i]For code blue and above[/i][/small] 13 | [table][row][cell][b]Callsign[/b][cell][b]Composition[/b][cell][b]Rendezvous[/b] 14 | [row][cell][b]QRF (Quick Response Force)[/b][cell]BRIG, FORS[cell]Brig Lobby 15 | [row][cell][b]ODDS[/b][cell]P1, P3[cell]D1 outside Medical 16 | [row][cell][b]EVENS[/b][cell]P2, P4[cell]D3 Stairwell 17 | [/table] 18 | [hr][h3]Initial orders[/h3][small][i]For patrol commencement[/i][/small][/center] 19 | [*]Completely gear up as expected per past procedure. Double-check your gear. 20 | [*]Complete a full patrol sweep of your deck, searching through maintenance at your discretion. 21 | [*]Maintain your position within your assigned decks and only respond to calls on other decks when patrol overwatch tells you to. 22 | [*]If another officer is requesting backup, respond to it. 23 | [*][b]You are responsible for the overseeing of your own assigned decks.[/b] -------------------------------------------------------------------------------- /templates/security/personnel_watchlist.txt: -------------------------------------------------------------------------------- 1 | [center][solcrest][h1]Crew POIs[/h1][i]Revision [date] - [time][/i] 2 | [hr][table] 3 | [row][cell][b]Name[/b][cell][b]Rank[/b][cell][b]Job[/b][cell][b]Details[/b] 4 | [row][cell][field][cell][b][field][/b][cell][field][cell][field] 5 | [row][cell][field][cell][b][field][/b][cell][field][cell][field] 6 | [row][cell][field][cell][b][field][/b][cell][field][cell][field] 7 | [/table] 8 | [hr][h3]Instructions Regarding Crew POIs[/h3][small][i]For interactions with POIs[/i][/small] 9 | Increase priority in monitoring the listed crew due to the nature of their interest, avoiding the possibility of them becoming aware of the hightened surveillance. [b]Under no circumstance must the POI become aware of their surveillance status.[/b] 10 | [sign] 11 | [/center] -------------------------------------------------------------------------------- /templates/security/personnel_watchlist2.txt: -------------------------------------------------------------------------------- 1 | [center][hr][small][i]LEO/S - LAW ENFORCEMENT USE ONLY 2 | NOT FOR PUBLIC DISSEMINATION[/i][/small][hr][solcrest][/center][b] 3 | SEV Torch Security Department 4 | [large]Special Attention Watchlist[/large][/b] 5 | [i]Revision [date] - [time][/i] 6 | [hr][table] 7 | [row][cell][b]Name[/b][cell][b]Rank[/b][cell][b]Job[/b][cell][b]Details[/b] 8 | [row][cell][field][cell][b][field][/b][cell][field][cell][field] 9 | [row][cell][field][cell][b][field][/b][cell][field][cell][field] 10 | [row][cell][field][cell][b][field][/b][cell][field][cell][field] 11 | [row][cell][field][cell][b][field][/b][cell][field][cell][field] 12 | [row][cell][field][cell][b][field][/b][cell][field][cell][field] 13 | [row][cell][field][cell][b][field][/b][cell][field][cell][field] 14 | [row][cell][field][cell][b][field][/b][cell][field][cell][field] 15 | [row][cell][field][cell][b][field][/b][cell][field][cell][field] 16 | [row][cell][field][cell][b][field][/b][cell][field][cell][field] 17 | [row][cell][field][cell][b][field][/b][cell][field][cell][field] 18 | [/table] 19 | [hr][small][i]LEO/S - LAW ENFORCEMENT USE ONLY 20 | NOT FOR PUBLIC DISSEMINATION[/i][/small][hr] -------------------------------------------------------------------------------- /templates/security/secarm_inventory.txt: -------------------------------------------------------------------------------- 1 | [center][solcrest] 2 | [b][large]SEV Torch[/large][/b] 3 | 4 | [i]Armory Inventory - Revision [date][/i][/center][hr][center][small]General Armory[/small][/center] 5 | [b]Pepperspray grenades[/b]: [field] 6 | [b]Flashbangs[/b]: [field] 7 | [b]Handcuffs[/b]: [field] 8 | [b]Airlock Braces:[/b] [field] 9 | [b]maintnenance Jack[/b]: [field] 10 | [b]Flares[/b]: [field] 11 | [b]PACMAN portable generator[/b]: [field] 12 | [b]First Aid Kit[/b]: [field] 13 | [b]Fire First Aid Kit[/b]: [field] 14 | [field][hr][center][small]Secure Armory - Weapons[/small][/center] 15 | [b]LAEP90 Perun energy gun[/b]: [field] 16 | [b]A&M X10 Thor stun rifle[/b]: [field] 17 | [b]NT Mk60 EW Halicon ion rifle[/b]: [field] 18 | [b]Grenade Launcher[/b]: [field] 19 | [field][hr][center][small]Secure Armory - Armor[/small][/center] 20 | [b]Riot Vest & Helmet[/b]: [field] 21 | [b]Ballistic Vest & Helmet[/b]: [field] 22 | [b]Ablative Vest & Helmet[/b]: [field] 23 | [b]Riot Shield[/b]: [field] 24 | [field][hr] 25 | [b]Completed By[/b]: [field] 26 | [b]Date Completed[/b]: [date] [time] -------------------------------------------------------------------------------- /templates/security/shift_report.txt: -------------------------------------------------------------------------------- 1 | [center][hr][small][i]LEO/S - LAW ENFORCEMENT USE ONLY 2 | NOT FOR PUBLIC DISSEMINATION[/i][/small][hr][solcrest] 3 | [b][large]SEV Torch[/large][/b] 4 | 5 | [i]Security Shift Report - Revision [date][/i][/center][hr][center][small]Incidents of Note[/small][/center] 6 | [table][row][cell][b]Time[/b][cell][b]Summary[/b] 7 | [row][cell][field][cell][field] 8 | [row][cell][field][cell][field] 9 | [row][cell][field][cell][field] 10 | [row][cell][field][cell][field] 11 | [row][cell][field][cell][field] 12 | [row][cell][field][cell][field] 13 | [row][cell][field][cell][field] 14 | [row][cell][field][cell][field] 15 | [row][cell][field][cell][field] 16 | [row][cell][field][cell][field] 17 | [row][cell][field][cell][field] 18 | [row][cell][field][cell][field] 19 | [row][cell][field][cell][field] 20 | [row][cell][field][cell][field] 21 | [row][cell][field][cell][field] 22 | [row][cell][field][cell][field] 23 | [row][cell][field][cell][field] 24 | [row][cell][field][cell][field] 25 | [/table] 26 | [hr][center][small][i]LEO/S - LAW ENFORCEMENT USE ONLY 27 | NOT FOR PUBLIC DISSEMINATION[/i][/small][/center][hr] -------------------------------------------------------------------------------- /templates/service/kosher.txt: -------------------------------------------------------------------------------- 1 | [hr][center] 2 | [small]With God's help[/small] 3 | [large][b]Kosher Certificate[/b][/large] 4 | [/center] 5 | 6 | Type of Kosher: [b][field][/b] 7 | We hereby certify the following: [b][field][/b] 8 | Located at: [b][field][/b] 9 | Owned by: [b][field][/b] 10 | From stardate [b][date][/b] to stardate [b][field][/b] 11 | [small] 12 | [center][u]Note the expiry date[/u][/center] 13 | Do noy copy this certificate. 14 | [list][*]This certificate will expire at the stardate listed above. 15 | [*]This certificate is the sole property of the listed rabbinate. It is in the power of that rabbinate to revoke this certificate at its discretion. 16 | [*]All products sold from various sources are certified by local rabbinates. 17 | [*]Unsigned certificates are expired.[/list] 18 | The public is requested to report any violations to their local rabbinate. 19 | [/small] 20 | 21 | Kosher supervisor: [b][field][/b] 22 | Signature: [b][field][/b] 23 | [hr] 24 | -------------------------------------------------------------------------------- /templates/supply/docked_vessel.txt: -------------------------------------------------------------------------------- 1 | [center] 2 | [solcrest] 3 | 4 | [h3]SEV Torch[/h3][h2]Docked Vessel Report[/h2][hr][/center] 5 | [b]GENERAL INFO[/b] 6 | Date: [field] 7 | Vessel Name: [field] 8 | Vessel Pilot/Owner: [field] 9 | Vessel Intended Purpose: [field] 10 | Docking Authorized by: [field] 11 | 12 | [hr] 13 | [b]GENERAL CARGO INFO[/b] 14 | List the types of cargo onboard the vessel: [field] 15 | 16 | [hr] 17 | [b]HAZARDOUS CARGO INFO[/b] 18 | Weaponry? [field] 19 | Live cargo? [field] 20 | Biohazardous material? [field] 21 | Chemical or radiation hazard? [field] 22 | 23 | [hr] 24 | To indicate authorization for vessel entry, sign/stamp here: [field] 25 | -[small]Hangar Staff[/small] 26 | 27 | [hr] 28 | [b]UNDOCKING AND DEPARTURE[/b] 29 | Undocking Time: [field] 30 | Additional Undocking Comments: [field] 31 | 32 | [hr] 33 | [i]SEV Torch Supply and Hangar-Control Department[/i] -------------------------------------------------------------------------------- /templates/supply/uf102b_requisition_special.txt: -------------------------------------------------------------------------------- 1 | [center][eclogo][/center][hr][hr][h3]SCGEC FORM UF102b: SPECIAL REQUISITION[/h3][hr][hr][grid][row][cell][b]REQUEST DATE[/b][cell]: [date] 2 | [row][cell][b]LOCAL TIME[/b][cell]: [time] 3 | [row][cell][b]ONSITE ASSET[/b][cell]: SEV TORCH 4 | [row][cell][b]REMOTE ASSET[/b][cell]: SCGECO COMSUP 5 | [row][cell] 6 | [row][cell][b]PURPOSE OF REQUEST[/b][cell]: [field] 7 | [row][cell][b]PREFERRED SUPPLIER[/b][cell]: [field] 8 | [row][/grid][hr][hr][h3]ITEM OR ITEMS REQUESTED[/h3][hr][hr] 9 | [table][row][cell][b]ITEM[/b][cell][b]AMOUNT/QUANTITY[/b][cell][b]REASON FOR REQUEST[/b] 10 | [row][cell][field][cell][field][cell][field] 11 | [row][cell][field][cell][field][cell][field] 12 | [row][cell][field][cell][field][cell][field] 13 | [row][cell][field][cell][field][cell][field] 14 | [row][cell][field][cell][field][cell][field][/table][small][b]IMPORTANT: DO NOT LEAVE ANY ROWS BLANK. FILL ALL UNUSED ROWS WITH "N/A" TO PREVENT FRAUDULENT USE OF THIS FORM. FRAUDULENT USE AND NEGLIGENT PREPARATION OF THIS FORM ARE PUNISHABLE BY CRIMINAL LAW AND THE SCUJ.[/b][/small] 15 | 16 | [hr][hr][h3]AUTHORIZATION *[/h3][hr][hr] 17 | [b]REQUESTING[/b] party 18 | 19 | [small][i]I take responsibility for any fraudulent use of this form. I verify to the best of my knowledge that all reasons I have provided above are true and correct, that I have permission from all required authorities, and that I make my request with no illegal intent.[/i][/small] 20 | [grid] 21 | [row][cell][b]RANK / RATE[/b][cell]: [field] 22 | [row][cell][b]FULL NAME[/b][cell]: [field] 23 | [row][cell][b]ASSIGNMENT[/b][cell]: [field] 24 | [row][cell][b]SIGN[/b][cell]: [field] 25 | [row][cell][b]DATE[/b][cell]: [field][/grid] 26 | [hr] 27 | [b]PREPARING[/b] technician or assistant, if applicable 28 | 29 | [small][i]I verify to the best of my knowledge that the above form has been completed fully and that I have instructed all parties to its correct use.[/i][/small] 30 | [grid] 31 | [row][cell][b]RANK / RATE[/b][cell]: [field] 32 | [row][cell][b]FULL NAME[/b][cell]: [field] 33 | [row][cell][b]SIGN[/b][cell]: [field] 34 | [row][cell][b]DATE[/b][cell]: [field][/grid] 35 | [hr] 36 | [b]AUTHORIZING[/b] Deck Chief or Deck Officer [b]**[/b] 37 | 38 | [small][i]I authorize the transmission of this form to the REMOTE ASSET. I take responsibility for any negligent use of this form. I verify to the best of my knowledge that I have supervised the correct use of this form and that the reasons listed are reasonable and valid and that no party authorizing this request has done so under undue duress or influence.[/i][/small] 39 | [grid] 40 | [row][cell][b]RANK / RATE[/b][cell]: [field] 41 | [row][cell][b]FULL NAME[/b][cell]: [field] 42 | [row][cell][b]SIGN[/b][cell]: [field] 43 | [row][cell][b]DATE[/b][cell]: [field][/grid] 44 | [hr] 45 | [b]IMMEDIATE COMMAND[/b] of requesting party [b]***[/b] 46 | 47 | [small][i]I authorize the requesting party to request the above item or items. I verify to the best of my knowledge that the requesting party is my subordinate and that the reasons listed are plausible and relevant to their duties.[/i][/small] 48 | [grid] 49 | [row][cell][b]RANK / RATE[/b][cell]: [field] 50 | [row][cell][b]FULL NAME[/b][cell]: [field] 51 | [row][cell][b]ASSIGNMENT[/b][cell]: [field] 52 | [row][cell][b]SIGN[/b][cell]: [field] 53 | [row][cell][b]DATE[/b][cell]: [field][/grid] 54 | [hr] 55 | [b]RELEVANT AUTHORITY[/b], if necessary [b]****[/b] 56 | 57 | [small][i]I authorize the requesting party to possess, handle, and/or operate the item or items listed above. I verify that the reasons listed above are valid to the best of my professional judgement.[/i][/small] 58 | [grid] 59 | [row][cell][b]RANK / RATE[/b][cell]: [field] 60 | [row][cell][b]FULL NAME[/b][cell]: [field] 61 | [row][cell][b]ASSIGNMENT[/b][cell]: [field] 62 | [row][cell][b]SIGN[/b][cell]: [field] 63 | [row][cell][b]DATE[/b][cell]: [field][/grid] 64 | [hr] 65 | [small][i]* The components necessary to authorize this requisition are: the requesting party; the preparing party; command authority of supply department (DC, DO, XO, CO, ROIC); authorization to send subspace transmission (DC, DO, any LO); authorization to possess or operate all requested items (SNCO or LO relevant to item or items); acknowledgement of one or more superiors of the requesting party (SNCO or LO in COC). The necessary parties are those minimum necessary parties to fulfill all authorization components. All necessary parties to authorize this requisition must complete the one relevant section, unless one party fulfills the necessary authorization component or components of more than one section, in which case that party may instead complete the first or most relevant section and sign the signature ("SIGN") fields of each additional section. All necessary parties must stamp this document below to complete authorization. 66 | ** If no Deck Chief or Deck Officer authorizes this form, this section must instead be completed by the XO, CO or ROIC of the ONSITE ASSET. 67 | *** The line officer, CXPL, or CPO in command of the requesting party is required to authorize requisitions to which the requesting party is not intended usual access. If such an individual is making this request on behalf of another party, this section is not required. 68 | **** The requisition of secured, controlled or restricted items must be authorized by a party authorized to possess or operate such items. The ratings of Senior Engineer, Brig Officer, Chief Medical Officer, Deck Chief, and Pathfinder, or any member of the chain of command in place above one or more such rating, may authorize secured, controlled or restricted items relevant to their positions. If no item or items requested are secured, controlled or restricted, then this section may be left blank. If multiple items are requested whose relevant controlling authorities differ, an officer in the chain of command above both authorities must instead authorize this requisition, those items must be requested in multiple forms UF102b, or the requisition must be made using forms UF102c or UF602b.[/i][/small] 69 | 70 | [hr][hr][h3]ALL PARTIES STAMP BELOW TO AUTHORIZE.[/h3][hr] -------------------------------------------------------------------------------- /test/.requirements.txt: -------------------------------------------------------------------------------- 1 | ansicolors 2 | regex -------------------------------------------------------------------------------- /test/.test.py: -------------------------------------------------------------------------------- 1 | import os, subprocess 2 | 3 | FAILED = False 4 | 5 | # Make sure we're in the expected directory 6 | # Ubuntu and Windows act differently here 7 | if os.getcwd().upper().endswith('SS13PAPERWORKSIMULATOR'): 8 | os.chdir('test') 9 | 10 | tests = [t for t in os.listdir() if t.endswith('.py') and not t.startswith('.')] 11 | 12 | print(f'Found these tests: {tests}') 13 | 14 | for test in tests: 15 | result = subprocess.call(['python', test]) 16 | if result != 0 and not FAILED: 17 | FAILED = True 18 | print(f'{test} returned {result}') 19 | 20 | exit_code = 0 21 | 22 | if FAILED: 23 | exit_code = 1 24 | 25 | print(exit_code) 26 | exit(exit_code) -------------------------------------------------------------------------------- /test/credits.py: -------------------------------------------------------------------------------- 1 | import colors, json, os 2 | 3 | # Make sure we're in the expected directory 4 | # Ubuntu and Windows act differently here 5 | if os.getcwd().upper().endswith('SS13PAPERWORKSIMULATOR'): 6 | os.chdir('test') 7 | 8 | DATA = {} 9 | 10 | with open('../credits.json') as json_data: 11 | DATA = json.load(json_data) 12 | 13 | def is_valid(obj): 14 | valid = True 15 | 16 | print('> Checking first section of credits, devs') 17 | 18 | valid = valid and check(DATA[0], 'credits[0]', dict) 19 | valid = valid and check(DATA[0]['title'], 'credits[0]["title"]', str) 20 | valid = valid and check(DATA[0]['columns'], 'credits[0]["columns"]', int) 21 | valid = valid and check(DATA[0]['credits'], 'credits[0]["credits"]', list) 22 | 23 | for credit in DATA[0]['credits']: 24 | valid = valid and check(credit, 'dev credit', dict, indents=2) 25 | is_valid = valid_credit(credit) 26 | if not is_valid: 27 | print(f'{colors.color("! ! ! ", fg="red")}dev credit is not properly formed: {credit["_name"]}') 28 | valid = valid and is_valid 29 | 30 | print('> Checking second section of credits, template contributors') 31 | 32 | valid = valid and check(DATA[1], 'credits[1]', dict) 33 | valid = valid and check(DATA[1]['title'], 'credits[1]["title"]', str) 34 | valid = valid and check(DATA[1]['columns'], 'credits[1]["columns"]', int) 35 | valid = valid and check(DATA[1]['credits'], 'credits[1]["credits"]', list) 36 | 37 | for credit in DATA[1]['credits']: 38 | valid = valid and check(credit, str(credit), str, indents=2) 39 | 40 | print('> Checking third section of credits, other') 41 | 42 | valid = valid and check(DATA[2], 'credits[2]', dict) 43 | valid = valid and check(DATA[2]['title'], 'credits[2]["title"]', str) 44 | valid = valid and check(DATA[2]['columns'], 'credits[2]["columns"]', int) 45 | valid = valid and check(DATA[2]['credits'], 'credits[2]["credits"]', list) 46 | 47 | for credit in DATA[2]['credits']: 48 | valid = valid and check(credit, f'credit "{str(credit)[:24]}..."', str, indents=2) 49 | return valid 50 | 51 | def valid_credit(obj): 52 | valid = True 53 | valid = valid and check(obj['_name'], '_name', str, indents=2) 54 | for key in [key for key in obj.keys() if not key.startswith('_')]: 55 | valid = valid and check(obj[key], f'{obj["_name"]}["{key}""]', str, indents=3) 56 | return valid 57 | 58 | def check(obj, name, t, indents = 1): 59 | check = isinstance(obj, t) 60 | if not check: 61 | print(f'{colors.color("! "*indents, fg="red")}{name} exists and is type {t.__name__}: {check}') 62 | return check 63 | 64 | exit_code = 0 65 | 66 | if not is_valid(DATA): 67 | exit_code = 1 68 | 69 | exit(exit_code) -------------------------------------------------------------------------------- /test/img.py: -------------------------------------------------------------------------------- 1 | import io, re, os 2 | 3 | # Make sure we're in the expected directory 4 | # Ubuntu and Windows act differently here 5 | if os.getcwd().upper().endswith('SS13PAPERWORKSIMULATOR'): 6 | os.chdir('test') 7 | 8 | images = [] 9 | pattern = r'^\s+\.replaceAll\(\'\[.*?\]\', ?\'' 10 | 11 | with open('../script/pen.js') as file: 12 | for line in file: 13 | match = re.match(pattern, line) 14 | if match: 15 | images.append(match.group(1)) 16 | 17 | images = ['../' + i.lstrip('./') for i in images] 18 | 19 | FAILED = False 20 | 21 | if len(images) < 4: 22 | print('> Detecting fewer than 4 image calls in pen.js - not likely!') 23 | FAILED = True 24 | else: 25 | for i in images: 26 | exists = os.path.isfile(i) 27 | print(f'> {i} exists : {exists}') 28 | FAILED = FAILED or not exists 29 | 30 | exit_code = 0 31 | 32 | if FAILED: 33 | exit_code = 1 34 | 35 | exit(exit_code) -------------------------------------------------------------------------------- /test/meta.py: -------------------------------------------------------------------------------- 1 | print('Python tests reached!') 2 | exit(0) -------------------------------------------------------------------------------- /test/pencode.py: -------------------------------------------------------------------------------- 1 | import colors, datetime, json, io, os, regex 2 | 3 | PEN_TAGS = 'b', 'i', 'u', 'h1', 'h2', 'h3', 'large', 'small', 'list', 'table', 'grid', 'center' 4 | 5 | # https://stackoverflow.com/a/55392411/11015366 6 | # https://regex101.com/r/9two3F/1 7 | REGEX_OUTER_TAGS = regex.compile( 8 | r'\[(' + '|'.join(PEN_TAGS) + r')](?:(?!\[\/?\1(?:\s[^]]*)?]).|(?R))*\[\/\1]' 9 | ) 10 | 11 | # Returns the value of each string-type key-value pair in index.json 12 | def all_file_paths(obj): 13 | if isinstance(obj, dict): 14 | children = [] 15 | for i in obj.keys(): 16 | children += all_file_paths(obj[i]) 17 | return children 18 | elif isinstance(obj, str): 19 | return [obj] 20 | 21 | # Returns the contents of each file as a single line 22 | def file_content(filename): 23 | with open('../templates/' + filename, 'r') as file: 24 | return '[br]'.join([line.strip('\n') for line in file.readlines()]) 25 | 26 | def all_files_are_valid(files): 27 | valid = True 28 | for f in files: 29 | print(f'> checking {f} ...') 30 | content = file_content(f) 31 | check = all_tag_counts_match(content) 32 | valid = valid and check 33 | if check: 34 | print('> > Tag counts look good. Beginning recursive search...') 35 | start = datetime.datetime.now() 36 | for t in all_matching_tags(file_content(f)): 37 | value = valid and all_tag_counts_match(t) 38 | end = datetime.datetime.now() 39 | print(f'> > Recursive search completed for {f} in {(end - start).total_seconds()}s') 40 | else: 41 | print('> > Not continuing with recursive search.') 42 | return valid 43 | 44 | def all_tag_counts_match(text): 45 | # This function should just substring_is_valid on the whole string and on each matching tag pair. 46 | valid = True 47 | for tag in PEN_TAGS: 48 | check = tag_counts_match(text, tag) 49 | valid = valid and check 50 | return valid 51 | 52 | # 53 | # returns each matching tag 'child' of the text given to it. for example: 54 | # 55 | # this pencode: 56 | # [b]bold[i]bold-italic[u]bold-italic-underline[/u][/i][small]but strong[/small][/b]plain[large]big[b]and bold[/b][/large] 57 | # 58 | # returns a list with all of these: 59 | # [b]bold[i]bold-italic[u]bold-italic-underline[/u][/i][small]but strong[/small][/b] 60 | # [i]bold-italic[u]bold-italic-underline[/u][/i] 61 | # [u]bold-italic-underline[/u] 62 | # [small]but strong[/small] 63 | # [large]big[b]and bold[/b][/large] 64 | # [b]and bold[/b] 65 | # 66 | def all_matching_tags(pencode): 67 | # print('> > checking', '{:60}'.format(pencode[:60]), '...') 68 | result = [] 69 | # https://stackoverflow.com/q/55400898/11015366 70 | for match in REGEX_OUTER_TAGS.finditer(pencode): 71 | matching_text = match.group() 72 | matching_tag = match.group(1) 73 | matching_text = matching_text[len(matching_tag) + 2 : -3 - len(matching_tag)] 74 | result += [matching_text] 75 | if REGEX_OUTER_TAGS.search(matching_text): 76 | result += all_matching_tags(matching_text) 77 | return result 78 | 79 | def substring_is_valid(text): 80 | valid = True 81 | for tag in PEN_TAGS: 82 | valid = valid and tag_counts_match(text, tag) 83 | 84 | TEST = '[b]bold[i]bold-italic[u]bold-italic-underline[/u][/i][small]but strong[/small][/b]plain[large]big[b]and bold[/b][/large]' 85 | def test(): 86 | return all_matching_tags(file_content('../templates/command/sitrep.txt')) 87 | 88 | def tag_counts_match(text, tag): 89 | opening = text.count(f'[{tag}]') 90 | closing = text.count(f'[/{tag}]') 91 | check = opening == closing 92 | if not check: 93 | print(f'{colors.color("! ! ! ", fg="red")}This pencode has {opening} [{tag}] and {closing} [/{tag}]: {text}') 94 | return check 95 | 96 | def main(): 97 | # Make sure we're in the expected directory 98 | # Ubuntu and Windows act differently here 99 | if os.getcwd().upper().endswith('SS13PAPERWORKSIMULATOR'): 100 | os.chdir('test') 101 | 102 | data = {} 103 | with open('../templates/index.json') as json_data: 104 | data = json.load(json_data) 105 | 106 | files = all_file_paths(data) 107 | 108 | return 0 if all_files_are_valid(files) else 1 109 | 110 | exit_code = main() 111 | 112 | exit(exit_code) 113 | -------------------------------------------------------------------------------- /test/templates.py: -------------------------------------------------------------------------------- 1 | import json, os 2 | 3 | # Make sure we're in the expected directory 4 | # Ubuntu and Windows act differently here 5 | if os.getcwd().upper().endswith('SS13PAPERWORKSIMULATOR'): 6 | os.chdir('test') 7 | 8 | DATA = {} 9 | 10 | with open('../templates/index.json') as json_data: 11 | DATA = json.load(json_data) 12 | 13 | def is_valid(obj): 14 | if isinstance(obj, dict): 15 | valid = True 16 | for i in obj.keys(): 17 | valid = valid and is_valid(obj[i]) 18 | return valid 19 | elif isinstance(obj, str): 20 | result = file_exists(obj) 21 | print(f'> {obj} exists : {result}') 22 | return result 23 | 24 | def file_exists(path): 25 | return os.path.isfile(f'../templates/{path}') 26 | 27 | exit_code = 0 28 | 29 | if not is_valid(DATA): 30 | exit_code = 1 31 | 32 | exit(exit_code) --------------------------------------------------------------------------------