diff --git a/.vscode/launch.json b/.vscode/launch.json
index 543058728f..e01beb7171 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -7,6 +7,44 @@
"name": "Launch DreamSeeker",
"preLaunchTask": "Build All",
"dmb": "${workspaceFolder}/${command:CurrentDMB}"
+ },
+ {
+ "type": "byond",
+ "request": "launch",
+ "name": "Launch DreamDaemon",
+ "preLaunchTask": "Build All",
+ "dmb": "${workspaceFolder}/${command:CurrentDMB}",
+ "dreamDaemon": true
+ },
+ {
+ "type": "byond",
+ "request": "launch",
+ "name": "Launch DreamSeeker (TESTING)",
+ "preLaunchTask": "Build All (TESTING)",
+ "dmb": "${workspaceFolder}/${command:CurrentDMB}"
+ },
+ {
+ "type": "byond",
+ "request": "launch",
+ "name": "Launch DreamDaemon (TESTING)",
+ "preLaunchTask": "Build All (TESTING)",
+ "dmb": "${workspaceFolder}/${command:CurrentDMB}",
+ "dreamDaemon": true
+ },
+ {
+ "type": "byond",
+ "request": "launch",
+ "name": "Launch DreamSeeker (LOWMEMORYMODE)",
+ "preLaunchTask": "Build All (LOWMEMORYMODE)",
+ "dmb": "${workspaceFolder}/${command:CurrentDMB}"
+ },
+ {
+ "type": "byond",
+ "request": "launch",
+ "name": "Launch DreamDaemon (LOWMEMORYMODE)",
+ "preLaunchTask": "Build All (LOWMEMORYMODE)",
+ "dmb": "${workspaceFolder}/${command:CurrentDMB}",
+ "dreamDaemon": true
}
]
}
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index b7d12f0527..155c69ee99 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -24,6 +24,56 @@
"dependsOn": "dm: reparse",
"label": "Build All"
},
+ {
+ "type": "process",
+ "command": "tools/build/build",
+ "windows": {
+ "command": ".\\tools\\build\\build.bat"
+ },
+ "options": {
+ "env": {
+ "DM_EXE": "${config:dreammaker.byondPath}"
+ }
+ },
+ "problemMatcher": [
+ "$dreammaker",
+ "$tsc",
+ "$eslint-stylish"
+ ],
+ "group": {
+ "kind": "build"
+ },
+ "dependsOn": "dm: reparse",
+ "args": [
+ "-DTESTING"
+ ],
+ "label": "Build All (TESTING)"
+ },
+ {
+ "type": "process",
+ "command": "tools/build/build",
+ "windows": {
+ "command": ".\\tools\\build\\build.bat"
+ },
+ "options": {
+ "env": {
+ "DM_EXE": "${config:dreammaker.byondPath}"
+ }
+ },
+ "problemMatcher": [
+ "$dreammaker",
+ "$tsc",
+ "$eslint-stylish"
+ ],
+ "group": {
+ "kind": "build"
+ },
+ "dependsOn": "dm: reparse",
+ "args": [
+ "-DLOWMEMORYMODE"
+ ],
+ "label": "Build All (LOWMEMORYMODE)"
+ },
{
"type": "dreammaker",
"dme": "tgstation.dme",
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm
index e95fcc82c3..844d28415f 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm
@@ -5,6 +5,10 @@
"b" = (
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
+"c" = (
+/obj/structure/table/wood,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/lavaland/powered/seedvault)
"d" = (
/obj/structure/table/wood,
/obj/item/lighter,
@@ -21,11 +25,11 @@
/turf/open/floor/plasteel/freezer,
/area/ruin/lavaland/powered/seedvault)
"f" = (
-/obj/machinery/plantgenes/seedvault{
- pixel_y = 6
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
},
-/obj/structure/table/wood,
-/turf/open/floor/plasteel/freezer,
+/turf/open/floor/grass,
/area/ruin/lavaland/powered/seedvault)
"g" = (
/obj/structure/table/wood,
@@ -61,7 +65,7 @@
/turf/open/floor/plasteel/freezer,
/area/ruin/lavaland/powered/seedvault)
"l" = (
-/obj/machinery/door/airlock,
+/obj/machinery/door/airlock/titanium/glass,
/turf/open/floor/plasteel/freezer,
/area/ruin/lavaland/powered/seedvault)
"m" = (
@@ -73,7 +77,8 @@
/turf/open/floor/plasteel/freezer,
/area/ruin/lavaland/powered/seedvault)
"n" = (
-/obj/machinery/smartfridge,
+/obj/structure/table/wood,
+/obj/item/gps,
/turf/open/floor/plasteel/freezer,
/area/ruin/lavaland/powered/seedvault)
"o" = (
@@ -93,8 +98,9 @@
/turf/open/floor/plasteel/freezer,
/area/ruin/lavaland/powered/seedvault)
"p" = (
-/obj/machinery/hydroponics/constructable,
-/turf/open/floor/plasteel/freezer,
+/obj/structure/grille,
+/obj/machinery/smartfridge,
+/turf/open/floor/circuit/green,
/area/ruin/lavaland/powered/seedvault)
"q" = (
/obj/item/hatchet,
@@ -113,24 +119,15 @@
/area/ruin/lavaland/powered/seedvault)
"s" = (
/obj/structure/table/wood,
-/obj/item/gun/energy/floragun,
-/obj/item/gun/energy/floragun,
-/obj/item/gun/energy/floragun,
-/obj/item/gun/energy/floragun,
-/obj/item/storage/box/disks_plantgene,
+/obj/item/seeds/bee_balm/honey_balm,
/turf/open/floor/plasteel/freezer,
/area/ruin/lavaland/powered/seedvault)
"t" = (
/obj/effect/mob_spawn/human/seed_vault,
-/turf/open/floor/plasteel/freezer,
+/turf/open/floor/grass,
/area/ruin/lavaland/powered/seedvault)
"u" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
-/turf/open/floor/plasteel/freezer,
+/turf/open/floor/grass,
/area/ruin/lavaland/powered/seedvault)
"v" = (
/obj/machinery/vending/hydronutrients,
@@ -152,10 +149,8 @@
/turf/open/floor/plasteel/freezer,
/area/ruin/lavaland/powered/seedvault)
"y" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
+/obj/structure/table/wood,
+/obj/item/pickaxe,
/turf/open/floor/plasteel/freezer,
/area/ruin/lavaland/powered/seedvault)
"z" = (
@@ -165,6 +160,10 @@
},
/turf/open/floor/plasteel/freezer,
/area/ruin/lavaland/powered/seedvault)
+"A" = (
+/obj/structure/table/glass,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/lavaland/powered/seedvault)
"B" = (
/obj/structure/disposalpipe/trunk,
/obj/machinery/disposal/bin,
@@ -183,27 +182,25 @@
/turf/open/floor/plasteel/freezer,
/area/ruin/lavaland/powered/seedvault)
"F" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plasteel/freezer,
+/obj/structure/grille,
+/obj/structure/window/shuttle,
+/turf/open/floor/circuit/green,
/area/ruin/lavaland/powered/seedvault)
"G" = (
-/obj/structure/closet/crate/hydroponics,
-/obj/item/clothing/under/rank/civilian/hydroponics,
-/obj/item/clothing/under/rank/civilian/hydroponics,
-/obj/item/clothing/under/rank/civilian/hydroponics,
-/obj/item/clothing/under/rank/civilian/hydroponics,
-/turf/open/floor/plasteel/freezer,
+/obj/structure/disposalpipe/segment,
+/turf/closed/wall/mineral/titanium/interior,
/area/ruin/lavaland/powered/seedvault)
"H" = (
-/obj/machinery/chem_master/condimaster,
+/obj/structure/table/glass,
+/obj/item/gun/energy/floragun,
+/obj/item/gun/energy/floragun,
+/obj/item/gun/energy/floragun,
+/obj/item/gun/energy/floragun,
/turf/open/floor/plasteel/freezer,
/area/ruin/lavaland/powered/seedvault)
"I" = (
/obj/structure/table/wood,
-/obj/item/reagent_containers/glass/bucket,
-/obj/item/reagent_containers/glass/bucket,
-/obj/item/reagent_containers/glass/bucket,
-/obj/item/reagent_containers/glass/bucket,
+/obj/item/watertank,
/turf/open/floor/plasteel/freezer,
/area/ruin/lavaland/powered/seedvault)
"J" = (
@@ -211,6 +208,13 @@
/obj/structure/table/wood,
/turf/open/floor/plasteel/freezer,
/area/ruin/lavaland/powered/seedvault)
+"K" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/flora/ausbushes/ywflowers,
+/turf/open/floor/grass,
+/area/ruin/lavaland/powered/seedvault)
"L" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -224,8 +228,10 @@
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors)
"N" = (
+/obj/machinery/plantgenes/seedvault{
+ pixel_y = 6
+ },
/obj/structure/table/wood,
-/obj/item/storage/box/disks_plantgene,
/obj/machinery/light{
dir = 1
},
@@ -238,38 +244,59 @@
/turf/open/floor/plasteel/freezer,
/area/ruin/lavaland/powered/seedvault)
"P" = (
+/obj/structure/table/wood,
+/obj/item/storage/box/disks_plantgene,
+/obj/machinery/light,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/lavaland/powered/seedvault)
+"Q" = (
/obj/machinery/hydroponics/constructable,
+/turf/open/floor/grass,
+/area/ruin/lavaland/powered/seedvault)
+"R" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/turf/open/floor/grass,
+/area/ruin/lavaland/powered/seedvault)
+"S" = (
+/turf/closed/wall/mineral/titanium/interior,
+/area/ruin/lavaland/powered/seedvault)
+"T" = (
+/obj/structure/closet/crate/hydroponics,
+/obj/item/clothing/under/rank/civilian/hydroponics,
+/obj/item/clothing/under/rank/civilian/hydroponics,
+/obj/item/clothing/under/rank/civilian/hydroponics,
+/obj/item/clothing/under/rank/civilian/hydroponics,
+/obj/machinery/light,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/lavaland/powered/seedvault)
+"U" = (
+/obj/machinery/light,
+/obj/structure/flora/ausbushes/ppflowers,
+/turf/open/floor/grass,
+/area/ruin/lavaland/powered/seedvault)
+"V" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/reagent_containers/glass/bucket,
+/obj/machinery/light,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/lavaland/powered/seedvault)
+"X" = (
+/obj/structure/table/glass,
+/obj/item/construction/plumbing,
/obj/machinery/light{
dir = 1
},
/turf/open/floor/plasteel/freezer,
/area/ruin/lavaland/powered/seedvault)
-"Q" = (
-/turf/closed/wall/r_wall,
-/area/ruin/lavaland/powered/seedvault)
-"R" = (
-/obj/machinery/light{
- dir = 8
- },
-/turf/open/floor/plasteel/freezer,
-/area/ruin/lavaland/powered/seedvault)
-"S" = (
-/obj/machinery/light{
- dir = 4
- },
-/turf/open/floor/plasteel/freezer,
-/area/ruin/lavaland/powered/seedvault)
-"U" = (
-/obj/machinery/light,
-/turf/open/floor/plasteel/freezer,
-/area/ruin/lavaland/powered/seedvault)
-"V" = (
-/obj/structure/disposalpipe/segment,
-/turf/closed/wall/r_wall,
-/area/ruin/lavaland/powered/seedvault)
-"X" = (
-/obj/machinery/hydroponics/constructable,
-/obj/machinery/light,
+"Y" = (
+/obj/machinery/chem_master,
/turf/open/floor/plasteel/freezer,
/area/ruin/lavaland/powered/seedvault)
"Z" = (
@@ -288,12 +315,12 @@ a
a
a
a
-Q
-Q
-Q
-Q
-Q
-Q
+S
+S
+S
+S
+S
+S
a
a
a
@@ -309,14 +336,14 @@ a
a
a
a
-a
-Q
+S
+S
t
t
t
t
-Q
-a
+S
+S
a
a
a
@@ -329,41 +356,41 @@ b
a
a
a
-a
-a
-Q
-Q
-O
-h
-h
+S
+S
+S
+S
+K
+u
+u
U
-Q
-Q
+S
+S
+S
+S
a
a
a
b
-a
-b
"}
(4,1,1) = {"
b
a
a
-Q
-Q
-Q
-Q
-Q
-Q
+S
+S
+w
+v
+S
+F
l
l
-Q
-Q
-Q
-Q
-a
-a
+F
+S
+w
+v
+S
+S
a
a
a
@@ -371,241 +398,241 @@ a
(5,1,1) = {"
a
a
-Q
-Q
-k
-Q
-n
+S
+S
+u
+u
+u
R
u
h
h
u
R
-Z
-Q
-a
-a
-a
+u
+u
+u
+S
+S
a
a
"}
(6,1,1) = {"
a
a
+S
+C
+u
Q
-d
-h
+u
Q
-o
+u
h
h
-h
-h
-h
-h
-G
+u
Q
-a
-a
-a
+u
+Q
+u
+Z
+S
a
a
"}
(7,1,1) = {"
a
a
-Q
+S
N
-h
+u
Q
-P
-h
-p
-h
-h
-p
-h
-X
+u
Q
-a
-a
-a
+u
+h
+h
+u
+Q
+u
+Q
+u
+V
+S
a
a
"}
(8,1,1) = {"
b
a
+S
+g
+u
Q
-e
-h
-l
-h
-h
-v
+u
+Q
+u
h
h
+u
+Q
+u
+Q
+u
B
-F
-F
-V
+G
L
a
-a
-a
-a
"}
(9,1,1) = {"
b
a
-Q
+S
+e
+u
+u
+u
f
-h
-Q
-p
-h
-n
+u
h
h
-C
-h
-k
-Q
+u
+f
+u
+u
+u
+r
+S
M
a
-a
-a
-a
"}
(10,1,1) = {"
a
a
-Q
-g
-h
-Q
+S
+S
+F
+l
p
-h
-w
-h
-h
+S
D
h
+h
+o
+S
p
-Q
+l
+F
+S
+S
b
a
-a
-a
-a
"}
(11,1,1) = {"
a
a
-Q
+S
+k
h
h
-Q
-q
+e
+S
+O
h
-x
+h
+T
+S
+H
h
h
E
-h
-H
-Q
-a
-a
-a
+S
a
a
"}
(12,1,1) = {"
b
a
-Q
-O
+S
+k
+h
h
-Q
P
+S
+I
h
h
-h
-h
-h
-h
+J
+S
X
-Q
-a
-a
-a
+h
+h
+A
+S
a
a
"}
(13,1,1) = {"
a
a
-Q
-i
-h
-Q
-r
+S
+k
h
h
-p
-p
+d
+S
+c
h
h
-I
-Q
-a
-a
-a
+n
+S
+x
+h
+h
+Y
+S
a
a
"}
(14,1,1) = {"
a
a
-Q
-Q
+S
+S
+i
i
-Q
s
S
-y
+q
h
h
y
S
-J
-Q
-a
-a
-a
+A
+h
+h
+S
+S
a
a
"}
(15,1,1) = {"
a
a
-b
-Q
-Q
-Q
-Q
-Q
-Q
+a
+S
+S
+S
+S
+S
+S
z
z
-Q
-Q
-Q
-Q
-a
-a
+S
+S
+S
+S
+S
+S
a
a
a
@@ -613,21 +640,21 @@ a
(16,1,1) = {"
b
a
-b
+a
j
-Q
+S
j
-Q
+S
j
-Q
+S
h
h
-Q
+S
j
-Q
+S
+j
+S
j
-a
-a
a
a
a
@@ -641,10 +668,10 @@ a
a
a
a
-Q
+S
m
m
-Q
+S
b
b
b
@@ -683,7 +710,7 @@ a
a
b
b
-a
+b
b
b
b
diff --git a/_maps/RandomRuins/SpaceRuins/arcade.dmm b/_maps/RandomRuins/SpaceRuins/arcade.dmm
index c68d3b224e..4af6488f85 100644
--- a/_maps/RandomRuins/SpaceRuins/arcade.dmm
+++ b/_maps/RandomRuins/SpaceRuins/arcade.dmm
@@ -147,7 +147,7 @@
/turf/open/floor/engine,
/area/ruin/powered)
"I" = (
-/obj/item/aiModule/toyAI,
+/obj/item/ai_module/toyAI,
/turf/open/floor/engine,
/area/ruin/powered)
"J" = (
diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm
index 81eca95be1..c1f0634b27 100644
--- a/_maps/map_files/BoxStation/BoxStation.dmm
+++ b/_maps/map_files/BoxStation/BoxStation.dmm
@@ -21695,7 +21695,7 @@
/area/command/meeting_room)
"bbj" = (
/obj/structure/table,
-/obj/item/aiModule/reset,
+/obj/item/ai_module/reset,
/obj/machinery/light{
dir = 8
},
@@ -21981,7 +21981,7 @@
/area/command/meeting_room)
"bce" = (
/obj/structure/table,
-/obj/item/aiModule/supplied/quarantine,
+/obj/item/ai_module/supplied/quarantine,
/obj/machinery/camera/motion{
c_tag = "AI Upload Chamber - West";
dir = 4;
@@ -21998,7 +21998,7 @@
/area/ai_monitored/turret_protected/ai_upload)
"bcg" = (
/obj/structure/table,
-/obj/item/aiModule/supplied/freeform,
+/obj/item/ai_module/supplied/freeform,
/obj/structure/sign/plaques/kiddie{
pixel_x = 32
},
@@ -22674,8 +22674,8 @@
/area/maintenance/port)
"beb" = (
/obj/structure/table,
-/obj/item/aiModule/core/full/asimov,
-/obj/item/aiModule/core/freeformcore,
+/obj/item/ai_module/core/full/asimov,
+/obj/item/ai_module/core/freeformcore,
/obj/machinery/door/window{
base_state = "right";
dir = 4;
@@ -22692,7 +22692,7 @@
/obj/structure/window/reinforced{
dir = 8
},
-/obj/item/aiModule/core/full/custom,
+/obj/item/ai_module/core/full/custom,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
"bec" = (
@@ -22734,14 +22734,14 @@
/area/ai_monitored/turret_protected/ai_upload)
"beg" = (
/obj/structure/table,
-/obj/item/aiModule/supplied/oxygen,
-/obj/item/aiModule/zeroth/oneHuman,
+/obj/item/ai_module/supplied/oxygen,
+/obj/item/ai_module/zeroth/oneHuman,
/obj/machinery/door/window{
dir = 8;
name = "High-Risk Modules";
req_access_txt = "20"
},
-/obj/item/aiModule/reset/purge,
+/obj/item/ai_module/reset/purge,
/obj/structure/window/reinforced,
/obj/effect/spawner/lootdrop/aimodule_harmful,
/obj/structure/window/reinforced{
@@ -22750,7 +22750,7 @@
/obj/structure/window/reinforced{
dir = 4
},
-/obj/item/aiModule/supplied/protectStation,
+/obj/item/ai_module/supplied/protectStation,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
"beh" = (
@@ -34141,7 +34141,7 @@
"bEX" = (
/obj/structure/table,
/obj/item/aicard,
-/obj/item/aiModule/reset,
+/obj/item/ai_module/reset,
/obj/structure/cable{
icon_state = "1-2"
},
diff --git a/_maps/map_files/CogStation/CogStation.dmm b/_maps/map_files/CogStation/CogStation.dmm
index 2135803d28..cf2504d9d6 100644
--- a/_maps/map_files/CogStation/CogStation.dmm
+++ b/_maps/map_files/CogStation/CogStation.dmm
@@ -23661,14 +23661,14 @@
dir = 4;
light_color = "#e8eaff"
},
-/obj/item/aiModule/reset/purge{
+/obj/item/ai_module/reset/purge{
pixel_y = 6
},
-/obj/item/aiModule/reset{
+/obj/item/ai_module/reset{
pixel_x = -2;
pixel_y = 4
},
-/obj/item/aiModule/core/full/custom{
+/obj/item/ai_module/core/full/custom{
pixel_x = -4
},
/obj/machinery/status_display{
@@ -24172,7 +24172,7 @@
/obj/effect/turf_decal/tile/blue{
dir = 4
},
-/obj/item/aiModule/core/full/asimov{
+/obj/item/ai_module/core/full/asimov{
pixel_x = 2;
pixel_y = 10
},
@@ -24183,11 +24183,11 @@
/obj/effect/spawner/lootdrop/aimodule_harmless{
pixel_y = 6
},
-/obj/item/aiModule/core/freeformcore{
+/obj/item/ai_module/core/freeformcore{
pixel_x = -1;
pixel_y = 2
},
-/obj/item/aiModule/supplied/freeform{
+/obj/item/ai_module/supplied/freeform{
pixel_x = -2
},
/obj/structure/cable{
@@ -38060,22 +38060,22 @@
/obj/effect/turf_decal/tile/blue{
dir = 4
},
-/obj/item/aiModule/supplied/oxygen{
+/obj/item/ai_module/supplied/oxygen{
pixel_x = 2;
pixel_y = 10
},
-/obj/item/aiModule/supplied/quarantine{
+/obj/item/ai_module/supplied/quarantine{
pixel_x = 1;
pixel_y = 8
},
-/obj/item/aiModule/zeroth/oneHuman{
+/obj/item/ai_module/zeroth/oneHuman{
pixel_y = 4
},
/obj/effect/spawner/lootdrop/aimodule_harmful{
pixel_x = -1;
pixel_y = 2
},
-/obj/item/aiModule/supplied/protectStation{
+/obj/item/ai_module/supplied/protectStation{
pixel_x = -2
},
/turf/open/floor/plasteel,
diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index 506f5e2396..697a37fb21 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -29754,7 +29754,7 @@
lootcount = 2;
lootdoubles = 0
},
-/obj/item/aiModule/supplied/oxygen{
+/obj/item/ai_module/supplied/oxygen{
pixel_x = -3;
pixel_y = -3
},
@@ -30359,12 +30359,12 @@
req_access_txt = "20"
},
/obj/structure/window/reinforced,
-/obj/item/aiModule/core/freeformcore{
+/obj/item/ai_module/core/freeformcore{
pixel_x = 3;
pixel_y = 3
},
-/obj/item/aiModule/core/full/custom,
-/obj/item/aiModule/core/full/asimov{
+/obj/item/ai_module/core/full/custom,
+/obj/item/ai_module/core/full/asimov{
pixel_x = -3;
pixel_y = -3
},
@@ -30464,12 +30464,12 @@
req_access_txt = "20"
},
/obj/structure/window/reinforced,
-/obj/item/aiModule/supplied/protectStation{
+/obj/item/ai_module/supplied/protectStation{
pixel_x = 3;
pixel_y = 3
},
-/obj/item/aiModule/zeroth/oneHuman,
-/obj/item/aiModule/reset/purge{
+/obj/item/ai_module/zeroth/oneHuman,
+/obj/item/ai_module/reset/purge{
pixel_x = -3;
pixel_y = -3
},
@@ -31513,7 +31513,7 @@
/area/security/brig)
"ckn" = (
/obj/structure/table/reinforced,
-/obj/item/aiModule/reset,
+/obj/item/ai_module/reset,
/obj/item/radio/intercom{
name = "Station Intercom";
pixel_x = -26
@@ -31586,7 +31586,7 @@
/area/ai_monitored/turret_protected/ai_upload)
"ckt" = (
/obj/structure/table/reinforced,
-/obj/item/aiModule/supplied/quarantine,
+/obj/item/ai_module/supplied/quarantine,
/obj/item/radio/intercom{
broadcasting = 1;
frequency = 1447;
@@ -32125,7 +32125,7 @@
/area/security/range)
"clM" = (
/obj/structure/table/reinforced,
-/obj/item/aiModule/supplied/freeform,
+/obj/item/ai_module/supplied/freeform,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -72976,7 +72976,7 @@
/area/service/theater)
"eNu" = (
/obj/structure/table/reinforced,
-/obj/item/aiModule/reset,
+/obj/item/ai_module/reset,
/obj/item/assembly/flash/handheld,
/obj/item/assembly/flash/handheld,
/obj/effect/turf_decal/bot,
diff --git a/_maps/map_files/FestiveBall/FestiveStation.dmm b/_maps/map_files/FestiveBall/FestiveStation.dmm
index 353b298ceb..af368051d9 100644
--- a/_maps/map_files/FestiveBall/FestiveStation.dmm
+++ b/_maps/map_files/FestiveBall/FestiveStation.dmm
@@ -254,8 +254,8 @@
/area/edina)
"aaT" = (
/obj/structure/table,
-/obj/item/aiModule/core/full/asimov,
-/obj/item/aiModule/core/freeformcore,
+/obj/item/ai_module/core/full/asimov,
+/obj/item/ai_module/core/freeformcore,
/obj/machinery/door/window{
base_state = "right";
dir = 4;
@@ -272,7 +272,7 @@
/obj/structure/window/reinforced{
dir = 8
},
-/obj/item/aiModule/core/full/custom,
+/obj/item/ai_module/core/full/custom,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
"aaU" = (
@@ -280,7 +280,7 @@
/area/ai_monitored/turret_protected/ai_upload)
"aaV" = (
/obj/structure/table,
-/obj/item/aiModule/supplied/quarantine,
+/obj/item/ai_module/supplied/quarantine,
/obj/machinery/camera/motion,
/obj/machinery/light{
dir = 1;
@@ -296,7 +296,7 @@
/area/edina/street/secondary/command)
"aaX" = (
/obj/structure/table,
-/obj/item/aiModule/reset,
+/obj/item/ai_module/reset,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
"aaY" = (
@@ -659,16 +659,16 @@
/obj/structure/window/reinforced{
dir = 8
},
-/obj/item/aiModule/supplied/oxygen,
-/obj/item/aiModule/zeroth/oneHuman,
-/obj/item/aiModule/reset/purge,
+/obj/item/ai_module/supplied/oxygen,
+/obj/item/ai_module/zeroth/oneHuman,
+/obj/item/ai_module/reset/purge,
/obj/effect/spawner/lootdrop/aimodule_harmful,
-/obj/item/aiModule/supplied/protectStation,
+/obj/item/ai_module/supplied/protectStation,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
"abS" = (
/obj/structure/table,
-/obj/item/aiModule/supplied/freeform,
+/obj/item/ai_module/supplied/freeform,
/obj/machinery/camera/motion{
c_tag = "MiniSat Foyer";
dir = 1;
diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm
index 74dbdcf8d7..12e3252a5e 100644
--- a/_maps/map_files/KiloStation/KiloStation.dmm
+++ b/_maps/map_files/KiloStation/KiloStation.dmm
@@ -41120,12 +41120,12 @@
name = "Core Modules";
req_access_txt = "20"
},
-/obj/item/aiModule/core/freeformcore{
+/obj/item/ai_module/core/freeformcore{
pixel_x = 3;
pixel_y = 3
},
-/obj/item/aiModule/core/full/custom,
-/obj/item/aiModule/core/full/asimov{
+/obj/item/ai_module/core/full/custom,
+/obj/item/ai_module/core/full/asimov{
pixel_x = -3;
pixel_y = -3
},
@@ -43936,12 +43936,12 @@
name = "Core Modules";
req_access_txt = "20"
},
-/obj/item/aiModule/supplied/protectStation{
+/obj/item/ai_module/supplied/protectStation{
pixel_x = 3;
pixel_y = 3
},
-/obj/item/aiModule/zeroth/oneHuman,
-/obj/item/aiModule/reset/purge{
+/obj/item/ai_module/zeroth/oneHuman,
+/obj/item/ai_module/reset/purge{
pixel_x = -3;
pixel_y = -3
},
@@ -47627,7 +47627,7 @@
/area/commons/fitness/recreation)
"byM" = (
/obj/structure/table,
-/obj/item/aiModule/reset,
+/obj/item/ai_module/reset,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/machinery/flasher{
id = "AI";
@@ -47680,7 +47680,7 @@
lootcount = 2;
lootdoubles = 0
},
-/obj/item/aiModule/supplied/oxygen{
+/obj/item/ai_module/supplied/oxygen{
pixel_x = -3;
pixel_y = -3
},
@@ -47852,7 +47852,7 @@
/area/commons/toilet/restrooms)
"bzb" = (
/obj/structure/table,
-/obj/item/aiModule/supplied/freeform,
+/obj/item/ai_module/supplied/freeform,
/turf/open/floor/circuit/green{
luminosity = 2
},
@@ -48043,7 +48043,7 @@
/area/ai_monitored/turret_protected/ai_upload)
"bzr" = (
/obj/structure/table,
-/obj/item/aiModule/supplied/quarantine,
+/obj/item/ai_module/supplied/quarantine,
/obj/machinery/flasher{
id = "AI";
name = "Meatbag Pacifier";
@@ -50899,7 +50899,7 @@
dir = 1
},
/obj/item/aicard,
-/obj/item/aiModule/reset,
+/obj/item/ai_module/reset,
/obj/item/assembly/flash/handheld,
/obj/item/assembly/flash/handheld,
/obj/machinery/airalarm{
diff --git a/_maps/map_files/LambdaStation/lambda.dmm b/_maps/map_files/LambdaStation/lambda.dmm
index 22241d6dfc..31ed0aa655 100644
--- a/_maps/map_files/LambdaStation/lambda.dmm
+++ b/_maps/map_files/LambdaStation/lambda.dmm
@@ -23822,9 +23822,9 @@
dir = 1;
pixel_y = 1
},
-/obj/item/aiModule/core/full/asimov,
-/obj/item/aiModule/core/full/custom,
-/obj/item/aiModule/core/freeformcore,
+/obj/item/ai_module/core/full/asimov,
+/obj/item/ai_module/core/full/custom,
+/obj/item/ai_module/core/freeformcore,
/obj/structure/window/reinforced,
/obj/machinery/door/window{
dir = 4;
@@ -23873,10 +23873,10 @@
dir = 1;
pixel_y = 1
},
-/obj/item/aiModule/reset/purge,
-/obj/item/aiModule/zeroth/oneHuman,
-/obj/item/aiModule/supplied/protectStation,
-/obj/item/aiModule/supplied/oxygen,
+/obj/item/ai_module/reset/purge,
+/obj/item/ai_module/zeroth/oneHuman,
+/obj/item/ai_module/supplied/protectStation,
+/obj/item/ai_module/supplied/oxygen,
/obj/structure/window/reinforced,
/obj/machinery/door/window/westright{
name = "Reserve Modules";
@@ -24118,7 +24118,7 @@
},
/obj/structure/table,
/obj/structure/window/reinforced,
-/obj/item/aiModule/supplied/freeform,
+/obj/item/ai_module/supplied/freeform,
/obj/structure/window/reinforced{
dir = 1;
pixel_y = 1
@@ -24851,8 +24851,8 @@
},
/obj/structure/table,
/obj/structure/window/reinforced,
-/obj/item/aiModule/supplied/quarantine,
-/obj/item/aiModule/reset,
+/obj/item/ai_module/supplied/quarantine,
+/obj/item/ai_module/reset,
/obj/structure/window/reinforced{
dir = 1;
pixel_y = 1
@@ -66357,7 +66357,7 @@
},
/obj/structure/table,
/obj/item/aicard,
-/obj/item/aiModule/reset,
+/obj/item/ai_module/reset,
/turf/open/floor/plating,
/area/engineering/storage/tech)
"iSm" = (
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index 44a080ccb4..cd687fd5af 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -10652,9 +10652,9 @@
/area/security/prison/cells)
"aMG" = (
/obj/structure/table,
-/obj/item/aiModule/core/full/asimov,
+/obj/item/ai_module/core/full/asimov,
/obj/effect/spawner/lootdrop/aimodule_harmless,
-/obj/item/aiModule/core/freeformcore,
+/obj/item/ai_module/core/freeformcore,
/obj/machinery/door/window{
base_state = "right";
dir = 4;
@@ -10664,7 +10664,7 @@
},
/obj/structure/window/reinforced,
/obj/effect/spawner/lootdrop/aimodule_neutral,
-/obj/item/aiModule/core/full/custom,
+/obj/item/ai_module/core/full/custom,
/obj/machinery/flasher{
id = "AI";
pixel_y = 24
@@ -10687,10 +10687,10 @@
pixel_y = 24
},
/obj/effect/spawner/lootdrop/aimodule_harmful,
-/obj/item/aiModule/supplied/oxygen,
-/obj/item/aiModule/supplied/protectStation,
-/obj/item/aiModule/zeroth/oneHuman,
-/obj/item/aiModule/reset/purge,
+/obj/item/ai_module/supplied/oxygen,
+/obj/item/ai_module/supplied/protectStation,
+/obj/item/ai_module/zeroth/oneHuman,
+/obj/item/ai_module/reset/purge,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
"aMJ" = (
@@ -11036,7 +11036,7 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/item/aiModule/supplied/quarantine,
+/obj/item/ai_module/supplied/quarantine,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
"aPu" = (
@@ -11068,7 +11068,7 @@
/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/item/aiModule/supplied/freeform,
+/obj/item/ai_module/supplied/freeform,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai_upload)
"aPy" = (
@@ -11136,7 +11136,7 @@
/area/maintenance/starboard/fore)
"aQz" = (
/obj/structure/table,
-/obj/item/aiModule/reset,
+/obj/item/ai_module/reset,
/obj/machinery/light{
dir = 8
},
@@ -60295,7 +60295,7 @@
"kbk" = (
/obj/structure/table,
/obj/item/aicard,
-/obj/item/aiModule/reset,
+/obj/item/ai_module/reset,
/turf/open/floor/plasteel/dark,
/area/engineering/storage/tech)
"kbS" = (
diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm
index fb77051142..3ebb28e9d5 100644
--- a/_maps/map_files/OmegaStation/OmegaStation.dmm
+++ b/_maps/map_files/OmegaStation/OmegaStation.dmm
@@ -2402,7 +2402,7 @@
lootcount = 2;
lootdoubles = 0
},
-/obj/item/aiModule/supplied/oxygen{
+/obj/item/ai_module/supplied/oxygen{
pixel_x = -3;
pixel_y = -3
},
@@ -2794,12 +2794,12 @@
req_access_txt = "20"
},
/obj/structure/window/reinforced,
-/obj/item/aiModule/core/freeformcore{
+/obj/item/ai_module/core/freeformcore{
pixel_x = 3;
pixel_y = 3
},
-/obj/item/aiModule/core/full/custom,
-/obj/item/aiModule/core/full/asimov{
+/obj/item/ai_module/core/full/custom,
+/obj/item/ai_module/core/full/asimov{
pixel_x = -3;
pixel_y = -3
},
@@ -2827,12 +2827,12 @@
req_access_txt = "20"
},
/obj/structure/window/reinforced,
-/obj/item/aiModule/supplied/protectStation{
+/obj/item/ai_module/supplied/protectStation{
pixel_x = 3;
pixel_y = 3
},
-/obj/item/aiModule/zeroth/oneHuman,
-/obj/item/aiModule/reset/purge{
+/obj/item/ai_module/zeroth/oneHuman,
+/obj/item/ai_module/reset/purge{
pixel_x = -3;
pixel_y = -3
},
@@ -3698,7 +3698,7 @@
/area/command/bridge)
"agX" = (
/obj/structure/table/reinforced,
-/obj/item/aiModule/reset{
+/obj/item/ai_module/reset{
pixel_x = 3;
pixel_y = 3
},
@@ -3709,7 +3709,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 4
},
-/obj/item/aiModule/supplied/freeform,
+/obj/item/ai_module/supplied/freeform,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/command/nuke_storage)
"agY" = (
@@ -3766,7 +3766,7 @@
/area/ai_monitored/command/nuke_storage)
"ahd" = (
/obj/structure/table/reinforced,
-/obj/item/aiModule/supplied/quarantine,
+/obj/item/ai_module/supplied/quarantine,
/obj/item/radio/intercom{
broadcasting = 1;
frequency = 1447;
diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm
index 207b47c096..a388f9d58d 100644
--- a/_maps/map_files/PubbyStation/PubbyStation.dmm
+++ b/_maps/map_files/PubbyStation/PubbyStation.dmm
@@ -11360,13 +11360,13 @@
/area/command/bridge)
"aCG" = (
/obj/structure/table,
-/obj/item/aiModule/supplied/quarantine,
+/obj/item/ai_module/supplied/quarantine,
/obj/machinery/camera/motion{
c_tag = "AI Upload Port";
dir = 4;
network = list("aiupload")
},
-/obj/item/aiModule/reset,
+/obj/item/ai_module/reset,
/obj/machinery/flasher{
id = "brigentry";
pixel_x = -28
@@ -11417,7 +11417,7 @@
/area/ai_monitored/turret_protected/ai_upload)
"aCM" = (
/obj/structure/table,
-/obj/item/aiModule/supplied/freeform,
+/obj/item/ai_module/supplied/freeform,
/obj/machinery/camera/motion{
c_tag = "AI Upload Starboard";
dir = 8;
@@ -12278,9 +12278,9 @@
/area/command/bridge)
"aED" = (
/obj/structure/table,
-/obj/item/aiModule/core/full/asimov,
+/obj/item/ai_module/core/full/asimov,
/obj/effect/spawner/lootdrop/aimodule_harmless,
-/obj/item/aiModule/core/freeformcore,
+/obj/item/ai_module/core/freeformcore,
/obj/machinery/door/window{
base_state = "right";
dir = 4;
@@ -12289,7 +12289,7 @@
req_access_txt = "20"
},
/obj/effect/spawner/lootdrop/aimodule_neutral,
-/obj/item/aiModule/core/full/custom,
+/obj/item/ai_module/core/full/custom,
/obj/structure/window/reinforced{
dir = 1;
pixel_y = 1
@@ -12336,16 +12336,16 @@
/area/ai_monitored/turret_protected/ai_upload)
"aEI" = (
/obj/structure/table,
-/obj/item/aiModule/supplied/oxygen,
-/obj/item/aiModule/zeroth/oneHuman,
+/obj/item/ai_module/supplied/oxygen,
+/obj/item/ai_module/zeroth/oneHuman,
/obj/machinery/door/window{
dir = 8;
name = "High-Risk Modules";
req_access_txt = "20"
},
-/obj/item/aiModule/reset/purge,
+/obj/item/ai_module/reset/purge,
/obj/effect/spawner/lootdrop/aimodule_harmful,
-/obj/item/aiModule/supplied/protectStation,
+/obj/item/ai_module/supplied/protectStation,
/obj/structure/window/reinforced{
dir = 1;
pixel_y = 1
@@ -40417,7 +40417,7 @@
pixel_x = -26
},
/obj/item/aicard,
-/obj/item/aiModule/reset,
+/obj/item/ai_module/reset,
/obj/item/assembly/flash/handheld,
/obj/effect/turf_decal/tile/green{
dir = 1
diff --git a/_maps/map_files/Snaxi/Snaxi.dmm b/_maps/map_files/Snaxi/Snaxi.dmm
index 51b0cdb586..c5d156bde2 100644
--- a/_maps/map_files/Snaxi/Snaxi.dmm
+++ b/_maps/map_files/Snaxi/Snaxi.dmm
@@ -21154,9 +21154,9 @@
/area/security/courtroom)
"grZ" = (
/obj/structure/table,
-/obj/item/aiModule/core/full/custom,
-/obj/item/aiModule/core/freeformcore,
-/obj/item/aiModule/core/full/asimov,
+/obj/item/ai_module/core/full/custom,
+/obj/item/ai_module/core/freeformcore,
+/obj/item/ai_module/core/full/asimov,
/obj/effect/spawner/lootdrop/aimodule_harmless,
/obj/effect/spawner/lootdrop/aimodule_neutral,
/obj/machinery/camera/motion{
@@ -32087,10 +32087,10 @@
req_access_txt = "20"
},
/obj/structure/table,
-/obj/item/aiModule/reset/purge,
-/obj/item/aiModule/zeroth/oneHuman,
-/obj/item/aiModule/supplied/protectStation,
-/obj/item/aiModule/supplied/oxygen,
+/obj/item/ai_module/reset/purge,
+/obj/item/ai_module/zeroth/oneHuman,
+/obj/item/ai_module/supplied/protectStation,
+/obj/item/ai_module/supplied/oxygen,
/obj/effect/spawner/lootdrop/aimodule_harmful,
/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai_upload)
@@ -37565,7 +37565,7 @@
"qUF" = (
/obj/structure/table,
/obj/item/aicard,
-/obj/item/aiModule/reset,
+/obj/item/ai_module/reset,
/obj/item/assembly/flash/handheld,
/obj/item/assembly/flash/handheld,
/obj/item/clothing/gloves/color/yellow,
@@ -43656,9 +43656,9 @@
/area/service/hydroponics)
"uVD" = (
/obj/structure/table,
-/obj/item/aiModule/reset,
-/obj/item/aiModule/supplied/quarantine,
-/obj/item/aiModule/supplied/freeform,
+/obj/item/ai_module/reset,
+/obj/item/ai_module/supplied/quarantine,
+/obj/item/ai_module/supplied/freeform,
/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai_upload)
"uWb" = (
diff --git a/_maps/map_files/SpookyStation/SpookyStation.dmm b/_maps/map_files/SpookyStation/SpookyStation.dmm
index c8fdb504b4..586c4a0e27 100644
--- a/_maps/map_files/SpookyStation/SpookyStation.dmm
+++ b/_maps/map_files/SpookyStation/SpookyStation.dmm
@@ -9143,11 +9143,6 @@
/obj/machinery/light/small,
/turf/open/floor/plasteel/cafeteria,
/area/eventmap/inside)
-"aAr" = (
-/obj/item/disk/tech_disk/debug,
-/obj/machinery/light/floor,
-/turf/open/floor/plasteel/dark,
-/area/eventmap/mountaininside)
"aAs" = (
/obj/structure/noticeboard{
dir = 1;
@@ -9439,11 +9434,6 @@
icon_state = "bus"
},
/area/shuttle/arrival)
-"aBg" = (
-/obj/machinery/light/floor,
-/obj/machinery/telecomms/broadcaster,
-/turf/open/floor/plasteel/dark,
-/area/eventmap/mountaininside)
"aBh" = (
/obj/structure/window/reinforced/spawner/north,
/turf/open/floor/plasteel/dark,
@@ -9596,13 +9586,6 @@
/obj/item/bedsheet/pirate,
/turf/open/floor/wood,
/area/eventmap/inside)
-"aBF" = (
-/obj/machinery/telecomms/allinone/indestructable{
- freq_listening = list(1347,1349,1351,1353,1355,1357,1359,1447)
- },
-/obj/machinery/light/floor,
-/turf/open/floor/plasteel/dark,
-/area/eventmap/mountaininside)
"aBG" = (
/obj/machinery/nanite_chamber,
/turf/open/floor/circuit/off,
@@ -9856,10 +9839,7 @@
/obj/machinery/light{
dir = 4
},
-/obj/structure/closet/crate,
-/obj/item/clothing/neck/devilwings,
-/obj/item/clothing/gloves/bracer,
-/obj/item/clothing/accessory/skullcodpiece,
+/obj/machinery/gear_painter,
/turf/open/floor/wood,
/area/eventmap/inside)
"aCr" = (
@@ -10013,11 +9993,6 @@
icon_state = "sepia"
},
/area/eventmap/inside)
-"aCQ" = (
-/obj/item/aiModule/reset/purge,
-/obj/machinery/light/floor,
-/turf/open/floor/plasteel/dark,
-/area/eventmap/mountaininside)
"aCR" = (
/obj/effect/landmark/start/head_of_security,
/turf/open/floor/plasteel{
@@ -10690,10 +10665,6 @@
icon_state = "wood-broken5"
},
/area/eventmap/inside)
-"aEO" = (
-/obj/machinery/light/floor,
-/turf/open/floor/plasteel/dark,
-/area/eventmap/mountaininside)
"aEP" = (
/obj/structure/table/reinforced,
/obj/machinery/door/firedoor,
@@ -11248,11 +11219,6 @@
/obj/item/bedsheet/hop,
/turf/open/floor/wood,
/area/eventmap/mountaininside)
-"aGC" = (
-/obj/item/aiModule/supplied/freeform,
-/obj/machinery/light/floor,
-/turf/open/floor/plasteel/dark,
-/area/eventmap/mountaininside)
"aGD" = (
/obj/structure/flora/tree/spookytime,
/turf/open/floor/spooktime/nonspooktimegrass,
@@ -12454,11 +12420,6 @@
/obj/item/storage/fancy/candle_box,
/turf/open/floor/wood,
/area/eventmap/inside)
-"aJY" = (
-/obj/machinery/ore_silo,
-/obj/machinery/light/floor,
-/turf/open/floor/plasteel/dark,
-/area/eventmap/mountaininside)
"aJZ" = (
/obj/item/reagent_containers/food/condiment/saltshaker,
/obj/item/reagent_containers/food/condiment/peppermill,
@@ -12528,11 +12489,6 @@
},
/turf/open/floor/carpet,
/area/eventmap/inside)
-"aKl" = (
-/obj/effect/landmark/start/ai,
-/obj/machinery/light/floor,
-/turf/open/floor/plasteel/dark,
-/area/eventmap/mountaininside)
"aKm" = (
/obj/structure/chair/sofa/left,
/obj/effect/landmark/start/assistant,
@@ -12549,46 +12505,6 @@
},
/turf/open/floor/carpet,
/area/eventmap/inside)
-"aKp" = (
-/obj/machinery/light/floor,
-/obj/item/stack/sheet/glass/fifty{
- amount = 10000;
- max_amount = 10000
- },
-/obj/item/stack/sheet/bluespace_crystal{
- amount = 10000;
- max_amount = 10000
- },
-/obj/item/stack/sheet/metal{
- amount = 10000;
- max_amount = 10000
- },
-/obj/item/stack/sheet/mineral/diamond{
- amount = 10000;
- max_amount = 10000
- },
-/obj/item/stack/sheet/mineral/gold{
- amount = 10000;
- max_amount = 10000
- },
-/obj/item/stack/sheet/mineral/plasma{
- amount = 10000;
- max_amount = 10000
- },
-/obj/item/stack/sheet/mineral/silver{
- amount = 10000;
- max_amount = 10000
- },
-/obj/item/stack/sheet/mineral/titanium{
- amount = 10000;
- max_amount = 10000
- },
-/obj/item/stack/sheet/mineral/uranium{
- amount = 10000;
- max_amount = 10000
- },
-/turf/open/floor/plasteel/dark,
-/area/eventmap/mountaininside)
"aKq" = (
/turf/open/floor/spooktime/cobble/roadsideS,
/area/eventmap/outside)
@@ -12615,6 +12531,9 @@
/obj/item/clothing/head/beret,
/obj/item/clothing/head/bowler,
/obj/item/clothing/head/fedora,
+/obj/item/clothing/accessory/skullcodpiece,
+/obj/item/clothing/neck/devilwings,
+/obj/item/clothing/gloves/bracer,
/turf/open/floor/wood,
/area/eventmap/inside)
"aKv" = (
@@ -13786,14 +13705,6 @@
},
/turf/open/floor/plasteel,
/area/eventmap/inside)
-"aNO" = (
-/obj/machinery/light/floor,
-/obj/machinery/telecomms/bus{
- appearance_flags = "bus mainframe (NULL)";
- freq_listening = list(1347,1349,1351,1353,1355,1357,1359,1447)
- },
-/turf/open/floor/plasteel/dark,
-/area/eventmap/mountaininside)
"aNP" = (
/obj/effect/turf_decal/tile/brown,
/obj/effect/turf_decal/tile/brown{
@@ -14060,15 +13971,6 @@
"aOy" = (
/turf/open/floor/spooktime/beach/coasts/watercoastNW,
/area/eventmap/outside)
-"aOz" = (
-/obj/machinery/light/floor,
-/obj/machinery/telecomms/processor{
- appearance_flags = "processor unit";
- freq_listening = list(1347,1349,1351,1353,1355,1357,1359,1447);
- name = "processor unit (NULL)"
- },
-/turf/open/floor/plasteel/dark,
-/area/eventmap/mountaininside)
"aOA" = (
/obj/structure/cable/white{
icon_state = "2-8"
@@ -14387,15 +14289,6 @@
/obj/machinery/microwave,
/turf/open/floor/wood,
/area/eventmap/mountaininside)
-"aPD" = (
-/obj/machinery/rnd/production/protolathe/department/science{
- acted_explosions = "Dumbasses";
- allowed_department_flags = 126;
- name = "department protolathe (Dumb powergamers)"
- },
-/obj/machinery/light/floor,
-/turf/open/floor/plasteel/dark,
-/area/eventmap/mountaininside)
"aPE" = (
/obj/structure/table/wood/fancy/green,
/obj/item/reagent_containers/food/snacks/pizza/vegetable,
@@ -15020,11 +14913,6 @@
"aRP" = (
/turf/open/floor/wood/damturf/broken2,
/area/eventmap/inside)
-"aRQ" = (
-/obj/machinery/computer/rdconsole/core,
-/obj/machinery/light/floor,
-/turf/open/floor/plasteel/dark,
-/area/eventmap/mountaininside)
"aRS" = (
/turf/open/floor/plasteel/damturf/damage4,
/area/eventmap/mountaininside)
@@ -15376,11 +15264,6 @@
},
/turf/open/floor/spooktime/spooktimegrass,
/area/eventmap/outside)
-"aTR" = (
-/obj/machinery/light/floor,
-/obj/machinery/telecomms/message_server,
-/turf/open/floor/plasteel/dark,
-/area/eventmap/mountaininside)
"aTS" = (
/obj/structure/sign/departments/restroom{
pixel_y = 32
@@ -15449,13 +15332,6 @@
},
/turf/open/floor/plating,
/area/eventmap/mountain)
-"aUo" = (
-/obj/machinery/light/floor,
-/obj/machinery/telecomms/processor{
- freq_listening = list(1359,1441)
- },
-/turf/open/floor/plasteel/dark,
-/area/eventmap/mountaininside)
"aUr" = (
/turf/open/floor/plasteel/damturf/platdmg1,
/area/eventmap/mountaininside)
@@ -15730,13 +15606,6 @@
/obj/item/bedsheet/hos,
/turf/open/floor/wood,
/area/eventmap/mountaininside)
-"aWK" = (
-/obj/machinery/light/floor,
-/obj/machinery/telecomms/bus{
- freq_listening = list(1459,1441)
- },
-/turf/open/floor/plasteel/dark,
-/area/eventmap/mountaininside)
"aWL" = (
/obj/structure/closet/gimmick/russian,
/turf/open/floor/spooktime/dirtpatch,
@@ -15783,6 +15652,9 @@
/obj/item/clothing/head/bearpelt,
/obj/item/clothing/head/beret,
/obj/item/clothing/head/fedora,
+/obj/item/clothing/accessory/skullcodpiece,
+/obj/item/clothing/gloves/bracer,
+/obj/item/clothing/neck/devilwings,
/turf/open/floor/wood,
/area/eventmap/inside)
"aWY" = (
@@ -15795,16 +15667,6 @@
"aWZ" = (
/turf/open/floor/spooktime/beach/coasts/innerS,
/area/eventmap/outside)
-"aXa" = (
-/obj/machinery/light/floor,
-/obj/machinery/telecomms/receiver,
-/turf/open/floor/plasteel/dark,
-/area/eventmap/mountaininside)
-"aXh" = (
-/obj/machinery/computer/upload/ai,
-/obj/machinery/light/floor,
-/turf/open/floor/plasteel/dark,
-/area/eventmap/mountaininside)
"aXj" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -16233,6 +16095,13 @@
},
/turf/open/floor/spooktime/cobble,
/area/eventmap/outside)
+"bas" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -35
+ },
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
"baX" = (
/obj/structure/cable/yellow{
icon_state = "1-8"
@@ -16738,6 +16607,1138 @@
},
/turf/open/floor/plasteel,
/area/eventmap/outside)
+"bjJ" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/eventmap/mountaininside)
+"bLA" = (
+/turf/closed/wall/r_wall,
+/area/tcommsat/server)
+"bXE" = (
+/obj/machinery/rnd/production/protolathe/department/science{
+ acted_explosions = "Dumbasses";
+ allowed_department_flags = 126;
+ name = "department protolathe (Dumb powergamers)"
+ },
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"car" = (
+/obj/machinery/telecomms/bus/preset_four,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cjF" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"cvj" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/eventmap/mountaininside)
+"cvE" = (
+/obj/machinery/telecomms/server/presets/command,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"cRF" = (
+/obj/machinery/telecomms/bus/preset_three,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"dbo" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/eventmap/mountaininside)
+"dcr" = (
+/obj/machinery/computer/telecomms/server{
+ dir = 4;
+ network = "tcommsat"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"dgN" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"dgR" = (
+/obj/machinery/telecomms/broadcaster/preset_right,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"dqu" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"dsM" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"dyx" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Server Room";
+ req_access_txt = "61"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"dzl" = (
+/obj/machinery/gear_painter,
+/turf/open/floor/circuit/off,
+/area/eventmap/mountaininside)
+"dBJ" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"egY" = (
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"eAQ" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"eGa" = (
+/obj/machinery/telecomms/broadcaster/preset_left,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"ePO" = (
+/obj/structure/table,
+/obj/item/radio/off,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"eVF" = (
+/obj/item/radio/intercom{
+ dir = 8;
+ freerange = 1;
+ name = "Station Intercom (Telecomms)";
+ pixel_y = 26
+ },
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"eYC" = (
+/obj/structure/table,
+/obj/item/multitool,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"fMI" = (
+/obj/machinery/telecomms/receiver/preset_left,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"fRV" = (
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Telecomms Admin";
+ departmentType = 5;
+ name = "Telecomms RC";
+ pixel_x = 30
+ },
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"fSV" = (
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"fXv" = (
+/obj/structure/rack,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"giz" = (
+/obj/machinery/telecomms/hub/preset,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"gkE" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/machinery/light,
+/obj/structure/filingcabinet/chestdrawer,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"gra" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/tcommsat/server)
+"gIM" = (
+/obj/machinery/computer/telecomms/server{
+ dir = 4;
+ network = "tcommsat"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"gRm" = (
+/obj/machinery/telecomms/bus/preset_four,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"gUn" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/tcommsat/server";
+ dir = 1;
+ name = "Telecomms Server APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/tcommsat/server)
+"hbO" = (
+/obj/machinery/telecomms/processor/preset_four,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"hqz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"hvj" = (
+/obj/machinery/telecomms/server/presets/engineering,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"hzN" = (
+/obj/machinery/door/airlock/command/glass{
+ name = "Control Room";
+ req_access_txt = "19; 61"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"hFm" = (
+/obj/machinery/ntnet_relay,
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/eventmap/mountaininside)
+"hPo" = (
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"hWE" = (
+/obj/machinery/telecomms/receiver/preset_right,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"idT" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -35
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"ihd" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/eventmap/mountaininside)
+"ihT" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Server Room";
+ req_access_txt = "61"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"ina" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Server Room";
+ req_access_txt = "61"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"itL" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"iuT" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/tcommsat/server)
+"iuW" = (
+/obj/item/disk/tech_disk/debug,
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"iwi" = (
+/obj/machinery/telecomms/server/presets/security,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"iHS" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/announcement_system,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"iNH" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/eventmap/mountaininside)
+"iNN" = (
+/obj/machinery/camera{
+ c_tag = "Telecomms Server Room";
+ dir = 4;
+ network = list("tcomms")
+ },
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"iPO" = (
+/obj/machinery/telecomms/server/presets/service,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"iTX" = (
+/obj/machinery/power/smes{
+ charge = 5e+006
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/tcommsat/server)
+"iWA" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Server Room";
+ req_access_txt = "61"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"jox" = (
+/obj/machinery/telecomms/processor/preset_two,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"jru" = (
+/obj/machinery/telecomms/processor/preset_one,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"jEF" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/eventmap/mountaininside)
+"jNZ" = (
+/obj/machinery/computer/message_monitor{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"jUY" = (
+/obj/machinery/telecomms/server/presets/science,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"kte" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"kBF" = (
+/obj/structure/closet/emcloset,
+/obj/machinery/camera{
+ c_tag = "Telecomms Monitoring";
+ dir = 8;
+ network = list("tcomms")
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"kDK" = (
+/obj/machinery/telecomms/server/presets/science,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"kRw" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"kWj" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"liD" = (
+/obj/item/radio/intercom{
+ dir = 8;
+ freerange = 1;
+ name = "Station Intercom (Telecomms)";
+ pixel_y = 26
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"liZ" = (
+/obj/item/ai_module/reset/purge,
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"lxA" = (
+/obj/machinery/blackbox_recorder,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"lCx" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"lES" = (
+/obj/structure/table,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"lJN" = (
+/obj/machinery/telecomms/message_server,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"lJV" = (
+/obj/machinery/telecomms/processor/preset_one,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"lRv" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"mpZ" = (
+/obj/machinery/telecomms/bus/preset_three,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"mvm" = (
+/obj/machinery/telecomms/bus/preset_one,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"myC" = (
+/obj/machinery/telecomms/broadcaster/preset_right,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"mDp" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"mJd" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/machinery/ore_silo,
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"mNu" = (
+/obj/machinery/light,
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/eventmap/mountaininside)
+"nxt" = (
+/obj/machinery/telecomms/server/presets/common,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"nOO" = (
+/obj/machinery/telecomms/server/presets/engineering,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"nUS" = (
+/obj/machinery/telecomms/hub/preset,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/eventmap/mountaininside)
+"ooP" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Telecommunications";
+ req_access_txt = "61"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"ouD" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"oBM" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"oLt" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"oPH" = (
+/obj/machinery/telecomms/server/presets/supply,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"oTm" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"paH" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"psG" = (
+/obj/machinery/camera{
+ c_tag = "Telecomms Server Room";
+ dir = 4;
+ network = list("tcomms")
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"pur" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/eventmap/mountaininside)
+"pxt" = (
+/turf/closed/wall/r_wall,
+/area/tcommsat/computer)
+"pDy" = (
+/obj/machinery/telecomms/bus/preset_one,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"pIk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/holopad/secure,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"pOM" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"pYH" = (
+/obj/machinery/power/smes{
+ charge = 5e+006
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/eventmap/mountaininside)
+"qbF" = (
+/obj/machinery/computer/telecomms/monitor{
+ dir = 4;
+ network = "tcommsat"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"qhF" = (
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"qqG" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/eventmap/mountaininside)
+"qsw" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"qtw" = (
+/obj/machinery/light,
+/obj/machinery/computer/upload/ai{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"quU" = (
+/obj/machinery/telecomms/server/presets/medical,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"qyu" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/tcommsat/server)
+"qJf" = (
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/tcommsat/server)
+"qQZ" = (
+/obj/structure/table,
+/obj/item/paper_bin,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/item/pen/fountain,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"qTn" = (
+/obj/machinery/camera{
+ c_tag = "Telecomms Monitoring";
+ dir = 8;
+ network = list("tcomms")
+ },
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"qUm" = (
+/obj/item/ai_module/supplied/freeform,
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"qWJ" = (
+/obj/machinery/telecomms/receiver/preset_right,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"qYa" = (
+/obj/machinery/computer/message_monitor{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"rjg" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/eventmap/mountaininside)
+"rwN" = (
+/obj/machinery/telecomms/receiver/preset_left,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"rxi" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/tcommsat/server)
+"rSf" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/eventmap/mountaininside)
+"rTJ" = (
+/obj/machinery/telecomms/message_server,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"slE" = (
+/obj/effect/landmark/start/ai,
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"ssq" = (
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/eventmap/mountaininside)
+"sCi" = (
+/obj/machinery/telecomms/server/presets/supply,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"sJq" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/eventmap/mountaininside)
+"sJF" = (
+/obj/machinery/telecomms/bus/preset_two,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"sOw" = (
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Telecomms Admin";
+ departmentType = 5;
+ name = "Telecomms RC";
+ pixel_x = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"sZY" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"tHV" = (
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"tTs" = (
+/obj/machinery/telecomms/server/presets/common,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"uaU" = (
+/obj/machinery/telecomms/processor/preset_two,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"ubo" = (
+/obj/machinery/ntnet_relay,
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/tcommsat/server)
+"uhq" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"ukf" = (
+/obj/machinery/computer/telecomms/monitor{
+ dir = 4;
+ network = "tcommsat"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"unw" = (
+/obj/machinery/telecomms/broadcaster/preset_left,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"upB" = (
+/obj/structure/table,
+/obj/item/folder/blue,
+/obj/item/pen/blue,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"uEU" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"uLJ" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/eventmap/mountaininside)
+"uMt" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/tcommsat/server)
+"vdv" = (
+/obj/structure/sign/warning/securearea{
+ desc = "A warning sign which reads 'SERVER ROOM'.";
+ name = "SERVER ROOM"
+ },
+/turf/closed/wall,
+/area/eventmap/mountaininside)
+"vft" = (
+/obj/machinery/status_display/evac,
+/turf/closed/wall,
+/area/tcommsat/computer)
+"vgd" = (
+/obj/machinery/status_display/evac,
+/turf/closed/wall,
+/area/eventmap/mountaininside)
+"voq" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"vFK" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"vMZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"vQI" = (
+/obj/machinery/telecomms/server/presets/security,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"vUD" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = -32
+ },
+/obj/machinery/light,
+/turf/open/floor/circuit/telecomms/mainframe,
+/area/tcommsat/server)
+"vYv" = (
+/obj/machinery/telecomms/bus/preset_two,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"vZx" = (
+/obj/machinery/telecomms/server/presets/service,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"wcR" = (
+/obj/item/paper/crumpled/bloody{
+ name = "ominous note";
+ info = "You're not supposed to be here."
+ },
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"wxX" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"wzn" = (
+/obj/structure/table,
+/obj/item/multitool,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"wAF" = (
+/obj/machinery/telecomms/server/presets/command,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"wCg" = (
+/obj/machinery/telecomms/server/presets/medical,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"wHZ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/tcommsat/computer)
+"wYP" = (
+/obj/structure/sign/warning/securearea{
+ desc = "A warning sign which reads 'SERVER ROOM'.";
+ name = "SERVER ROOM"
+ },
+/turf/closed/wall,
+/area/tcommsat/computer)
+"xmW" = (
+/obj/machinery/gear_painter,
+/turf/open/floor/carpet/blue,
+/area/eventmap/inside)
+"xzS" = (
+/obj/machinery/telecomms/processor/preset_three,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"xAi" = (
+/obj/machinery/computer/rdconsole/core{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"xDg" = (
+/obj/machinery/telecomms/processor/preset_three,
+/turf/open/floor/plasteel/dark,
+/area/eventmap/mountaininside)
+"xEk" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/eventmap/mountaininside)
+"xYl" = (
+/obj/item/stack/sheet/glass/fifty{
+ amount = 10000;
+ max_amount = 10000
+ },
+/obj/item/stack/sheet/bluespace_crystal{
+ amount = 10000;
+ max_amount = 10000
+ },
+/obj/item/stack/sheet/metal{
+ amount = 10000;
+ max_amount = 10000
+ },
+/obj/item/stack/sheet/mineral/diamond{
+ amount = 10000;
+ max_amount = 10000
+ },
+/obj/item/stack/sheet/mineral/gold{
+ amount = 10000;
+ max_amount = 10000
+ },
+/obj/item/stack/sheet/mineral/plasma{
+ amount = 10000;
+ max_amount = 10000
+ },
+/obj/item/stack/sheet/mineral/silver{
+ amount = 10000;
+ max_amount = 10000
+ },
+/obj/item/stack/sheet/mineral/titanium{
+ amount = 10000;
+ max_amount = 10000
+ },
+/obj/item/stack/sheet/mineral/uranium{
+ amount = 10000;
+ max_amount = 10000
+ },
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"xYn" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/tcommsat/computer)
+"yhC" = (
+/obj/machinery/telecomms/processor/preset_four,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"yjc" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/announcement_system,
+/turf/open/floor/plasteel,
+/area/eventmap/mountaininside)
+"ykK" = (
+/obj/machinery/blackbox_recorder,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
(1,1,1) = {"
aJx
@@ -33664,7 +34665,7 @@ aJe
aZt
aCG
aGh
-aZt
+dzl
aZt
aZt
aZt
@@ -33921,7 +34922,7 @@ aZt
aZt
aCG
aGh
-aZt
+dzl
aZt
aUW
aZt
@@ -41536,7 +42537,7 @@ aqE
aqE
aqE
aIK
-aqI
+xmW
aqr
agN
aOE
@@ -49375,7 +50376,7 @@ aac
aac
aac
aac
-aJx
+aac
aJx
"}
(128,1,1) = {"
@@ -49631,8 +50632,8 @@ aac
aac
aac
aac
-aJx
-aJx
+aac
+aac
aJx
"}
(129,1,1) = {"
@@ -49888,8 +50889,8 @@ aac
aac
aac
aac
-aJx
-aJx
+aac
+aac
aJx
"}
(130,1,1) = {"
@@ -50143,10 +51144,10 @@ aac
aac
aac
aac
-aJx
-aJx
-aJx
-aJx
+aac
+aac
+aac
+aac
aJx
"}
(131,1,1) = {"
@@ -50399,12 +51400,12 @@ aac
aac
aac
aac
+aac
+aac
+aac
+aac
+aac
aJx
-azQ
-azQ
-azQ
-azQ
-azQ
"}
(132,1,1) = {"
aJx
@@ -50655,13 +51656,13 @@ aRW
aac
aac
aac
+aac
+aac
+aac
+aac
+aac
+aac
aJx
-azQ
-aOz
-aEO
-aEO
-aUo
-azQ
"}
(133,1,1) = {"
aJx
@@ -50911,14 +51912,14 @@ aRW
aRW
aac
aac
+aac
+aac
+aac
+aac
+aac
+aac
+aac
aJx
-aJx
-azQ
-aNO
-aEO
-aEO
-aXa
-azQ
"}
(134,1,1) = {"
aJx
@@ -51168,14 +52169,14 @@ aRW
aRW
aac
aac
+aac
+aac
+aac
+aac
+aac
+aac
+aac
aJx
-azQ
-azQ
-aTR
-aEO
-aEO
-aBg
-azQ
"}
(135,1,1) = {"
aJx
@@ -51425,14 +52426,14 @@ aRW
aRW
aRW
aac
+aac
+aac
+aac
+aac
+aac
+aac
+aac
aJx
-azQ
-aEO
-aEO
-aGC
-aCQ
-aWK
-azQ
"}
(136,1,1) = {"
aJx
@@ -51682,14 +52683,14 @@ aRW
aRW
aRU
aac
+aac
+aac
+aac
+aac
+aac
+aac
+aac
aJx
-azQ
-aBF
-aEO
-aEO
-aXh
-azQ
-azQ
"}
(137,1,1) = {"
aJx
@@ -51939,13 +52940,13 @@ aRW
aRW
aRW
aac
-aJx
-azQ
-aEO
-aEO
-aEO
-aKl
-azQ
+aac
+aac
+aac
+aac
+aac
+aac
+aac
aJx
"}
(138,1,1) = {"
@@ -52196,13 +53197,13 @@ aRW
aRW
aac
aac
-aJx
-azQ
-aRQ
-aAr
-aEO
-aKp
-azQ
+aac
+aac
+aac
+aac
+aac
+aac
+aac
aJx
"}
(139,1,1) = {"
@@ -52453,13 +53454,13 @@ aRW
aRW
aac
aac
-aJx
-azQ
-aPD
-aEO
-aEO
-aJY
-azQ
+aac
+aac
+aac
+aac
+aac
+aac
+aac
aJx
"}
(140,1,1) = {"
@@ -52710,13 +53711,13 @@ aRW
aRW
aac
aac
-aJx
-azQ
-azQ
-azQ
-azQ
-azQ
-azQ
+aac
+aac
+aac
+aac
+aac
+aac
+aac
aJx
"}
(141,1,1) = {"
@@ -52967,13 +53968,13 @@ aRW
aRW
aac
aac
-aJx
-aJx
-aJx
-aJx
-aJx
-aJx
-aJx
+aac
+aac
+aac
+aac
+aac
+aac
+aac
aJx
"}
(142,1,1) = {"
@@ -53225,12 +54226,12 @@ aRW
aac
aac
aac
-aJx
-aJx
-aJx
-aJx
-aJx
-aJx
+aac
+aac
+aac
+aac
+aac
+aac
aJx
"}
(143,1,1) = {"
@@ -53483,11 +54484,11 @@ aRU
aac
aac
aac
-aJx
-aJx
-aJx
-aJx
-aJx
+aac
+aac
+aac
+aac
+aac
aJx
"}
(144,1,1) = {"
@@ -53742,9 +54743,9 @@ aac
aac
aac
aac
-aJx
-aJx
-aJx
+aac
+aac
+aac
aJx
"}
(145,1,1) = {"
@@ -54000,8 +55001,8 @@ aac
aac
aac
aac
-aJx
-aJx
+aac
+aac
aJx
"}
(146,1,1) = {"
@@ -54257,8 +55258,8 @@ aRU
aac
aac
aac
-aJx
-aJx
+aac
+aac
aJx
"}
(147,1,1) = {"
@@ -54511,11 +55512,11 @@ aRW
aRW
aRW
aRW
-aRW
aac
aac
aac
-aJx
+aac
+aac
aJx
"}
(148,1,1) = {"
@@ -78164,18 +79165,18 @@ aJx
"}
(240,1,1) = {"
aJx
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
+aJx
+aJx
+aJx
+aJx
+aJx
+aJx
+aJx
+aJx
+aJx
+aJx
+aJx
+aJx
aac
aac
aac
@@ -78421,18 +79422,18 @@ aJx
"}
(241,1,1) = {"
aJx
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
+aJx
+aJx
+aJx
+aJx
+aJx
+aJx
+aJx
+aJx
+aJx
+aJx
+aJx
+aJx
aac
aac
aac
@@ -78677,19 +79678,19 @@ aac
aJx
"}
(242,1,1) = {"
+azQ
+azQ
+azQ
+azQ
+azQ
+azQ
+azQ
+azQ
+azQ
+azQ
+azQ
+aJx
aJx
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
aac
aac
aac
@@ -78918,35 +79919,35 @@ aac
aac
aac
aac
-aac
-aac
-aac
-aac
-ags
-ags
-aac
-aac
-aac
-aac
-aac
+bLA
+bLA
+bLA
+bLA
+bLA
+bLA
+bLA
+bLA
+bLA
+bLA
+bLA
aac
aac
aJx
"}
(243,1,1) = {"
+azQ
+ssq
+ssq
+egY
+egY
+hFm
+iNN
+egY
+ssq
+ssq
+azQ
+aJx
aJx
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
aac
aac
aac
@@ -79175,35 +80176,35 @@ aac
aac
aac
aac
-aac
-aac
-aac
-ags
-aZS
-aZS
-aac
-aac
-aac
-aac
-aac
+bLA
+qJf
+qJf
+hPo
+hPo
+ubo
+psG
+hPo
+qJf
+qJf
+bLA
aac
aac
aJx
"}
(244,1,1) = {"
+azQ
+hvj
+nxt
+lxA
+egY
+pYH
+dqu
+lJN
+oPH
+vZx
+azQ
+aJx
aJx
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
aac
aac
aac
@@ -79432,35 +80433,35 @@ aac
aac
aac
aac
-aac
-aac
-ags
-ags
-aZS
-aac
-aac
-aac
-aac
-aac
-aac
+bLA
+nOO
+tTs
+ykK
+hPo
+iTX
+pOM
+rTJ
+sCi
+iPO
+bLA
aac
aac
aJx
"}
(245,1,1) = {"
+azQ
+gRm
+hbO
+dgR
+uLJ
+bjJ
+ssq
+eGa
+vYv
+uaU
+azQ
+aJx
aJx
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
aac
aac
aac
@@ -79689,35 +80690,35 @@ aac
aac
aac
aac
-aac
-ags
-ags
-ags
-aZS
-aac
-aac
-aac
-aac
-aac
-aac
+bLA
+car
+yhC
+myC
+iuT
+uMt
+qJf
+unw
+sJF
+jox
+bLA
aac
aac
aJx
"}
(246,1,1) = {"
+azQ
+rSf
+sJq
+sJq
+rjg
+nUS
+ssq
+ssq
+ssq
+mNu
+azQ
+aJx
aJx
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
aac
aac
aac
@@ -79946,35 +80947,35 @@ aac
aac
ags
ags
-ags
-ags
-ags
-ags
-aac
-aac
-aac
-aac
-aac
-aac
-aac
+bLA
+gUn
+rxi
+rxi
+qyu
+giz
+qJf
+qJf
+qJf
+vUD
+bLA
aac
aac
aJx
"}
(247,1,1) = {"
+azQ
+xDg
+cRF
+qWJ
+cvj
+ssq
+ssq
+rwN
+jru
+pDy
+azQ
+aJx
aJx
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
aac
aac
aac
@@ -80203,22 +81204,34 @@ ags
ags
ags
aac
-aac
-ags
-ags
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
+bLA
+xzS
+mpZ
+hWE
+gra
+qJf
+qJf
+fMI
+lJV
+mvm
+bLA
aac
aac
aJx
"}
(248,1,1) = {"
+azQ
+iwi
+cvE
+egY
+lCx
+ssq
+egY
+egY
+quU
+kDK
+azQ
+aJx
aJx
aac
aac
@@ -80329,18 +81342,6 @@ aac
aac
aac
aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
ags
ags
ags
@@ -80460,35 +81461,35 @@ ags
aac
aac
aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
+bLA
+vQI
+wAF
+hPo
+oBM
+qJf
+hPo
+hPo
+wCg
+jUY
+bLA
aac
aac
aJx
"}
(249,1,1) = {"
+azQ
+ssq
+ssq
+egY
+iNH
+ihT
+pur
+egY
+ssq
+ssq
+azQ
+aJx
aJx
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
aac
aac
aac
@@ -80717,35 +81718,35 @@ aac
aac
aac
aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
+bLA
+qJf
+qJf
+hPo
+uhq
+iWA
+qsw
+hPo
+qJf
+qJf
+bLA
aac
aac
aJx
"}
(250,1,1) = {"
+azQ
+jEF
+xEk
+xEk
+ihd
+cjF
+qqG
+xEk
+xEk
+dbo
+azQ
+aJx
aJx
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
aac
aac
aac
@@ -80974,22 +81975,34 @@ aac
aac
aac
aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
+pxt
+mDp
+vFK
+vFK
+kRw
+dBJ
+kWj
+vFK
+vFK
+lRv
+pxt
aac
aac
aJx
"}
(251,1,1) = {"
+azQ
+mJd
+jNZ
+gIM
+vgd
+ina
+vdv
+wzn
+qbF
+ouD
+azQ
+aJx
aJx
aac
aac
@@ -81143,18 +82156,6 @@ aac
aac
aac
aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
ags
ags
ags
@@ -81231,22 +82232,34 @@ aac
aac
aac
aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
+pxt
+lES
+qYa
+dcr
+vft
+dyx
+wYP
+eYC
+ukf
+ePO
+pxt
aac
aac
aJx
"}
(252,1,1) = {"
+azQ
+eVF
+kte
+aZA
+aZA
+voq
+aZA
+aZA
+kte
+bas
+azQ
+aJx
aJx
aac
aac
@@ -81403,18 +82416,6 @@ aac
aac
aac
aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
ags
ags
ags
@@ -81488,22 +82489,34 @@ aac
aac
aac
aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
+pxt
+liD
+eAQ
+itL
+dgN
+wxX
+fSV
+wHZ
+oTm
+idT
+pxt
aac
aac
aJx
"}
(253,1,1) = {"
+azQ
+yjc
+aZA
+iuW
+aZA
+aZA
+wcR
+aZA
+qUm
+qtw
+azQ
+aJx
aJx
aac
aac
@@ -81733,34 +82746,34 @@ aac
aac
aac
aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
+pxt
+iHS
+wHZ
+dsM
+hzN
+vMZ
+pIk
+hqz
+oLt
+gkE
+pxt
aac
aac
aJx
"}
(254,1,1) = {"
+azQ
+bXE
+xYl
+xAi
+aZA
+qTn
+fRV
+qhF
+liZ
+slE
+azQ
+aJx
aJx
aac
aac
@@ -81990,34 +83003,33 @@ aac
aac
aac
aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
-aac
+pxt
+pxt
+qQZ
+upB
+sZY
+kBF
+sOw
+tHV
+uEU
+fXv
+pxt
aac
aac
aJx
"}
(255,1,1) = {"
+azQ
+azQ
+azQ
+azQ
+azQ
+azQ
+azQ
+azQ
+azQ
+azQ
+azQ
aJx
aJx
aJx
@@ -82248,28 +83260,17 @@ aJx
aJx
aJx
aJx
-aJx
-aJx
-aJx
-aJx
-aJx
-aJx
-aJx
-aJx
-aJx
-aJx
-aJx
-aJx
-aJx
-aJx
-aJx
-aJx
-aJx
-aJx
-aJx
-aJx
-aJx
-aJx
+paH
+pxt
+pxt
+pxt
+pxt
+pxt
+pxt
+xYn
+ooP
+pxt
+pxt
aJx
aJx
aJx
diff --git a/_maps/map_files/SyndicateStation/SyndicateBoxStation.dmm b/_maps/map_files/SyndicateStation/SyndicateBoxStation.dmm
new file mode 100644
index 0000000000..f2352e5bdb
--- /dev/null
+++ b/_maps/map_files/SyndicateStation/SyndicateBoxStation.dmm
@@ -0,0 +1,131047 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aaa" = (
+/turf/open/space/basic,
+/area/space)
+"aab" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/table,
+/obj/machinery/chem_dispenser/drinks/beer{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aac" = (
+/obj/machinery/camera{
+ c_tag = "Bar";
+ dir = 8
+ },
+/obj/structure/table,
+/obj/machinery/chem_dispenser/drinks{
+ dir = 8
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aad" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"aae" = (
+/obj/effect/landmark/carpspawn,
+/turf/open/space,
+/area/space)
+"aaf" = (
+/obj/structure/lattice,
+/turf/open/space,
+/area/space/nearstation)
+"aag" = (
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/space/nearstation)
+"aah" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"aam" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"aan" = (
+/obj/structure/closet/crate/bin,
+/obj/effect/spawner/lootdrop/prison_contraband,
+/obj/item/trash/sosjerky,
+/obj/item/trash/boritos,
+/obj/item/trash/can,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/radio/intercom{
+ desc = "Talk through this. It looks like it has been modified to not broadcast.";
+ name = "Prison Intercom (General)";
+ pixel_x = -27;
+ pixel_y = -27;
+ prison_radio = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"aao" = (
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"aap" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"aat" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aau" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"aav" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aax" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"aay" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"aaz" = (
+/obj/machinery/disposal/bin,
+/obj/structure/sign/plaques/deempisi{
+ pixel_x = -28;
+ pixel_y = -4
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "barShutters";
+ name = "bar shutters";
+ pixel_x = 4;
+ pixel_y = 28
+ },
+/obj/machinery/light_switch{
+ name = "Bar Lights";
+ pixel_x = -6;
+ pixel_y = 28
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aaA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"aaC" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/machinery/holopad,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/decal/cleanable/blood/old,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"aaD" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"aaE" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Prison Cafeteria"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"aaF" = (
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"aaG" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"aaH" = (
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"aaI" = (
+/obj/machinery/washing_machine,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
+"aaK" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"aaL" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "hos"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/command/heads_quarters/hos)
+"aaM" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "hos"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/command/heads_quarters/hos)
+"aaN" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"aaO" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "hos"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/command/heads_quarters/hos)
+"aaP" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"aaQ" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/security/warden)
+"aaR" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"aaS" = (
+/obj/structure/grille,
+/obj/structure/lattice,
+/turf/open/space,
+/area/space/nearstation)
+"aaT" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/turf/open/space,
+/area/space/nearstation)
+"aaU" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/security/glass{
+ id_tag = "permaouter";
+ name = "Permabrig Transfer";
+ req_access_txt = "2"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aaV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/security/prison/upper)
+"aaW" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/security/prison/upper)
+"aaY" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/closet/crate/secure/weapon{
+ desc = "A secure clothing crate.";
+ name = "formal uniform crate";
+ req_access = "3"
+ },
+/obj/item/clothing/under/rank/security/officer/formal,
+/obj/item/clothing/under/rank/security/officer/formal,
+/obj/item/clothing/under/rank/security/officer/formal,
+/obj/item/clothing/under/rank/security/officer/formal,
+/obj/item/clothing/under/rank/security/officer/formal,
+/obj/item/clothing/under/rank/security/warden/formal,
+/obj/item/clothing/under/rank/security/head_of_security/formal,
+/obj/item/clothing/suit/armor/navyblue,
+/obj/item/clothing/suit/armor/navyblue,
+/obj/item/clothing/suit/armor/navyblue,
+/obj/item/clothing/suit/armor/navyblue,
+/obj/item/clothing/suit/armor/navyblue,
+/obj/item/clothing/suit/armor/vest/warden/navyblue,
+/obj/item/clothing/suit/armor/hos/navyblue,
+/obj/item/clothing/head/beret/sec/navyofficer,
+/obj/item/clothing/head/beret/sec/navyofficer,
+/obj/item/clothing/head/beret/sec/navyofficer,
+/obj/item/clothing/head/beret/sec/navyofficer,
+/obj/item/clothing/head/beret/sec/navyofficer,
+/obj/item/clothing/head/beret/sec/navywarden,
+/obj/item/clothing/head/beret/sec/navyhos,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"aaZ" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/security/armory)
+"aba" = (
+/obj/structure/lattice,
+/obj/structure/grille/broken,
+/turf/open/space,
+/area/space/nearstation)
+"abb" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"abc" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/security/execution/transfer)
+"abd" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/closed/wall,
+/area/security/execution/transfer)
+"abe" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/security/execution/transfer)
+"abf" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/airlock/grunge{
+ name = "Prison Laundry";
+ wiretypepath = /datum/wires/airlock/security
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"abg" = (
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"abh" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/decal/cleanable/blood/old,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"abi" = (
+/obj/machinery/button/flasher{
+ id = "visitorflash";
+ pixel_x = -6;
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/button/door{
+ id = "visitation";
+ name = "Visitation Shutters";
+ pixel_x = -6;
+ pixel_y = 36;
+ req_access_txt = "2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"abj" = (
+/obj/structure/chair/office{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"abk" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"abl" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"abm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/starboard/aft)
+"abn" = (
+/obj/structure/closet/secure_closet/security/sec,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"abo" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/office)
+"abp" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/security/office)
+"abq" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/command/heads_quarters/hos)
+"abr" = (
+/obj/machinery/computer/security/hos,
+/obj/effect/turf_decal/bot,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/command/heads_quarters/hos)
+"abt" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"abu" = (
+/obj/machinery/door/poddoor{
+ id = "executionspaceblast"
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"abv" = (
+/obj/machinery/camera{
+ c_tag = "Prison Cell Block East";
+ dir = 8;
+ network = list("ss13","prison")
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"abx" = (
+/obj/machinery/camera/motion{
+ c_tag = "Armory External Motion Sensor";
+ dir = 4
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
+/area/ai_monitored/security/armory)
+"abz" = (
+/obj/machinery/light/small{
+ dir = 4;
+ light_color = "#d8b1b1"
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"abA" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "Prison Gate";
+ name = "Prison Lockdown Shutters"
+ },
+/turf/open/floor/plating,
+/area/security/prison)
+"abE" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"abF" = (
+/obj/structure/table,
+/obj/item/flashlight/lamp,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"abG" = (
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
+/area/ai_monitored/security/armory)
+"abH" = (
+/obj/structure/closet/secure_closet/security/sec,
+/obj/effect/turf_decal/bot,
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"abI" = (
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"abJ" = (
+/obj/machinery/vending/wardrobe/sec_wardrobe,
+/obj/effect/turf_decal/bot,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"abK" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
+"abL" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"abN" = (
+/obj/effect/landmark/secequipment,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"abP" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"abQ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/hos)
+"abR" = (
+/obj/machinery/vending/security,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"abS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"abT" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "hos"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/command/heads_quarters/hos)
+"abU" = (
+/obj/structure/table/wood,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/item/gun/ballistic/automatic/sniper_rifle/syndicate,
+/obj/item/ammo_box/magazine/sniper_rounds,
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/hos)
+"abV" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/obj/machinery/camera{
+ c_tag = "Brig Equipment Room";
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"abW" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "hos"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/command/heads_quarters/hos)
+"abX" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/tracker,
+/turf/open/floor/plasteel/airless/solarpanel,
+/area/solars/starboard/fore)
+"abY" = (
+/obj/structure/grille,
+/turf/open/space,
+/area/space/nearstation)
+"aca" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"acb" = (
+/obj/machinery/sparker{
+ id = "executionburn";
+ pixel_x = 25
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"acc" = (
+/obj/structure/bed,
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"acd" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/security/prison)
+"ace" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"acg" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "visitation";
+ name = "Visitation Shutters"
+ },
+/obj/machinery/door/window/southleft,
+/obj/structure/table/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"ach" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/camera{
+ c_tag = "Prison Visitation";
+ dir = 8;
+ network = list("ss13","prison")
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"aci" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/command/heads_quarters/hos)
+"acj" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/hos)
+"ack" = (
+/obj/structure/table/reinforced,
+/obj/item/grenade/barrier{
+ pixel_x = 4
+ },
+/obj/item/grenade/barrier,
+/obj/item/grenade/barrier{
+ pixel_x = -4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/ai_monitored/security/armory";
+ dir = 8;
+ name = "Armory APC";
+ pixel_x = -25
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"acl" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/end{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"acm" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"acn" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"aco" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"acp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"acq" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"acr" = (
+/obj/structure/chair/comfy/black,
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/hos)
+"acs" = (
+/obj/machinery/power/apc{
+ areastring = "/area/command/heads_quarters/hos";
+ dir = 8;
+ name = "Head of Security's Office APC";
+ pixel_x = -25
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/bed/dogbed{
+ desc = "A comfy-looking pet bed. You can even strap your pet in, in case the gravity turns off.";
+ name = "pet bed"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/mob/living/simple_animal/hostile/retaliate/bat/secbat{
+ desc = "An adorable fruit bat with a cute little hat, may or may not have a reputation for biting out eyeballs, or at least that's what the HoS'd tell you.";
+ name = "Colonel Chomps"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/command/heads_quarters/hos)
+"act" = (
+/obj/machinery/holopad/secure,
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/hos)
+"acu" = (
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/hos)
+"acv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/command/heads_quarters/hos)
+"acw" = (
+/obj/structure/sign/warning/securearea{
+ pixel_y = -32
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/space/nearstation)
+"acx" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/starboard/fore)
+"acy" = (
+/obj/structure/lattice,
+/obj/item/stack/cable_coil/random,
+/turf/open/space,
+/area/space/nearstation)
+"acA" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/landmark/start/prisoner,
+/obj/machinery/button/door{
+ id = "permacells1";
+ name = "Privacy Shutters";
+ pixel_x = 25
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"acC" = (
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"acD" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "Prison Gate";
+ name = "prison blast door"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "Prison Gate";
+ name = "Prison Lockdown Shutters"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"acE" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#c1caff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
+"acF" = (
+/obj/machinery/light_switch{
+ pixel_y = -23
+ },
+/obj/effect/landmark/event_spawn,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/command/heads_quarters/hos)
+"acG" = (
+/turf/closed/wall,
+/area/security/prison/upper)
+"acH" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"acI" = (
+/obj/effect/spawner/lootdrop/prison_contraband,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/bed,
+/obj/item/bedsheet/red,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"acJ" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"acL" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/command/heads_quarters/hos)
+"acM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"acN" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"acO" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"acP" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_x = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"acQ" = (
+/obj/structure/table/wood,
+/obj/item/folder/red,
+/obj/item/stamp/hos,
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/hos)
+"acR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "hos"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/command/heads_quarters/hos)
+"acS" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "hos"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/command/heads_quarters/hos)
+"acT" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/security/armory)
+"acU" = (
+/obj/machinery/door/airlock/external{
+ name = "Security External Airlock";
+ req_access_txt = "63"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"acW" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/solar{
+ id = "auxsolareast";
+ name = "Port Auxiliary Solar Array"
+ },
+/turf/open/floor/plasteel/airless/solarpanel,
+/area/solars/port/fore)
+"acY" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/table,
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
+"ada" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -26
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"adb" = (
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"adc" = (
+/obj/machinery/light,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"add" = (
+/obj/structure/table,
+/obj/item/clothing/shoes/sneakers/orange{
+ pixel_x = -6;
+ pixel_y = 10
+ },
+/obj/item/clothing/shoes/sneakers/orange{
+ pixel_x = -6;
+ pixel_y = -2
+ },
+/obj/item/clothing/shoes/sneakers/orange{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/clothing/shoes/sneakers/orange{
+ pixel_x = -6;
+ pixel_y = -8
+ },
+/obj/item/clothing/under/rank/prisoner{
+ pixel_x = 8;
+ pixel_y = 5
+ },
+/obj/machinery/camera{
+ c_tag = "Permabrig Processing";
+ dir = 8;
+ network = list("ss13","prison")
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
+"adf" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"adg" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/security/armory)
+"adh" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"adi" = (
+/obj/structure/rack,
+/obj/item/gun/ballistic/shotgun/riot{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/gun/ballistic/shotgun/riot,
+/obj/item/gun/ballistic/shotgun/riot{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/structure/window/reinforced{
+ dir = 1;
+ pixel_y = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/bot,
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#c1caff"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"adj" = (
+/obj/machinery/recharger,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"adk" = (
+/obj/machinery/recharger,
+/obj/structure/table/reinforced,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"adl" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"adm" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = 29
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/landmark/secequipment,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"adn" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/hos)
+"ado" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"adp" = (
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"adq" = (
+/obj/machinery/computer/slot_machine{
+ balance = 15;
+ money = 500;
+ pixel_x = -5
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"adr" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = -32
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"ads" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/solar{
+ id = "auxsolareast";
+ name = "Port Auxiliary Solar Array"
+ },
+/turf/open/floor/plasteel/airless/solarpanel,
+/area/solars/starboard/fore)
+"adt" = (
+/obj/structure/cable,
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/starboard/fore)
+"adu" = (
+/obj/effect/landmark/barthpot,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"ady" = (
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/port/fore)
+"adA" = (
+/obj/structure/cable,
+/obj/machinery/power/solar{
+ id = "auxsolareast";
+ name = "Port Auxiliary Solar Array"
+ },
+/turf/open/floor/plasteel/airless/solarpanel,
+/area/solars/port/fore)
+"adB" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"adD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/security/prison/cells)
+"adF" = (
+/obj/machinery/door/airlock/security/glass{
+ id_tag = "permaouter";
+ name = "Permabrig Transfer";
+ req_access_txt = "2"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"adH" = (
+/obj/machinery/door/airlock/security/glass{
+ id_tag = "permaouter";
+ name = "Permabrig Transfer";
+ req_access_txt = "2"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"adI" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/security/prison/upper)
+"adJ" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Prison Visitation";
+ req_access_txt = "2"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"adK" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/camera{
+ c_tag = "Brig EVA Storage";
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"adL" = (
+/obj/machinery/suit_storage_unit/security,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"adM" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"adN" = (
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Head of Security's Desk";
+ departmentType = 5;
+ name = "Head of Security RC";
+ pixel_y = 30
+ },
+/obj/item/radio/intercom{
+ dir = 4;
+ name = "Station Intercom (General)";
+ pixel_x = -31
+ },
+/obj/structure/table/wood,
+/obj/item/storage/box/seccarts{
+ pixel_x = 3;
+ pixel_y = 2
+ },
+/obj/item/storage/box/deputy,
+/turf/open/floor/mineral/plastitanium/red,
+/area/command/heads_quarters/hos)
+"adO" = (
+/obj/machinery/computer/secure_data,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/command/heads_quarters/hos)
+"adP" = (
+/obj/structure/rack,
+/obj/item/gun/energy/e_gun{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/gun/energy/e_gun,
+/obj/item/gun/energy/e_gun{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/structure/window/reinforced,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"adQ" = (
+/obj/machinery/computer/card/minor/hos,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/command/heads_quarters/hos)
+"adS" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/starboard/fore)
+"adT" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/starboard/fore)
+"adU" = (
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/starboard/fore)
+"adV" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/starboard/fore)
+"adW" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/starboard/fore)
+"adX" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/starboard/fore)
+"adY" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/starboard/fore)
+"aed" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/disposal/deliveryChute{
+ name = "Prisoner Chute"
+ },
+/obj/structure/plasticflaps/opaque{
+ name = "Prisoner Transfer"
+ },
+/obj/structure/disposalpipe/trunk,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aef" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aeg" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aeh" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 30
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aei" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "Prison Gate";
+ name = "Prison Lockdown Shutters"
+ },
+/turf/open/floor/plating,
+/area/security/prison)
+"aej" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ pixel_y = 23
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aek" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"ael" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aem" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aen" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Prison Hallway East";
+ network = list("ss13","prison")
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aeo" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aep" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aeq" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aer" = (
+/obj/machinery/power/apc{
+ areastring = "/area/security/prison";
+ dir = 4;
+ name = "Prison Wing APC";
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aes" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_x = 30
+ },
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka,
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
+ pixel_x = -5;
+ pixel_y = 5
+ },
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{
+ pixel_x = -5
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/command/heads_quarters/hos)
+"aet" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Equipment Room";
+ req_access_txt = "1"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"aeu" = (
+/obj/machinery/newscaster/security_unit{
+ pixel_x = -30
+ },
+/obj/machinery/camera{
+ c_tag = "Head of Security's Office";
+ dir = 4
+ },
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/obj/structure/table/wood,
+/turf/open/floor/mineral/plastitanium/red,
+/area/command/heads_quarters/hos)
+"aev" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aew" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"aex" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/security/armory)
+"aey" = (
+/obj/machinery/keycard_auth{
+ pixel_x = 24;
+ pixel_y = 10
+ },
+/obj/structure/table/wood,
+/obj/item/radio/off,
+/obj/item/taperecorder,
+/turf/open/floor/mineral/plastitanium/red,
+/area/command/heads_quarters/hos)
+"aez" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/flashlight/lamp/green{
+ on = 0;
+ pixel_x = -3;
+ pixel_y = 8
+ },
+/obj/item/pen/fountain,
+/turf/open/floor/mineral/plastitanium/red,
+/area/command/heads_quarters/hos)
+"aeA" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"aeB" = (
+/obj/structure/table,
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/obj/item/hand_labeler,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"aeC" = (
+/obj/machinery/camera{
+ c_tag = "Security Escape Pod";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aeD" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/suit_storage_unit/hos,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/mineral/plastitanium/red,
+/area/command/heads_quarters/hos)
+"aeE" = (
+/obj/structure/closet/secure_closet/lethalshots,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"aeF" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/box/firingpins{
+ pixel_x = 6
+ },
+/obj/item/storage/box/firingpins{
+ pixel_x = -3
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"aeG" = (
+/obj/structure/cable,
+/obj/machinery/power/solar{
+ id = "auxsolareast";
+ name = "Port Auxiliary Solar Array"
+ },
+/turf/open/floor/plasteel/airless/solarpanel,
+/area/solars/starboard/fore)
+"aeL" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aeM" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aeO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aeP" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aeQ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aeR" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/hallway/secondary/exit)
+"aeS" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aeT" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aeU" = (
+/obj/effect/landmark/start/security_officer,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"aeV" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"aeW" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/box/chemimp{
+ pixel_x = 6
+ },
+/obj/item/storage/box/trackimp{
+ pixel_x = -3
+ },
+/obj/item/storage/lockbox/loyalty,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"aeX" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/chemistry)
+"aeY" = (
+/obj/vehicle/ridden/secway,
+/obj/item/key/security,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"aeZ" = (
+/obj/structure/rack,
+/obj/item/gun/energy/ionrifle,
+/obj/item/gun/energy/temperature/security,
+/obj/item/clothing/suit/armor/laserproof,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"afa" = (
+/obj/docking_port/stationary{
+ dir = 4;
+ dwidth = 12;
+ height = 18;
+ id = "emergency_home";
+ name = "BoxStation emergency evac bay";
+ width = 32
+ },
+/turf/open/space/basic,
+/area/space)
+"afb" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"afc" = (
+/obj/structure/closet/secure_closet/contraband/armory,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 8;
+ name = "8maintenance loot spawner"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"afd" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"afe" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"aff" = (
+/obj/effect/landmark/start/security_officer,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"afg" = (
+/obj/effect/landmark/start/security_officer,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"afh" = (
+/obj/effect/landmark/start/security_officer,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"afi" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/effect/landmark/start/security_officer,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"afj" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"afk" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/landmark/start/security_officer,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"afl" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"afm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"afn" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/brig)
+"afo" = (
+/obj/structure/noticeboard{
+ dir = 1;
+ pixel_y = -27
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"afp" = (
+/obj/docking_port/stationary{
+ dir = 4;
+ dwidth = 1;
+ height = 4;
+ name = "escape pod loader";
+ roundstart_template = /datum/map_template/shuttle/escape_pod/default;
+ width = 3
+ },
+/turf/open/space/basic,
+/area/space)
+"afq" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "Prison Gate";
+ name = "Prison Lockdown Shutters"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"afr" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/landmark/start/security_officer,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"afs" = (
+/obj/item/storage/secure/safe/HoS{
+ pixel_x = 35
+ },
+/obj/structure/closet/secure_closet/hos,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/command/heads_quarters/hos)
+"afu" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot_white,
+/obj/structure/closet/secure_closet/brig,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"afv" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"afw" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_y = -32
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"afy" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"afA" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"afB" = (
+/obj/item/radio/intercom{
+ dir = 4;
+ name = "Station Intercom (General)";
+ pixel_x = 27
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"afC" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"afD" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/landmark/start/security_officer,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"afE" = (
+/obj/machinery/light/small,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"afF" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/light{
+ light_color = "#d1dfff"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"afG" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"afH" = (
+/obj/structure/table/glass,
+/obj/item/storage/firstaid/regular{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/regular,
+/obj/item/reagent_containers/glass/bottle/charcoal{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/glass/bottle/epinephrine{
+ pixel_x = -2;
+ pixel_y = -2
+ },
+/obj/item/reagent_containers/syringe{
+ name = "steel point"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"afI" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"afK" = (
+/obj/structure/table/glass,
+/obj/machinery/computer/med_data/laptop,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"afL" = (
+/obj/machinery/computer/operating,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"afM" = (
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"afN" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"afO" = (
+/obj/machinery/door/airlock/command{
+ name = "Command Tool Storage";
+ req_access_txt = "19"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"afP" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/command{
+ name = "Command Tool Storage";
+ req_access_txt = "19"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"afQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/turf/open/floor/plating,
+/area/security/office)
+"afR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/office)
+"afS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security{
+ name = "Brig EVA Storage";
+ req_access_txt = "1"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"afT" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"afU" = (
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"afV" = (
+/obj/structure/table,
+/obj/item/restraints/handcuffs,
+/obj/item/assembly/timer,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"afW" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"afX" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/landmark/start/head_of_security,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"afY" = (
+/obj/effect/landmark/start/security_officer,
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"afZ" = (
+/obj/structure/table,
+/obj/item/radio/off,
+/obj/item/screwdriver{
+ pixel_y = 10
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"aga" = (
+/obj/structure/sign/warning/pods{
+ pixel_x = 32
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"agb" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"agc" = (
+/obj/structure/closet/emcloset,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"agd" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"age" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/security/range)
+"agf" = (
+/obj/structure/table,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/item/clothing/gloves/color/orange,
+/obj/item/restraints/handcuffs,
+/obj/item/reagent_containers/spray/pepper,
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
+"agg" = (
+/obj/structure/table,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/item/clothing/suit/straight_jacket,
+/obj/item/electropack/shockcollar,
+/obj/item/assembly/signaler,
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
+"agh" = (
+/obj/structure/table,
+/obj/item/storage/box/hug,
+/obj/item/razor{
+ pixel_x = -6
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/light{
+ light_color = "#d1dfff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
+"agi" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security/glass{
+ name = "Prison Wing";
+ req_access_txt = "2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"agk" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security/glass{
+ name = "Prison Wing";
+ req_access_txt = "2"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"agl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/chair/sofa/right{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"agm" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/stack/sheet/plasteel{
+ amount = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"ago" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/effect/turf_decal/bot,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"agp" = (
+/obj/structure/table,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/item/book/manual/wiki/security_space_law,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"agq" = (
+/obj/effect/turf_decal/delivery,
+/obj/machinery/door/poddoor/shutters/window{
+ id = "armory1"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"agr" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/security/processing)
+"ags" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"agt" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/ai_monitored/security/armory)
+"agu" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"agv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/security/processing)
+"agw" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/button/door{
+ id = "hos";
+ name = "HoS Office Shutters";
+ pixel_y = -25
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/command/heads_quarters/hos)
+"agx" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"agy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"agz" = (
+/obj/structure/closet/secure_closet{
+ name = "nonlethal ammunition";
+ req_access = "list(3)"
+ },
+/obj/item/storage/box/rubbershot,
+/obj/item/storage/box/rubbershot,
+/obj/item/storage/box/rubbershot,
+/obj/item/storage/box/rubbershot,
+/obj/item/storage/box/rubbershot,
+/obj/item/storage/box/rubbershot,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"agA" = (
+/obj/machinery/requests_console{
+ department = "Security";
+ departmentType = 5;
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"agB" = (
+/obj/structure/table,
+/obj/item/assembly/flash/handheld,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"agC" = (
+/obj/machinery/holopad,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"agD" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"agE" = (
+/obj/structure/table,
+/obj/item/storage/fancy/donut_box{
+ pixel_y = 10
+ },
+/obj/item/storage/fancy/donut_box,
+/obj/item/storage/fancy/donut_box{
+ pixel_y = -10
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"agF" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"agG" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"agH" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"agI" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"agJ" = (
+/obj/machinery/flasher/portable,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"agK" = (
+/obj/machinery/flasher/portable,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"agL" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"agM" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/security/brig";
+ dir = 1;
+ name = "Brig APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"agN" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"agO" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Brig Infirmary";
+ req_access_txt = "2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "Prison Gate";
+ name = "Prison Lockdown Shutters"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"agP" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"agQ" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/structure/closet/secure_closet/courtroom,
+/obj/effect/decal/cleanable/cobweb,
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/item/gavelhammer,
+/obj/machinery/atmospherics/pipe/simple/scrubbers,
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"agR" = (
+/obj/effect/turf_decal/loading_area{
+ dir = 4;
+ pixel_x = -3
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"agS" = (
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"agT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"agU" = (
+/obj/machinery/holopad/secure,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"agV" = (
+/obj/machinery/button/door{
+ id = "armory1";
+ name = "Armory Shutters";
+ pixel_y = -26;
+ req_access_txt = "3"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/door/poddoor/shutters/window{
+ id = "armory1"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"agW" = (
+/obj/structure/rack,
+/obj/structure/window/reinforced{
+ dir = 1;
+ layer = 2.9
+ },
+/obj/item/storage/box/handcuffs{
+ pixel_x = -1;
+ pixel_y = 1
+ },
+/obj/item/storage/box/handcuffs{
+ pixel_x = 1;
+ pixel_y = -1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/camera/motion{
+ c_tag = "Armory Motion Sensor";
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"agX" = (
+/obj/effect/turf_decal/delivery,
+/obj/machinery/door/poddoor/shutters/window{
+ id = "armory2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"agY" = (
+/obj/structure/table/glass,
+/obj/item/storage/box/bodybags,
+/obj/item/reagent_containers/blood,
+/obj/item/reagent_containers/spray/cleaner,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"aha" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"ahb" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"ahc" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"ahd" = (
+/obj/structure/table,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"ahe" = (
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 4;
+ sortType = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"ahf" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"ahg" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/landmark/start/security_officer,
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"ahh" = (
+/obj/item/paper_bin/bundlenatural{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/paper_bin{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/pen/fountain,
+/obj/item/folder/red,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/item/pen,
+/obj/structure/table,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"ahi" = (
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 4;
+ sortType = 7
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/effect/turf_decal/loading_area{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"ahj" = (
+/obj/machinery/door/window/eastright{
+ base_state = "left";
+ dir = 8;
+ icon_state = "left";
+ name = "Security Delivery";
+ req_access_txt = "1"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/security/office)
+"ahk" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"ahl" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=8";
+ dir = 8;
+ freq = 1400;
+ location = "Security"
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/security/office)
+"ahm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"ahn" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/fore/secondary)
+"aho" = (
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"ahp" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"ahq" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/rack,
+/obj/item/storage/box/prisoner,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/processing)
+"ahr" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/processing)
+"ahs" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/obj/effect/landmark/start/assistant,
+/obj/structure/chair/sofa/right,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"ahu" = (
+/obj/structure/table/optable,
+/obj/item/storage/backpack/duffelbag/sec/surgery,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"ahv" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "Prison Gate";
+ name = "Prison Lockdown Shutters"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"ahw" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "Prison Gate";
+ name = "Prison Lockdown Shutters"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"ahx" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"ahy" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"ahz" = (
+/obj/structure/tank_dispenser/oxygen,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"ahA" = (
+/obj/structure/rack,
+/obj/structure/window/reinforced,
+/obj/item/storage/box/teargas{
+ pixel_x = -1;
+ pixel_y = 1
+ },
+/obj/item/storage/box/flashbangs{
+ pixel_x = 1;
+ pixel_y = -1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/obj/item/radio/intercom{
+ pixel_x = -30
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"ahB" = (
+/obj/structure/rack,
+/obj/item/gun/energy/e_gun/dragnet{
+ pixel_x = 2;
+ pixel_y = -2
+ },
+/obj/item/gun/energy/e_gun/dragnet{
+ pixel_x = -2;
+ pixel_y = 2
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"ahC" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/structure/closet/wardrobe/white,
+/obj/item/clothing/under/suit/waiter,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"ahD" = (
+/obj/structure/chair,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/processing)
+"ahF" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"ahG" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/window/westright{
+ name = "Brig Operations";
+ req_one_access_txt = "4; 1"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"ahH" = (
+/obj/structure/disposalpipe/junction/yjunction{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"ahI" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"ahJ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"ahK" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"ahL" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"ahM" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"ahN" = (
+/obj/machinery/power/apc{
+ areastring = "/area/security/office";
+ dir = 4;
+ name = "Security Office APC";
+ pixel_x = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"ahO" = (
+/obj/structure/chair/sofa/left{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"ahP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/closet/wardrobe/mixed,
+/obj/item/clothing/under/costume/kilt,
+/obj/structure/sign/poster/official/fashion{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"ahQ" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"ahR" = (
+/obj/structure/rack,
+/obj/item/gun/energy/laser{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/gun/energy/laser,
+/obj/item/gun/energy/laser{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/structure/window/reinforced{
+ dir = 1;
+ pixel_y = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"ahS" = (
+/obj/structure/bodycontainer/morgue,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/bot,
+/obj/machinery/camera{
+ c_tag = "Brig Infirmary";
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"ahT" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"ahU" = (
+/obj/machinery/computer/shuttle/labor{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/processing)
+"ahV" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/machinery/computer/security/labor{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/processing)
+"ahW" = (
+/obj/structure/rack,
+/obj/item/clothing/suit/armor/riot{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/clothing/suit/armor/riot,
+/obj/item/clothing/suit/armor/riot{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/item/clothing/head/helmet/riot{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/clothing/head/helmet/riot,
+/obj/item/clothing/head/helmet/riot{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/item/shield/riot{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/shield/riot,
+/obj/item/shield/riot{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/structure/window/reinforced{
+ dir = 1;
+ layer = 2.9
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -26
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"ahX" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"ahY" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/bot,
+/mob/living/simple_animal/bot/secbot{
+ arrest_type = 1;
+ health = 45;
+ icon_state = "secbot1";
+ idcheck = 1;
+ name = "Sergeant-at-Armsky";
+ weaponscheck = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"ahZ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"aia" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/closet/secure_closet/hydroponics,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aib" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aic" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aid" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"aie" = (
+/obj/structure/bed,
+/obj/machinery/iv_drip,
+/obj/item/bedsheet/medical,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"aif" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aig" = (
+/obj/structure/table,
+/obj/item/clothing/mask/gas/sechailer{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/clothing/mask/gas/sechailer,
+/obj/item/clothing/mask/gas/sechailer{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/item/storage/toolbox/electrical{
+ pixel_x = -2;
+ pixel_y = 2
+ },
+/obj/item/storage/toolbox/drone{
+ pixel_x = 2;
+ pixel_y = -2
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"aih" = (
+/obj/machinery/button/door{
+ id = "armory2";
+ name = "Armory Shutters";
+ pixel_y = -26;
+ req_access_txt = "3"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/door/poddoor/shutters/window{
+ id = "armory2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"aii" = (
+/obj/machinery/rnd/production/techfab/department/security,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"aij" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"aik" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/gun/energy/laser/practice,
+/obj/machinery/syndicatebomb/training,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"aim" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"ain" = (
+/obj/structure/rack,
+/obj/item/clothing/suit/armor/bulletproof{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/clothing/suit/armor/bulletproof,
+/obj/item/clothing/suit/armor/bulletproof{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/item/clothing/head/helmet/alt{
+ layer = 3.00001;
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/clothing/head/helmet/alt{
+ layer = 3.00001
+ },
+/obj/item/clothing/head/helmet/alt{
+ layer = 3.00001;
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/structure/window/reinforced,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"aio" = (
+/obj/structure/table,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/rglass{
+ amount = 50
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aip" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"aiq" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"air" = (
+/obj/structure/chair,
+/turf/open/floor/plating,
+/area/commons/vacant_room/office/b)
+"ais" = (
+/obj/structure/filingcabinet,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"ait" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"aiu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"aiv" = (
+/obj/structure/rack,
+/obj/item/gun/energy/e_gun/advtaser{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/gun/energy/e_gun/advtaser,
+/obj/item/gun/energy/e_gun/advtaser{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/structure/window/reinforced,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"aiw" = (
+/obj/machinery/light_switch{
+ pixel_y = -23
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/chair/sofa/left{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"aix" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"aiy" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"aiz" = (
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/chair/sofa{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"aiA" = (
+/obj/machinery/door/airlock/external{
+ req_access_txt = "13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aiB" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/vending/autodrobe,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aiC" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/landmark/start/security_officer,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"aiD" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/processing)
+"aiE" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/item/radio/intercom{
+ pixel_y = 20
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/processing)
+"aiF" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/gulag_item_reclaimer{
+ pixel_x = 32
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#d1dfff"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/camera{
+ c_tag = "Security Docking";
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/processing)
+"aiG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/junction{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"aiH" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Brig Central";
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"aiI" = (
+/obj/structure/bodycontainer/morgue,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/bot,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -26
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"aiJ" = (
+/obj/structure/reagent_dispensers/watertank/high,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aiK" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/processing)
+"aiL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"aiM" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"aiN" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/processing)
+"aiO" = (
+/obj/machinery/shower{
+ dir = 1
+ },
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/structure/mirror{
+ pixel_x = 28
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/box,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"aiP" = (
+/obj/structure/table,
+/obj/item/storage/firstaid/regular,
+/obj/structure/sign/poster/official/medical_green_cross{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/lobby)
+"aiQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"aiR" = (
+/obj/structure/closet/l3closet/security,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"aiS" = (
+/obj/item/stack/rods,
+/turf/open/space,
+/area/space/nearstation)
+"aiT" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/security/processing)
+"aiU" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/processing)
+"aiV" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/holopad,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "hopqueue";
+ name = "HoP Queue Shutters"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aiW" = (
+/obj/structure/closet/bombcloset/security,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"aiX" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/security/brig)
+"aiY" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"aiZ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/security/armory)
+"aja" = (
+/obj/effect/turf_decal/delivery,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/poddoor/shutters/window{
+ id = "armory3"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"ajb" = (
+/obj/effect/turf_decal/delivery,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor/shutters/window{
+ id = "armory3"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/security/armory)
+"ajc" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"ajd" = (
+/obj/structure/table/wood,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office/b)
+"aje" = (
+/obj/machinery/door/airlock/security{
+ name = "Armory";
+ req_access_txt = "3"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"ajf" = (
+/obj/structure/table/wood,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/commons/vacant_room/office/b)
+"ajg" = (
+/obj/machinery/computer/secure_data,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"ajh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/obj/structure/sign/poster/official/pda_ad800{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aji" = (
+/obj/structure/chair{
+ name = "Judge"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ajj" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = 20
+ },
+/obj/machinery/camera{
+ c_tag = "Courtroom North"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ajk" = (
+/obj/structure/chair{
+ name = "Judge"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ajl" = (
+/obj/structure/chair{
+ name = "Judge"
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ajm" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ajo" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/security/courtroom)
+"ajp" = (
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ajq" = (
+/obj/machinery/door/airlock/external{
+ name = "Solar Maintenance";
+ req_access_txt = "10; 13"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"ajr" = (
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/light,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/commons/vacant_room/office/b)
+"ajs" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/sign/poster/official/pda_ad600{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"ajt" = (
+/obj/machinery/camera{
+ c_tag = "Vacant Office B";
+ dir = 1
+ },
+/obj/structure/table/wood,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plasteel,
+/area/commons/vacant_room/office/b)
+"aju" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"ajv" = (
+/obj/machinery/computer/med_data{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/medical_green_cross{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"ajw" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ajx" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ajy" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ajz" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/security/brig)
+"ajA" = (
+/obj/effect/landmark/start/security_officer,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"ajB" = (
+/obj/structure/sign/poster/official/medical_green_cross{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"ajC" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"ajD" = (
+/obj/effect/spawner/lootdrop/keg,
+/obj/structure/sign/poster/contraband/scum{
+ pixel_x = -32
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"ajE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ajF" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"ajG" = (
+/obj/structure/table,
+/obj/item/kitchen/rollingpin,
+/obj/item/reagent_containers/food/condiment/enzyme,
+/obj/item/reagent_containers/food/condiment/sugar,
+/obj/structure/sign/poster/contraband/scum{
+ pixel_x = -32
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"ajH" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ajI" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"ajJ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"ajK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"ajL" = (
+/obj/machinery/computer/security,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"ajM" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/obj/structure/sign/poster/contraband/scum{
+ pixel_y = 32
+ },
+/obj/structure/sign/poster/contraband/scum{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ajN" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"ajO" = (
+/obj/structure/table/wood,
+/obj/item/radio/intercom{
+ dir = 8;
+ name = "Station Intercom (Court)"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ajP" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ajQ" = (
+/obj/structure/table/wood,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ajR" = (
+/obj/structure/table/wood,
+/obj/item/gavelblock,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ajS" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ajT" = (
+/obj/structure/chair{
+ dir = 8;
+ name = "Defense"
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ajU" = (
+/obj/machinery/door/window/southleft{
+ name = "Court Cell";
+ req_access_txt = "2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ajV" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"ajX" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_y = -30
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"ajY" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/window/westleft{
+ name = "Brig Operations";
+ req_one_access_txt = "4; 1"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"ajZ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/construction/mining/aux_base)
+"aka" = (
+/obj/structure/closet/secure_closet/bar{
+ req_access_txt = "25"
+ },
+/obj/item/clothing/under/suit/waiter,
+/obj/item/clothing/under/suit/waiter,
+/obj/item/clothing/under/suit/waiter,
+/obj/item/gun/ballistic/revolver/doublebarrel,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"akb" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/processing)
+"akc" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"akd" = (
+/obj/effect/landmark/start/security_officer,
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"ake" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"akf" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/security/brig)
+"akg" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"akh" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/storage/fancy/donut_box,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"aki" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"akj" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"akk" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security{
+ name = "Security Office";
+ req_access_txt = "1"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"akl" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"akm" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"akn" = (
+/obj/structure/table/wood,
+/obj/item/folder/blue,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ako" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"akp" = (
+/obj/machinery/door_timer{
+ id = "Cell 1";
+ name = "Cell 1";
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "Brig West";
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"akq" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"akr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/computer/security/telescreen/interrogation{
+ dir = 1;
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"aks" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"akt" = (
+/obj/machinery/chem_master/condimaster{
+ name = "HoochMaster 2000"
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aku" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"akv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"akw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"akx" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"aky" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"akz" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"akA" = (
+/obj/structure/chair{
+ dir = 8;
+ name = "Defense"
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"akB" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"akC" = (
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"akD" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"akE" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"akF" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"akG" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/processing)
+"akH" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"akI" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/processing)
+"akJ" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security{
+ name = "Brig";
+ req_access_txt = "63; 42"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"akK" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"akL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/meter,
+/obj/structure/closet/firecloset,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"akM" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"akN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"akO" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/machinery/microwave{
+ pixel_y = 6
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"akP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"akR" = (
+/obj/machinery/camera{
+ c_tag = "Security Office";
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/storage/box/donkpockets,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"akS" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/table,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"akT" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"akU" = (
+/obj/machinery/holopad,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"akV" = (
+/obj/machinery/door/window/southleft{
+ dir = 1;
+ name = "Test Chamber";
+ req_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "misclab";
+ name = "test chamber blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"akW" = (
+/obj/machinery/door/window/southleft{
+ name = "Test Chamber";
+ req_access_txt = "55"
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"akX" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"akY" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/security/warden)
+"akZ" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Brig Control";
+ req_access_txt = "3"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"ala" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/security/warden)
+"alb" = (
+/obj/structure/chair{
+ dir = 4;
+ name = "Prosecution"
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"alc" = (
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ald" = (
+/obj/machinery/holopad,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ale" = (
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"alf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"alg" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"alh" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/external{
+ name = "Solar Maintenance";
+ req_access_txt = "10; 13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"ali" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"alj" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"alk" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"all" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"alm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"aln" = (
+/obj/effect/landmark/start/scientist,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/chair/comfy/black,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"alo" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/security/warden)
+"alp" = (
+/turf/open/floor/plating,
+/area/security/processing)
+"alq" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Evidence Storage";
+ req_one_access_txt = "4;1"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"alr" = (
+/obj/machinery/computer/camera_advanced/xenobio{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"als" = (
+/obj/machinery/door_timer{
+ id = "Cell 3";
+ name = "Cell 3";
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"alt" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"alu" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/window{
+ name = "Gateway Chamber";
+ req_access_txt = "62"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"alv" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Gate";
+ name = "brig shutters"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/security/brig)
+"alw" = (
+/obj/machinery/door/airlock/security/glass{
+ id_tag = "innerbrig";
+ name = "Brig";
+ req_access_txt = "63"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"alx" = (
+/obj/structure/table/glass,
+/obj/item/paper_bin{
+ pixel_y = 4
+ },
+/obj/item/folder/white{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/obj/item/pen{
+ pixel_x = -4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"aly" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"alz" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"alA" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"alB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"alC" = (
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"alD" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/security/courtroom)
+"alE" = (
+/obj/machinery/requests_console{
+ department = "Security";
+ departmentType = 5;
+ pixel_x = -30
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/computer/security{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24;
+ pixel_y = 28
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"alF" = (
+/obj/machinery/atmospherics/pipe/manifold/supplymain/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"alG" = (
+/obj/structure/chair{
+ dir = 4;
+ name = "Prosecution"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"alH" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"alI" = (
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"alJ" = (
+/obj/item/beacon,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"alK" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"alL" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/power/apc{
+ areastring = "/area/security/courtroom";
+ dir = 8;
+ name = "Courtroom APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"alM" = (
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"alN" = (
+/obj/machinery/computer/prisoner/management,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"alO" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"alP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/aft)
+"alQ" = (
+/obj/machinery/power/solar_control{
+ id = "auxsolareast";
+ name = "Port Bow Solar Control"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"alR" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/solars/port/fore)
+"alS" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"alT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"alU" = (
+/turf/closed/wall,
+/area/maintenance/port/fore)
+"alV" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"alW" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"alX" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"alY" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/machinery/computer/secure_data,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"alZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/security/brig)
+"ama" = (
+/mob/living/simple_animal/sloth/paperwork,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"amb" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/security/warden)
+"amc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"amd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"ame" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_y = -30
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"amf" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"amg" = (
+/obj/structure/closet{
+ name = "Evidence Closet"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"amh" = (
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"ami" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/landmark/event_spawn,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"amj" = (
+/obj/machinery/door_timer{
+ id = "Cell 2";
+ name = "Cell 2";
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"amk" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"aml" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"amm" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/security/brig)
+"amn" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Cell Interior Shutters";
+ name = "brig shutters"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"amo" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"amp" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"amq" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"amr" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/courtroom)
+"ams" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/courtroom)
+"amt" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Courtroom";
+ req_access_txt = "42"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"amu" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"amw" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"amx" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/security/brig)
+"amy" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"amz" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/terminal,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"amA" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"amB" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "Cell Interior Shutters";
+ name = "brig shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"amC" = (
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"amF" = (
+/obj/machinery/atmospherics/components/unary/tank/air,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"amG" = (
+/obj/machinery/door/window/northleft{
+ base_state = "right";
+ dir = 8;
+ icon_state = "right";
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio3";
+ name = "containment blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"amH" = (
+/obj/machinery/door/window/northleft{
+ dir = 4;
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"amI" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"amJ" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"amK" = (
+/obj/structure/sign/warning/docking,
+/turf/closed/wall/r_wall/syndicate,
+/area/security/processing)
+"amL" = (
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"amM" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/security{
+ name = "Labor Shuttle";
+ req_access_txt = "2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/processing)
+"amN" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/obj/machinery/door/window/brigdoor{
+ dir = 4;
+ name = "Reception Desk";
+ req_access_txt = "3"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Brig Control";
+ name = "brig shutters"
+ },
+/obj/machinery/door/window/southright{
+ dir = 8;
+ name = "Reception Desk";
+ req_access_txt = "63"
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"amO" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"amP" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"amQ" = (
+/obj/machinery/door/window/northleft{
+ base_state = "right";
+ dir = 8;
+ icon_state = "right";
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"amS" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"amT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/window/northleft{
+ dir = 4;
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio8";
+ name = "containment blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"amU" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"amV" = (
+/obj/machinery/holopad,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"amW" = (
+/obj/effect/landmark/start/warden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"amX" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"amY" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"amZ" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"ana" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"anb" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"anc" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"and" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"ane" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"anf" = (
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"ang" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/solars/port/fore";
+ dir = 8;
+ name = "Port Bow Solar APC";
+ pixel_x = -25;
+ pixel_y = 3
+ },
+/obj/machinery/camera{
+ c_tag = "Fore Port Solar Control";
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"anh" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/smes,
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"ani" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"ank" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"ann" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"ano" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"anp" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"anq" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"anr" = (
+/obj/structure/disposalpipe/segment,
+/turf/closed/wall/r_wall/syndicate,
+/area/security/warden)
+"ans" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"ant" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security{
+ name = "Evidence Storage";
+ req_access_txt = "3"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"anu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"anv" = (
+/obj/structure/closet{
+ name = "Evidence Closet"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"anw" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"anx" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"any" = (
+/obj/effect/landmark/event_spawn,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"anz" = (
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"anA" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"anB" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/closet/secure_closet/brig{
+ id = "Cell 2";
+ name = "Cell 2 Locker"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"anC" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/security/courtroom)
+"anD" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"anE" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"anF" = (
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"anG" = (
+/obj/machinery/power/apc{
+ areastring = "/area/commons/fitness/pool";
+ name = "Pool APC";
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"anH" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/solars/port/fore)
+"anI" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Port Bow Solar Access";
+ req_access_txt = "10"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/fore)
+"anJ" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"anK" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"anM" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/item/radio/intercom{
+ desc = "Talk through this. It looks like it has been modified to not broadcast.";
+ name = "Prison Intercom (General)";
+ pixel_x = -27;
+ pixel_y = -27;
+ prison_radio = 1
+ },
+/obj/machinery/flasher{
+ id = "Cell 2";
+ pixel_x = -24;
+ pixel_y = -36
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/structure/bed,
+/obj/item/bedsheet/blue,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"anN" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"anO" = (
+/obj/docking_port/stationary{
+ dir = 8;
+ dwidth = 2;
+ height = 5;
+ id = "laborcamp_home";
+ name = "fore bay 1";
+ roundstart_template = /datum/map_template/shuttle/labour/box;
+ width = 9
+ },
+/turf/open/space/basic,
+/area/space)
+"anP" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"anQ" = (
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"anR" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"anS" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"anT" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"anU" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Courtroom"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"anV" = (
+/obj/machinery/light/small,
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"anW" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"anX" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/obj/machinery/camera{
+ c_tag = "Courtroom South";
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"anY" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"anZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aoa" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aob" = (
+/obj/machinery/light_switch{
+ pixel_x = -20
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/wood,
+/area/service/lawoffice)
+"aoc" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/wood,
+/area/service/lawoffice)
+"aod" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/fore/secondary)
+"aoe" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/fore/secondary)
+"aof" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/solars/starboard/fore)
+"aog" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"aoh" = (
+/obj/machinery/power/solar_control{
+ id = "auxsolareast";
+ name = "Starboard Bow Solar Control"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"aoi" = (
+/obj/structure/rack,
+/obj/item/clothing/mask/gas,
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/obj/item/multitool,
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"aoj" = (
+/obj/machinery/camera{
+ c_tag = "Fore Port Solar Access"
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aok" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aol" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aom" = (
+/obj/machinery/atmospherics/components/binary/valve{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aon" = (
+/obj/structure/chair,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"aoo" = (
+/obj/structure/sign/poster/contraband/revolver,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/kitchen)
+"aop" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/mob/living/simple_animal/slime,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"aoq" = (
+/obj/machinery/door/window/northleft{
+ base_state = "right";
+ dir = 8;
+ icon_state = "right";
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio2";
+ name = "containment blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"aor" = (
+/obj/structure/table,
+/obj/item/restraints/handcuffs,
+/obj/item/taperecorder,
+/obj/item/folder/red,
+/obj/machinery/light_switch{
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"aos" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/window/northleft{
+ dir = 4;
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio7";
+ name = "containment blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"aot" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"aou" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Gate";
+ name = "brig shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"aov" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aow" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aox" = (
+/obj/machinery/camera{
+ c_tag = "Fore Primary Hallway West";
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aoy" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=EVA";
+ location = "Security"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aoz" = (
+/obj/effect/turf_decal/tile/red,
+/obj/structure/sign/departments/security{
+ pixel_x = 32;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aoA" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aoB" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aoC" = (
+/obj/effect/turf_decal/tile/red,
+/obj/item/storage/box/drinkingglasses,
+/obj/structure/table,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aoD" = (
+/obj/machinery/camera{
+ c_tag = "Fore Primary Hallway East";
+ dir = 1
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/reagent_dispensers/water_cooler,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aoE" = (
+/obj/effect/turf_decal/tile/red,
+/obj/item/storage/box/cups,
+/obj/structure/table,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aoF" = (
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/chem_dispenser/drinks,
+/obj/structure/table,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aoG" = (
+/obj/structure/table,
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"aoH" = (
+/obj/structure/table,
+/obj/item/book/manual/wiki/security_space_law{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"aoI" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aoJ" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aoK" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aoL" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 1;
+ name = "Air Out"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aoM" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"aoN" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"aoO" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/terminal,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"aoP" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aoQ" = (
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aoR" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 10
+ },
+/obj/machinery/meter,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aoS" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aoT" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aoU" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aoV" = (
+/turf/open/space,
+/area/space)
+"aoW" = (
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aoX" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aoY" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 26;
+ pixel_y = -28
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"aoZ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Brig Control";
+ name = "brig shutters"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/security/warden)
+"apa" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"apb" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/mob/living/simple_animal/slime,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"apc" = (
+/obj/structure/chair/office/dark,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"apd" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/security/detectives_office)
+"ape" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/engineering/abandoned{
+ abandoned = 0;
+ name = "Vacant Office B";
+ req_access_txt = "32"
+ },
+/turf/open/floor/plating,
+/area/commons/vacant_room/office/b)
+"apf" = (
+/obj/structure/disposalpipe/segment,
+/turf/closed/wall/r_wall/syndicate,
+/area/security/detectives_office)
+"apg" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aph" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/service/lawoffice)
+"api" = (
+/obj/machinery/door/airlock{
+ name = "Law Office";
+ req_access_txt = "38"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/lawoffice)
+"apj" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"apk" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"apl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/fore/secondary)
+"apm" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"apn" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/fore/secondary)
+"apo" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/fore/secondary)
+"app" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"apq" = (
+/obj/machinery/space_heater,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"apr" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/fore/secondary";
+ dir = 1;
+ name = "Fore Maintenance APC";
+ pixel_y = 23
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aps" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/reagent_dispensers/watertank,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"apt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"apu" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"apv" = (
+/obj/structure/table/reinforced,
+/obj/machinery/recharger{
+ pixel_x = -6;
+ pixel_y = 3
+ },
+/obj/machinery/recharger{
+ pixel_x = 6;
+ pixel_y = 3
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"apw" = (
+/obj/machinery/door/window/northleft{
+ base_state = "right";
+ dir = 8;
+ icon_state = "right";
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio1";
+ name = "containment blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"apx" = (
+/obj/machinery/door/airlock/atmos/abandoned{
+ name = "Atmospherics Maintenance";
+ req_access_txt = "12;24"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"apy" = (
+/obj/item/wrench,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"apz" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"apA" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/solars/starboard/fore";
+ dir = 8;
+ name = "Starboard Bow Solar APC";
+ pixel_x = -25;
+ pixel_y = 3
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"apB" = (
+/obj/machinery/camera{
+ c_tag = "Fore Starboard Solars";
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/smes,
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"apC" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/starboard/fore)
+"apD" = (
+/obj/structure/closet/wardrobe/mixed,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/coin/silver,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"apE" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"apF" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"apG" = (
+/obj/machinery/portable_atmospherics/canister/water_vapor,
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"apH" = (
+/obj/machinery/computer/crew{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "outerbrig";
+ name = "Brig Exterior Doors Control";
+ normaldoorcontrol = 1;
+ pixel_x = -24;
+ pixel_y = -40;
+ req_access_txt = "2"
+ },
+/obj/machinery/button/door{
+ id = "innerbrig";
+ name = "Brig Interior Doors Control";
+ normaldoorcontrol = 1;
+ pixel_x = -24;
+ pixel_y = -24;
+ req_access_txt = "2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"apI" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/closet/secure_closet/medical1,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"apJ" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/construction/mining/aux_base)
+"apK" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"apL" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/port/fore";
+ dir = 1;
+ name = "Port Bow Maintenance APC";
+ pixel_x = -1;
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"apM" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/fore)
+"apN" = (
+/turf/open/floor/plating,
+/area/construction/mining/aux_base)
+"apO" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/fore)
+"apP" = (
+/obj/structure/closet/crate,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"apQ" = (
+/obj/structure/closet{
+ name = "Evidence Closet"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"apR" = (
+/obj/machinery/door/airlock/security/glass{
+ id_tag = "outerbrig";
+ name = "Brig";
+ req_access_txt = "63"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"apS" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"apT" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "Cell Interior Shutters";
+ name = "brig shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"apU" = (
+/turf/open/floor/plating,
+/area/commons/vacant_room/office/b)
+"apV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/construction)
+"apW" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"apY" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"apZ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/service/lawoffice)
+"aqa" = (
+/obj/structure/closet/secure_closet/personal,
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"aqb" = (
+/obj/structure/rack,
+/obj/item/storage/briefcase,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/wood,
+/area/service/lawoffice)
+"aqc" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/fore/secondary)
+"aqd" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aqe" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqf" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqg" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqi" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqj" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqk" = (
+/obj/machinery/power/apc{
+ areastring = "/area/commons/dorms";
+ name = "Dormitory APC";
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aql" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqm" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqn" = (
+/obj/structure/bed,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/button/door{
+ id = "Dorm4";
+ name = "Dorm Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"aqo" = (
+/obj/structure/closet/secure_closet/personal/cabinet,
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"aqp" = (
+/obj/structure/rack,
+/obj/item/clothing/suit/fire/firefighter,
+/obj/item/tank/internals/oxygen,
+/obj/item/clothing/mask/gas,
+/obj/item/extinguisher,
+/obj/item/clothing/head/hardhat/red,
+/obj/item/clothing/glasses/meson,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqq" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqr" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/brigdoor{
+ dir = 1;
+ name = "Reception Desk";
+ req_access_txt = "3"
+ },
+/obj/machinery/door/window/southleft{
+ name = "Reception Desk";
+ req_access_txt = "63"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Brig Control";
+ name = "brig shutters"
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
+"aqs" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Pool"
+ },
+/turf/open/floor/plasteel,
+/area/commons/fitness/pool)
+"aqt" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Brig Control";
+ name = "brig shutters"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/security/warden)
+"aqu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/commons/fitness)
+"aqv" = (
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aqw" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/engineering{
+ name = "Starboard Bow Solar Access";
+ req_access_txt = "10"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"aqx" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/solars/starboard/fore)
+"aqy" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aqz" = (
+/obj/structure/table,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aqA" = (
+/obj/structure/closet/firecloset,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aqB" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/window/northleft{
+ dir = 4;
+ name = "Containment Pen";
+ req_access_txt = "55"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio6";
+ name = "containment blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"aqC" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aqD" = (
+/obj/structure/sign/warning/electricshock{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#d1dfff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aqE" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aqF" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aqG" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"aqH" = (
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#d1dfff"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aqI" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/processing)
+"aqN" = (
+/obj/structure/closet/secure_closet/warden,
+/obj/structure/sign/poster/official/ion_rifle{
+ pixel_y = 32
+ },
+/obj/structure/sign/poster/official/twelve_gauge{
+ pixel_x = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/obj/item/radio/intercom{
+ pixel_x = 32;
+ pixel_y = 20
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"aqO" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aqP" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aqQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aqR" = (
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aqS" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"aqT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/maintenance{
+ name = "Security Maintenance";
+ req_access_txt = "1"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aqU" = (
+/obj/item/paper/fluff/jobs/security/beepsky_mom,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aqV" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/turf/open/floor/plating,
+/area/commons/vacant_room/office/b)
+"aqW" = (
+/turf/open/floor/carpet/black,
+/area/security/detectives_office)
+"aqX" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/structure/chair,
+/turf/open/floor/plating,
+/area/commons/vacant_room/office/b)
+"aqY" = (
+/obj/structure/table/wood,
+/obj/item/pen,
+/turf/open/floor/plating,
+/area/commons/vacant_room/office/b)
+"aqZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ara" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/requests_console{
+ department = "Law office";
+ pixel_x = -32
+ },
+/obj/machinery/vending/wardrobe/law_wardrobe,
+/turf/open/floor/wood,
+/area/service/lawoffice)
+"arb" = (
+/obj/structure/table/wood,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/item/pen/red,
+/turf/open/floor/wood,
+/area/service/lawoffice)
+"arc" = (
+/obj/structure/plasticflaps,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ard" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "lawyer_blast";
+ name = "privacy door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/service/lawoffice)
+"are" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green{
+ pixel_x = 1;
+ pixel_y = 5
+ },
+/turf/open/floor/wood,
+/area/service/lawoffice)
+"arf" = (
+/turf/closed/wall,
+/area/commons/dorms)
+"arg" = (
+/obj/item/bedsheet/red,
+/mob/living/simple_animal/bot/secbot/beepsky{
+ name = "Officer Beepsky"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"arh" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Dormitories Maintenance";
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"ari" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/structure/table/wood,
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"arj" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/fitness)
+"ark" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"arl" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/obj/item/stock_parts/cell/potato{
+ name = "\improper Beepsky's emergency battery"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"arm" = (
+/obj/machinery/light/small{
+ dir = 1;
+ light_color = "#ffc1c1"
+ },
+/obj/machinery/airalarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"arn" = (
+/obj/machinery/power/apc{
+ areastring = "/area/security/processing";
+ dir = 8;
+ name = "Labor Shuttle Dock APC";
+ pixel_x = -25
+ },
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aro" = (
+/turf/open/floor/engine{
+ name = "Holodeck Projector Floor"
+ },
+/area/holodeck/rec_center)
+"arp" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"arq" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/cobweb,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 8;
+ name = "8maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"arr" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"ars" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"art" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/camera{
+ c_tag = "Fore Starboard Solar Access"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aru" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"arv" = (
+/obj/structure/table,
+/obj/item/pen,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"arw" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"arx" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"ary" = (
+/obj/machinery/power/apc{
+ areastring = "/area/security/warden";
+ name = "Brig Control APC";
+ pixel_y = -24
+ },
+/obj/machinery/button/door{
+ id = "Secure Gate";
+ name = "Cell Shutters";
+ pixel_x = 6;
+ pixel_y = -40;
+ req_access_txt = "2"
+ },
+/obj/machinery/button/door{
+ id = "Prison Gate";
+ name = "Prison Wing Lockdown";
+ pixel_x = -6;
+ pixel_y = -40;
+ req_access_txt = "2"
+ },
+/obj/structure/filingcabinet/chestdrawer,
+/obj/machinery/light,
+/obj/structure/cable,
+/obj/machinery/camera{
+ c_tag = "Brig Control";
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"arz" = (
+/obj/item/coin/gold,
+/obj/item/coin/iron,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"arA" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/coin/plasma,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"arB" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/hallway/secondary/entry)
+"arC" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"arD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/closet/secure_closet/brig{
+ id = "Cell 3";
+ name = "Cell 3 Locker"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"arE" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/construction/mining/aux_base)
+"arH" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/fore)
+"arI" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"arJ" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"arK" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"arL" = (
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/maintenance/port/fore)
+"arM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/maintenance/port/fore)
+"arN" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"arO" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"arP" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/fore)
+"arQ" = (
+/obj/structure/table,
+/obj/item/flashlight/lamp,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"arR" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp,
+/turf/open/floor/plating,
+/area/commons/vacant_room/office/b)
+"arS" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"arT" = (
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office/b)
+"arU" = (
+/obj/structure/rack,
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office/b)
+"arV" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/filingcabinet/employment,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/wood,
+/area/service/lawoffice)
+"arW" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/service/lawoffice)
+"arX" = (
+/obj/structure/table/wood,
+/obj/item/folder/blue,
+/obj/item/folder/blue,
+/obj/item/folder/blue,
+/obj/item/folder/blue,
+/obj/item/stamp/law,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/service/lawoffice)
+"arY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/service/lawoffice)
+"arZ" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/obj/effect/landmark/start/lawyer,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/service/lawoffice)
+"asa" = (
+/obj/machinery/status_display/evac{
+ pixel_x = 32
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"asb" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/machinery/camera{
+ c_tag = "Brig Evidence Storage";
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"asc" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"asd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/dorms)
+"ase" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"asf" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"asg" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ dir = 4;
+ icon_state = "roomnum";
+ name = "Room Number 3";
+ pixel_x = -30;
+ pixel_y = -7
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"ash" = (
+/obj/machinery/atmospherics/components/trinary/filter{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"asi" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"asj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/commons/vacant_room/office/b)
+"ask" = (
+/obj/item/flashlight/lamp/green{
+ pixel_x = -2;
+ pixel_y = 15
+ },
+/obj/structure/dresser,
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"asl" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plating,
+/area/commons/vacant_room/office/b)
+"asm" = (
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"asn" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plating,
+/area/commons/vacant_room/office/b)
+"aso" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Law Office Maintenance";
+ req_access_txt = "38"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"asp" = (
+/obj/machinery/camera{
+ c_tag = "Brig Interrogation";
+ dir = 8;
+ network = list("interrogation")
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"asq" = (
+/obj/machinery/disposal/bin,
+/obj/machinery/light_switch{
+ pixel_y = -23
+ },
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_x = 32;
+ pixel_y = -32
+ },
+/obj/machinery/button/door{
+ id = "Secure Brig Control";
+ name = "Brig Control Shutters";
+ pixel_x = 6;
+ pixel_y = -40;
+ req_access_txt = "2"
+ },
+/obj/machinery/button/door{
+ id = "Cell Interior Shutters";
+ name = "Cell Interior Shutters";
+ pixel_x = -6;
+ pixel_y = -40;
+ req_access_txt = "2"
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/warden)
+"asr" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"ass" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Labor Camp Shuttle Airlock"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/security/processing)
+"ast" = (
+/obj/structure/bed,
+/obj/item/bedsheet/random,
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"asu" = (
+/obj/machinery/light/small{
+ dir = 4;
+ light_color = "#d8b1b1"
+ },
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"asv" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/processing)
+"asw" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"asx" = (
+/obj/structure/door_assembly/door_assembly_mai,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"asy" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "Firefighting equipment";
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"asz" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/snacks/donut,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"asA" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"asB" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/department/electrical)
+"asC" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/unary/outlet_injector/on{
+ dir = 1
+ },
+/turf/open/floor/plating/airless,
+/area/science/xenobiology)
+"asD" = (
+/obj/structure/table/wood,
+/mob/living/simple_animal/pet/fox/Renault,
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"asF" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/construction/mining/aux_base)
+"asG" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/machinery/disposal/bin,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"asH" = (
+/obj/structure/closet/toolcloset,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/construction/mining/aux_base)
+"asI" = (
+/obj/structure/closet/toolcloset,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/construction/mining/aux_base)
+"asJ" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/construction/mining/aux_base)
+"asK" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"asL" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/item/reagent_containers/spray/cleaner,
+/obj/item/crowbar,
+/obj/item/clothing/neck/stethoscope,
+/obj/item/storage/box/gloves{
+ pixel_x = 3;
+ pixel_y = 4
+ },
+/obj/item/storage/box/masks,
+/obj/structure/table,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"asM" = (
+/obj/structure/table,
+/obj/item/crowbar,
+/obj/item/clothing/neck/stethoscope,
+/obj/item/reagent_containers/spray/cleaner,
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"asN" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"asO" = (
+/obj/structure/table/reinforced,
+/obj/item/grenade/smokebomb,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"asP" = (
+/obj/structure/chair/stool,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"asQ" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"asR" = (
+/obj/effect/decal/cleanable/cobweb,
+/obj/structure/closet/secure_closet/chemical,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"asS" = (
+/obj/structure/closet/firecloset,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"asT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"asU" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/machinery/door/airlock/medical/glass{
+ id_tag = "MedbayFoyer";
+ name = "Medbay";
+ req_access_txt = "5"
+ },
+/obj/effect/mapping_helpers/airlock/unres{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"asV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"asW" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/detectives_office)
+"asX" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/medical/glass{
+ id_tag = "MedbayFoyer";
+ name = "Medbay";
+ req_access_txt = "5"
+ },
+/obj/effect/mapping_helpers/airlock/unres{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"asY" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"ata" = (
+/turf/open/floor/wood,
+/area/service/lawoffice)
+"atb" = (
+/obj/structure/table,
+/obj/item/stack/sheet/plasteel{
+ amount = 10
+ },
+/obj/item/stack/rods/fifty,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/construction/mining/aux_base)
+"atc" = (
+/obj/structure/chair/office/dark,
+/obj/effect/landmark/start/lawyer,
+/turf/open/floor/wood,
+/area/service/lawoffice)
+"atd" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"ate" = (
+/obj/effect/landmark/xeno_spawn,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"atf" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"atg" = (
+/obj/machinery/door/airlock{
+ id_tag = "Dorm4";
+ name = "Room Three"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"ath" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"ati" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"atj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"atn" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"atp" = (
+/obj/machinery/door/airlock/external{
+ name = "Construction Zone"
+ },
+/turf/open/floor/plating,
+/area/construction/mining/aux_base)
+"atq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"atr" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"att" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"atv" = (
+/obj/structure/table,
+/obj/item/shard,
+/obj/item/shard{
+ icon_state = "medium"
+ },
+/obj/item/shard{
+ icon_state = "small"
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"atw" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"atx" = (
+/obj/machinery/button/door{
+ id = "maint3";
+ name = "Blast Door Control C";
+ pixel_y = 24
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aty" = (
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/starboard/fore)
+"atA" = (
+/obj/structure/table,
+/obj/item/paicard,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"atB" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"atC" = (
+/obj/item/stack/rods/fifty,
+/obj/structure/rack,
+/obj/item/stack/cable_coil{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/stack/cable_coil{
+ amount = 5
+ },
+/obj/item/stack/sheet/mineral/plasma{
+ amount = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/department/electrical)
+"atD" = (
+/obj/machinery/recharge_station,
+/turf/open/floor/plasteel/dark,
+/area/maintenance/department/electrical)
+"atE" = (
+/obj/machinery/power/port_gen/pacman,
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"atF" = (
+/turf/open/floor/mech_bay_recharge_floor,
+/area/maintenance/department/electrical)
+"atG" = (
+/obj/machinery/mech_bay_recharge_port,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/department/electrical)
+"atH" = (
+/obj/machinery/computer/mech_bay_power_console,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/circuit,
+/area/maintenance/department/electrical)
+"atI" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/construction/mining/aux_base)
+"atJ" = (
+/obj/machinery/space_heater,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"atK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/commons/vacant_room/office/b)
+"atL" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"atM" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
+"atN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"atO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/fore)
+"atP" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
+"atS" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/space/nearstation)
+"atU" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"atW" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
+"atY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/vacant_room/office/b)
+"atZ" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"aub" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/construction/mining/aux_base)
+"auc" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/construction/mining/aux_base)
+"aue" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/fore)
+"auf" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/lawoffice)
+"aug" = (
+/obj/structure/table/wood,
+/obj/machinery/camera{
+ c_tag = "Law Office";
+ dir = 1
+ },
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/obj/machinery/computer/security/telescreen/prison{
+ dir = 1;
+ pixel_y = -27
+ },
+/turf/open/floor/wood,
+/area/service/lawoffice)
+"auh" = (
+/obj/structure/table/wood,
+/obj/item/taperecorder,
+/obj/item/cartridge/lawyer,
+/turf/open/floor/wood,
+/area/service/lawoffice)
+"aui" = (
+/obj/machinery/photocopier,
+/obj/machinery/button/door{
+ id = "lawyer_blast";
+ name = "Privacy Shutters";
+ pixel_x = 25;
+ pixel_y = 8
+ },
+/turf/open/floor/wood,
+/area/service/lawoffice)
+"auk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aul" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aum" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aun" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/dorms)
+"auo" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"auq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/vacant_room/office/b)
+"aur" = (
+/obj/machinery/button/door{
+ id = "Room One";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = -25;
+ specialfunctions = 4
+ },
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"aut" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"auv" = (
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"auw" = (
+/obj/structure/bed,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/button/door{
+ id = "Dorm3";
+ name = "Dorm Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"aux" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"auz" = (
+/obj/machinery/camera{
+ c_tag = "Holodeck"
+ },
+/obj/machinery/airalarm{
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"auB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"auD" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"auE" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"auF" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"auG" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"auH" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"auI" = (
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"auJ" = (
+/turf/open/floor/plasteel/dark,
+/area/maintenance/department/electrical)
+"auK" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/department/electrical)
+"auL" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/department/electrical)
+"auM" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/department/electrical)
+"auO" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"auP" = (
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"auQ" = (
+/turf/open/floor/plasteel/dark,
+/area/construction/mining/aux_base)
+"auR" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ dir = 1;
+ icon_state = "roomnum";
+ name = "Room Number 2";
+ pixel_x = -30;
+ pixel_y = -7
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"auT" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"auV" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"auX" = (
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"auY" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/fore)
+"ava" = (
+/obj/structure/table/glass,
+/obj/item/storage/bag/trash,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"avb" = (
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"avg" = (
+/obj/machinery/door/airlock{
+ id_tag = "Dorm5";
+ name = "Room Four"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"avh" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/power/apc{
+ areastring = "/area/commons/vacant_room/office/b";
+ dir = 8;
+ name = "Vacant Office B APC";
+ pixel_x = -25
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"avi" = (
+/obj/machinery/power/apc{
+ areastring = "/area/service/lawoffice";
+ dir = 1;
+ name = "Law Office APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"avj" = (
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"avk" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"avn" = (
+/obj/machinery/door/airlock{
+ id_tag = "Dorm6";
+ name = "Room Five"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"avo" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/department/electrical)
+"avp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/poddoor/shutters{
+ id = "aux_base_shutters";
+ name = "Auxillary Base Shutters"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/construction/mining/aux_base)
+"avq" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"avr" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/machinery/camera{
+ c_tag = "Detective's Office"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/detectives_office)
+"avs" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"avt" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"avv" = (
+/obj/machinery/camera{
+ c_tag = "Dorms West"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"avw" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/airlock/maintenance{
+ name = "Dormitories Maintenance";
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"avy" = (
+/obj/machinery/door/airlock{
+ id_tag = "Room One";
+ name = "Room Six - Luxury Suite"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"avz" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#cee5d2"
+ },
+/obj/structure/table,
+/obj/structure/bedsheetbin/color,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"avA" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/structure/bedsheetbin/towel,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"avC" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"avD" = (
+/obj/machinery/computer/holodeck{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"avE" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "maint3"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"avF" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "maint3"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"avG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"avH" = (
+/obj/structure/sign/warning/electricshock,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/department/electrical)
+"avI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"avJ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"avK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/department/electrical)
+"avL" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/department/electrical";
+ dir = 1;
+ name = "Electrical Maintenance APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"avM" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"avN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"avO" = (
+/obj/structure/table,
+/obj/item/clothing/gloves/color/fyellow,
+/obj/item/storage/toolbox/electrical{
+ pixel_x = 1;
+ pixel_y = -1
+ },
+/obj/item/multitool,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = 29
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/department/electrical)
+"avP" = (
+/obj/structure/sign/warning/pods,
+/turf/closed/wall/r_wall/syndicate,
+/area/hallway/secondary/entry)
+"avQ" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Auxillary Base Construction";
+ dir = 8
+ },
+/obj/machinery/computer/camera_advanced/base_construction{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/construction/mining/aux_base)
+"avR" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ dir = 8;
+ icon_state = "roomnum";
+ name = "Room Number 4";
+ pixel_y = 24
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"avS" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"avT" = (
+/obj/docking_port/stationary{
+ dheight = 1;
+ dir = 8;
+ dwidth = 12;
+ height = 17;
+ id = "syndicate_ne";
+ name = "northeast of station";
+ width = 23
+ },
+/turf/open/space,
+/area/space/nearstation)
+"avV" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"avW" = (
+/turf/open/floor/plating{
+ icon_state = "platingdmg2"
+ },
+/area/maintenance/port/fore)
+"avX" = (
+/obj/structure/closet/firecloset,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"avY" = (
+/obj/structure/chair/e_chair,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"avZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/fore)
+"awa" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"awb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"awc" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"awg" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"awh" = (
+/obj/effect/landmark/blobstart,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"awi" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"awj" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"awk" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"awl" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"awm" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"awn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"awo" = (
+/obj/machinery/door/airlock{
+ id_tag = "Dorm3";
+ name = "Room Two"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"awp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"awq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#cee5d2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"awt" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ dir = 6;
+ icon_state = "roomnum";
+ name = "Room Number 5";
+ pixel_y = 24
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"awu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"awv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"awx" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"awz" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"awA" = (
+/obj/machinery/holopad,
+/obj/machinery/camera{
+ c_tag = "Dorms Central"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"awB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/closet{
+ name = "Holodeck Outfits"
+ },
+/obj/item/clothing/under/misc/blue_camo,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"awC" = (
+/obj/structure/table,
+/obj/item/paper/fluff/holodeck/disclaimer,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"awD" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/meter,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awF" = (
+/obj/structure/closet/crate,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awG" = (
+/obj/structure/girder,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awH" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awI" = (
+/obj/machinery/button/door{
+ id = "maint2";
+ name = "Blast Door Control B";
+ pixel_x = -28;
+ pixel_y = 4
+ },
+/obj/machinery/button/door{
+ id = "maint1";
+ name = "Blast Door Control A";
+ pixel_x = -28;
+ pixel_y = -6
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awJ" = (
+/obj/structure/janitorialcart,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awK" = (
+/obj/structure/table/glass,
+/obj/item/coin/silver,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awL" = (
+/obj/structure/table/glass,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awM" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"awO" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"awP" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"awQ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/engineering/abandoned{
+ name = "Electrical Maintenance";
+ req_access_txt = "11"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"awR" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"awS" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"awT" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"awU" = (
+/obj/structure/table,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/item/wallframe/camera,
+/obj/item/wallframe/camera,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/item/assembly/prox_sensor{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/department/electrical)
+"awV" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"awW" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"awY" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"axa" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"axb" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"axc" = (
+/obj/structure/rack,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/stack/cable_coil,
+/obj/item/stack/cable_coil,
+/obj/item/wallframe/camera,
+/obj/item/wallframe/camera,
+/obj/item/wallframe/camera,
+/obj/item/wallframe/camera,
+/obj/item/assault_pod/mining,
+/obj/machinery/computer/security/telescreen/auxbase{
+ dir = 8;
+ pixel_x = 30
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/construction/mining/aux_base)
+"axe" = (
+/obj/machinery/iv_drip,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"axf" = (
+/obj/structure/frame/computer,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"axg" = (
+/obj/item/shard{
+ icon_state = "medium"
+ },
+/obj/item/circuitboard/computer/operating,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"axh" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"axj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/sign/poster/contraband/have_a_puff,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/hydroponics)
+"axk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"axl" = (
+/obj/structure/table/reinforced,
+/obj/item/grenade/clusterbuster/cleaner,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"axp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"axr" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"axt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"axu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"axw" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"axy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/command/storage/eva)
+"axz" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/command/storage/eva)
+"axB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"axC" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/sign/poster/contraband/pwr_game{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"axD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/fore/secondary)
+"axE" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/sign/poster/official/do_not_question{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"axF" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"axG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"axH" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"axI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"axL" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"axN" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"axO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/chair/comfy/black,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"axP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/chair/comfy/brown,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"axS" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"axT" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"axW" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"axX" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aya" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"ayb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"ayc" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"ayd" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aye" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"ayf" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"ayg" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"ayh" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"ayi" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"ayj" = (
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/stock_parts/cell/high/plus,
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"ayk" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"ayl" = (
+/obj/effect/turf_decal/caution/stand_clear/red,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aym" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"ayn" = (
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"ayo" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"ayp" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"ayq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/construction/mining/aux_base)
+"ayr" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"ays" = (
+/obj/structure/table/reinforced,
+/obj/item/grenade/flashbang,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"ayt" = (
+/obj/structure/table/reinforced,
+/obj/item/grenade/empgrenade,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"ayu" = (
+/obj/structure/table/optable{
+ name = "Robotics Operating Table"
+ },
+/obj/item/surgical_drapes,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"ayv" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/item/radio/off,
+/obj/item/assembly/timer,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"ayw" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"ayy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"ayz" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ayG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ayH" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ayI" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ayJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ayK" = (
+/obj/structure/closet/crate/rcd,
+/obj/machinery/camera/motion{
+ c_tag = "EVA Motion Sensor"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"ayM" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"ayN" = (
+/obj/structure/rack,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/item/hand_labeler,
+/obj/item/flashlight,
+/obj/item/flashlight,
+/obj/item/flashlight,
+/obj/item/flashlight,
+/obj/item/clothing/glasses/welding,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"ayO" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/electrical{
+ pixel_x = 1;
+ pixel_y = -1
+ },
+/obj/item/screwdriver{
+ pixel_y = 16
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"ayP" = (
+/obj/machinery/power/apc{
+ areastring = "/area/ai_monitored/command/storage/eva";
+ dir = 1;
+ name = "EVA Storage APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"ayQ" = (
+/obj/structure/table,
+/obj/item/stack/cable_coil{
+ pixel_x = 3;
+ pixel_y = -7
+ },
+/obj/machinery/cell_charger,
+/obj/item/stock_parts/cell/high/plus,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"ayR" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/item/multitool,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"ayS" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_y = 32
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/ai_monitored/command/storage/eva)
+"ayT" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/item/assembly/signaler,
+/obj/item/assembly/signaler,
+/obj/item/stock_parts/cell/high/plus,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"ayU" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"ayV" = (
+/obj/structure/bed,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/button/door{
+ id = "Dorm2";
+ name = "Dorm Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"ayW" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/command/storage/eva)
+"ayX" = (
+/obj/structure/table,
+/obj/item/storage/belt/utility,
+/obj/item/storage/belt/utility,
+/obj/item/storage/belt/utility,
+/obj/item/clothing/head/welding,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"ayY" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/obey{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"ayZ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/sign/poster/official/obey{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aza" = (
+/obj/structure/table/wood/poker,
+/obj/item/toy/cards/deck,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"azb" = (
+/obj/structure/table/wood/poker,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"azc" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aze" = (
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"azf" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"azg" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"azh" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"azi" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Garden Maintenance";
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"azk" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"azm" = (
+/obj/structure/closet/secure_closet/personal,
+/obj/item/toy/poolnoodle/blue,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"azo" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"azp" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"azq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/hydroponics/garden)
+"azr" = (
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"azs" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"azt" = (
+/obj/machinery/power/terminal,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"azu" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"azv" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"azw" = (
+/obj/machinery/light_switch{
+ pixel_y = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"azx" = (
+/obj/machinery/power/terminal,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"azy" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "Port Docking Bay 1"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"azz" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"azA" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"azB" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"azC" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"azD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"azE" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"azF" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/service/hydroponics/garden)
+"azK" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"azN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"azO" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"azQ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/maintenance{
+ name = "EVA Maintenance";
+ req_access_txt = "18"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/fore)
+"azR" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"azS" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/command/glass{
+ name = "EVA Storage";
+ req_access_txt = "18"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/command/storage/eva)
+"azT" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"azU" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"azX" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"azY" = (
+/obj/structure/table,
+/obj/item/radio/off,
+/obj/item/radio/off,
+/obj/item/assembly/prox_sensor,
+/obj/item/assembly/prox_sensor,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"azZ" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aAa" = (
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aAb" = (
+/obj/machinery/door/airlock{
+ id_tag = "Dorm2";
+ name = "Room One"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aAc" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aAd" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aAe" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aAh" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/toilet)
+"aAi" = (
+/obj/structure/chair/comfy/brown{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aAj" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/security/checkpoint/auxiliary";
+ name = "Security Checkpoint APC";
+ pixel_x = 1;
+ pixel_y = -24
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aAk" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aAl" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aAn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aAo" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/power/apc{
+ areastring = "/area/commons/fitness";
+ name = "Fitness Room APC";
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aAp" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aAr" = (
+/obj/structure/closet,
+/obj/effect/decal/cleanable/cobweb,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aAs" = (
+/obj/structure/musician/piano{
+ icon_state = "piano"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aAt" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "maint2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aAv" = (
+/obj/structure/closet,
+/obj/effect/landmark/blobstart,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aAw" = (
+/obj/machinery/power/apc{
+ areastring = "/area/service/hydroponics/garden";
+ dir = 4;
+ name = "Garden APC";
+ pixel_x = 24;
+ pixel_y = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aAx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aAy" = (
+/obj/machinery/power/smes,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"aAz" = (
+/obj/machinery/computer/monitor{
+ dir = 1;
+ name = "backup power monitoring console"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"aAA" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/department/electrical)
+"aAB" = (
+/obj/machinery/power/smes,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"aAC" = (
+/obj/structure/sign/warning/docking,
+/turf/closed/wall/r_wall/syndicate,
+/area/hallway/secondary/entry)
+"aAD" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"aAE" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aAF" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aAG" = (
+/obj/machinery/vending/coffee,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aAH" = (
+/obj/machinery/camera{
+ c_tag = "Arrivals Bay 1 North";
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aAI" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aAJ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aAK" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/sink{
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aAL" = (
+/obj/machinery/power/apc{
+ areastring = "/area/commons/storage/primary";
+ name = "Primary Tool Storage APC";
+ pixel_x = 1;
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aAN" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aAO" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aAP" = (
+/obj/machinery/hydroponics/soil,
+/turf/open/floor/grass,
+/area/service/hydroponics/garden)
+"aAQ" = (
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aAR" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aAS" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aAT" = (
+/obj/machinery/seed_extractor,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aAU" = (
+/obj/structure/sink{
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aAV" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aAW" = (
+/obj/structure/rack,
+/obj/item/tank/jetpack/carbondioxide/eva,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aAX" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aAY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aAZ" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin/bundlenatural{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/paper_bin{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/pen/fountain,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/item/pen/fourcolor,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aBh" = (
+/obj/machinery/camera{
+ c_tag = "EVA Maintenance";
+ dir = 8
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aBi" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aBj" = (
+/obj/structure/rack,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/item/tank/jetpack/carbondioxide/eva,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aBk" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/command/storage/eva)
+"aBl" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Security Maintenance";
+ req_access_txt = "1"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aBm" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aBn" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aBo" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aBp" = (
+/obj/structure/rack,
+/obj/item/clothing/shoes/magboots,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aBq" = (
+/obj/structure/rack,
+/obj/item/clothing/shoes/magboots,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aBr" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aBs" = (
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/ai_monitored/command/storage/eva)
+"aBt" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/ai_monitored/command/storage/eva)
+"aBu" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aBv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aBw" = (
+/obj/item/seeds/apple,
+/obj/item/seeds/banana,
+/obj/item/seeds/cocoapod,
+/obj/item/seeds/grape,
+/obj/item/seeds/orange,
+/obj/item/seeds/sugarcane,
+/obj/item/seeds/wheat,
+/obj/item/seeds/watermelon,
+/obj/structure/table/glass,
+/obj/item/seeds/tower,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aBy" = (
+/obj/machinery/door/airlock{
+ desc = "A small bathroom with a sink, toilet and shower.";
+ id_tag = "Bath3";
+ name = "Bathroom"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"aBA" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/table/wood,
+/obj/item/paicard,
+/obj/item/clothing/mask/balaclava{
+ pixel_x = -8;
+ pixel_y = 8
+ },
+/obj/item/toy/cards/deck{
+ pixel_x = 2
+ },
+/obj/item/storage/crayons,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aBB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/starboard/fore)
+"aBC" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aBE" = (
+/obj/item/clothing/under/misc/mailman,
+/obj/item/clothing/head/mailman,
+/obj/structure/closet,
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aBF" = (
+/obj/machinery/space_heater,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aBG" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aBH" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aBI" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/security/checkpoint/auxiliary)
+"aBJ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/security/checkpoint/auxiliary)
+"aBK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/security/checkpoint/auxiliary)
+"aBL" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Tool Storage Maintenance";
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aBN" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/storage/primary)
+"aBO" = (
+/obj/machinery/requests_console{
+ department = "EVA";
+ pixel_x = -32
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aBP" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aBQ" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/storage/primary)
+"aBR" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/storage/primary)
+"aBW" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"aBX" = (
+/obj/machinery/power/apc{
+ areastring = "/area/ai_monitored/command/nuke_storage";
+ dir = 1;
+ name = "Vault APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/command/nuke_storage)
+"aBZ" = (
+/obj/structure/filingcabinet,
+/obj/item/folder/documents,
+/obj/effect/turf_decal/bot_white,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/nuke_storage)
+"aCa" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aCb" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/item/pen{
+ desc = "Writes upside down!";
+ name = "astronaut pen"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aCc" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aCd" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/cryopod,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/commons/cryopod)
+"aCe" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/toilet)
+"aCg" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aCi" = (
+/obj/structure/cable,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/ai_monitored/command/storage/eva)
+"aCj" = (
+/obj/machinery/camera{
+ c_tag = "EVA East";
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aCk" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCl" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCn" = (
+/obj/machinery/door/airlock{
+ name = "Unisex Restrooms"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aCp" = (
+/obj/machinery/camera{
+ c_tag = "Arrivals North";
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aCr" = (
+/obj/structure/chair/sofa/corp/left{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/bar)
+"aCs" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/vending/wardrobe/sec_wardrobe,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/auxiliary)
+"aCt" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCu" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"aCv" = (
+/obj/machinery/vr_sleeper{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"aCw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/commons/fitness)
+"aCy" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/commons/fitness)
+"aCz" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCA" = (
+/obj/structure/grille/broken,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/window{
+ dir = 4
+ },
+/obj/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/starboard/fore)
+"aCB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/starboard/fore)
+"aCC" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "maint1"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCD" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "maint1"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/starboard/fore)
+"aCF" = (
+/obj/structure/girder,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCG" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCH" = (
+/obj/machinery/space_heater,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCJ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCK" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCL" = (
+/obj/structure/closet/secure_closet/security,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/auxiliary)
+"aCM" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCN" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aCO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/hydroponics/soil,
+/turf/open/floor/grass,
+/area/service/chapel/main)
+"aCP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/snacks/grown/poppy{
+ pixel_y = 5
+ },
+/obj/item/reagent_containers/food/snacks/grown/harebell{
+ pixel_y = 5
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aCQ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/hydroponics/soil,
+/obj/structure/window/reinforced{
+ dir = 4;
+ pixel_x = 3
+ },
+/turf/open/floor/grass,
+/area/service/chapel/main)
+"aCR" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/service/chapel/main)
+"aCT" = (
+/obj/structure/table,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/construction/mining/aux_base)
+"aCW" = (
+/obj/machinery/sleeper/syndie{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"aCX" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/construction/mining/aux_base)
+"aCY" = (
+/obj/machinery/computer/security,
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_y = 30
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/auxiliary)
+"aCZ" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/auxiliary)
+"aDa" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aDb" = (
+/obj/structure/table,
+/obj/item/wirecutters,
+/obj/item/flashlight{
+ pixel_x = 1;
+ pixel_y = 5
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aDc" = (
+/obj/machinery/computer/card,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = 20
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/auxiliary)
+"aDd" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aDe" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aDf" = (
+/obj/machinery/computer/secure_data,
+/obj/machinery/requests_console{
+ department = "Security";
+ departmentType = 5;
+ pixel_y = 30
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/auxiliary)
+"aDg" = (
+/obj/machinery/biogenerator,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aDh" = (
+/obj/machinery/vending/assist,
+/obj/structure/sign/poster/contraband/grey_tide{
+ desc = "A poster promoting a regression to ape-like intelligence for Assistants, suggesting they break, loot and murder enough to make even a caveman blush.";
+ pixel_x = -32;
+ poster_item_desc = "Nanotrasen does not condone such messages. Please don't regress to ape-level intelligence as this poster suggests."
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aDi" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/command/nuke_storage)
+"aDj" = (
+/obj/machinery/nuclearbomb/selfdestruct,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/nuke_storage)
+"aDk" = (
+/obj/structure/table,
+/obj/item/assembly/igniter{
+ pixel_x = -8;
+ pixel_y = -4
+ },
+/obj/item/assembly/igniter,
+/obj/item/screwdriver{
+ pixel_y = 16
+ },
+/obj/machinery/camera{
+ c_tag = "Primary Tool Storage"
+ },
+/obj/machinery/requests_console{
+ department = "Tool Storage";
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aDl" = (
+/obj/structure/table,
+/obj/item/t_scanner,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aDm" = (
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/item/stock_parts/cell/high/plus,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aDn" = (
+/obj/structure/table,
+/obj/item/assembly/signaler,
+/obj/item/assembly/signaler,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = 20
+ },
+/obj/item/multitool,
+/obj/item/multitool{
+ pixel_x = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aDo" = (
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aDp" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aDq" = (
+/obj/machinery/vending/tool,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aDs" = (
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"aDt" = (
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"aDv" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 1;
+ sortType = 18
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aDx" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot_white/left,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/nuke_storage)
+"aDz" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aDA" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aDB" = (
+/obj/machinery/suit_storage_unit/standard_unit,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aDC" = (
+/obj/machinery/suit_storage_unit/standard_unit,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aDD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aDE" = (
+/obj/machinery/suit_storage_unit/standard_unit,
+/obj/machinery/light,
+/obj/machinery/camera{
+ c_tag = "EVA Storage";
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aDF" = (
+/obj/machinery/suit_storage_unit/standard_unit,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aDG" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Dorms South";
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aDH" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/obj/item/pen,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/folder/white,
+/obj/item/pen/fountain,
+/obj/item/stamp/rd{
+ pixel_x = 3;
+ pixel_y = -2
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"aDI" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/command/storage/eva)
+"aDK" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Cryogenics "
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/commons/cryopod)
+"aDL" = (
+/obj/structure/toilet/secret/low_loot{
+ dir = 4
+ },
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ pixel_y = 25
+ },
+/obj/machinery/button/door{
+ id = "Bath1";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 14;
+ pixel_y = 38;
+ specialfunctions = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"aDM" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/engine_smes)
+"aDQ" = (
+/obj/machinery/door/airlock{
+ desc = "A small bathroom with a sink, toilet and shower.";
+ id_tag = "Bath1";
+ name = "Bathroom"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"aDW" = (
+/obj/structure/loot_pile/maint,
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"aDZ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEa" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEd" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEe" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEf" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEg" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/service/chapel/main";
+ name = "Chapel APC";
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEh" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aEi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance{
+ name = "Chapel Maintenance";
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aEk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aEl" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEm" = (
+/obj/structure/bookcase,
+/obj/machinery/camera{
+ c_tag = "Chapel North"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aEn" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aEz" = (
+/obj/machinery/power/apc{
+ areastring = "/area/hallway/secondary/entry";
+ dir = 4;
+ name = "Entry Hall APC";
+ pixel_x = 24
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aEA" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEB" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEC" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aED" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aEE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/auxiliary)
+"aEF" = (
+/obj/structure/table/glass,
+/obj/item/reagent_containers/food/snacks/grown/wheat,
+/obj/item/reagent_containers/food/snacks/grown/watermelon,
+/obj/item/reagent_containers/food/snacks/grown/watermelon,
+/obj/item/reagent_containers/food/snacks/grown/watermelon,
+/obj/item/reagent_containers/food/snacks/grown/citrus/orange,
+/obj/item/reagent_containers/food/snacks/grown/grapes,
+/obj/item/reagent_containers/food/snacks/grown/cocoapod,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aEG" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/auxiliary)
+"aEH" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/auxiliary)
+"aEI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/auxiliary)
+"aEJ" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/auxiliary)
+"aEK" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/auxiliary)
+"aEL" = (
+/obj/machinery/door/airlock{
+ name = "Garden"
+ },
+/turf/open/floor/plasteel,
+/area/service/hydroponics/garden)
+"aEM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"aEN" = (
+/obj/machinery/camera{
+ c_tag = "Gateway";
+ dir = 4
+ },
+/obj/structure/table,
+/obj/structure/sign/warning/biohazard{
+ pixel_x = -32
+ },
+/obj/item/storage/firstaid/regular,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"aEO" = (
+/obj/structure/table,
+/obj/item/radio/off{
+ pixel_y = 6
+ },
+/obj/item/radio/off{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/radio/off{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/radio/off,
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"aEP" = (
+/obj/structure/table,
+/obj/machinery/recharger,
+/obj/structure/sign/warning/biohazard{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"aEQ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/circuit/red,
+/area/ai_monitored/command/nuke_storage)
+"aER" = (
+/turf/open/floor/circuit/red,
+/area/ai_monitored/command/nuke_storage)
+"aET" = (
+/obj/effect/turf_decal/bot_white/left,
+/obj/structure/closet/crate/silvercrate,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/nuke_storage)
+"aEV" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aEW" = (
+/obj/structure/cable,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/ai_monitored/command/storage/eva)
+"aEX" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/command/glass{
+ name = "EVA Storage";
+ req_access_txt = "18"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aEY" = (
+/obj/structure/cable,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/ai_monitored/command/storage/eva)
+"aEZ" = (
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aFa" = (
+/obj/machinery/suit_storage_unit/cmo,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"aFb" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aFc" = (
+/obj/structure/sign/warning/securearea,
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/command/storage/eva)
+"aFd" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aFe" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aFm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aFn" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aFo" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aFp" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aFq" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/space,
+/area/space/nearstation)
+"aFr" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aFs" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aFu" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/service/library)
+"aFv" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aFw" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/service/chapel/office)
+"aFx" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aFy" = (
+/obj/machinery/power/apc{
+ areastring = "/area/service/chapel/office";
+ name = "Chapel Office APC";
+ pixel_y = -24
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aFz" = (
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aFA" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aFB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aFG" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aFH" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/auxiliary)
+"aFI" = (
+/obj/machinery/camera{
+ c_tag = "Security Checkpoint";
+ dir = 1
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/machinery/light_switch{
+ pixel_x = 6;
+ pixel_y = -25
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/auxiliary)
+"aFJ" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aFK" = (
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/obj/item/pen,
+/obj/structure/table,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/auxiliary)
+"aFL" = (
+/obj/item/radio/off,
+/obj/item/crowbar,
+/obj/item/assembly/flash/handheld,
+/obj/structure/table,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/auxiliary)
+"aFM" = (
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/obj/structure/table,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/auxiliary)
+"aFN" = (
+/obj/structure/table/glass,
+/obj/item/cultivator,
+/obj/item/hatchet,
+/obj/item/crowbar,
+/obj/item/plant_analyzer,
+/obj/item/reagent_containers/glass/bucket,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aFO" = (
+/obj/machinery/camera{
+ c_tag = "Garden";
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aFP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aFQ" = (
+/obj/structure/table,
+/obj/item/stack/cable_coil{
+ pixel_x = 2;
+ pixel_y = -2
+ },
+/obj/item/stack/cable_coil{
+ pixel_x = 3;
+ pixel_y = -7
+ },
+/obj/item/screwdriver{
+ pixel_y = 16
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aFR" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aFT" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aFU" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aFV" = (
+/obj/effect/turf_decal/bot_white/right,
+/obj/machinery/ore_silo,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/nuke_storage)
+"aFW" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/camera/motion{
+ c_tag = "Vault";
+ dir = 1;
+ network = list("vault")
+ },
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/nuke_storage)
+"aFX" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/nuke_storage)
+"aFY" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aFZ" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aGa" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"aGb" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = -30
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"aGc" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"aGd" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"aGg" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aGi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aGj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aGk" = (
+/obj/structure/toilet/secret/low_loot{
+ dir = 4
+ },
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ pixel_y = 25
+ },
+/obj/machinery/button/door{
+ id = "Bath2";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 14;
+ pixel_y = 38;
+ specialfunctions = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"aGl" = (
+/obj/machinery/door/airlock{
+ desc = "A small bathroom with a sink, toilet and shower.";
+ id_tag = "Bath2";
+ name = "Bathroom"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"aGm" = (
+/obj/structure/cable,
+/obj/machinery/power/apc{
+ areastring = "/area/commons/toilet";
+ dir = 4;
+ name = "Dormitory Bathrooms APC";
+ pixel_x = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/table/glass,
+/obj/structure/bedsheetbin/towel,
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"aGo" = (
+/obj/structure/table,
+/obj/item/stack/sheet/rglass{
+ amount = 50
+ },
+/obj/item/stack/sheet/rglass{
+ amount = 50
+ },
+/obj/item/stack/rods/fifty,
+/obj/item/stack/rods/fifty,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aGq" = (
+/obj/item/stack/sheet/plasteel{
+ amount = 10
+ },
+/obj/structure/table,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aGs" = (
+/obj/machinery/suit_storage_unit/rd,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"aGt" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aGu" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aGx" = (
+/obj/item/radio/intercom{
+ pixel_x = -25
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"aGA" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/sorting/mail{
+ dir = 4;
+ sortType = 19
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGB" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/sorting/mail{
+ dir = 4;
+ sortType = 20
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGC" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGE" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGF" = (
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 4;
+ sortType = 17
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGG" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Library Maintenance";
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGH" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGI" = (
+/obj/structure/disposalpipe/junction{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGJ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGL" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGM" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Crematorium Maintenance";
+ req_access_txt = "27"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGN" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/chapel/office)
+"aGQ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGS" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGU" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/requests_console{
+ department = "Chapel";
+ departmentType = 2;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aGV" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGW" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aGX" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/space,
+/area/space/nearstation)
+"aGY" = (
+/obj/machinery/airalarm{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aGZ" = (
+/obj/machinery/door/airlock/security{
+ name = "Security Checkpoint";
+ req_access_txt = "1"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/auxiliary)
+"aHa" = (
+/obj/machinery/door/firedoor,
+/obj/structure/table/reinforced,
+/obj/item/paper,
+/obj/machinery/door/window/westright{
+ dir = 1;
+ name = "Security Checkpoint";
+ req_access_txt = "1"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
+"aHb" = (
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/obj/item/stack/packageWrap,
+/obj/item/pen/fourcolor,
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aHd" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aHe" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/electrical{
+ pixel_x = 1;
+ pixel_y = -1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aHf" = (
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/obj/machinery/vending/wardrobe/chap_wardrobe,
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aHg" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/camera{
+ c_tag = "Chapel Office"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aHh" = (
+/obj/structure/sign/warning/securearea,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/command/nuke_storage)
+"aHi" = (
+/obj/machinery/door/morgue{
+ name = "Confession Booth (Chaplain)";
+ req_access_txt = "22"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aHj" = (
+/obj/effect/mapping_helpers/airlock/locked,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/door/airlock/vault{
+ name = "Vault Door";
+ req_access_txt = "53"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/nuke_storage)
+"aHk" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/structure/table/wood,
+/obj/item/clothing/under/misc/burial,
+/obj/item/clothing/under/misc/burial,
+/obj/item/clothing/under/misc/burial,
+/obj/item/clothing/under/misc/burial,
+/obj/item/clothing/under/misc/burial,
+/obj/item/clothing/under/misc/burial,
+/obj/item/clothing/under/misc/burial,
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aHl" = (
+/obj/structure/chair/comfy/plywood,
+/obj/machinery/light/floor,
+/obj/item/radio/intercom{
+ broadcasting = 1;
+ frequency = 1480;
+ name = "Confessional Intercom";
+ pixel_x = 25
+ },
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aHm" = (
+/obj/structure/lattice,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/chapel/main)
+"aHn" = (
+/obj/machinery/mass_driver{
+ dir = 4;
+ id = "chapelgun";
+ name = "Holy Driver"
+ },
+/obj/machinery/door/window{
+ dir = 8;
+ name = "Mass Driver";
+ req_access_txt = "22"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/service/chapel/main)
+"aHu" = (
+/obj/machinery/status_display/evac{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aHw" = (
+/obj/effect/landmark/event_spawn,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"aHx" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aHy" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/checkpoint/auxiliary)
+"aHz" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aHA" = (
+/obj/item/reagent_containers/spray/plantbgone,
+/obj/item/reagent_containers/spray/pestspray{
+ pixel_x = 3;
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/glass/bottle/nutrient/ez,
+/obj/item/reagent_containers/glass/bottle/nutrient/rh{
+ pixel_x = 2;
+ pixel_y = 1
+ },
+/obj/structure/table/glass,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aHB" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aHC" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aHD" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aHE" = (
+/obj/structure/table,
+/obj/item/weldingtool,
+/obj/item/crowbar,
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aHF" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"aHH" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Dormitory"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aHI" = (
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"aHJ" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aHL" = (
+/obj/machinery/computer/bank_machine,
+/obj/effect/turf_decal/bot_white,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/nuke_storage)
+"aHM" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/service/bar)
+"aHN" = (
+/obj/structure/table,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/crowbar,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aHO" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aHP" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aHQ" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aHR" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aHS" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/airlock/maintenance{
+ name = "Bar Storage Maintenance";
+ req_access_txt = "25"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aHT" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Dormitory"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aHV" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/structure/table/glass,
+/obj/item/razor{
+ pixel_x = 2;
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/rag/towel/random,
+/obj/item/reagent_containers/rag/towel/random,
+/obj/item/reagent_containers/rag/towel/random,
+/obj/item/reagent_containers/rag/towel/random,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"aHY" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIa" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIc" = (
+/obj/machinery/power/apc{
+ areastring = "/area/service/bar";
+ name = "Bar APC";
+ pixel_y = -24
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aId" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIe" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/service/bar)
+"aIf" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIg" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=2";
+ freq = 1400;
+ location = "Bar"
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"aIh" = (
+/obj/machinery/power/apc{
+ areastring = "/area/service/kitchen";
+ name = "Kitchen APC";
+ pixel_y = -24
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIj" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/sorting/mail{
+ dir = 4;
+ sortType = 21
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIk" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIl" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIn" = (
+/obj/machinery/power/apc{
+ areastring = "/area/service/hydroponics";
+ name = "Hydroponics APC";
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIo" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aIp" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/service/hydroponics)
+"aIq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/hydroponics)
+"aIr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/button/door{
+ desc = "Bolts the doors to the Private Study.";
+ id = "PrivateStudy";
+ name = "Private Study Lock";
+ pixel_x = -5;
+ pixel_y = 24;
+ req_access_txt = "28"
+ },
+/obj/machinery/button/door{
+ id = "PrivateStudy1";
+ name = "Privacy Shutters";
+ pixel_x = 5;
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aIs" = (
+/obj/machinery/camera{
+ c_tag = "Library North"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#c1caff"
+ },
+/obj/structure/chair/sofa/corp/right,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aIt" = (
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aIu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aIv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aIw" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/effect/landmark/start/assistant,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/chair/sofa/corp/left,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aIx" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aIy" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aIz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/table/wood,
+/obj/item/storage/crayons{
+ pixel_y = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aIB" = (
+/obj/structure/bodycontainer/crematorium{
+ id = "crematoriumChapel"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aIC" = (
+/obj/effect/landmark/start/chaplain,
+/obj/structure/chair/comfy/plywood,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/service/chapel/office)
+"aID" = (
+/obj/effect/spawner/structure/window/reinforced/tinted,
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aIH" = (
+/obj/structure/table,
+/obj/item/storage/box/lights/mixed,
+/obj/item/pipe_dispenser,
+/obj/machinery/button/door{
+ id = "aux_base_shutters";
+ name = "Public Shutters Control";
+ pixel_x = 24;
+ req_one_access_txt = "32;47;48"
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/construction/mining/aux_base)
+"aII" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aIJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aIK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aIL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aIM" = (
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aIN" = (
+/obj/structure/table,
+/obj/item/wrench,
+/obj/item/analyzer,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aIO" = (
+/obj/machinery/camera{
+ c_tag = "Arrivals Lounge"
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aIP" = (
+/obj/structure/sign/map/left{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aIQ" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aIR" = (
+/obj/structure/sign/map/right{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aIS" = (
+/obj/structure/table/glass,
+/obj/item/hatchet,
+/obj/item/cultivator,
+/obj/item/crowbar,
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/plant_analyzer,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aIT" = (
+/obj/item/storage/bag/plants/portaseeder,
+/obj/structure/table/glass,
+/obj/item/plant_analyzer,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = 29
+ },
+/obj/machinery/light_switch{
+ pixel_x = -6;
+ pixel_y = -25
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aIU" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=8";
+ freq = 1400;
+ location = "Tool Storage"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aIV" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/ai_monitored/command/nuke_storage)
+"aIW" = (
+/obj/structure/table,
+/obj/item/crowbar,
+/obj/item/assembly/prox_sensor{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/clothing/gloves/color/fyellow,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aIX" = (
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aIY" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aIZ" = (
+/obj/structure/table,
+/obj/item/storage/belt/utility,
+/obj/item/storage/firstaid/regular,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aJa" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/nuke_storage)
+"aJb" = (
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aJc" = (
+/obj/structure/disposalpipe/trunk,
+/obj/machinery/disposal/bin,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aJe" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/table/reinforced,
+/obj/item/pneumatic_cannon/pie/selfcharge,
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"aJf" = (
+/obj/machinery/camera{
+ c_tag = "EVA South";
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aJg" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aJi" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/command/nuke_storage)
+"aJj" = (
+/obj/structure/table,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/item/extinguisher,
+/obj/item/extinguisher,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aJl" = (
+/obj/structure/tank_dispenser/oxygen,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"aJm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/vending/wardrobe/bar_wardrobe,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aJn" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/primary/central)
+"aJo" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/camera{
+ c_tag = "Central Hallway North"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aJp" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aJq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/aft)
+"aJr" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aJs" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aJt" = (
+/obj/structure/sign/directions/security{
+ dir = 1;
+ pixel_x = 32;
+ pixel_y = 40
+ },
+/obj/structure/sign/directions/medical{
+ dir = 4;
+ pixel_x = 32;
+ pixel_y = 32
+ },
+/obj/structure/sign/directions/evac{
+ dir = 4;
+ pixel_x = 32;
+ pixel_y = 24
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aJu" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aJv" = (
+/obj/structure/sign/poster/official/nanomichi_ad{
+ pixel_y = 32
+ },
+/obj/machinery/vending/snack/random,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aJw" = (
+/turf/closed/wall,
+/area/hallway/primary/central)
+"aJx" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aJy" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aJz" = (
+/obj/machinery/button/door{
+ id = "Bath3";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 14;
+ pixel_y = 38;
+ specialfunctions = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/recharge_station,
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"aJA" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Kitchen Maintenance";
+ req_access_txt = "28"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aJB" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/airlock/maintenance{
+ name = "Hydroponics Maintenance";
+ req_access_txt = "35"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aJC" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/service/bar)
+"aJD" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Bar Maintenance";
+ req_access_txt = "12"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aJF" = (
+/obj/machinery/newscaster{
+ pixel_x = 30
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aJG" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/button/crematorium{
+ id = "crematoriumChapel";
+ pixel_x = 25
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aJH" = (
+/obj/machinery/door/window/southleft{
+ name = "Bar Delivery";
+ req_access_txt = "25"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"aJI" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/service/kitchen)
+"aJJ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aJK" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=2";
+ freq = 1400;
+ location = "Kitchen"
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/service/kitchen/coldroom)
+"aJL" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=2";
+ freq = 1400;
+ location = "Hydroponics"
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/service/hydroponics)
+"aJM" = (
+/obj/structure/table/wood,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/flashlight/lamp{
+ pixel_y = 15
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aJO" = (
+/obj/structure/table,
+/obj/machinery/reagentgrinder,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aJP" = (
+/obj/item/folder/yellow,
+/obj/item/pen/blue,
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aJQ" = (
+/obj/effect/landmark/event_spawn,
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aJR" = (
+/obj/structure/sign/poster/contraband/punch_shit,
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/locker)
+"aJS" = (
+/obj/structure/disposalpipe/segment,
+/obj/item/paicard,
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aJT" = (
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/paper_bin{
+ pixel_y = 4
+ },
+/obj/item/pen/fountain{
+ pixel_y = 4
+ },
+/turf/open/floor/carpet/black,
+/area/service/chapel/office)
+"aJU" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/bottle/holywater{
+ pixel_x = 9;
+ pixel_y = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/nullrod{
+ pixel_x = -15;
+ pixel_y = 3
+ },
+/turf/open/floor/carpet/black,
+/area/service/chapel/office)
+"aJV" = (
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/service/chapel/main)
+"aJW" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aJX" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aJY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aJZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Primary Tool Storage"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aKa" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Primary Tool Storage"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aKc" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/nuke_storage)
+"aKd" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/primary/port)
+"aKe" = (
+/obj/structure/chair/wood/normal{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/service/chapel/main)
+"aKf" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/construction/mining/aux_base";
+ dir = 8;
+ name = "Auxillary Base Construction APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aKj" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aKk" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aKl" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aKm" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Garden"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics/garden)
+"aKn" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/service/hydroponics/garden)
+"aKo" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aKp" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/commons/storage/primary)
+"aKq" = (
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/obj/machinery/camera,
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aKs" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/commons/storage/primary)
+"aKw" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/service/theater)
+"aKy" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/primary/port)
+"aKz" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aKA" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/primary/port)
+"aKB" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/hallway/primary/port)
+"aKC" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen/coldroom)
+"aKD" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aKE" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aKF" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aKG" = (
+/obj/machinery/vending/snack/random,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aKH" = (
+/obj/structure/sink{
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aKI" = (
+/obj/structure/closet/secure_closet/hydroponics,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aKL" = (
+/obj/machinery/airalarm{
+ pixel_y = 24
+ },
+/obj/machinery/camera{
+ c_tag = "Hydroponics Storage"
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/plantgenes{
+ pixel_y = 6
+ },
+/obj/structure/table,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aKM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aKO" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"aKP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"aKQ" = (
+/obj/machinery/reagentgrinder,
+/obj/structure/table/wood,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aKS" = (
+/obj/machinery/camera{
+ c_tag = "Bar Storage"
+ },
+/obj/structure/sink/kitchen{
+ pixel_y = 28
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aKT" = (
+/obj/structure/closet/secure_closet/freezer/meat,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen/coldroom)
+"aKU" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aKV" = (
+/obj/machinery/door/window/southleft{
+ name = "Kitchen Delivery";
+ req_access_txt = "28"
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen/coldroom)
+"aKW" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aKX" = (
+/obj/machinery/door/window/eastright{
+ name = "Hydroponics Delivery";
+ req_access_txt = "35"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aKY" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"aKZ" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/machinery/camera{
+ c_tag = "Chapel Crematorium";
+ dir = 4
+ },
+/obj/structure/bodycontainer/morgue,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aLa" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aLb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/airlock{
+ name = "Crematorium";
+ req_access_txt = "27"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aLc" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aLd" = (
+/obj/structure/table,
+/obj/item/reagent_containers/spray/plantbgone{
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/spray/plantbgone{
+ pixel_x = 8;
+ pixel_y = 8
+ },
+/obj/item/reagent_containers/spray/plantbgone{
+ pixel_x = 13;
+ pixel_y = 5
+ },
+/obj/item/watertank,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aLe" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/chair/wood/normal{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aLf" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aLg" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aLi" = (
+/obj/structure/chair/comfy/beige,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aLj" = (
+/obj/structure/chair/comfy/beige,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aLk" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aLl" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aLm" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/camera{
+ c_tag = "Port Hallway 2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aLo" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/service/chapel/office)
+"aLp" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aLq" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aLr" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aLt" = (
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/food/snacks/mint{
+ pixel_y = 9
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/maintenance/bar)
+"aLu" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Auxillary Base Construction";
+ req_one_access_txt = "32;47;48"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/construction/mining/aux_base)
+"aLv" = (
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aLw" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"aLx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aLy" = (
+/obj/structure/chair/comfy/beige,
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aLz" = (
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aLA" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green{
+ pixel_x = 1;
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aLB" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aLC" = (
+/obj/machinery/vending/cigarette,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aLD" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/newscaster{
+ pixel_y = 32
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aLE" = (
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aLF" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aLG" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/hallway/primary/port";
+ dir = 1;
+ name = "Port Hall APC";
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aLH" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aLI" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aLK" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aLL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/command/nuke_storage)
+"aLM" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"aLO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aLP" = (
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/table/reinforced,
+/obj/item/book/granter/spell/mimery_guns,
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"aLQ" = (
+/obj/machinery/camera{
+ c_tag = "Central Hallway North-East"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aLR" = (
+/obj/machinery/newscaster{
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aLT" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"aLU" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/structure/reagent_dispensers/beerkeg,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aLV" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aLW" = (
+/obj/machinery/camera{
+ c_tag = "Central Hallway North-West"
+ },
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aLX" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aLY" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aLZ" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L3"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aMa" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L1"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aMb" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L7"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aMc" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L5"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aMd" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L11"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aMe" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L9"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aMf" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L13"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aMg" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aMh" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aMi" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/landmark/xeno_spawn,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aMj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aMk" = (
+/obj/machinery/chem_master/condimaster{
+ name = "CondiMaster Neo"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen/coldroom)
+"aMl" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen/coldroom)
+"aMm" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aMn" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aMo" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aMs" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aMt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = -31
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aMu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"aMw" = (
+/obj/machinery/vending/dinnerware{
+ contraband = list(/obj/item/reagent_containers/food/condiment/flour = 4);
+ desc = "This vendor is full of condiments to put on food.";
+ name = "\improper Condiments Vendor";
+ product_ads = "Get your sauces here!;No slave labour was used to make these products!;Nanotrasen Approved?!";
+ products = list(/obj/item/storage/bag/tray = 8, /obj/item/reagent_containers/food/drinks/drinkingglass = 10, /obj/item/storage/box/cups = 5, /obj/item/reagent_containers/food/condiment/pack/ketchup = 20, /obj/item/reagent_containers/food/condiment/pack/mustard = 20, /obj/item/reagent_containers/food/condiment/pack/hotsauce = 20, /obj/item/reagent_containers/food/condiment/pack/astrotame = 20, /obj/item/reagent_containers/food/condiment/saltshaker = 20, /obj/item/reagent_containers/food/condiment/peppermill = 20)
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"aMx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"aMy" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aMz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aMA" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aMB" = (
+/obj/structure/reagent_dispensers/keg/mead,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aMC" = (
+/obj/structure/reagent_dispensers/keg/gargle,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aMD" = (
+/obj/machinery/icecream_vat,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen/coldroom)
+"aME" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aMF" = (
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen/coldroom)
+"aMG" = (
+/obj/structure/closet/crate/hydroponics,
+/obj/item/shovel/spade,
+/obj/item/wrench,
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/wirecutters,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aMI" = (
+/obj/machinery/light/small,
+/obj/machinery/vending/wardrobe/hydro_wardrobe,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aML" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/structure/chair/wood/wings{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aMN" = (
+/obj/machinery/chem_master/condimaster,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aMO" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/snacks/chips,
+/obj/item/reagent_containers/food/drinks/soda_cans/cola,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/carpet,
+/area/hallway/secondary/entry)
+"aMP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/carpet,
+/area/hallway/secondary/entry)
+"aMR" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aMS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aMT" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aMU" = (
+/obj/effect/turf_decal/bot_white/right,
+/obj/structure/closet/crate/goldcrate,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/nuke_storage)
+"aMV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aMX" = (
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"aMY" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aMZ" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/hallway/secondary/exit)
+"aNa" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/secondary/exit)
+"aNb" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aNc" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aNd" = (
+/obj/structure/table/wood,
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aNe" = (
+/turf/open/floor/carpet,
+/area/hallway/secondary/entry)
+"aNf" = (
+/obj/structure/chair/comfy/beige{
+ dir = 8
+ },
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aNg" = (
+/obj/machinery/vending/coffee,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aNh" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aNi" = (
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aNj" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=CHW";
+ location = "Lockers"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aNk" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aNl" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aNm" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aNo" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aNp" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aNq" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aNr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aNs" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aNu" = (
+/obj/structure/table/wood,
+/obj/item/paper/fluff{
+ info = "Renovation Notice The bar layout for the station is very old. We've decided to give it a facelift after our partnership with IKEA Intergalactic?.
We added some sweet retro arcade machines and much more seating area. We removed the stage since it hasn't ever been used. You can run this place like a restaurant now that you have tables. Go whip up a menu with the Chef. You have a condiments table and your Requests Console has been moved so a noticeboard can be placed there. Take tickets from customers and pin them on the noticeboard for the Chef. We hope you like the new bar! b>";
+ name = "Renovation Notice - Bar";
+ pixel_x = -5;
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/food/drinks/shaker,
+/obj/item/stack/spacecash/c100,
+/obj/item/stack/spacecash/c100,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aNv" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aNw" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aNx" = (
+/obj/effect/landmark/observer_start,
+/obj/effect/turf_decal/plaque{
+ icon_state = "L8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aNy" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Lockers";
+ location = "EVA"
+ },
+/obj/effect/turf_decal/plaque{
+ icon_state = "L6"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aNz" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L12"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aNA" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Security";
+ location = "EVA2"
+ },
+/obj/effect/turf_decal/plaque{
+ icon_state = "L10"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aNB" = (
+/obj/effect/turf_decal/plaque{
+ icon_state = "L14"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aNC" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=EVA2";
+ location = "Dorm"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aNE" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aNF" = (
+/obj/structure/chair/comfy/black,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aNI" = (
+/obj/machinery/light/small{
+ dir = 4;
+ light_color = "#d8b1b1"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"aNK" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/mob/living/simple_animal/hostile/retaliate/goat{
+ name = "Pete"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen/coldroom)
+"aNL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/hydroponics)
+"aNM" = (
+/obj/structure/kitchenspike,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen/coldroom)
+"aNN" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Hydroponics";
+ req_access_txt = "35"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aNO" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/vending/wardrobe/chef_wardrobe,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen/coldroom)
+"aNP" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aNQ" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/service/hydroponics)
+"aNR" = (
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/item/paicard,
+/turf/open/floor/carpet,
+/area/hallway/secondary/entry)
+"aNS" = (
+/obj/machinery/bookbinder,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aNT" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aNU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Port Hallway";
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aNV" = (
+/obj/machinery/photocopier,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aNW" = (
+/obj/structure/sign/poster/contraband/missing_gloves,
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/storage/primary)
+"aNX" = (
+/obj/structure/closet/crate/coffin,
+/obj/machinery/door/window/eastright{
+ dir = 8;
+ name = "Coffin Storage";
+ req_access_txt = "22"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aNY" = (
+/obj/machinery/door/poddoor{
+ id = "chapelgun";
+ name = "Chapel Launcher Door"
+ },
+/obj/structure/fans/tiny,
+/turf/open/floor/plating,
+/area/service/chapel/main)
+"aNZ" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/hallway/secondary/exit)
+"aOa" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/chair,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/hallway/secondary/exit)
+"aOb" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/hallway/secondary/exit)
+"aOc" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/hallway/secondary/exit)
+"aOd" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/hallway/secondary/exit)
+"aOe" = (
+/obj/item/beacon,
+/obj/machinery/camera{
+ c_tag = "Arrivals Bay 1 South"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aOf" = (
+/obj/machinery/vending/snack/random,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aOg" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/structure/closet/firecloset,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aOh" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aOi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/circuit/red,
+/area/ai_monitored/command/nuke_storage)
+"aOj" = (
+/obj/structure/table/wood,
+/obj/item/storage/fancy/cigarettes{
+ pixel_y = 2
+ },
+/obj/item/lighter/greyscale{
+ pixel_x = 4;
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aOk" = (
+/obj/machinery/vending/cola/random,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aOl" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aOm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aOn" = (
+/obj/machinery/light,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aOo" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aOp" = (
+/obj/machinery/camera{
+ c_tag = "Port Hallway 3";
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aOq" = (
+/obj/structure/disposalpipe/junction{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aOr" = (
+/obj/structure/disposalpipe/junction/flip{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aOs" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"aOv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aOw" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/nuke_storage)
+"aOx" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aOy" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aOz" = (
+/obj/structure/sign/directions/security{
+ dir = 4;
+ pixel_x = 32;
+ pixel_y = -24
+ },
+/obj/structure/sign/directions/evac{
+ dir = 4;
+ pixel_x = 32;
+ pixel_y = -32
+ },
+/obj/structure/sign/directions/engineering{
+ pixel_x = 32;
+ pixel_y = -40
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aOA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aOB" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aOC" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aOD" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=QM";
+ location = "CHW"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aOE" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aOF" = (
+/obj/machinery/light,
+/obj/structure/sign/warning/electricshock{
+ pixel_y = -32
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aOG" = (
+/obj/structure/sign/warning/electricshock{
+ pixel_y = -32
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aOH" = (
+/obj/structure/safe,
+/obj/item/clothing/head/bearpelt,
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass,
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass,
+/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka,
+/obj/effect/turf_decal/bot_white/left,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/item/gun/ballistic/revolver/nagant,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/nuke_storage)
+"aOI" = (
+/obj/structure/kitchenspike,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen/coldroom)
+"aOJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aOL" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"aOM" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen/coldroom)
+"aON" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen/coldroom)
+"aOO" = (
+/obj/machinery/door/airlock{
+ name = "Bar Storage";
+ req_access_txt = "25"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aOP" = (
+/obj/effect/landmark/blobstart,
+/obj/item/toy/beach_ball/holoball,
+/turf/open/floor/plating,
+/area/service/bar)
+"aOQ" = (
+/obj/machinery/requests_console{
+ department = "Hydroponics";
+ departmentType = 2;
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aOR" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aOS" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/carpet/black,
+/area/service/library)
+"aOT" = (
+/obj/machinery/gibber,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen/coldroom)
+"aOU" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/hallway/secondary/exit)
+"aOV" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aOW" = (
+/obj/machinery/hydroponics/constructable,
+/obj/machinery/camera{
+ c_tag = "Hydroponics North"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aOX" = (
+/obj/machinery/hydroponics/constructable,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aOY" = (
+/obj/structure/chair/comfy/beige{
+ dir = 1
+ },
+/obj/effect/landmark/start/assistant,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aOZ" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aPa" = (
+/obj/structure/chair/comfy/beige{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aPb" = (
+/obj/structure/bookcase/random/religion,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aPc" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aPd" = (
+/obj/structure/bookcase/random/reference,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aPe" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aPf" = (
+/obj/machinery/computer/libraryconsole,
+/obj/structure/table/wood,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aPg" = (
+/obj/structure/chair/comfy/brown,
+/turf/open/floor/carpet/black,
+/area/service/library)
+"aPk" = (
+/turf/open/floor/plasteel/chapel{
+ dir = 4
+ },
+/area/service/chapel/main)
+"aPl" = (
+/turf/open/floor/plasteel/chapel{
+ dir = 1
+ },
+/area/service/chapel/main)
+"aPm" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/chapel{
+ dir = 4
+ },
+/area/service/chapel/main)
+"aPn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/chapel{
+ dir = 1
+ },
+/area/service/chapel/main)
+"aPo" = (
+/obj/structure/closet/crate/coffin,
+/obj/machinery/door/window/eastleft{
+ dir = 8;
+ name = "Coffin Storage";
+ req_access_txt = "22"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aPp" = (
+/obj/machinery/camera{
+ c_tag = "Escape Arm Holding Area";
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ dir = 8;
+ name = "Station Intercom (General)";
+ pixel_x = -28
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/hallway/secondary/exit)
+"aPq" = (
+/obj/effect/turf_decal/caution/stand_clear/red,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"aPr" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/mineral/plastitanium/red,
+/area/hallway/secondary/exit)
+"aPs" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/hallway/secondary/exit)
+"aPt" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-20"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aPu" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aPv" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = 20
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aPx" = (
+/obj/structure/chair/comfy/beige{
+ dir = 1
+ },
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"aPy" = (
+/obj/machinery/vending/snack/random,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aPz" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port)
+"aPA" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/locker)
+"aPB" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aPC" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aPD" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aPE" = (
+/obj/machinery/status_display/evac,
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/locker)
+"aPF" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/commons/storage/art)
+"aPG" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/storage/art)
+"aPH" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Art Storage"
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/art)
+"aPI" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aPJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/storage/art)
+"aPK" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/storage/emergency/port)
+"aPL" = (
+/obj/structure/table,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aPM" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aPN" = (
+/obj/structure/table,
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aPO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"aPQ" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/storage/tools)
+"aPR" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/aft)
+"aPS" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/turf/open/floor/plating,
+/area/command/bridge)
+"aPT" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/command/bridge)
+"aPU" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/turf/open/floor/plating,
+/area/command/bridge)
+"aPV" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/turf/open/floor/plating,
+/area/command/bridge)
+"aPX" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/turf/open/floor/plating,
+/area/command/bridge)
+"aPY" = (
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = 3;
+ pixel_y = 9
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aPZ" = (
+/obj/item/reagent_containers/food/drinks/britcup,
+/obj/structure/table/reinforced,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aQa" = (
+/obj/machinery/computer/arcade/battle,
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"aQb" = (
+/obj/structure/window{
+ dir = 1
+ },
+/obj/effect/landmark/start/assistant,
+/obj/structure/chair/sofa/corp/right,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aQc" = (
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aQd" = (
+/obj/structure/window,
+/obj/structure/chair/sofa/corp/left{
+ dir = 1
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aQe" = (
+/obj/effect/landmark/event_spawn,
+/obj/effect/landmark/xmastree,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"aQf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aQg" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/door/poddoor/preopen{
+ id = "barShutters";
+ name = "privacy shutters"
+ },
+/turf/open/floor/plating,
+/area/service/bar)
+"aQh" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aQi" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aQj" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/kitchen)
+"aQk" = (
+/obj/machinery/door/airlock{
+ name = "Kitchen cold room";
+ req_access_txt = "28"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/showroomfloor,
+/area/service/kitchen)
+"aQl" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aQm" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aQn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aQo" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aQp" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aQq" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aQr" = (
+/obj/machinery/light/small,
+/obj/structure/table/wood/fancy,
+/turf/open/floor/carpet/black,
+/area/service/library)
+"aQs" = (
+/obj/structure/bed,
+/obj/item/bedsheet/black,
+/turf/open/floor/carpet/black,
+/area/service/library)
+"aQu" = (
+/turf/open/floor/plasteel/chapel,
+/area/service/chapel/main)
+"aQv" = (
+/turf/open/floor/plasteel/chapel{
+ dir = 8
+ },
+/area/service/chapel/main)
+"aQw" = (
+/obj/item/trash/candle{
+ pixel_x = -5;
+ pixel_y = 2
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/carpet/black,
+/area/service/chapel/main)
+"aQx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/chapel,
+/area/service/chapel/main)
+"aQy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/chapel{
+ dir = 8
+ },
+/area/service/chapel/main)
+"aQz" = (
+/obj/structure/closet/crate/coffin,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aQA" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aQB" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/hallway/secondary/exit)
+"aQC" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"aQD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aQE" = (
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"aQF" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Security Escape Airlock";
+ req_access_txt = "2"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/hallway/secondary/exit)
+"aQG" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aQH" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aQI" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aQJ" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aQK" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aQL" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aQM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aQN" = (
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aQO" = (
+/obj/structure/closet/wardrobe/white,
+/obj/item/clothing/suit/ghost_sheet,
+/obj/item/clothing/suit/ghost_sheet,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aQP" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/vending/cigarette,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aQR" = (
+/obj/machinery/vending/cola/pwr_game,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aQS" = (
+/obj/machinery/vending/coffee,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aQT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aQV" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/vending/clothing,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aQW" = (
+/obj/structure/closet/secure_closet/personal,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aQX" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/vending/kink,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aQY" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/artistic{
+ pixel_y = 10
+ },
+/obj/item/storage/toolbox/artistic,
+/obj/item/storage/toolbox/electrical{
+ pixel_y = -10
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/art)
+"aQZ" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/art)
+"aRa" = (
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/art)
+"aRb" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aRc" = (
+/obj/machinery/door/airlock{
+ name = "Port Emergency Storage"
+ },
+/turf/open/floor/plating,
+/area/commons/storage/emergency/port)
+"aRd" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aRe" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/commons/storage/tools)
+"aRf" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Auxiliary Tool Storage";
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/tools)
+"aRg" = (
+/obj/machinery/vending/boozeomat,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aRh" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aRi" = (
+/obj/machinery/computer/atmos_alert,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aRj" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/secure/briefcase,
+/obj/item/storage/box/PDAs{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/obj/item/storage/box/ids,
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aRk" = (
+/obj/machinery/computer/monitor{
+ name = "bridge power monitoring console"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aRl" = (
+/obj/machinery/computer/station_alert,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aRm" = (
+/obj/machinery/computer/communications,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aRn" = (
+/obj/machinery/computer/shuttle/labor,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aRo" = (
+/obj/machinery/modular_computer/console/preset/command,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aRp" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/computer/shuttle/mining,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aRq" = (
+/obj/machinery/computer/med_data,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aRr" = (
+/obj/machinery/computer/crew,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aRs" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/toolbox/emergency,
+/obj/item/wrench,
+/obj/item/assembly/timer,
+/obj/item/assembly/signaler,
+/obj/item/assembly/signaler,
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aRt" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aRu" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/window,
+/obj/effect/landmark/start/assistant,
+/obj/structure/chair/sofa/corp/right{
+ dir = 1
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aRx" = (
+/obj/machinery/computer/arcade/orion_trail,
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"aRy" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aRz" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aRA" = (
+/obj/machinery/vending/dinnerware{
+ contraband = list(/obj/item/kitchen/rollingpin = 2, /obj/item/kitchen/knife/butcher = 2, /obj/item/reagent_containers/food/condiment/flour = 4)
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aRB" = (
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/obj/machinery/camera{
+ c_tag = "Kitchen"
+ },
+/obj/structure/closet/secure_closet/freezer/fridge,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aRC" = (
+/obj/structure/sink/kitchen{
+ pixel_y = 28
+ },
+/obj/machinery/food_cart,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aRD" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aRE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aRF" = (
+/obj/structure/table,
+/obj/machinery/microwave{
+ pixel_x = -3;
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aRG" = (
+/obj/structure/table,
+/obj/machinery/microwave{
+ pixel_x = -3;
+ pixel_y = 6
+ },
+/obj/machinery/airalarm{
+ pixel_y = 24
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aRH" = (
+/obj/structure/closet/secure_closet/freezer/kitchen,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aRI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aRK" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/service/library";
+ dir = 4;
+ name = "Library APC";
+ pixel_x = 24
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aRL" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Holding Area";
+ req_access_txt = "2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/hallway/secondary/exit)
+"aRM" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aRN" = (
+/obj/structure/bookcase/random/fiction,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aRO" = (
+/obj/structure/displaycase/trophy,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aRP" = (
+/obj/machinery/camera{
+ c_tag = "Library South";
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aRQ" = (
+/obj/machinery/door/morgue{
+ name = "Private Study";
+ req_access_txt = "37"
+ },
+/turf/open/floor/carpet/black,
+/area/service/library)
+"aRR" = (
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aRT" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/rack,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/item/electronics/apc,
+/obj/item/electronics/airlock,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/tools)
+"aRU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/secondary/exit)
+"aRV" = (
+/obj/machinery/power/apc{
+ areastring = "/area/commons/storage/tools";
+ dir = 1;
+ name = "Auxiliary Tool Storage APC";
+ pixel_y = 23
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/table,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/stack/rods/fifty,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/tools)
+"aRW" = (
+/obj/structure/sign/warning/docking,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/secondary/exit)
+"aRX" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aRY" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aSa" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/camera{
+ c_tag = "Auxiliary Tool Storage"
+ },
+/obj/structure/table,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/storage/box/lights/mixed,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/tools)
+"aSb" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aSc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/tools)
+"aSd" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aSe" = (
+/obj/machinery/light,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aSf" = (
+/obj/machinery/camera{
+ c_tag = "Arrivals Hallway";
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aSg" = (
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aSh" = (
+/obj/structure/closet/wardrobe/mixed,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = -27
+ },
+/obj/item/clothing/head/russobluecamohat,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aSi" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aSk" = (
+/obj/structure/table,
+/obj/item/stack/cable_coil/random,
+/obj/item/stack/cable_coil/random,
+/obj/item/stack/cable_coil,
+/obj/item/paper_bin/construction,
+/obj/item/stack/cable_coil,
+/obj/item/pen/fourcolor,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/art)
+"aSl" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/item/storage/box/lights/mixed,
+/turf/open/floor/plating,
+/area/commons/storage/emergency/port)
+"aSm" = (
+/turf/open/floor/plating,
+/area/commons/storage/emergency/port)
+"aSn" = (
+/obj/item/extinguisher,
+/turf/open/floor/plating,
+/area/commons/storage/emergency/port)
+"aSr" = (
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/tools)
+"aSs" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/commons/storage/tools)
+"aSt" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/tools)
+"aSu" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aSv" = (
+/obj/structure/table/reinforced,
+/obj/item/assembly/flash/handheld,
+/obj/item/assembly/flash/handheld,
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aSw" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aSx" = (
+/obj/structure/chair{
+ dir = 1;
+ name = "Engineering Station"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aSy" = (
+/obj/structure/chair{
+ dir = 1;
+ name = "Command Station"
+ },
+/obj/machinery/button/door{
+ id = "bridge blast";
+ name = "Bridge Blast Door Control";
+ pixel_x = 28;
+ pixel_y = -2;
+ req_access_txt = "19"
+ },
+/obj/machinery/keycard_auth{
+ pixel_x = 29;
+ pixel_y = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aSz" = (
+/obj/structure/table/reinforced,
+/obj/item/aicard,
+/obj/item/multitool,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aSA" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aSB" = (
+/obj/structure/table/reinforced,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aSC" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aSD" = (
+/obj/structure/chair{
+ dir = 1;
+ name = "Crew Station"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aSE" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/fancy/donut_box,
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aSF" = (
+/mob/living/carbon/monkey/punpun,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aSH" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/table/wood/fancy,
+/obj/item/reagent_containers/food/condiment/peppermill{
+ pixel_x = -9
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = -3
+ },
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -9;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/condiment/pack/ketchup{
+ pixel_x = 5
+ },
+/obj/item/reagent_containers/food/condiment/pack/ketchup{
+ pixel_x = 5
+ },
+/obj/item/reagent_containers/food/condiment/pack/ketchup{
+ pixel_x = 5
+ },
+/obj/item/reagent_containers/food/condiment/pack/hotsauce{
+ pixel_x = 10
+ },
+/obj/item/reagent_containers/food/condiment/pack/hotsauce{
+ pixel_x = 10
+ },
+/obj/item/reagent_containers/food/condiment/pack/mustard{
+ pixel_x = 10
+ },
+/obj/item/reagent_containers/food/condiment/pack/mustard{
+ pixel_x = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"aSI" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Kitchen";
+ req_access_txt = "28"
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aSJ" = (
+/obj/effect/landmark/start/cook,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aSK" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aSL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aSM" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aSN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aSO" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aSP" = (
+/obj/machinery/smartfridge,
+/turf/closed/wall,
+/area/service/kitchen)
+"aSQ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aSR" = (
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aSS" = (
+/obj/machinery/seed_extractor,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aST" = (
+/obj/machinery/biogenerator,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aSU" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aSV" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aSW" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/tools)
+"aSX" = (
+/obj/machinery/power/apc{
+ areastring = "/area/commons/storage/art";
+ dir = 1;
+ name = "Art Storage";
+ pixel_y = 23
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aSY" = (
+/obj/structure/table/reinforced,
+/obj/item/clothing/head/that,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aSZ" = (
+/obj/effect/landmark/start/bartender,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aTb" = (
+/obj/machinery/newscaster{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aTc" = (
+/obj/machinery/door/window/northright{
+ dir = 8;
+ name = "Library Desk Door";
+ req_access_txt = "37"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aTd" = (
+/obj/machinery/computer/libraryconsole/bookmanagement,
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aTe" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aTf" = (
+/obj/structure/chair/pew/right{
+ dir = 1
+ },
+/turf/open/floor/plasteel/chapel,
+/area/service/chapel/main)
+"aTg" = (
+/obj/structure/chair/pew/left{
+ dir = 1
+ },
+/turf/open/floor/plasteel/chapel{
+ dir = 8
+ },
+/area/service/chapel/main)
+"aTh" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/chair/pew/right{
+ dir = 1
+ },
+/turf/open/floor/plasteel/chapel,
+/area/service/chapel/main)
+"aTi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/landmark/start/assistant,
+/obj/structure/chair/pew/left{
+ dir = 1
+ },
+/turf/open/floor/plasteel/chapel{
+ dir = 8
+ },
+/area/service/chapel/main)
+"aTj" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aTk" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"aTl" = (
+/obj/machinery/vending/cola/random,
+/obj/machinery/status_display/evac{
+ layer = 4;
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"aTm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"aTn" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Escape Airlock"
+ },
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"aTo" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "Escape Airlock"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"aTr" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/status_display/evac{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aTs" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/vacant_room/office)
+"aTt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/vacant_room/office)
+"aTu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aTv" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aTw" = (
+/obj/structure/closet/wardrobe/green,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/item/clothing/under/costume/kilt,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aTy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aTz" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/window{
+ dir = 1
+ },
+/obj/structure/window{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"aTB" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aTC" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/window{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"aTD" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/camera{
+ c_tag = "Locker Room East";
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/item/reagent_containers/rag/towel/random,
+/obj/item/razor,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aTE" = (
+/obj/structure/table,
+/obj/item/hand_labeler,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/art)
+"aTF" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/structure/table,
+/obj/item/camera_film,
+/obj/item/camera,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/art)
+"aTG" = (
+/obj/structure/table,
+/obj/item/storage/crayons,
+/obj/item/storage/crayons,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/art)
+"aTH" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/plating,
+/area/commons/storage/emergency/port)
+"aTI" = (
+/obj/machinery/space_heater,
+/turf/open/floor/plating,
+/area/commons/storage/emergency/port)
+"aTJ" = (
+/obj/machinery/light/small,
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plating,
+/area/commons/storage/emergency/port)
+"aTK" = (
+/obj/structure/rack,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/turf/open/floor/plating,
+/area/commons/storage/emergency/port)
+"aTL" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/artistic{
+ icon_state = "yellow";
+ item_state = "toolbox_yellow";
+ name = "Cable Toolbox";
+ pixel_y = 6
+ },
+/obj/item/storage/toolbox/emergency,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/tools)
+"aTM" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/snacks/mint,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aTN" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/condiment/flour,
+/obj/item/kitchen/rollingpin,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aTO" = (
+/obj/structure/table,
+/obj/item/book/manual/chef_recipes,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aTP" = (
+/obj/structure/rack,
+/obj/item/clothing/gloves/color/fyellow,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/multitool,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/tools)
+"aTQ" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/command/bridge)
+"aTR" = (
+/obj/machinery/computer/prisoner/management,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aTS" = (
+/obj/machinery/computer/secure_data,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aTT" = (
+/obj/machinery/computer/security,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aTU" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aTV" = (
+/obj/structure/table/reinforced,
+/obj/machinery/recharger,
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aTW" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aTX" = (
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aTY" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aTZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aUa" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aUb" = (
+/obj/machinery/modular_computer/console/preset/engineering,
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aUc" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/firstaid/regular,
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aUd" = (
+/obj/machinery/computer/security/mining,
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aUe" = (
+/obj/machinery/computer/cargo/request,
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aUg" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/chair/comfy/black,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aUh" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/eastleft{
+ name = "Hydroponics Desk";
+ req_access_txt = "35"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/service/kitchen)
+"aUi" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aUj" = (
+/obj/machinery/vending/hydronutrients,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aUk" = (
+/obj/machinery/vending/hydroseeds{
+ slogan_delay = 700
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aUl" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"aUm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"aUo" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aUt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aUv" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aUw" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/tools)
+"aUx" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aUy" = (
+/obj/machinery/camera{
+ c_tag = "Vacant Office";
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"aUz" = (
+/obj/machinery/hydroponics/constructable,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aUA" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp,
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"aUB" = (
+/obj/structure/bookcase/random/adult,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aUD" = (
+/obj/item/flashlight/lamp/green{
+ pixel_x = 1;
+ pixel_y = 5
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aUE" = (
+/obj/machinery/libraryscanner,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aUF" = (
+/obj/effect/landmark/start/librarian,
+/obj/structure/chair/office/dark,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aUG" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aUH" = (
+/obj/effect/landmark/start/assistant,
+/obj/structure/chair/pew/right{
+ dir = 1
+ },
+/turf/open/floor/plasteel/chapel{
+ dir = 4
+ },
+/area/service/chapel/main)
+"aUI" = (
+/obj/structure/chair/pew/left{
+ dir = 1
+ },
+/turf/open/floor/plasteel/chapel{
+ dir = 1
+ },
+/area/service/chapel/main)
+"aUJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/chair/pew/right{
+ dir = 1
+ },
+/turf/open/floor/plasteel/chapel{
+ dir = 4
+ },
+/area/service/chapel/main)
+"aUK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/chair/pew/left{
+ dir = 1
+ },
+/turf/open/floor/plasteel/chapel{
+ dir = 1
+ },
+/area/service/chapel/main)
+"aUL" = (
+/obj/machinery/computer/arcade,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"aUM" = (
+/obj/machinery/camera{
+ c_tag = "Arrivals Bay 2";
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aUN" = (
+/obj/structure/chair/office/dark{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"aUO" = (
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"aUQ" = (
+/obj/structure/table/wood,
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"aUR" = (
+/obj/structure/table/wood,
+/obj/item/pen/red,
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"aUS" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aUT" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aUU" = (
+/obj/structure/closet/wardrobe/grey,
+/obj/machinery/requests_console{
+ department = "Locker Room";
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aUW" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green,
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"aUY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"aUZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aVa" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/structure/closet/toolcloset,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/tools)
+"aVb" = (
+/obj/structure/sign/warning/electricshock{
+ pixel_y = 32
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aVc" = (
+/obj/structure/sign/warning/securearea{
+ pixel_x = 32
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/obj/effect/turf_decal/delivery/red,
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aVd" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/command/bridge)
+"aVe" = (
+/obj/machinery/camera{
+ c_tag = "Bridge West";
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aVf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aVg" = (
+/obj/structure/chair{
+ dir = 1;
+ name = "Security Station"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aVh" = (
+/obj/machinery/power/apc{
+ areastring = "/area/hallway/primary/fore";
+ dir = 8;
+ name = "Fore Primary Hallway APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/camera{
+ c_tag = "Fore Primary Hallway";
+ dir = 4
+ },
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"aVi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aVj" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aVk" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aVl" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aVm" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aVn" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aVo" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aVp" = (
+/obj/item/beacon,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aVq" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aVr" = (
+/obj/machinery/camera{
+ c_tag = "Bridge East";
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aVs" = (
+/obj/structure/chair{
+ dir = 1;
+ name = "Logistics Station"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aVt" = (
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/obj/effect/turf_decal/delivery/red,
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aVu" = (
+/obj/structure/sign/warning/electricshock{
+ pixel_y = 32
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aVv" = (
+/obj/machinery/camera{
+ c_tag = "Bridge East Entrance"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aVy" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aVz" = (
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aVA" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/structure/noticeboard{
+ desc = "Tickets for food orders will be placed here. The Chef should make the order and hand it to a waiter, waitress or just let the barkeep serve it.";
+ name = "Food Orders";
+ pixel_y = 26
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/service/kitchen)
+"aVB" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/condiment/enzyme{
+ layer = 5
+ },
+/obj/item/stack/packageWrap,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aVC" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aVD" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -9;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = -3
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ pixel_x = -9
+ },
+/obj/item/sharpener{
+ pixel_x = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aVE" = (
+/obj/structure/table,
+/obj/item/storage/box/donkpockets{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/glass/beaker{
+ pixel_x = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aVF" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aVH" = (
+/obj/machinery/processor,
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aVI" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aVJ" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/hydroponics/constructable,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aVK" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/obj/effect/landmark/start/botanist,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aVL" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 2;
+ sortType = 16
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"aVM" = (
+/obj/machinery/hydroponics/constructable,
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aVN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"aVO" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ pixel_y = 25
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"aVQ" = (
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aVS" = (
+/obj/item/camera_film,
+/obj/item/camera_film,
+/obj/item/taperecorder,
+/obj/item/camera,
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aVT" = (
+/obj/item/paper_bin/bundlenatural{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/paper_bin{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/pen/fountain,
+/obj/item/pen/fourcolor,
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aVU" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/chair/pew/left{
+ dir = 1
+ },
+/turf/open/floor/plasteel/chapel{
+ dir = 8
+ },
+/area/service/chapel/main)
+"aVV" = (
+/obj/machinery/camera{
+ c_tag = "Chapel South";
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"aVW" = (
+/obj/item/radio/intercom{
+ pixel_x = -25
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"aVX" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/hallway/secondary/exit)
+"aVY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/service/library)
+"aVZ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Library"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/service/library)
+"aWa" = (
+/obj/structure/sign/warning/vacuum/external,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"aWb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/service/library)
+"aWc" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"aWd" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/carpet/black,
+/area/service/library)
+"aWe" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Chapel"
+ },
+/turf/open/floor/carpet/black,
+/area/service/chapel/main)
+"aWg" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/carpet/black,
+/area/service/chapel/main)
+"aWh" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/obj/item/beacon,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"aWi" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"aWj" = (
+/obj/structure/grille,
+/obj/structure/window{
+ dir = 8
+ },
+/obj/structure/window,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aWk" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aWl" = (
+/obj/structure/grille,
+/obj/structure/window{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aWm" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/light_switch{
+ pixel_x = -28
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"aWn" = (
+/obj/structure/closet/wardrobe/black,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/clothing/head/beret/black,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aWp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aWq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aWr" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"aWs" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"aWt" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"aWu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aWv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aWx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aWy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/toilet/locker)
+"aWz" = (
+/obj/machinery/power/apc{
+ areastring = "/area/commons/storage/emergency/port";
+ dir = 1;
+ name = "Port Emergency Storage APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aWA" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aWB" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Detective Maintenance";
+ req_access_txt = "4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aWC" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/cargo/warehouse)
+"aWD" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/tools)
+"aWE" = (
+/obj/machinery/computer/med_data,
+/obj/machinery/newscaster{
+ pixel_y = 32
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/detectives_office)
+"aWF" = (
+/obj/structure/closet/toolcloset,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/tools)
+"aWG" = (
+/obj/machinery/computer/secure_data,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/detectives_office)
+"aWH" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aWI" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/obj/effect/turf_decal/delivery/red,
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aWJ" = (
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/command/glass{
+ name = "Bridge";
+ req_access_txt = "19"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aWK" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aWL" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/command/glass{
+ name = "Bridge";
+ req_access_txt = "19"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aWM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aWN" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aWO" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/obj/machinery/light,
+/obj/machinery/light_switch{
+ pixel_x = -6;
+ pixel_y = -22
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aWP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aWQ" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aWR" = (
+/obj/structure/fireaxecabinet{
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aWS" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aWT" = (
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Bridge";
+ departmentType = 5;
+ name = "Bridge RC";
+ pixel_y = -30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aWU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aWV" = (
+/obj/machinery/turretid{
+ control_area = "/area/ai_monitored/turret_protected/ai_upload";
+ name = "AI Upload turret control";
+ pixel_y = -25
+ },
+/obj/machinery/camera{
+ c_tag = "Bridge Center";
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aWW" = (
+/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/command/bridge";
+ name = "Bridge APC";
+ pixel_y = -24
+ },
+/obj/structure/cable,
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aWX" = (
+/obj/machinery/newscaster{
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aWY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aWZ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aXa" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aXb" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/obj/effect/turf_decal/delivery/red,
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aXc" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/command/glass{
+ name = "Bridge";
+ req_access_txt = "19"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aXd" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aXe" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/command/glass{
+ name = "Bridge";
+ req_access_txt = "19"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aXf" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aXg" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aXh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aXi" = (
+/obj/structure/window{
+ dir = 1
+ },
+/obj/structure/chair/sofa/corp/right,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aXj" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/item/paper_bin/bundlenatural{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/pen/fountain{
+ pixel_x = 6
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/item/pen/fourcolor,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aXk" = (
+/obj/structure/table/reinforced,
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_x = 32
+ },
+/obj/item/book/manual/wiki/barman_recipes,
+/obj/item/reagent_containers/rag,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aXl" = (
+/obj/machinery/door/window/southright{
+ name = "Bar Door";
+ req_one_access_txt = "25;28"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"aXm" = (
+/obj/effect/landmark/start/cook,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aXn" = (
+/obj/structure/table,
+/obj/machinery/reagentgrinder,
+/obj/machinery/requests_console{
+ department = "Kitchen";
+ departmentType = 2;
+ pixel_x = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aXo" = (
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aXq" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"aXr" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/window{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"aXt" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"aXu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/service/library)
+"aXv" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"aXw" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/window{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"aXy" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Chapel"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/service/chapel/main)
+"aXz" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/carpet/black,
+/area/service/chapel/main)
+"aXB" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/carpet/black,
+/area/service/chapel/main)
+"aXC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"aXD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"aXE" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/cargo/warehouse)
+"aXF" = (
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ dir = 10;
+ icon_state = "roomnum";
+ name = "Room Number 6";
+ pixel_y = 24
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/washing_machine{
+ pixel_x = 7;
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"aXG" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-05"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"aXI" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Port Docking Bay 2"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"aXJ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/cargo/warehouse)
+"aXK" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/security/detectives_office)
+"aXL" = (
+/obj/machinery/light/small{
+ dir = 1;
+ light_color = "#ffc1c1"
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/maintenance/bar)
+"aXM" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/machinery/door/airlock/maintenance{
+ name = "Cargo Bay Warehouse Maintenance";
+ req_access_txt = "31"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aXN" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/structure/filingcabinet/chestdrawer,
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"aXP" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aXQ" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/toilet/locker)
+"aXR" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"aXS" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/service/hydroponics)
+"aXT" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Library"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/service/library)
+"aXU" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/carpet/black,
+/area/service/library)
+"aXV" = (
+/obj/machinery/holopad,
+/turf/open/floor/carpet/black,
+/area/service/library)
+"aXW" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/carpet/black,
+/area/service/chapel/main)
+"aXX" = (
+/obj/machinery/door/airlock/engineering/abandoned{
+ abandoned = 0;
+ name = "Vacant Office A";
+ req_access_txt = "32"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"aXY" = (
+/obj/structure/chair/office/dark,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"aXZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"aYb" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aYc" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/port";
+ dir = 8;
+ name = "Port Maintenance APC";
+ pixel_x = -25;
+ pixel_y = 2
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aYd" = (
+/obj/structure/chair/office/dark,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"aYf" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aYg" = (
+/obj/effect/landmark/xeno_spawn,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/construction)
+"aYi" = (
+/obj/structure/closet/secure_closet/detective,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/detectives_office)
+"aYj" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/button/door{
+ id = "kanyewest";
+ name = "Privacy Shutters";
+ pixel_y = 24
+ },
+/obj/machinery/vending/wardrobe/det_wardrobe,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/detectives_office)
+"aYk" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aYl" = (
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aYm" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aYn" = (
+/obj/machinery/camera{
+ c_tag = "Bridge West Entrance";
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aYo" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/obj/effect/turf_decal/delivery/red,
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aYp" = (
+/obj/structure/cable,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/command/bridge)
+"aYq" = (
+/obj/structure/closet/emcloset,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aYr" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aYs" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aYt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/ai_upload)
+"aYu" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aYv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/ai_upload)
+"aYw" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/highsecurity{
+ name = "AI Upload Access";
+ req_access_txt = "16"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"aYx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/ai_upload)
+"aYy" = (
+/obj/machinery/status_display/ai,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/ai_upload)
+"aYz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/ai_upload)
+"aYA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/ai_upload)
+"aYB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/ai_upload)
+"aYC" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/structure/filingcabinet/filingcabinet,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aYD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"aYE" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aYF" = (
+/obj/machinery/power/apc{
+ areastring = "/area/hallway/primary/central";
+ name = "Central Hall APC";
+ pixel_y = -24
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aYG" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aYJ" = (
+/obj/machinery/light_switch{
+ pixel_y = -25
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aYK" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock{
+ name = "Kitchen";
+ req_access_txt = "28"
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/service/kitchen)
+"aYL" = (
+/obj/machinery/light,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aYM" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/button/door{
+ id = "kitchen";
+ name = "Kitchen Shutters Control";
+ pixel_x = -1;
+ pixel_y = -24;
+ req_access_txt = "28"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aYN" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"aYO" = (
+/obj/item/reagent_containers/glass/bucket,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aYQ" = (
+/obj/machinery/hydroponics/constructable,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aYR" = (
+/obj/structure/chair/stool,
+/obj/effect/landmark/start/botanist,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aYS" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/window,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"aYT" = (
+/obj/machinery/camera{
+ c_tag = "Hydroponics South";
+ dir = 8
+ },
+/obj/structure/reagent_dispensers/watertank/high,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"aYU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aYW" = (
+/turf/open/floor/carpet/black,
+/area/service/library)
+"aYY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/service/library)
+"aYZ" = (
+/obj/structure/table/wood,
+/obj/item/storage/box/evidence,
+/obj/item/hand_labeler{
+ pixel_x = 5
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/item/taperecorder,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/detectives_office)
+"aZa" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/detectives_office)
+"aZb" = (
+/obj/machinery/camera{
+ c_tag = "Bar South";
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"aZc" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"aZd" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-08"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"aZe" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Chapel"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/service/chapel/main)
+"aZf" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/service/chapel/main)
+"aZg" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/carpet/black,
+/area/service/chapel/main)
+"aZh" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/carpet/black,
+/area/service/chapel/main)
+"aZi" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"aZj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"aZk" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"aZl" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"aZm" = (
+/obj/machinery/camera{
+ c_tag = "Escape Arm Airlocks";
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"aZn" = (
+/obj/structure/table/wood,
+/obj/item/folder/blue,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"aZp" = (
+/obj/structure/rack,
+/obj/item/electronics/apc,
+/obj/item/stock_parts/cell{
+ maxcharge = 2000
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"aZq" = (
+/obj/machinery/button/door{
+ id = "heads_meeting";
+ name = "Security Shutters";
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"aZr" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/tank/air{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aZs" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aZt" = (
+/obj/structure/toilet/secret/low_loot{
+ dir = 4
+ },
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ pixel_y = 25
+ },
+/obj/machinery/button/door{
+ id = "LockerShitter1";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 14;
+ pixel_y = 38;
+ specialfunctions = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet/locker)
+"aZu" = (
+/obj/machinery/photocopier,
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"aZv" = (
+/obj/machinery/door/airlock{
+ id_tag = "LockerShitter1";
+ name = "Unit 1"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet/locker)
+"aZy" = (
+/obj/machinery/camera{
+ c_tag = "Conference Room"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"aZz" = (
+/obj/machinery/newscaster{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"aZA" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aZB" = (
+/obj/machinery/portable_atmospherics/pump,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"aZC" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"aZD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"aZE" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/cargo/storage)
+"aZF" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/cargo/warehouse)
+"aZG" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"aZH" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "packageSort2"
+ },
+/turf/open/floor/plating,
+/area/cargo/sorting)
+"aZI" = (
+/obj/structure/rack,
+/obj/item/stack/sheet/cardboard,
+/obj/item/stack/rods/fifty,
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"aZJ" = (
+/obj/structure/table/wood,
+/obj/item/camera/detective,
+/turf/open/floor/carpet/black,
+/area/security/detectives_office)
+"aZK" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/cargo/sorting)
+"aZL" = (
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/detectives_office)
+"aZM" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/command/meeting_room)
+"aZN" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aZO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/command/meeting_room)
+"aZQ" = (
+/obj/machinery/door/airlock/command{
+ name = "Conference Room";
+ req_access_txt = "19"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"aZR" = (
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/ai_upload)
+"aZS" = (
+/obj/machinery/porta_turret/ai{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"aZT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"aZU" = (
+/obj/machinery/porta_turret/ai{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"aZV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/hallway/secondary/exit)
+"aZW" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/command/heads_quarters/captain)
+"aZX" = (
+/obj/machinery/door/airlock/command{
+ name = "Captain's Office";
+ req_access_txt = "20"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"aZY" = (
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aZZ" = (
+/obj/structure/chair/sofa/corp{
+ dir = 1
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"baa" = (
+/obj/effect/landmark/start/assistant,
+/obj/structure/chair/sofa/corp/right{
+ dir = 1
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"bab" = (
+/obj/machinery/light,
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"bac" = (
+/obj/structure/noticeboard{
+ pixel_y = -27
+ },
+/obj/structure/chair/sofa/corp/left{
+ dir = 1
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"bad" = (
+/obj/machinery/light,
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"baf" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bah" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_y = -30
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"bai" = (
+/obj/machinery/light/small,
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"baj" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/fancy/donut_box,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "kitchen";
+ name = "kitchen shutters"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"bak" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "kitchen";
+ name = "kitchen shutters"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"bal" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"bam" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/service/hydroponics)
+"ban" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/window/northleft{
+ name = "Hydroponics Desk";
+ req_access_txt = "35"
+ },
+/turf/open/floor/plasteel,
+/area/service/hydroponics)
+"bao" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"bap" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/window/westright{
+ dir = 1;
+ name = "Hydroponics Desk";
+ req_access_txt = "35"
+ },
+/turf/open/floor/plasteel,
+/area/service/hydroponics)
+"baq" = (
+/obj/machinery/status_display/ai{
+ pixel_y = 32
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"bar" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bas" = (
+/obj/machinery/vending/coffee,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"bat" = (
+/obj/item/pen/red,
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"bau" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"bav" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"bax" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"bay" = (
+/obj/structure/chair/comfy/black,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/command/meeting_room)
+"baz" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"baA" = (
+/turf/open/floor/carpet/black,
+/area/service/chapel/main)
+"baB" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"baC" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"baD" = (
+/obj/machinery/power/apc{
+ areastring = "/area/hallway/secondary/exit";
+ dir = 8;
+ name = "Escape Hallway APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"baE" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"baF" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/structure/closet/firecloset,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"baG" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"baH" = (
+/obj/structure/table/wood,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"baI" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/command/meeting_room)
+"baJ" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"baK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/command/meeting_room)
+"baL" = (
+/obj/machinery/atmospherics/components/unary/tank/air{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"baM" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/commons/toilet/locker";
+ dir = 4;
+ name = "Locker Restrooms APC";
+ pixel_x = 24;
+ pixel_y = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"baN" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"baP" = (
+/obj/structure/table/wood,
+/obj/item/storage/fancy/donut_box,
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"baQ" = (
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"baR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"baS" = (
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"baT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"baU" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/detectives_office)
+"baV" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security{
+ name = "Detective's Office";
+ req_access_txt = "4"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
+"baW" = (
+/obj/item/storage/secure/safe{
+ pixel_x = -23
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/detectives_office)
+"baX" = (
+/obj/structure/chair/comfy/brown,
+/obj/effect/landmark/start/detective,
+/turf/open/floor/carpet/black,
+/area/security/detectives_office)
+"baY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/closet/crate,
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"baZ" = (
+/obj/machinery/status_display/evac{
+ layer = 4;
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bba" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bbb" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"bbc" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bbd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bbe" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bbf" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bbg" = (
+/obj/effect/landmark/blobstart,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bbh" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"bbi" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"bbj" = (
+/obj/structure/table,
+/obj/item/ai_module/reset,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bbk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/ai_upload)
+"bbl" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"bbm" = (
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bbn" = (
+/obj/structure/table,
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bbo" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bbp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/ai_upload)
+"bbs" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"bbt" = (
+/obj/structure/closet/crate,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"bbu" = (
+/obj/machinery/power/apc{
+ areastring = "/area/command/heads_quarters/captain";
+ dir = 1;
+ name = "Captain's Office APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bbv" = (
+/obj/machinery/status_display/evac{
+ pixel_y = 32
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"bbw" = (
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bbx" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Diner"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"bby" = (
+/obj/structure/sign/barsign,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/bar)
+"bbz" = (
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bbA" = (
+/obj/machinery/camera{
+ c_tag = "Starboard Primary Hallway 2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bbB" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Hydroponics";
+ req_access_txt = "35"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"bbC" = (
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/carpet/black,
+/area/command/meeting_room)
+"bbD" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/service/library)
+"bbE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/library)
+"bbF" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/service/chapel/main)
+"bbG" = (
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"bbH" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"bbI" = (
+/obj/machinery/power/apc{
+ areastring = "/area/commons/vacant_room/office";
+ dir = 8;
+ name = "Vacant Office APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bbJ" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bbK" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bbL" = (
+/obj/machinery/door/airlock{
+ id_tag = "LockerShitter2";
+ name = "Unit 2"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet/locker)
+"bbM" = (
+/obj/item/book/manual/wiki/security_space_law,
+/obj/structure/table/wood,
+/turf/open/floor/carpet/black,
+/area/command/meeting_room)
+"bbO" = (
+/obj/machinery/washing_machine,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/commons/locker)
+"bbP" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"bbQ" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/bottle/whiskey{
+ pixel_x = 3
+ },
+/obj/item/lighter,
+/obj/item/restraints/handcuffs,
+/turf/open/floor/carpet/black,
+/area/security/detectives_office)
+"bbR" = (
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bbS" = (
+/obj/structure/closet/crate,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"bbT" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green,
+/turf/open/floor/carpet/black,
+/area/security/detectives_office)
+"bbV" = (
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bbW" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "heads_meeting";
+ name = "privacy shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/command/meeting_room)
+"bbX" = (
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"bbY" = (
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/obj/structure/table,
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"bca" = (
+/turf/open/floor/carpet/black,
+/area/command/meeting_room)
+"bcb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bcc" = (
+/obj/machinery/vending/snack/random,
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"bcd" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"bce" = (
+/obj/structure/table,
+/obj/item/ai_module/supplied/quarantine,
+/obj/machinery/camera/motion{
+ dir = 4;
+ network = list("aiupload")
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bcf" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/holopad/secure,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bcg" = (
+/obj/structure/table,
+/obj/item/ai_module/supplied/freeform,
+/obj/structure/sign/plaques/kiddie{
+ pixel_x = 32
+ },
+/obj/machinery/camera/motion{
+ dir = 8;
+ network = list("aiupload")
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bch" = (
+/obj/machinery/vending/cigarette,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bci" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bcj" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/junction{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bck" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bcl" = (
+/obj/structure/disposalpipe/segment,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal)
+"bcm" = (
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"bcn" = (
+/obj/structure/displaycase/captain,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bco" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Dorm";
+ location = "HOP2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bcp" = (
+/obj/structure/sign/directions/evac{
+ dir = 4;
+ pixel_x = 32;
+ pixel_y = 28
+ },
+/obj/structure/sign/directions/security{
+ dir = 1;
+ pixel_x = 32;
+ pixel_y = 36
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bcq" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bcr" = (
+/obj/machinery/camera{
+ c_tag = "Starboard Primary Hallway"
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bcs" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bcu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/airlock/maintenance{
+ name = "Locker Room Maintenance";
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bcv" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bcw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/locker)
+"bcx" = (
+/obj/machinery/camera{
+ c_tag = "Starboard Primary Hallway 5"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bcy" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"bcz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"bcA" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"bcB" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"bcC" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"bcD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"bcE" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"bcF" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"bcG" = (
+/obj/structure/table/wood,
+/obj/machinery/computer/security/wooden_tv,
+/turf/open/floor/carpet/black,
+/area/security/detectives_office)
+"bcH" = (
+/obj/structure/table/wood,
+/obj/item/storage/fancy/cigarettes,
+/obj/item/clothing/glasses/sunglasses,
+/turf/open/floor/carpet/black,
+/area/security/detectives_office)
+"bcI" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bcJ" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/structure/closet/crate/freezer,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"bcK" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bcL" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/junction/flip{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bcM" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bcN" = (
+/obj/item/folder/blue,
+/obj/structure/table/wood,
+/turf/open/floor/carpet/black,
+/area/command/meeting_room)
+"bcP" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"bcQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"bcR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"bcS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"bcU" = (
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/bar)
+"bcV" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/filingcabinet,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/detectives_office)
+"bcX" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "heads_meeting";
+ name = "privacy shutters"
+ },
+/turf/open/floor/plating,
+/area/command/meeting_room)
+"bcY" = (
+/obj/item/hand_labeler,
+/obj/item/assembly/timer,
+/obj/structure/table,
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"bcZ" = (
+/obj/structure/table/wood,
+/obj/item/radio/intercom{
+ dir = 8;
+ freerange = 1;
+ name = "Station Intercom (Command)"
+ },
+/turf/open/floor/carpet/black,
+/area/command/meeting_room)
+"bda" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/command/meeting_room)
+"bdd" = (
+/obj/machinery/vending/cola/random,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"bde" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"bdf" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/obj/machinery/porta_turret/ai{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bdg" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/ai_upload)
+"bdh" = (
+/obj/effect/turf_decal/bot_white,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bdi" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/vending/wardrobe/cap_wardrobe,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bdj" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bdk" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bdl" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bdm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bdn" = (
+/obj/machinery/camera{
+ c_tag = "Central Hallway East";
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/status_display/evac{
+ pixel_x = -32
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bdo" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bdq" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bdr" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"bds" = (
+/obj/machinery/camera{
+ c_tag = "Starboard Primary Hallway 4";
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bdt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bdu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bdv" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=HOP2";
+ location = "Stbd"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bdw" = (
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"bdx" = (
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bdy" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"bdz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"bdA" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Cargo Escape Airlock"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"bdB" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bdC" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 1;
+ sortType = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bdD" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bdE" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/structure/sign/poster/contraband/have_a_puff{
+ pixel_y = -32
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/detectives_office)
+"bdF" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/command/meeting_room)
+"bdG" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bdH" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bdI" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/command/meeting_room)
+"bdK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/holopad/secure,
+/turf/open/floor/carpet/black,
+/area/command/meeting_room)
+"bdN" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/medical/surgery)
+"bdO" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bdP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/science/robotics/mechbay)
+"bdQ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal)
+"bdR" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bdS" = (
+/obj/structure/closet/crate/internals,
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"bdT" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/disposal";
+ dir = 8;
+ name = "Disposal APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bdU" = (
+/obj/structure/closet/crate/medical,
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"bdX" = (
+/obj/item/storage/fancy/donut_box,
+/obj/structure/table,
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"bdY" = (
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/obj/structure/table/wood,
+/turf/open/floor/carpet/black,
+/area/command/meeting_room)
+"bdZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bea" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"beb" = (
+/obj/structure/table,
+/obj/item/ai_module/core/full/asimov,
+/obj/item/ai_module/core/freeformcore,
+/obj/machinery/door/window{
+ base_state = "right";
+ dir = 4;
+ icon_state = "right";
+ name = "Core Modules";
+ req_access_txt = "20"
+ },
+/obj/structure/window/reinforced,
+/obj/effect/spawner/lootdrop/aimodule_harmless,
+/obj/effect/spawner/lootdrop/aimodule_neutral,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/item/ai_module/core/full/custom,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bec" = (
+/obj/machinery/light,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bed" = (
+/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/ai_monitored/turret_protected/ai_upload";
+ name = "Upload APC";
+ pixel_y = -24
+ },
+/obj/structure/cable,
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/ai_upload)
+"bee" = (
+/obj/machinery/computer/upload/ai{
+ dir = 1
+ },
+/obj/machinery/flasher{
+ id = "AI";
+ pixel_y = -21
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/ai_upload)
+"bef" = (
+/obj/machinery/computer/upload/borg{
+ dir = 1
+ },
+/obj/item/radio/intercom{
+ broadcasting = 1;
+ frequency = 1447;
+ listening = 0;
+ name = "Station Intercom (AI Private)";
+ pixel_y = -29
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/ai_upload)
+"beg" = (
+/obj/structure/table,
+/obj/item/ai_module/supplied/oxygen,
+/obj/item/ai_module/zeroth/oneHuman,
+/obj/machinery/door/window{
+ dir = 8;
+ name = "High-Risk Modules";
+ req_access_txt = "20"
+ },
+/obj/item/ai_module/reset/purge,
+/obj/structure/window/reinforced,
+/obj/effect/spawner/lootdrop/aimodule_harmful,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/item/ai_module/supplied/protectStation,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"beh" = (
+/obj/machinery/light,
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"bej" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bek" = (
+/obj/structure/chair,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bel" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bem" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"ben" = (
+/obj/structure/table/wood,
+/obj/machinery/camera{
+ c_tag = "Captain's Office";
+ dir = 8
+ },
+/obj/item/storage/lockbox/medal,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"beo" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=Stbd";
+ location = "HOP"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bep" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"beq" = (
+/obj/structure/sign/directions/medical{
+ dir = 4;
+ pixel_x = 32;
+ pixel_y = -24
+ },
+/obj/structure/sign/directions/science{
+ dir = 4;
+ pixel_x = 32;
+ pixel_y = -32
+ },
+/obj/structure/sign/directions/engineering{
+ pixel_x = 32;
+ pixel_y = -40
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"ber" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_y = -30
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bes" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bet" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"beu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bev" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/sign/directions/evac{
+ dir = 4;
+ pixel_y = -25
+ },
+/obj/structure/sign/directions/science{
+ dir = 4;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bew" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bex" = (
+/obj/machinery/button/door{
+ id = "qm_warehouse";
+ name = "Warehouse Door Control";
+ pixel_x = -1;
+ pixel_y = -24;
+ req_access_txt = "31"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/obj/structure/closet/crate,
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"bez" = (
+/obj/machinery/power/apc{
+ areastring = "/area/hallway/primary/starboard";
+ name = "Starboard Primary Hallway APC";
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"beA" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "packageSort2"
+ },
+/obj/structure/plasticflaps,
+/turf/open/floor/plating,
+/area/cargo/sorting)
+"beB" = (
+/obj/machinery/camera{
+ c_tag = "Starboard Primary Hallway 3";
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"beC" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"beD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/structure/closet/crate,
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"beE" = (
+/obj/machinery/light,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"beF" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/sorting)
+"beG" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"beH" = (
+/obj/machinery/newscaster{
+ pixel_y = -32
+ },
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"beI" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"beJ" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"beK" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "Port Docking Bay 4"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"beL" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "Port Docking Bay 3"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"beM" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"beN" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"beO" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal)
+"beP" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "garbage"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"beQ" = (
+/obj/structure/disposaloutlet{
+ dir = 4
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"beR" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "garbage"
+ },
+/obj/machinery/recycler,
+/obj/structure/sign/warning/securearea{
+ name = "\improper STAY CLEAR HEAVY MACHINERY";
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"beS" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "garbage"
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"beT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal)
+"beU" = (
+/obj/machinery/conveyor{
+ dir = 6;
+ id = "garbage"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"beV" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/cargo/sorting)
+"beW" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 1;
+ layer = 2.9
+ },
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/table/reinforced,
+/obj/item/stack/wrapping_paper{
+ pixel_x = 3;
+ pixel_y = 4
+ },
+/obj/item/stack/packageWrap{
+ pixel_x = -1;
+ pixel_y = -1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/sorting)
+"beX" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"beY" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"beZ" = (
+/obj/machinery/mineral/stacking_unit_console{
+ machinedir = 8
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal)
+"bfb" = (
+/obj/machinery/computer/pod/old{
+ density = 0;
+ icon = 'icons/obj/airlock_machines.dmi';
+ icon_state = "airlock_control_standby";
+ id = "chapelgun";
+ name = "Mass Driver Controller";
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"bfc" = (
+/obj/machinery/power/apc{
+ areastring = "/area/commons/locker";
+ dir = 1;
+ name = "Locker Room APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bfd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bfe" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bff" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bfg" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/item/stack/sheet/cardboard,
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"bfh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bfi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"bfj" = (
+/obj/structure/disposalpipe/trunk,
+/obj/structure/disposaloutlet{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/cargo/sorting)
+"bfl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/sorting)
+"bfm" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/cargo/office)
+"bfn" = (
+/obj/machinery/disposal/deliveryChute{
+ dir = 8
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/cargo/sorting)
+"bfo" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bfp" = (
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Bridge";
+ departmentType = 5;
+ name = "Bridge RC";
+ pixel_y = -30
+ },
+/obj/machinery/light,
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"bfq" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bft" = (
+/obj/machinery/status_display/ai,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/ai_upload)
+"bfu" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/ai_upload)
+"bfx" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/ai_upload)
+"bfy" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Captain's Desk";
+ departmentType = 5;
+ name = "Captain RC";
+ pixel_x = -30
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bfA" = (
+/obj/structure/table/wood,
+/obj/item/hand_tele,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bfB" = (
+/obj/structure/table/wood,
+/obj/item/folder/blue,
+/obj/item/stamp/captain,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bfC" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bfD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bfE" = (
+/obj/structure/table/wood,
+/obj/item/pinpointer/nuke,
+/obj/item/disk/nuclear,
+/obj/item/storage/secure/safe{
+ pixel_x = 35;
+ pixel_y = 5
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bfF" = (
+/turf/closed/wall,
+/area/medical/chemistry)
+"bfG" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/medical/medbay/lobby)
+"bfH" = (
+/obj/structure/sign/departments/medbay/alt,
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/medbay/lobby)
+"bfI" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bfJ" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bfK" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/security/checkpoint/medical)
+"bfL" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/morgue)
+"bfM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bfN" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/cargo/sorting)
+"bfO" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/medical/paramedic)
+"bfQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/cargo/sorting)
+"bfR" = (
+/obj/structure/table/reinforced,
+/obj/item/hand_labeler{
+ pixel_y = 8
+ },
+/obj/item/hand_labeler{
+ pixel_y = 8
+ },
+/obj/item/storage/box,
+/obj/item/storage/box,
+/obj/item/storage/box,
+/turf/open/floor/plasteel/dark,
+/area/cargo/sorting)
+"bfS" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/storage/emergency/starboard)
+"bfT" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/science/robotics/mechbay)
+"bfU" = (
+/obj/effect/turf_decal/loading_area{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bfV" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/science/robotics/lab)
+"bfW" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-13"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bfX" = (
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bfY" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bfZ" = (
+/obj/structure/sign/warning/securearea{
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bga" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/machinery/lapvend,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bgb" = (
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-10"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bgc" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/science/lab)
+"bgd" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"bge" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"bgf" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"bgg" = (
+/obj/structure/closet/firecloset,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"bgh" = (
+/obj/machinery/vending/cigarette,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"bgi" = (
+/obj/machinery/camera{
+ c_tag = "Arrivals Bay 3 & 4";
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"bgj" = (
+/obj/machinery/conveyor{
+ dir = 8;
+ id = "garbage"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bgk" = (
+/obj/machinery/conveyor{
+ dir = 10;
+ id = "garbage"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bgm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bgn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bgo" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/science/robotics/mechbay";
+ dir = 4;
+ name = "Mech Bay APC";
+ pixel_x = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"bgp" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bgq" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bgt" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bgu" = (
+/obj/machinery/button/door{
+ id = "qm_warehouse";
+ name = "Warehouse Door Control";
+ pixel_x = -1;
+ pixel_y = 24;
+ req_access_txt = "31"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bgv" = (
+/obj/structure/disposalpipe/segment,
+/turf/closed/wall/r_wall/syndicate,
+/area/cargo/office)
+"bgw" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bgy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/cargo/warehouse)
+"bgz" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bgA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"bgB" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/cargo/sorting)
+"bgC" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/cargo/sorting)
+"bgD" = (
+/obj/machinery/conveyor_switch/oneway{
+ id = "packageSort2"
+ },
+/obj/machinery/camera{
+ c_tag = "Cargo Delivery Office";
+ dir = 4
+ },
+/obj/machinery/requests_console{
+ department = "Cargo Bay";
+ departmentType = 2;
+ pixel_x = -30
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/sorting)
+"bgE" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/sorting)
+"bgF" = (
+/obj/structure/table/glass,
+/obj/machinery/reagentgrinder,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bgG" = (
+/obj/machinery/camera{
+ c_tag = "Central Hallway West";
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bgH" = (
+/obj/machinery/door/window/eastright{
+ dir = 1;
+ name = "Bridge Delivery";
+ req_access_txt = "19"
+ },
+/obj/effect/turf_decal/delivery/red,
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"bgI" = (
+/obj/machinery/computer/slot_machine,
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"bgJ" = (
+/obj/structure/reagent_dispensers/water_cooler,
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"bgK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"bgL" = (
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"bgM" = (
+/obj/structure/sign/warning/securearea,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/command/nuke_storage)
+"bgN" = (
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"bgO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/gravity_generator)
+"bgQ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/lobby)
+"bgX" = (
+/obj/structure/table/wood,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/item/camera,
+/obj/item/storage/photo_album{
+ pixel_y = -10
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bgY" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bgZ" = (
+/obj/machinery/power/apc{
+ areastring = "/area/medical/chemistry";
+ dir = 1;
+ name = "Chemistry APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bha" = (
+/obj/machinery/vending/wardrobe/chem_wardrobe,
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bhb" = (
+/obj/machinery/chem_dispenser,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bhc" = (
+/obj/machinery/camera{
+ c_tag = "Chemistry"
+ },
+/obj/machinery/chem_heater,
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bhd" = (
+/obj/machinery/chem_master,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bhe" = (
+/obj/structure/chair,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/lobby)
+"bhg" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bhi" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/checkpoint/medical)
+"bhj" = (
+/obj/machinery/camera{
+ c_tag = "Security Post - Medbay"
+ },
+/obj/machinery/requests_console{
+ department = "Security";
+ departmentType = 5;
+ pixel_y = 30
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/medical)
+"bhk" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/obj/item/pen,
+/obj/machinery/button/door{
+ desc = "A remote control switch for the medbay foyer.";
+ id = "MedbayFoyer";
+ name = "Medbay Doors Control";
+ normaldoorcontrol = 1;
+ pixel_y = 26;
+ req_access_txt = "5"
+ },
+/obj/item/book/manual/wiki/security_space_law,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/medical)
+"bhl" = (
+/obj/structure/filingcabinet,
+/obj/machinery/newscaster{
+ pixel_x = 32
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/medical)
+"bhm" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/medical/morgue";
+ dir = 1;
+ name = "Morgue APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bhn" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/structure/bodycontainer/morgue,
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bho" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bhp" = (
+/obj/effect/turf_decal/trimline/blue/filled/corner,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/medical/paramedic";
+ dir = 8;
+ name = "Paramedic's Office APC";
+ pixel_x = -25
+ },
+/obj/machinery/computer/crew{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/paramedic)
+"bhq" = (
+/obj/effect/turf_decal/trimline/blue/filled/line,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/effect/landmark/start/paramedic,
+/obj/structure/chair/stool,
+/turf/open/floor/plasteel/dark,
+/area/medical/paramedic)
+"bhr" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/service/kitchen/coldroom)
+"bhs" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/medical)
+"bht" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/research{
+ name = "Mech Bay";
+ req_access_txt = "29"
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/mechbay)
+"bhu" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/shutters{
+ id = "Skynet_launch";
+ name = "mech bay"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/mechbay)
+"bhv" = (
+/obj/machinery/airalarm{
+ pixel_y = 25
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bhw" = (
+/obj/machinery/computer/rdconsole/robotics,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bhx" = (
+/obj/machinery/requests_console{
+ department = "Robotics";
+ departmentType = 2;
+ name = "Robotics RC";
+ pixel_y = 30;
+ receive_ore_updates = 1
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/rnd/production/circuit_imprinter,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bhy" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "robotics";
+ name = "robotics lab shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/robotics/lab)
+"bhz" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/eastright{
+ base_state = "left";
+ dir = 2;
+ icon_state = "left";
+ name = "Robotics Desk";
+ req_access_txt = "29"
+ },
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "robotics";
+ name = "robotics lab shutters"
+ },
+/turf/open/floor/plating,
+/area/science/robotics/lab)
+"bhA" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/science)
+"bhB" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/research{
+ name = "Research Division Access";
+ req_access_txt = "47"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bhC" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "rnd";
+ name = "research lab shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/research)
+"bhD" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/southright{
+ name = "Research and Development Desk";
+ req_one_access_txt = "7;29"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "rnd";
+ name = "research lab shutters"
+ },
+/turf/open/floor/plating,
+/area/science/research)
+"bhE" = (
+/obj/structure/table,
+/obj/item/stack/sheet/glass/fifty{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/clothing/glasses/welding,
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bhF" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = 2;
+ pixel_y = 3
+ },
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bhG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/starboard)
+"bhH" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bhI" = (
+/obj/machinery/conveyor{
+ id = "garbage"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bhJ" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 2
+ },
+/obj/machinery/disposal/deliveryChute{
+ dir = 4
+ },
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/door/window{
+ base_state = "right";
+ dir = 4;
+ icon_state = "right";
+ layer = 3
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bhL" = (
+/obj/machinery/mineral/stacking_machine{
+ input_dir = 1;
+ stack_amt = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bhM" = (
+/turf/open/floor/circuit/red,
+/area/science/robotics/mechbay)
+"bhN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bhO" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bhQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/toilet/locker)
+"bhR" = (
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/window{
+ dir = 1
+ },
+/obj/structure/window,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bhS" = (
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/window{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bhT" = (
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/window,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bhV" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bhW" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "qm_warehouse";
+ name = "warehouse shutters"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"bhX" = (
+/obj/structure/disposalpipe/sorting/wrap{
+ dir = 1
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/cargo/sorting)
+"bhY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/cargo/storage)
+"bhZ" = (
+/obj/machinery/door/window/eastleft{
+ icon_state = "right";
+ name = "Incoming Mail";
+ req_access_txt = "50"
+ },
+/turf/open/floor/plating,
+/area/cargo/sorting)
+"bia" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/structure/disposaloutlet{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/cargo/sorting)
+"bib" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = 29
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bic" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bid" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bie" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=1";
+ dir = 1;
+ freq = 1400;
+ location = "Bridge"
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/command/meeting_room)
+"bif" = (
+/obj/machinery/vending/cigarette,
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"big" = (
+/obj/effect/turf_decal/bot_white,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"bih" = (
+/obj/effect/turf_decal/bot_white/right,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"bii" = (
+/obj/effect/turf_decal/bot_white/left,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"bij" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/gravity_generator)
+"bik" = (
+/obj/item/radio/intercom{
+ dir = 8;
+ freerange = 1;
+ name = "Station Intercom (Command)";
+ pixel_x = -28
+ },
+/obj/machinery/suit_storage_unit/captain,
+/obj/machinery/light{
+ light_color = "#c9d3e8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bil" = (
+/obj/machinery/computer/card{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bim" = (
+/obj/structure/table/wood,
+/obj/machinery/recharger,
+/obj/item/melee/chainofcommand,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bin" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bio" = (
+/obj/machinery/requests_console{
+ department = "Chemistry";
+ departmentType = 2;
+ pixel_x = -30;
+ receive_ore_updates = 1
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/closet/secure_closet/chemical,
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bip" = (
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"biq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bir" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/eastright{
+ dir = 8;
+ name = "Chemistry Desk";
+ req_access_txt = "33"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/medical/chemistry)
+"bis" = (
+/obj/structure/chair/office/light{
+ dir = 4
+ },
+/obj/effect/landmark/start/chemist,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bit" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ alpha = 255;
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/lobby)
+"biu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"biv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"biw" = (
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/medical)
+"bix" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/obj/effect/landmark/start/depsec/medical,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/medical)
+"biy" = (
+/obj/machinery/computer/secure_data{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ pixel_x = 25
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/medical)
+"biz" = (
+/obj/structure/bodycontainer/morgue,
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"biA" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/cargo/storage)
+"biB" = (
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/cigbutt{
+ pixel_x = 10;
+ pixel_y = 17
+ },
+/obj/effect/landmark/start/paramedic,
+/turf/open/floor/plasteel/dark,
+/area/medical/paramedic)
+"biC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/kitchen/coldroom)
+"biD" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/plating,
+/area/commons/storage/emergency/starboard)
+"biE" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/item/extinguisher,
+/turf/open/floor/plating,
+/area/commons/storage/emergency/starboard)
+"biF" = (
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 1;
+ sortType = 2
+ },
+/obj/structure/noticeboard{
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"biG" = (
+/obj/machinery/mech_bay_recharge_port{
+ dir = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/mechbay)
+"biH" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/mechbay)
+"biI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/circuit/red,
+/area/science/robotics/mechbay)
+"biJ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/circuit/red,
+/area/science/robotics/mechbay)
+"biK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"biL" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/hallway/secondary/exit)
+"biN" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"biO" = (
+/obj/machinery/camera{
+ c_tag = "Robotics Lab";
+ network = list("ss13","rd")
+ },
+/obj/machinery/button/door{
+ id = "robotics";
+ name = "Shutters Control Button";
+ pixel_x = 6;
+ pixel_y = 24;
+ req_access_txt = "29"
+ },
+/obj/structure/table,
+/obj/item/book/manual/wiki/robotics_cyborgs{
+ pixel_x = 2;
+ pixel_y = 5
+ },
+/obj/item/reagent_containers/glass/beaker/large,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"biP" = (
+/obj/structure/filingcabinet/chestdrawer,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"biQ" = (
+/obj/structure/chair/stool,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"biR" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"biS" = (
+/obj/machinery/camera{
+ c_tag = "Research Division Access"
+ },
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"biT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"biU" = (
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"biV" = (
+/obj/structure/chair/stool,
+/obj/effect/landmark/start/scientist,
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"biX" = (
+/obj/machinery/camera{
+ c_tag = "Research and Development";
+ network = list("ss13","rd");
+ pixel_x = 22
+ },
+/obj/machinery/button/door{
+ id = "rnd";
+ name = "Shutters Control Button";
+ pixel_x = -6;
+ pixel_y = 24;
+ req_access_txt = "47"
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"biY" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bja" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bjb" = (
+/obj/machinery/conveyor{
+ id = "garbage"
+ },
+/obj/structure/sign/warning/vacuum{
+ pixel_x = -32
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bjc" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bjd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bje" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bjf" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Disposal Access";
+ req_access_txt = "12"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bjg" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bjh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bji" = (
+/obj/structure/closet/crate,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bjj" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bjk" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bjl" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bjm" = (
+/obj/structure/table,
+/obj/item/hand_labeler,
+/obj/item/hand_labeler,
+/obj/machinery/requests_console{
+ department = "Cargo Bay";
+ departmentType = 2;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bjn" = (
+/obj/structure/table,
+/obj/item/clothing/head/soft,
+/obj/item/clothing/head/soft,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bjo" = (
+/obj/machinery/camera{
+ c_tag = "Cargo Bay North"
+ },
+/obj/machinery/vending/wardrobe/cargo_wardrobe,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bjp" = (
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/obj/item/radio/intercom{
+ pixel_y = 20
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bjq" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = 30
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bjr" = (
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bjs" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/mining/glass{
+ name = "Cargo Office";
+ req_access_txt = "50"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/sorting)
+"bjt" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bju" = (
+/obj/machinery/photocopier,
+/obj/item/radio/intercom{
+ pixel_y = 20
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bjv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bjw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/sorting)
+"bjx" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bjy" = (
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"bjz" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/central)
+"bjA" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/central)
+"bjB" = (
+/turf/open/floor/plating,
+/area/maintenance/central)
+"bjC" = (
+/obj/structure/closet/wardrobe/black,
+/turf/open/floor/plating,
+/area/maintenance/central)
+"bjE" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"bjF" = (
+/obj/machinery/newscaster/security_unit{
+ pixel_x = -32
+ },
+/obj/machinery/keycard_auth{
+ pixel_y = -24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bjG" = (
+/obj/machinery/door/window{
+ base_state = "right";
+ dir = 4;
+ icon_state = "right";
+ name = "Captain's Desk Door";
+ req_access_txt = "20"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bjH" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bjI" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bjJ" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"bjK" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bjL" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bjM" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/medical)
+"bjN" = (
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_x = 30
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/medical)
+"bjO" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bjP" = (
+/obj/machinery/computer/mech_bay_power_console{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/mechbay)
+"bjQ" = (
+/obj/machinery/smartfridge/chemistry/preloaded,
+/turf/closed/wall,
+/area/medical/chemistry)
+"bjR" = (
+/obj/structure/table/glass,
+/obj/item/storage/box/beakers{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/obj/item/storage/box/beakers{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/glass/beaker/large,
+/obj/item/reagent_containers/glass/beaker/large,
+/obj/item/reagent_containers/dropper,
+/obj/item/reagent_containers/dropper,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bjS" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/lobby)
+"bjT" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/lobby)
+"bjU" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/lobby)
+"bjV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/lobby)
+"bjX" = (
+/obj/structure/table,
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/medical)
+"bjY" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/medical)
+"bjZ" = (
+/obj/structure/closet/firecloset,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bka" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bkb" = (
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 1
+ },
+/obj/structure/table/glass,
+/obj/item/flashlight/lamp{
+ pixel_x = -2;
+ pixel_y = 11
+ },
+/obj/item/folder/white,
+/obj/item/pen,
+/turf/open/floor/plasteel/dark,
+/area/medical/paramedic)
+"bkd" = (
+/obj/machinery/camera{
+ c_tag = "Paramedic Disbatch";
+ dir = 8;
+ network = list("ss13","medbay")
+ },
+/obj/machinery/suit_storage_unit/paramedic,
+/turf/open/floor/plasteel/dark,
+/area/medical/paramedic)
+"bkh" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/circuit/red,
+/area/science/robotics/mechbay)
+"bki" = (
+/obj/structure/table/glass,
+/obj/item/reagent_containers/glass/beaker/large{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/glass/beaker{
+ pixel_x = 8;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/dropper,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bkj" = (
+/obj/machinery/airalarm{
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/closet/firecloset,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bkk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bkm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bkn" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/firealarm{
+ pixel_y = 27
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bko" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/status_display/evac{
+ pixel_x = 32
+ },
+/obj/machinery/aug_manipulator,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bkp" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bkq" = (
+/obj/structure/closet/firecloset,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bkr" = (
+/obj/machinery/shower{
+ dir = 8
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = 32
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bks" = (
+/obj/machinery/requests_console{
+ department = "Science";
+ departmentType = 2;
+ name = "Science Requests Console";
+ pixel_x = -30;
+ receive_ore_updates = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bkt" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bku" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bkv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bkw" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bkx" = (
+/obj/machinery/status_display/supply,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/cargo/sorting)
+"bky" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/starboard)
+"bkz" = (
+/obj/machinery/conveyor{
+ id = "garbage"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Disposal Exit";
+ name = "disposal exit vent"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bkB" = (
+/obj/machinery/button/door{
+ id = "Disposal Exit";
+ name = "Disposal Vent Control";
+ pixel_x = -25;
+ pixel_y = 4;
+ req_access_txt = "12"
+ },
+/obj/machinery/button/massdriver{
+ id = "trash";
+ pixel_x = -26;
+ pixel_y = -6
+ },
+/obj/structure/chair/stool,
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bkC" = (
+/obj/effect/decal/cleanable/oil,
+/obj/machinery/light_switch{
+ pixel_x = 25
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bkD" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bkE" = (
+/obj/structure/sign/warning/docking,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port)
+"bkG" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Cargo Bay Maintenance";
+ req_access_txt = "31"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bkH" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/cargo/sorting)
+"bkJ" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/cargo/storage)
+"bkK" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bkL" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/chem_heater,
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bkM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bkN" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/cargo/office)
+"bkO" = (
+/obj/machinery/light_switch{
+ pixel_x = 28
+ },
+/obj/item/screwdriver{
+ pixel_y = 10
+ },
+/obj/item/radio/off,
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/medical)
+"bkP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bkQ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bkR" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light_switch{
+ pixel_y = -25
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bkS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bkT" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/central)
+"bkU" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bkV" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"bkW" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/central)
+"bkX" = (
+/obj/machinery/power/apc{
+ areastring = "/area/command/meeting_room";
+ dir = 4;
+ name = "Conference Room APC";
+ pixel_x = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/central)
+"bkY" = (
+/obj/effect/landmark/blobstart,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/central)
+"bkZ" = (
+/obj/machinery/gravity_generator/main/station,
+/obj/effect/turf_decal/bot_white,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"bla" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance{
+ name = "Morgue Maintenance";
+ req_access_txt = "6"
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/department/medical/morgue)
+"blb" = (
+/obj/machinery/door/airlock/command{
+ name = "Captain's Quarters";
+ req_access_txt = "20"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"blc" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/command/heads_quarters/captain)
+"bld" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Captain's Office Maintenance";
+ req_access_txt = "20"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plating,
+/area/maintenance/central/secondary)
+"ble" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27;
+ pixel_y = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"blf" = (
+/obj/structure/table/glass,
+/obj/item/storage/box/syringes,
+/obj/item/clothing/glasses/science{
+ pixel_x = 2;
+ pixel_y = 4
+ },
+/obj/item/clothing/glasses/science,
+/obj/item/radio/intercom{
+ dir = 8;
+ name = "Station Intercom (General)";
+ pixel_x = -28
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"blg" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"blh" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/eastright{
+ base_state = "left";
+ dir = 8;
+ icon_state = "left";
+ name = "Chemistry Desk";
+ req_access_txt = "33"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/medical/chemistry)
+"bli" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"blj" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"blk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/lobby)
+"bll" = (
+/obj/structure/table/reinforced,
+/obj/item/folder/white,
+/obj/item/pen,
+/obj/item/reagent_containers/glass/bottle/epinephrine,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"blm" = (
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/food/drinks/britcup{
+ desc = "Kingston's personal cup."
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bln" = (
+/obj/structure/table/reinforced,
+/obj/machinery/camera{
+ c_tag = "Medbay Foyer";
+ dir = 8;
+ network = list("ss13","medbay")
+ },
+/obj/machinery/cell_charger,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"blo" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"blp" = (
+/obj/machinery/power/apc{
+ areastring = "/area/security/checkpoint/medical";
+ dir = 8;
+ name = "Medbay Security APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/medical)
+"blq" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/sorting/mail{
+ sortType = 9
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"blr" = (
+/obj/structure/bodycontainer/morgue{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "Medbay Morgue";
+ dir = 6;
+ network = list("ss13","medbay")
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bls" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/mechanical,
+/obj/item/crowbar/large,
+/obj/machinery/camera{
+ c_tag = "Mech Bay";
+ dir = 1
+ },
+/obj/machinery/light,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/mechbay)
+"blt" = (
+/obj/machinery/recharge_station,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/state_laws{
+ pixel_y = -32
+ },
+/obj/effect/landmark/start/cyborg,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/mechbay)
+"blu" = (
+/obj/machinery/computer/mech_bay_power_console{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/mechbay)
+"blv" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/mechbay)
+"blw" = (
+/turf/open/floor/mech_bay_recharge_floor,
+/area/science/robotics/mechbay)
+"blx" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/mechbay)
+"bly" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/machinery/light_switch{
+ pixel_x = -23
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"blz" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"blA" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/robotics/lab)
+"blB" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/machinery/mecha_part_fabricator,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"blC" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"blD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/science/robotics/lab)
+"blE" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/item/storage/firstaid/regular{
+ empty = 1;
+ name = "First-Aid (empty)"
+ },
+/obj/item/storage/firstaid/regular{
+ empty = 1;
+ name = "First-Aid (empty)"
+ },
+/obj/item/storage/firstaid/regular{
+ empty = 1;
+ name = "First-Aid (empty)"
+ },
+/obj/item/healthanalyzer,
+/obj/item/healthanalyzer,
+/obj/item/healthanalyzer,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = 29
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"blF" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "robo1"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"blG" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"blH" = (
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"blI" = (
+/obj/machinery/rnd/destructive_analyzer,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"blJ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/rnd/production/protolathe/department/science,
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"blL" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"blM" = (
+/obj/effect/turf_decal/bot,
+/obj/effect/landmark/start/cyborg,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"blO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"blP" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ req_access_txt = "13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"blQ" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/structure/loot_pile/maint,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"blR" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"blS" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/mass_driver{
+ id = "trash"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"blU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"blV" = (
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"blW" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/cargo/storage)
+"blX" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/airlock/research{
+ name = "Research Division Access";
+ req_access_txt = "47"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"blY" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"blZ" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bma" = (
+/obj/structure/table/glass,
+/obj/item/stock_parts/manipulator,
+/obj/item/stock_parts/capacitor,
+/obj/item/stock_parts/capacitor,
+/obj/item/stock_parts/manipulator,
+/obj/item/stock_parts/micro_laser,
+/obj/item/stock_parts/micro_laser,
+/obj/item/stack/cable_coil{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/stack/cable_coil,
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/item/disk/tech_disk/illegal,
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bmb" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bmc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bmd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bme" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bmf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bmg" = (
+/obj/machinery/door/airlock/mining/glass{
+ name = "Cargo Bay";
+ req_access_txt = "31"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bmh" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bmi" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/sorting)
+"bmj" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bmk" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/mining/glass{
+ name = "Delivery Office";
+ req_access_txt = "50"
+ },
+/turf/open/floor/plasteel,
+/area/cargo/sorting)
+"bmm" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bmn" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/machinery/status_display/supply{
+ pixel_x = -28;
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bmo" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/command/heads_quarters/hop)
+"bmp" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/central)
+"bmq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/command/heads_quarters/hop)
+"bms" = (
+/obj/machinery/door/airlock/command{
+ name = "Head of Personnel";
+ req_access_txt = "57"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/command/heads_quarters/hop)
+"bmt" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bmx" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/command/heads_quarters/captain)
+"bmy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"bmz" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/structure/dresser,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/item/card/id/captains_spare,
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"bmA" = (
+/obj/machinery/door/airlock{
+ name = "Private Restroom"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/command/heads_quarters/captain)
+"bmB" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"bmC" = (
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/structure/mirror{
+ pixel_x = 28
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plasteel/freezer,
+/area/command/heads_quarters/captain)
+"bmD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/central/secondary)
+"bmE" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bmF" = (
+/obj/structure/table/glass,
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/item/stack/cable_coil/random,
+/obj/item/stack/cable_coil/random,
+/obj/item/stack/sheet/mineral/plasma,
+/obj/item/stack/sheet/mineral/plasma,
+/obj/item/reagent_containers/glass/bottle/epinephrine,
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bmG" = (
+/obj/machinery/chem_dispenser,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bmH" = (
+/obj/machinery/door/airlock/mining/glass{
+ name = "Cargo Bay";
+ req_access_txt = "31"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bmI" = (
+/obj/machinery/chem_master,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bmJ" = (
+/obj/item/radio/intercom{
+ broadcasting = 1;
+ frequency = 1485;
+ listening = 0;
+ name = "Station Intercom (Medbay)";
+ pixel_y = -30
+ },
+/obj/machinery/light,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/lobby)
+"bmK" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bmL" = (
+/obj/structure/chair/office/light{
+ dir = 8
+ },
+/obj/machinery/button/door{
+ desc = "A remote control switch for the medbay foyer.";
+ id = "MedbayFoyer";
+ name = "Medbay Doors Control";
+ normaldoorcontrol = 1;
+ pixel_x = -26;
+ req_access_txt = "5"
+ },
+/obj/effect/landmark/start/medical_doctor,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bmM" = (
+/obj/structure/chair/office/light{
+ dir = 1
+ },
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = 28
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bmN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/medical)
+"bmO" = (
+/obj/structure/closet/secure_closet/security/med,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/medical)
+"bmP" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bmQ" = (
+/obj/item/stamp{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/stamp/denied{
+ pixel_x = 4;
+ pixel_y = -2
+ },
+/obj/structure/table,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bmR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bmT" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bmU" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/security/checkpoint/medical)
+"bmV" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/airlock/medical{
+ name = "Morgue";
+ req_access_txt = "6;5"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"bmW" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/morgue)
+"bmX" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"bmY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/morgue)
+"bmZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/genetics)
+"bna" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bnb" = (
+/obj/machinery/recharge_station,
+/obj/effect/landmark/start/cyborg,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/mechbay)
+"bnc" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/science/robotics/mechbay)
+"bnf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bng" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bnh" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bni" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/item/storage/toolbox/electrical{
+ pixel_x = 1;
+ pixel_y = 6
+ },
+/obj/item/clothing/head/welding{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/obj/item/clothing/glasses/welding,
+/obj/item/multitool{
+ pixel_x = 3
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bnj" = (
+/obj/structure/table,
+/obj/item/stack/sheet/plasteel{
+ amount = 10
+ },
+/obj/item/stack/cable_coil,
+/obj/item/assembly/flash/handheld,
+/obj/item/assembly/flash/handheld,
+/obj/item/assembly/flash/handheld,
+/obj/item/assembly/flash/handheld,
+/obj/item/assembly/flash/handheld,
+/obj/item/assembly/flash/handheld,
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bnk" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bnl" = (
+/obj/item/stack/sheet/glass,
+/obj/structure/table/glass,
+/obj/item/stack/sheet/glass,
+/obj/item/stack/sheet/glass,
+/obj/item/stock_parts/matter_bin,
+/obj/item/stock_parts/matter_bin,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/item/stock_parts/scanning_module{
+ pixel_x = 2;
+ pixel_y = 3
+ },
+/obj/item/stock_parts/scanning_module,
+/obj/machinery/power/apc{
+ areastring = "/area/science/research";
+ dir = 4;
+ name = "Research Lab APC";
+ pixel_x = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bnm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/science)
+"bnn" = (
+/obj/machinery/computer/rdconsole/core{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bno" = (
+/obj/item/reagent_containers/glass/beaker/sulphuric,
+/obj/machinery/rnd/production/circuit_imprinter/department/science,
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bnp" = (
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bnq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/science/research)
+"bnr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/structure/plasticflaps/opaque,
+/turf/open/floor/plating,
+/area/science/research)
+"bns" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/starboard)
+"bnt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"bnu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/starboard)
+"bnv" = (
+/obj/machinery/door/poddoor{
+ id = "trash";
+ name = "disposal bay door"
+ },
+/obj/structure/fans/tiny,
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"bnw" = (
+/obj/effect/turf_decal/caution/stand_clear/red,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bnx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bny" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bnz" = (
+/obj/effect/landmark/start/cargo_technician,
+/obj/structure/chair/office/dark{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bnA" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bnB" = (
+/obj/structure/closet/wardrobe/chemistry_white,
+/obj/machinery/light_switch{
+ pixel_x = -23
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bnC" = (
+/obj/structure/chair,
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bnD" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/table,
+/obj/item/book/manual/wiki/chemistry,
+/obj/item/book/manual/wiki/chemistry{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bnE" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bnF" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 30
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bnG" = (
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/clipboard,
+/obj/item/pen/red,
+/obj/structure/table,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bnH" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bnI" = (
+/obj/machinery/computer/cargo/request,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bnJ" = (
+/obj/machinery/firealarm{
+ pixel_y = 27
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bnK" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/cargo/office)
+"bnL" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/sorting)
+"bnM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bnN" = (
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bnO" = (
+/obj/machinery/newscaster/security_unit{
+ pixel_y = 32
+ },
+/obj/structure/filingcabinet/chestdrawer,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"bnP" = (
+/obj/machinery/button/flasher{
+ id = "hopflash";
+ pixel_x = 6;
+ pixel_y = 36
+ },
+/obj/machinery/button/door{
+ id = "hop";
+ name = "Privacy Shutters Control";
+ pixel_x = 6;
+ pixel_y = 25;
+ req_access_txt = "57"
+ },
+/obj/machinery/button/door{
+ id = "hopqueue";
+ name = "Queue Shutters Control";
+ pixel_x = -4;
+ pixel_y = 25;
+ req_access_txt = "57"
+ },
+/obj/machinery/light_switch{
+ pixel_x = -4;
+ pixel_y = 36
+ },
+/obj/machinery/pdapainter,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"bnQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/bed/dogbed/ian,
+/mob/living/simple_animal/pet/dog/corgi/Ian{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"bnR" = (
+/obj/machinery/computer/security/telescreen/vault{
+ pixel_y = 30
+ },
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"bnS" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"bnT" = (
+/obj/structure/sign/warning/electricshock{
+ pixel_x = -32
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/gravity_generator)
+"bnV" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/gravity_generator)
+"bnW" = (
+/obj/structure/sign/warning/radiation/rad_area{
+ pixel_x = 32
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/engineering/gravity_generator)
+"bnX" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"bnY" = (
+/obj/structure/bed,
+/obj/item/bedsheet/captain,
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"bnZ" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green,
+/obj/item/pen/fountain/captain,
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"boa" = (
+/obj/structure/toilet{
+ contents = newlist(/obj/item/toy/snappop/phoenix);
+ dir = 4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/command/heads_quarters/captain)
+"bob" = (
+/obj/structure/table/glass,
+/obj/item/grenade/chem_grenade,
+/obj/item/grenade/chem_grenade,
+/obj/item/grenade/chem_grenade,
+/obj/item/grenade/chem_grenade,
+/obj/item/screwdriver{
+ pixel_x = -2;
+ pixel_y = 6
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -26
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"boc" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bod" = (
+/obj/structure/table,
+/obj/item/folder/white,
+/obj/item/radio/headset/headset_med,
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"boe" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/medical/glass{
+ id_tag = "MedbayFoyer";
+ name = "Medbay";
+ req_access_txt = "5"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/unres,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bof" = (
+/turf/closed/wall,
+/area/medical/medbay/central)
+"bog" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/medical/medbay/central)
+"boh" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/medical/glass{
+ id_tag = "MedbayFoyer";
+ name = "Medbay";
+ req_access_txt = "5"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/unres,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"boi" = (
+/obj/machinery/computer/med_data{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"boj" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/machinery/requests_console{
+ department = "Medbay";
+ departmentType = 1;
+ name = "Medbay RC";
+ pixel_x = 30
+ },
+/obj/machinery/light,
+/obj/machinery/computer/crew{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bok" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Office";
+ req_access_txt = "63"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/medical)
+"bol" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bom" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"boo" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"boq" = (
+/obj/structure/bed/roller,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bor" = (
+/obj/structure/table,
+/obj/item/clothing/gloves/color/latex,
+/obj/item/surgical_drapes,
+/obj/item/razor,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bos" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/power/apc{
+ areastring = "/area/science/robotics/lab";
+ dir = 8;
+ name = "Robotics Lab APC";
+ pixel_x = -25
+ },
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bov" = (
+/obj/structure/table,
+/obj/item/assembly/prox_sensor{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/assembly/prox_sensor{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/assembly/prox_sensor{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/assembly/prox_sensor{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/crowbar,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/item/radio/headset/headset_sci{
+ pixel_x = -3
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bow" = (
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/poddoor/preopen{
+ id = "Biohazard";
+ name = "biohazard containment door"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"boy" = (
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/poddoor/preopen{
+ id = "Biohazard";
+ name = "biohazard containment door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"boz" = (
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/poddoor/preopen{
+ id = "Biohazard";
+ name = "biohazard containment door"
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"boA" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"boB" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/science/research)
+"boC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/science/robotics/lab)
+"boD" = (
+/obj/structure/table,
+/obj/item/circular_saw,
+/obj/item/scalpel{
+ pixel_y = 12
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"boE" = (
+/obj/structure/table,
+/obj/item/hemostat,
+/obj/item/cautery{
+ pixel_x = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"boF" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"boG" = (
+/obj/structure/table,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/item/mmi,
+/obj/item/mmi,
+/obj/item/mmi,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"boH" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"boI" = (
+/obj/structure/sign/warning/vacuum/external,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/cargo/storage)
+"boJ" = (
+/obj/machinery/conveyor_switch/oneway{
+ id = "QMLoad2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"boK" = (
+/obj/effect/turf_decal/bot_red,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"boL" = (
+/obj/structure/table,
+/obj/item/retractor,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"boM" = (
+/turf/open/floor/plasteel/dark,
+/area/science)
+"boN" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"boP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"boQ" = (
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/stock_parts/cell/high/plus,
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"boR" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery/red,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"boS" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/window/westleft{
+ name = "Cargo Desk";
+ req_access_txt = "50"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/cargo/office)
+"boT" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"boU" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"boV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"boW" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"boY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/ian{
+ pixel_x = 32;
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"boZ" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/northleft{
+ dir = 8;
+ name = "Reception Window"
+ },
+/obj/machinery/door/window/brigdoor{
+ base_state = "rightsecure";
+ dir = 4;
+ icon_state = "rightsecure";
+ name = "Head of Personnel's Desk";
+ req_access_txt = "57"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/flasher{
+ id = "hopflash";
+ pixel_y = 28
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "hop";
+ name = "Privacy Shutters"
+ },
+/turf/open/floor/plasteel,
+/area/command/heads_quarters/hop)
+"bpb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/hop)
+"bpc" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"bpd" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/hop)
+"bpe" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/hop)
+"bph" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"bpj" = (
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Captain's Quarters";
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"bpk" = (
+/obj/structure/closet/secure_closet/captains,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/item/clothing/under/rank/captain/parade,
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"bpl" = (
+/obj/structure/table/wood,
+/obj/item/storage/box/matches,
+/obj/item/razor{
+ pixel_x = -4;
+ pixel_y = 2
+ },
+/obj/item/clothing/mask/cigarette/cigar,
+/obj/item/reagent_containers/food/drinks/flask/gold,
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"bpm" = (
+/obj/machinery/shower{
+ dir = 1
+ },
+/obj/item/soap/deluxe,
+/obj/item/bikehorn/rubberducky,
+/obj/structure/curtain,
+/turf/open/floor/plasteel/freezer,
+/area/command/heads_quarters/captain)
+"bpn" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bpo" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bpp" = (
+/obj/machinery/door/window/eastright{
+ base_state = "left";
+ dir = 8;
+ icon_state = "left";
+ name = "Research Division Delivery";
+ req_access_txt = "47"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/science/research)
+"bpq" = (
+/obj/machinery/light_switch{
+ pixel_y = -23
+ },
+/obj/effect/turf_decal/loading_area{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bpr" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=8";
+ dir = 8;
+ freq = 1400;
+ location = "Research Division"
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/science/research)
+"bps" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/effect/turf_decal/loading_area/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bpt" = (
+/obj/structure/table,
+/obj/item/hand_labeler,
+/obj/item/stack/packageWrap,
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bpu" = (
+/obj/structure/bed/roller,
+/obj/machinery/button/door{
+ desc = "A remote control switch for the medbay foyer.";
+ id = "MedbayFoyer";
+ name = "Medbay Exit Button";
+ normaldoorcontrol = 1;
+ pixel_y = 26
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bpv" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/medical{
+ name = "Medbay Reception";
+ req_access_txt = "5"
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bpw" = (
+/obj/machinery/status_display/evac,
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/medbay/central)
+"bpx" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bpz" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bpA" = (
+/obj/machinery/computer/cargo{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bpB" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bpC" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bpD" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/medical/glass{
+ name = "Chemistry Lab";
+ req_access_txt = "5; 33"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/chemistry)
+"bpE" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/medical/genetics)
+"bpF" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/southleft{
+ dir = 1;
+ name = "Chemistry Desk";
+ req_access_txt = "33"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/medical/chemistry)
+"bpG" = (
+/obj/machinery/power/apc{
+ areastring = "/area/medical/genetics";
+ dir = 1;
+ name = "Genetics APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bpH" = (
+/obj/structure/table/glass,
+/obj/item/folder/white,
+/obj/item/radio/headset/headset_medsci,
+/obj/machinery/requests_console{
+ department = "Genetics";
+ name = "Genetics Requests Console";
+ pixel_y = 30
+ },
+/obj/item/storage/pill_bottle/mutadone,
+/obj/item/storage/pill_bottle/mannitol,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bpI" = (
+/obj/machinery/dna_scannernew,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bpJ" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bpK" = (
+/mob/living/carbon/monkey,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bpL" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bpM" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/medical/chemistry)
+"bpN" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bpO" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bpP" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bpQ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"bpR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bpS" = (
+/obj/structure/table,
+/obj/item/storage/box/bodybags,
+/obj/item/pen,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bpT" = (
+/obj/structure/table,
+/obj/item/storage/belt/utility,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/glass{
+ amount = 20;
+ pixel_x = -3;
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bpU" = (
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/obj/item/stock_parts/cell/high/plus,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bpV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/science/robotics/lab)
+"bpW" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "robotics2";
+ name = "robotics lab shutters"
+ },
+/obj/effect/spawner/structure/window,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "robotics2";
+ name = "robotics lab shutters"
+ },
+/turf/open/floor/plating,
+/area/science/robotics/lab)
+"bpX" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bpY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bpZ" = (
+/obj/item/folder/white,
+/obj/structure/table,
+/obj/item/disk/tech_disk,
+/obj/item/disk/tech_disk,
+/obj/item/disk/design_disk,
+/obj/item/disk/design_disk,
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bqa" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/window/eastright{
+ name = "Robotics Surgery";
+ req_access_txt = "29"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bqc" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bqd" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "robo2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bqe" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/science/explab)
+"bqf" = (
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "rnd2";
+ name = "research lab shutters"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bqg" = (
+/obj/machinery/atmospherics/components/binary/valve{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bqh" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bqi" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "QMLoad2"
+ },
+/obj/machinery/door/poddoor{
+ id = "QMLoaddoor2";
+ name = "supply dock loading door"
+ },
+/turf/open/floor/plating,
+/area/cargo/storage)
+"bqj" = (
+/obj/structure/plasticflaps,
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "QMLoad2"
+ },
+/turf/open/floor/plating,
+/area/cargo/storage)
+"bqk" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "rnd2";
+ name = "research lab shutters"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/research)
+"bql" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "QMLoad2"
+ },
+/obj/effect/turf_decal/stripes/red/full,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bqm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bqn" = (
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bqo" = (
+/obj/machinery/autolathe,
+/obj/machinery/light_switch{
+ pixel_x = -27
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bqp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 1;
+ layer = 2.9
+ },
+/obj/structure/table/reinforced,
+/obj/item/destTagger,
+/obj/item/destTagger,
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/sorting)
+"bqq" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/hop)
+"bqr" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/hop)
+"bqs" = (
+/obj/effect/turf_decal/bot_red,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bqt" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bqu" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bqv" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/hallway/primary/central)
+"bqw" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bqx" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "hop";
+ name = "Privacy Shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/command/heads_quarters/hop)
+"bqy" = (
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bqz" = (
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/hop)
+"bqA" = (
+/obj/machinery/computer/card{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"bqB" = (
+/obj/machinery/holopad/secure,
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/hop)
+"bqC" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"bqD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"bqE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"bqF" = (
+/obj/machinery/button/door{
+ id = "stationawaygate";
+ name = "Gateway Access Shutter Control";
+ pixel_x = -1;
+ pixel_y = -24;
+ req_access_txt = "31"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"bqG" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/structure/closet/secure_closet/exile,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"bqI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/command/teleporter)
+"bqJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/command/teleporter)
+"bqK" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Teleporter Maintenance";
+ req_access_txt = "17"
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/central/secondary)
+"bqL" = (
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bqN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bqO" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bqP" = (
+/obj/structure/bed/roller,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bqQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bqS" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bqT" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bqU" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/noticeboard{
+ pixel_y = 32
+ },
+/obj/machinery/camera{
+ c_tag = "Medbay West";
+ network = list("ss13","medbay")
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bqV" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bqW" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bqX" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bqY" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bqZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bra" = (
+/obj/structure/table/glass,
+/obj/item/storage/box/rxglasses,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"brb" = (
+/obj/machinery/computer/scan_consolenew{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"brc" = (
+/obj/structure/chair/office/light{
+ dir = 4
+ },
+/obj/effect/landmark/start/geneticist,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"brd" = (
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bre" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/mob/living/carbon/monkey,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"brf" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"brg" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"brh" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bri" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"brj" = (
+/obj/structure/bed/roller,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"brk" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"brm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bro" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"brp" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"brq" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/button/door{
+ id = "robotics2";
+ name = "Shutters Control Button";
+ pixel_x = 24;
+ pixel_y = -24;
+ req_access_txt = "29"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"brr" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/science/explab)
+"brs" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/eastright{
+ base_state = "left";
+ dir = 8;
+ icon_state = "left";
+ name = "Robotics Desk";
+ req_access_txt = "29"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "robotics2";
+ name = "robotics lab shutters"
+ },
+/obj/item/folder/white,
+/obj/item/pen,
+/turf/open/floor/plating,
+/area/science/robotics/lab)
+"brt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bru" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"brv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"brw" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"brx" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "rnd2";
+ name = "research lab shutters"
+ },
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/science/research)
+"bry" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Experimentation Lab Maintenance";
+ req_access_txt = "47"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"brz" = (
+/obj/machinery/rnd/bepis,
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"brA" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"brB" = (
+/obj/structure/closet/l3closet/scientist,
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"brC" = (
+/obj/structure/table,
+/obj/item/folder/white,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/item/radio/off,
+/obj/machinery/camera{
+ c_tag = "Experimentor Lab";
+ network = list("ss13","rd")
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"brD" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"brE" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ req_one_access_txt = "8;12"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"brF" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"brG" = (
+/obj/machinery/atmospherics/components/binary/valve{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"brH" = (
+/obj/item/cigbutt/cigarbutt,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"brI" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/valve{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"brJ" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Supply Dock Airlock";
+ req_access_txt = "31"
+ },
+/turf/open/floor/plating,
+/area/cargo/storage)
+"brK" = (
+/turf/open/floor/plating,
+/area/cargo/storage)
+"brL" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"brM" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=8";
+ dir = 8;
+ freq = 1400;
+ location = "QM #1"
+ },
+/obj/effect/turf_decal/bot,
+/mob/living/simple_animal/bot/mulebot{
+ beacon_freq = 1400;
+ home_destination = "QM #1";
+ suffix = "#1"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"brN" = (
+/obj/effect/turf_decal/delivery/red,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"brO" = (
+/obj/structure/table,
+/obj/machinery/requests_console{
+ department = "Cargo Bay";
+ departmentType = 2;
+ pixel_x = -30
+ },
+/obj/item/multitool,
+/obj/machinery/camera{
+ c_tag = "Cargo Office";
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"brP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"brQ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/junction/flip{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"brR" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"brS" = (
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"brU" = (
+/obj/structure/sign/warning/electricshock{
+ pixel_y = -32
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "hop";
+ name = "Privacy Shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/command/heads_quarters/hop)
+"brW" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/vending/cart,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"brY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"brZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"bsa" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/command{
+ name = "Gateway Access";
+ req_access_txt = "62"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"bsh" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/command/teleporter)
+"bsi" = (
+/obj/structure/table,
+/obj/item/hand_tele,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"bsj" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27;
+ pixel_y = 1
+ },
+/obj/structure/table,
+/obj/item/beacon,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"bsk" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"bsl" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = 20
+ },
+/obj/structure/closet/crate,
+/obj/item/crowbar,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"bsm" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"bsn" = (
+/obj/machinery/camera{
+ c_tag = "Teleporter"
+ },
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"bso" = (
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"bsp" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bsq" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ frequency = 1485;
+ name = "Station Intercom (Medbay)";
+ pixel_y = -30
+ },
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bsr" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bss" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bst" = (
+/obj/item/radio/intercom{
+ frequency = 1485;
+ name = "Station Intercom (Medbay)";
+ pixel_x = 30
+ },
+/obj/machinery/camera{
+ c_tag = "Medbay East";
+ dir = 8;
+ network = list("ss13","medbay");
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bsu" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/medical/glass{
+ id_tag = "GeneticsDoor";
+ name = "Genetics";
+ req_access_txt = "5; 68"
+ },
+/obj/effect/mapping_helpers/airlock/unres,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bsv" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bsw" = (
+/obj/machinery/door/airlock/research{
+ name = "Robotics Lab";
+ req_access_txt = "29"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bsx" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bsy" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bsz" = (
+/obj/machinery/status_display/evac{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bsA" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bsC" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bsD" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bsE" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/airlock/research{
+ name = "Experimentation Lab";
+ req_access_txt = "47"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"bsF" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"bsG" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"bsH" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/science/explab)
+"bsI" = (
+/obj/machinery/power/apc{
+ areastring = "/area/science/explab";
+ dir = 4;
+ name = "Experimentation Lab APC";
+ pixel_x = 24
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"bsJ" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/starboard)
+"bsK" = (
+/obj/structure/table/glass,
+/obj/item/storage/box/disks{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bsM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bsN" = (
+/obj/machinery/door/window/westleft{
+ name = "Monkey Pen";
+ req_access_txt = "9"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bsO" = (
+/obj/structure/bodycontainer/morgue,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bsP" = (
+/obj/structure/table/optable{
+ name = "Robotics Operating Table"
+ },
+/obj/effect/landmark/event_spawn,
+/obj/item/tank/internals/anesthetic,
+/obj/item/clothing/mask/breath,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bsQ" = (
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bsR" = (
+/obj/machinery/computer/operating{
+ dir = 1;
+ name = "Robotics Operating Computer"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bsS" = (
+/obj/machinery/camera{
+ c_tag = "Robotics Lab - South";
+ dir = 1;
+ network = list("ss13","rd")
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bsT" = (
+/obj/machinery/light,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bsU" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"bsV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bsW" = (
+/obj/machinery/vending/wardrobe/robo_wardrobe,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"bsX" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bsY" = (
+/obj/structure/chair/office/dark{
+ dir = 4
+ },
+/obj/effect/landmark/start/head_of_personnel,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"bsZ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bta" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Research Division North"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"btb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/noticeboard{
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"btc" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"btd" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"bte" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"btf" = (
+/obj/machinery/requests_console{
+ department = "Medbay";
+ departmentType = 1;
+ name = "Medbay RC";
+ pixel_x = -30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bth" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-16"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bti" = (
+/obj/structure/closet/wardrobe/grey,
+/obj/item/clothing/head/beret/black,
+/obj/item/clothing/head/beret/black,
+/obj/item/clothing/head/beret,
+/obj/item/clothing/head/beret,
+/obj/item/clothing/under/misc/assistantformal,
+/obj/item/clothing/under/dress/skirt,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"btj" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"btk" = (
+/obj/structure/closet/wardrobe/white,
+/obj/item/clothing/under/costume/kilt,
+/obj/item/clothing/under/rank/civilian/janitor/maid,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"btl" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"btm" = (
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 2;
+ sortType = 12
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"btn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/science)
+"bto" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = 32
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"btp" = (
+/obj/item/cigbutt,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"btq" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 1;
+ name = "Space Loop Out"
+ },
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/maintenance/starboard)
+"btr" = (
+/obj/machinery/camera{
+ c_tag = "Cargo Receiving Dock";
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "QMLoaddoor";
+ layer = 4;
+ name = "Loading Doors";
+ pixel_x = -24;
+ pixel_y = -8
+ },
+/obj/machinery/button/door{
+ id = "QMLoaddoor2";
+ layer = 4;
+ name = "Loading Doors";
+ pixel_x = -24;
+ pixel_y = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bts" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=8";
+ dir = 8;
+ freq = 1400;
+ location = "QM #2"
+ },
+/obj/effect/turf_decal/bot,
+/mob/living/simple_animal/bot/mulebot{
+ home_destination = "QM #2";
+ suffix = "#2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"btt" = (
+/obj/structure/table,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/item/folder/yellow,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"btu" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"btv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"btw" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"btx" = (
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/poddoor/preopen{
+ id = "Biohazard";
+ name = "biohazard containment door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bty" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"btz" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"btA" = (
+/obj/machinery/camera{
+ c_tag = "Research Division West"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"btB" = (
+/obj/machinery/computer/bounty{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"btC" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"btD" = (
+/obj/item/paper_bin/bundlenatural{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/paper_bin{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/pen/fountain,
+/obj/structure/table,
+/obj/item/pen/fourcolor,
+/obj/item/stamp/hop,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"btE" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"btG" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/gravity_generator)
+"btH" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"btI" = (
+/obj/machinery/power/apc{
+ areastring = "/area/command/teleporter";
+ dir = 8;
+ name = "Teleporter APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"btJ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/bluespace_beacon,
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"btK" = (
+/obj/machinery/holopad,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"btL" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"btM" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/command{
+ name = "Teleport Access";
+ req_access_txt = "17"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"btN" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"btO" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"btP" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"btR" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"btS" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"btT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"btU" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"btV" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"btX" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"btY" = (
+/obj/machinery/requests_console{
+ department = "Science";
+ departmentType = 2;
+ name = "Science Requests Console";
+ pixel_y = -30;
+ receive_ore_updates = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"btZ" = (
+/obj/machinery/light,
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bua" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/genetics)
+"bub" = (
+/obj/machinery/light,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -35
+ },
+/obj/effect/turf_decal/loading_area/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"buc" = (
+/obj/machinery/light,
+/obj/machinery/power/apc{
+ areastring = "/area/cargo/office";
+ name = "Cargo Office APC";
+ pixel_x = 1;
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/brown,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bud" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/effect/turf_decal/loading_area/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bue" = (
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Head of Personnel's Desk";
+ departmentType = 5;
+ name = "Head of Personnel RC";
+ pixel_y = -30
+ },
+/obj/machinery/camera{
+ c_tag = "Head of Personnel's Office";
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"buf" = (
+/obj/machinery/computer/scan_consolenew{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bug" = (
+/obj/structure/chair/office/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bui" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"buj" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "robotics2";
+ name = "robotics lab shutters"
+ },
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/science/robotics/lab)
+"bul" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bum" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bun" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"buo" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bup" = (
+/obj/machinery/light,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"buq" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/medical/genetics)
+"bur" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bus" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"but" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"buu" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"buv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"buw" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"bux" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"buy" = (
+/obj/structure/disposalpipe/sorting/mail{
+ sortType = 23
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"buz" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"buB" = (
+/obj/machinery/conveyor_switch/oneway{
+ dir = 8;
+ id = "QMLoad"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"buC" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"buD" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=8";
+ dir = 8;
+ freq = 1400;
+ location = "QM #3"
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"buE" = (
+/obj/structure/table,
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"buF" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"buG" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/research{
+ name = "Genetics Research Access";
+ req_access_txt = "9"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"buH" = (
+/obj/machinery/door/airlock/research{
+ name = "Genetics Research Access";
+ req_access_txt = "47"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"buI" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"buJ" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/machinery/light,
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"buK" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"buL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"buM" = (
+/obj/machinery/keycard_auth{
+ pixel_x = -24
+ },
+/obj/machinery/computer/cargo/request{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"buN" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"buO" = (
+/obj/structure/table,
+/obj/item/folder/blue,
+/obj/item/stack/packageWrap{
+ pixel_x = -1;
+ pixel_y = -1
+ },
+/obj/item/hand_labeler,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"buT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"buU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/poddoor/preopen{
+ id = "Biohazard";
+ name = "biohazard containment door"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"buV" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"buW" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"buX" = (
+/obj/machinery/shieldwallgen,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"buY" = (
+/obj/machinery/shieldwallgen,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"buZ" = (
+/obj/structure/closet/crate,
+/turf/open/floor/plasteel/dark,
+/area/command/teleporter)
+"bva" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bvb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bvc" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bvd" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/surgery)
+"bve" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bvf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bvg" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bvi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/surgery)
+"bvk" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/lobby)
+"bvl" = (
+/obj/machinery/door/airlock/medical/glass{
+ name = "Surgery Observation"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bvm" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bvn" = (
+/obj/machinery/button/door{
+ desc = "A remote control switch for the genetics doors.";
+ id = "GeneticsDoor";
+ name = "Genetics Exit Button";
+ normaldoorcontrol = 1;
+ pixel_x = 8;
+ pixel_y = 24
+ },
+/obj/structure/table,
+/obj/item/book/manual/wiki/medical_cloning{
+ pixel_y = 6
+ },
+/obj/item/storage/box/rxglasses{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/box/bodybags,
+/obj/item/pen,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bvo" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bvp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bvq" = (
+/obj/structure/chair,
+/obj/effect/landmark/start/geneticist,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bvr" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bvs" = (
+/obj/machinery/dna_scannernew,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bvt" = (
+/obj/machinery/door/airlock/research/glass{
+ name = "Genetics Research";
+ req_access_txt = "5; 9; 68"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bvu" = (
+/obj/structure/window/reinforced,
+/mob/living/carbon/monkey,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bvv" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bvw" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bvy" = (
+/obj/machinery/camera{
+ c_tag = "Genetics Research";
+ dir = 1;
+ network = list("ss13","medbay")
+ },
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bvz" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bvA" = (
+/obj/structure/sign/warning/securearea,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/genetics)
+"bvB" = (
+/obj/machinery/camera{
+ c_tag = "Genetics Access";
+ dir = 8;
+ network = list("ss13","medbay");
+ pixel_y = -22
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bvC" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/security/checkpoint/science)
+"bvD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bvF" = (
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Cargo Bay";
+ departmentType = 2;
+ pixel_x = -30
+ },
+/obj/machinery/computer/bounty{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/machinery/keycard_auth{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/qm)
+"bvG" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"bvH" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bvI" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bvJ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/command/heads_quarters/rd)
+"bvL" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/supply)
+"bvM" = (
+/obj/machinery/light_switch{
+ pixel_x = -20
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"bvN" = (
+/obj/structure/chair/office/light,
+/obj/effect/landmark/start/scientist,
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"bvO" = (
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"bvP" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"bvQ" = (
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bvR" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bvS" = (
+/obj/machinery/conveyor{
+ dir = 8;
+ id = "QMLoad"
+ },
+/obj/machinery/door/poddoor{
+ id = "QMLoaddoor";
+ name = "supply dock loading door"
+ },
+/turf/open/floor/plating,
+/area/cargo/storage)
+"bvT" = (
+/obj/structure/plasticflaps,
+/obj/machinery/conveyor{
+ dir = 8;
+ id = "QMLoad"
+ },
+/turf/open/floor/plating,
+/area/cargo/storage)
+"bvU" = (
+/obj/machinery/conveyor{
+ dir = 8;
+ id = "QMLoad"
+ },
+/obj/machinery/light,
+/obj/machinery/status_display/supply{
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/stripes/red/full,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bvV" = (
+/obj/machinery/conveyor{
+ dir = 8;
+ id = "QMLoad"
+ },
+/obj/effect/turf_decal/stripes/red/full,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bvW" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bvX" = (
+/obj/machinery/camera{
+ c_tag = "Cargo Bay South";
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bvY" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=8";
+ dir = 8;
+ freq = 1400;
+ location = "QM #4"
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"bvZ" = (
+/obj/structure/table,
+/obj/item/storage/firstaid/regular{
+ pixel_x = 6;
+ pixel_y = -5
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bwa" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bwb" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"bwc" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bwd" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/checkpoint/supply)
+"bwe" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/security/checkpoint/supply)
+"bwf" = (
+/obj/machinery/camera{
+ c_tag = "Cargo Bay Entrance";
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bwg" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "hopqueue";
+ name = "HoP Queue Shutters"
+ },
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bwh" = (
+/obj/structure/sign/warning/securearea{
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bwi" = (
+/obj/item/radio/intercom{
+ dir = 8;
+ name = "Station Intercom (General)";
+ pixel_x = -28
+ },
+/obj/structure/closet/secure_closet/hop,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/item/clothing/suit/ianshirt,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"bwj" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"bwk" = (
+/obj/structure/table,
+/obj/machinery/recharger,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"bwl" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"bwq" = (
+/obj/machinery/teleport/station,
+/turf/open/floor/plating,
+/area/command/teleporter)
+"bwr" = (
+/obj/machinery/computer/teleporter{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/command/teleporter)
+"bws" = (
+/obj/structure/rack,
+/obj/item/tank/internals/oxygen,
+/obj/item/clothing/mask/gas,
+/turf/open/floor/plating,
+/area/command/teleporter)
+"bwt" = (
+/obj/machinery/teleport/hub,
+/turf/open/floor/plating,
+/area/command/teleporter)
+"bwu" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bwv" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=4";
+ dir = 4;
+ freq = 1400;
+ location = "Medbay"
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bww" = (
+/obj/structure/chair,
+/obj/machinery/camera{
+ c_tag = "Surgery Observation";
+ network = list("ss13","medbay")
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bwx" = (
+/obj/machinery/door/window/eastleft{
+ name = "Medical Delivery";
+ req_access_txt = "5"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bwz" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bwB" = (
+/obj/structure/chair,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bwD" = (
+/obj/machinery/sleeper{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bwE" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bwF" = (
+/obj/structure/table/glass,
+/obj/item/reagent_containers/glass/beaker/cryoxadone{
+ pixel_x = 7;
+ pixel_y = 1
+ },
+/obj/item/reagent_containers/glass/beaker/cryoxadone{
+ pixel_x = 7;
+ pixel_y = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bwG" = (
+/obj/structure/sign/warning/nosmoking,
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/medbay/central)
+"bwH" = (
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bwI" = (
+/obj/machinery/atmospherics/components/unary/cryo_cell,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bwJ" = (
+/obj/structure/table/glass,
+/obj/machinery/camera{
+ c_tag = "Medbay Cryogenics";
+ network = list("ss13","medbay")
+ },
+/obj/item/reagent_containers/glass/beaker/cryoxadone,
+/obj/item/reagent_containers/glass/beaker/cryoxadone,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bwK" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bwL" = (
+/obj/machinery/camera{
+ c_tag = "Genetics Cloning";
+ dir = 4;
+ network = list("ss13","medbay")
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/structure/closet/secure_closet/personal/patient,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bwM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/science)
+"bwN" = (
+/obj/machinery/light_switch{
+ pixel_x = 8;
+ pixel_y = 28
+ },
+/obj/machinery/button/door{
+ id = "Biohazard";
+ name = "Biohazard Shutter Control";
+ pixel_x = -5;
+ pixel_y = 28;
+ req_access_txt = "47"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/science)
+"bwO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bwQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/command/heads_quarters/rd)
+"bwR" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"bwS" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/qm)
+"bwT" = (
+/obj/machinery/door/airlock/command{
+ name = "Quartermaster";
+ req_access_txt = "41"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/qm)
+"bwU" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/qm)
+"bwV" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/landmark/start/shaft_miner,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bwW" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bwX" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 1;
+ sortType = 3
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bwY" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Office";
+ req_access_txt = "63"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/supply)
+"bwZ" = (
+/obj/structure/chair,
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bxa" = (
+/obj/structure/chair,
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = -28
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bxb" = (
+/obj/structure/chair,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bxc" = (
+/obj/machinery/holopad,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bxe" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bxf" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bxg" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bxi" = (
+/obj/machinery/computer/aifixer{
+ dir = 8
+ },
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Research Director's Desk";
+ departmentType = 5;
+ name = "Research Director RC";
+ pixel_x = -2;
+ pixel_y = 30;
+ receive_ore_updates = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"bxj" = (
+/obj/structure/table,
+/obj/machinery/computer/security/telescreen/rd,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"bxk" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"bxl" = (
+/obj/structure/rack,
+/obj/item/circuitboard/aicore{
+ pixel_x = -2;
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"bxm" = (
+/obj/effect/landmark/xmastree/rdrod,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"bxo" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"bxp" = (
+/obj/machinery/computer/rdconsole/experiment{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"bxq" = (
+/obj/structure/table,
+/obj/item/clipboard,
+/obj/item/book/manual/wiki/experimentor,
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"bxr" = (
+/obj/structure/closet/radiation,
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"bxs" = (
+/obj/machinery/button/door{
+ id = "telelab";
+ name = "Test Chamber Blast Doors";
+ pixel_x = 25;
+ req_access_txt = "47"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"bxt" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bxu" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/cargo/qm)
+"bxv" = (
+/obj/structure/chair/office/dark{
+ dir = 4
+ },
+/obj/effect/landmark/start/depsec/science,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/science)
+"bxw" = (
+/obj/machinery/door/airlock/command{
+ name = "Quartermaster";
+ req_access_txt = "41"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/qm)
+"bxx" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/cargo/qm)
+"bxy" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/cargo/miningdock)
+"bxz" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/cargo/miningdock)
+"bxA" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/mining{
+ req_access_txt = "48"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bxB" = (
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/obj/item/pen,
+/obj/structure/table,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/supply)
+"bxC" = (
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/obj/structure/table,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/supply)
+"bxD" = (
+/obj/item/book/manual/wiki/security_space_law,
+/obj/structure/table,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/supply)
+"bxE" = (
+/obj/machinery/computer/secure_data{
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/supply)
+"bxF" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bxG" = (
+/obj/machinery/door/airlock/command{
+ name = "Head of Personnel";
+ req_access_txt = "57"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/hop)
+"bxI" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/hallway/primary/central)
+"bxK" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/hallway/primary/central)
+"bxL" = (
+/obj/machinery/camera{
+ c_tag = "Central Hallway South-East";
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bxM" = (
+/obj/structure/chair/office/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/auxiliary)
+"bxN" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/obj/structure/mirror{
+ pixel_x = -28
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bxO" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bxP" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"bxQ" = (
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bxR" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bxS" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bxT" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bxU" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bxV" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bxW" = (
+/obj/machinery/door/airlock/command/glass{
+ name = "Research Director";
+ req_access_txt = "30"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"bxX" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bxY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"bxZ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"bya" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"byb" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"byc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/machinery/computer/card/minor/qm{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/qm)
+"byd" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/qm)
+"bye" = (
+/obj/structure/sign/warning/securearea,
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/genetics)
+"byf" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/science/server)
+"byg" = (
+/obj/structure/table,
+/obj/item/clipboard,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/cartridge/quartermaster{
+ pixel_x = 6;
+ pixel_y = 5
+ },
+/obj/item/cartridge/quartermaster{
+ pixel_x = -4;
+ pixel_y = 7
+ },
+/obj/item/cartridge/quartermaster,
+/obj/item/coin/silver,
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/obj/item/stamp/qm,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen/fountain,
+/turf/open/floor/plasteel/dark,
+/area/cargo/qm)
+"byh" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/command{
+ name = "Server Room";
+ req_access_txt = "30"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"byi" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/security/checkpoint/science)
+"byj" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Office";
+ req_access_txt = "63"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/science)
+"byk" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/checkpoint/science)
+"byl" = (
+/obj/structure/table,
+/obj/item/folder/yellow,
+/obj/item/pen{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/obj/item/pen/red,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/qm)
+"bym" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/cargo/qm)
+"byn" = (
+/obj/structure/filingcabinet,
+/obj/machinery/light_switch{
+ pixel_y = -25
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/qm)
+"byo" = (
+/obj/structure/table,
+/obj/machinery/button/door{
+ id = "Biohazard";
+ name = "Biohazard Shutter Control";
+ pixel_x = -5;
+ pixel_y = 5;
+ req_access_txt = "47"
+ },
+/obj/machinery/button/door{
+ id = "rnd2";
+ name = "Research Lab Shutter Control";
+ pixel_x = 5;
+ pixel_y = 5;
+ req_access_txt = "47"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"byp" = (
+/obj/machinery/computer/robotics{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"byq" = (
+/obj/structure/chair/office/light{
+ dir = 8
+ },
+/obj/effect/landmark/start/research_director,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"byr" = (
+/obj/machinery/holopad/secure,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"bys" = (
+/obj/structure/rack,
+/obj/item/aicard,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"byt" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/command/heads_quarters/rd)
+"byu" = (
+/obj/structure/displaycase/labcage,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"byv" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "telelab";
+ name = "test chamber blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/engine,
+/area/science/explab)
+"byw" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "telelab";
+ name = "test chamber blast door"
+ },
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/engine,
+/area/science/explab)
+"byx" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/heater{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"byy" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"byz" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/qm)
+"byA" = (
+/obj/machinery/power/apc{
+ areastring = "/area/cargo/qm";
+ dir = 1;
+ name = "Quartermaster APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/qm)
+"byB" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk,
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/qm)
+"byC" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/machinery/holopad/secure,
+/turf/open/floor/plasteel/dark,
+/area/cargo/qm)
+"byD" = (
+/obj/structure/closet/secure_closet/quartermaster,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/qm)
+"byE" = (
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"byF" = (
+/obj/machinery/power/apc{
+ areastring = "/area/cargo/miningdock";
+ dir = 1;
+ name = "Mining Dock APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"byG" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"byH" = (
+/obj/machinery/light_switch{
+ pixel_y = -25
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/closet/secure_closet/security/cargo,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/supply)
+"byI" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/supply)
+"byJ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/security/checkpoint/supply)
+"byK" = (
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/supply)
+"byL" = (
+/obj/structure/chair/office/dark{
+ dir = 1
+ },
+/obj/effect/landmark/start/depsec/supply,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/supply)
+"byM" = (
+/obj/item/radio/intercom{
+ dir = 4;
+ name = "Station Intercom (General)";
+ pixel_x = 27
+ },
+/obj/machinery/computer/security/mining{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/supply)
+"byN" = (
+/obj/machinery/newscaster{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"byO" = (
+/obj/machinery/requests_console{
+ department = "Security";
+ departmentType = 5;
+ pixel_y = -30
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/supply)
+"byP" = (
+/obj/structure/sign/warning/securearea{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"byQ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"byR" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"byS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"byT" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/vending/wardrobe/sec_wardrobe,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/supply)
+"byU" = (
+/obj/machinery/light,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"byW" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"byX" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"byY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/medical/surgery)
+"byZ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/medical/surgery)
+"bza" = (
+/obj/structure/chair,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bzb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/surgery)
+"bzc" = (
+/obj/machinery/door/airlock/medical/glass{
+ name = "Recovery Room"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bzd" = (
+/obj/structure/table,
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/obj/item/pen,
+/obj/machinery/requests_console{
+ department = "Medbay";
+ departmentType = 1;
+ name = "Medbay RC";
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bze" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/machinery/shower{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bzg" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bzh" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bzi" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bzj" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bzk" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bzl" = (
+/obj/machinery/dna_scannernew,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bzm" = (
+/obj/machinery/clonepod,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bzn" = (
+/obj/machinery/computer/cloning{
+ dir = 1
+ },
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bzo" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ pixel_y = -28
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bzp" = (
+/obj/structure/closet/secure_closet/personal/patient,
+/obj/machinery/light,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bzq" = (
+/obj/structure/closet/secure_closet/medical1,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bzr" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/machinery/vending/wardrobe/gene_wardrobe,
+/turf/open/floor/plasteel/dark,
+/area/medical/genetics)
+"bzs" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/aft)
+"bzt" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4;
+ external_pressure_bound = 140;
+ name = "server vent";
+ pressure_checks = 0
+ },
+/turf/open/floor/circuit/red,
+/area/science/server)
+"bzu" = (
+/obj/machinery/rnd/server,
+/turf/open/floor/circuit/red,
+/area/science/server)
+"bzv" = (
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"bzw" = (
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 4
+ },
+/obj/structure/sign/warning/securearea{
+ desc = "A warning sign which reads 'SERVER ROOM'.";
+ name = "SERVER ROOM";
+ pixel_y = 32
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/server)
+"bzx" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"bzy" = (
+/obj/machinery/camera{
+ c_tag = "Server Room";
+ network = list("ss13","rd");
+ pixel_x = 22
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/science/server";
+ dir = 1;
+ name = "Server Room APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"bzz" = (
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_x = -30
+ },
+/obj/machinery/airalarm{
+ pixel_y = 25
+ },
+/obj/structure/closet/secure_closet/security/science,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/science)
+"bzA" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bzB" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bzC" = (
+/obj/structure/table,
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/science)
+"bzD" = (
+/obj/structure/table,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/computer/security/telescreen/circuitry,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/science)
+"bzF" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bzG" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bzH" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/medical/surgery)
+"bzI" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/storage/backpack/duffelbag/med/surgery,
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bzJ" = (
+/obj/machinery/computer/mecha{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"bzK" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/surgery)
+"bzL" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"bzM" = (
+/obj/structure/rack,
+/obj/item/taperecorder{
+ pixel_x = -3
+ },
+/obj/item/paicard{
+ pixel_x = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"bzN" = (
+/obj/machinery/modular_computer/console/preset/research{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"bzO" = (
+/turf/open/floor/engine,
+/area/science/explab)
+"bzP" = (
+/obj/machinery/computer/cargo{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/qm)
+"bzQ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/qm)
+"bzR" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/qm)
+"bzS" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/computer/operating,
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bzT" = (
+/obj/structure/chair/office/dark,
+/obj/effect/landmark/start/quartermaster,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/qm)
+"bzU" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bzV" = (
+/obj/machinery/vending/wardrobe/medi_wardrobe,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bzW" = (
+/obj/structure/closet/l3closet,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bzX" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bzY" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bzZ" = (
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bAa" = (
+/obj/machinery/door/firedoor/heavy,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bAb" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/obj/effect/landmark/start/shaft_miner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bAc" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bAd" = (
+/obj/item/screwdriver{
+ pixel_y = 10
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/item/radio/off,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/supply)
+"bAe" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=AIW";
+ location = "QM"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bAf" = (
+/obj/machinery/holopad,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bAg" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=AftH";
+ location = "AIW"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bAh" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=CHE";
+ location = "AIE"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bAi" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bAj" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=HOP";
+ location = "CHE"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bAk" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bAl" = (
+/obj/structure/chair,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bAm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bAn" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Mining Maintenance";
+ req_access_txt = "48"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bAo" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/security/checkpoint/supply";
+ dir = 1;
+ name = "Cargo Security APC";
+ pixel_x = 1;
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bAq" = (
+/obj/machinery/sleeper{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "Medbay Treatment Center";
+ dir = 8;
+ network = list("ss13","medbay")
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bAr" = (
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bAs" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1;
+ name = "Connector Port (Air Supply)"
+ },
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/machinery/light,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bAt" = (
+/obj/structure/table/reinforced,
+/obj/item/wrench/medical,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bAu" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bAv" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1;
+ name = "Connector Port (Air Supply)"
+ },
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bAw" = (
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bAx" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bAy" = (
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/science/server)
+"bAz" = (
+/obj/machinery/airalarm/server{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/science/server)
+"bAA" = (
+/obj/machinery/atmospherics/pipe/manifold{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"bAB" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/command/glass{
+ name = "Server Room";
+ req_access_txt = "30"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"bAC" = (
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 9
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"bAD" = (
+/obj/structure/chair/office/light,
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"bAE" = (
+/obj/machinery/camera{
+ c_tag = "Security Post - Science";
+ dir = 4;
+ network = list("ss13","rd")
+ },
+/obj/machinery/newscaster{
+ pixel_x = -30
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/vending/wardrobe/sec_wardrobe,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/science)
+"bAF" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/science)
+"bAG" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/science)
+"bAH" = (
+/obj/structure/table,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/science)
+"bAI" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bAJ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bAK" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bAL" = (
+/obj/structure/table,
+/obj/item/plant_analyzer,
+/obj/item/stock_parts/cell/high/plus,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bAM" = (
+/obj/structure/table,
+/obj/item/analyzer,
+/obj/item/healthanalyzer,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bAN" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bAO" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bAP" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bAQ" = (
+/obj/effect/landmark/blobstart,
+/obj/effect/landmark/xeno_spawn,
+/turf/open/floor/engine,
+/area/science/explab)
+"bAR" = (
+/obj/machinery/rnd/experimentor,
+/turf/open/floor/engine,
+/area/science/explab)
+"bAS" = (
+/obj/machinery/camera{
+ c_tag = "Quartermaster's Office";
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -35
+ },
+/obj/machinery/status_display/supply{
+ pixel_x = -32
+ },
+/obj/machinery/computer/security/qm{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/qm)
+"bAT" = (
+/obj/machinery/vending/wardrobe/jani_wardrobe,
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bAU" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bAV" = (
+/obj/machinery/door/window/westleft{
+ name = "Janitorial Delivery";
+ req_access_txt = "26"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bAX" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/curtain{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bAY" = (
+/obj/structure/curtain{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bAZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bBa" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bBb" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/atmos)
+"bBc" = (
+/obj/structure/curtain{
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/table/optable,
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bBd" = (
+/obj/structure/table,
+/obj/structure/bedsheetbin{
+ pixel_x = 2
+ },
+/obj/item/clothing/suit/straight_jacket,
+/obj/item/clothing/mask/muzzle,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bBe" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bBf" = (
+/obj/structure/filingcabinet,
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_x = 30
+ },
+/obj/machinery/newscaster{
+ pixel_y = -32
+ },
+/obj/machinery/camera{
+ c_tag = "Security Post - Cargo";
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/supply)
+"bBg" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/machinery/light{
+ light_color = "#cee5d2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bBh" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bBi" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bBj" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bBk" = (
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/camera{
+ c_tag = "Central Primary Hallway South-West";
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bBl" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bBm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bBn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bBo" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bBp" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bBq" = (
+/obj/structure/disposalpipe/junction/flip{
+ dir = 2
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/sign/directions/engineering{
+ pixel_x = -32;
+ pixel_y = -40
+ },
+/obj/structure/sign/directions/medical{
+ dir = 4;
+ pixel_x = -32;
+ pixel_y = -24
+ },
+/obj/structure/sign/directions/evac{
+ dir = 4;
+ pixel_x = -32;
+ pixel_y = -32
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bBr" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/status_display/evac{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bBs" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bBt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Central Primary Hallway South";
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bBu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/light,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bBv" = (
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 8;
+ sortType = 22
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bBw" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bBx" = (
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bBy" = (
+/obj/machinery/light,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bBz" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/sign/poster/contraband/space_up{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bBA" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/disposalpipe/junction/flip{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bBB" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bBC" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bBE" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bBF" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/item/storage/firstaid/toxin,
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/airalarm/unlocked{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bBG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bBH" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/cargo/miningdock)
+"bBI" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/closet/wardrobe/miner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/radio/headset/headset_cargo/mining,
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bBJ" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bBK" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bBL" = (
+/obj/machinery/vending/medical{
+ pixel_x = -2
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bBN" = (
+/turf/closed/wall,
+/area/command/heads_quarters/cmo)
+"bBO" = (
+/obj/machinery/computer/med_data,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bBP" = (
+/obj/machinery/computer/crew,
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Chief Medical Officer's Desk";
+ departmentType = 5;
+ name = "Chief Medical Officer RC";
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bBQ" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bBR" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bBS" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
+ dir = 4;
+ external_pressure_bound = 120;
+ name = "server vent"
+ },
+/turf/open/floor/circuit/red,
+/area/science/server)
+"bBU" = (
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 9
+ },
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"bBV" = (
+/obj/structure/sign/warning/securearea{
+ desc = "A warning sign which reads 'SERVER ROOM'.";
+ name = "SERVER ROOM";
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/server)
+"bBW" = (
+/obj/structure/table,
+/obj/item/folder/white,
+/obj/item/pen,
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"bBX" = (
+/obj/machinery/computer/rdservercontrol{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/server)
+"bBY" = (
+/obj/item/radio/intercom{
+ pixel_x = -25
+ },
+/obj/structure/filingcabinet,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/science)
+"bBZ" = (
+/obj/item/screwdriver{
+ pixel_y = 10
+ },
+/obj/item/radio/off,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/science)
+"bCa" = (
+/obj/machinery/power/apc{
+ areastring = "/area/security/checkpoint/science";
+ name = "Science Security APC";
+ pixel_y = -24
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/science)
+"bCb" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/obj/item/pen,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/science)
+"bCc" = (
+/obj/machinery/computer/secure_data{
+ dir = 1
+ },
+/obj/machinery/requests_console{
+ department = "Security";
+ departmentType = 5;
+ pixel_y = -30
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/science)
+"bCd" = (
+/obj/structure/disposalpipe/sorting/mail{
+ dir = 8;
+ sortType = 15
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/light{
+ light_color = "#cee5d2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bCe" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bCf" = (
+/obj/machinery/power/apc{
+ areastring = "/area/command/heads_quarters/rd";
+ dir = 8;
+ name = "RD Office APC";
+ pixel_x = -25
+ },
+/obj/structure/cable,
+/obj/machinery/light_switch{
+ pixel_y = -23
+ },
+/obj/item/kirbyplants/dead,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"bCg" = (
+/obj/structure/table,
+/obj/item/cartridge/signal/toxins,
+/obj/item/cartridge/signal/toxins{
+ pixel_x = -4;
+ pixel_y = 2
+ },
+/obj/item/cartridge/signal/toxins{
+ pixel_x = 4;
+ pixel_y = 6
+ },
+/obj/machinery/camera{
+ c_tag = "Research Director's Office";
+ dir = 1;
+ network = list("ss13","rd")
+ },
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"bCh" = (
+/obj/machinery/keycard_auth{
+ pixel_y = -24
+ },
+/obj/machinery/light,
+/obj/machinery/computer/card/minor/rd{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"bCi" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"bCj" = (
+/obj/structure/closet/secure_closet/RD,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"bCk" = (
+/obj/structure/filingcabinet/chestdrawer,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"bCl" = (
+/obj/machinery/camera{
+ c_tag = "Experimentor Lab Chamber";
+ dir = 1;
+ network = list("ss13","rd")
+ },
+/obj/machinery/light,
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = -32
+ },
+/turf/open/floor/engine,
+/area/science/explab)
+"bCm" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bCn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bCo" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bCp" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bCq" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/aft)
+"bCr" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bCs" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/storage/tech)
+"bCt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/mob/living/simple_animal/hostile/lizard{
+ name = "Wags-His-Tail";
+ real_name = "Wags-His-Tail"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bCu" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bCv" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/service/janitor)
+"bCw" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bCy" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/janitor)
+"bCz" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bCA" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/machinery/disposal/bin,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bCB" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/surgery)
+"bCC" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/bloodbankgen,
+/obj/machinery/camera{
+ c_tag = "Medbay Surgery Storage";
+ dir = 6;
+ network = list("ss13","medbay")
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/storage)
+"bCD" = (
+/obj/machinery/computer/operating,
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bCE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bCF" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/medical/surgery";
+ dir = 8;
+ name = "Treatment Center APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bCG" = (
+/obj/structure/table,
+/obj/item/folder/white,
+/obj/item/reagent_containers/dropper,
+/obj/item/soap/nanotrasen,
+/obj/item/gun/syringe/syndicate,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bCH" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bCJ" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bCK" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bCL" = (
+/obj/structure/closet/secure_closet/medical3,
+/obj/machinery/camera{
+ c_tag = "Medbay Storage";
+ network = list("ss13","medbay")
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bCM" = (
+/obj/structure/closet/secure_closet/medical3,
+/obj/machinery/airalarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bCN" = (
+/obj/structure/disposalpipe/trunk,
+/obj/machinery/disposal/bin,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bCO" = (
+/obj/structure/table,
+/obj/item/storage/box/bodybags{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/box/rxglasses,
+/obj/item/hand_labeler,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bCR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bCS" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/vehicle/ridden/wheelchair{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bCU" = (
+/obj/item/radio/intercom{
+ frequency = 1485;
+ name = "Station Intercom (Medbay)";
+ pixel_x = -30
+ },
+/obj/machinery/camera{
+ c_tag = "Medbay South";
+ dir = 4;
+ network = list("ss13","medbay")
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bCV" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bCW" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bCX" = (
+/obj/effect/decal/cleanable/oil,
+/obj/item/cigbutt,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/science/storage)
+"bCY" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bCZ" = (
+/obj/structure/chair/office/light,
+/obj/effect/landmark/start/chief_medical_officer,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bDa" = (
+/obj/machinery/keycard_auth{
+ pixel_x = 24
+ },
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bDb" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/science/xenobiology)
+"bDc" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/science/storage)
+"bDd" = (
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bDe" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"bDf" = (
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/science/storage)
+"bDg" = (
+/obj/structure/loot_pile/maint,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bDh" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bDi" = (
+/obj/structure/sign/warning/docking{
+ pixel_y = 32
+ },
+/turf/open/space,
+/area/space/nearstation)
+"bDj" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/science/storage)
+"bDk" = (
+/obj/structure/table,
+/obj/item/folder/yellow,
+/obj/item/pen,
+/obj/machinery/requests_console{
+ department = "Mining";
+ pixel_x = -30
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bDl" = (
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bDm" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bDn" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bDo" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bDp" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bDq" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/obj/item/key/janitor,
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bDr" = (
+/obj/item/restraints/legcuffs/beartrap,
+/obj/item/restraints/legcuffs/beartrap,
+/obj/item/storage/box/mousetraps,
+/obj/item/storage/box/mousetraps,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/table,
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bDs" = (
+/obj/structure/sign/poster/contraband/lusty_xenomorph{
+ pixel_x = 32
+ },
+/obj/structure/reagent_dispensers/watertank/high,
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bDt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/aft)
+"bDv" = (
+/obj/structure/table,
+/obj/item/flashlight{
+ pixel_x = 1;
+ pixel_y = 5
+ },
+/obj/item/flashlight{
+ pixel_x = 1;
+ pixel_y = 5
+ },
+/obj/item/assembly/flash/handheld,
+/obj/item/assembly/flash/handheld,
+/obj/machinery/status_display/ai{
+ pixel_x = -32
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/engineering/storage/tech";
+ dir = 1;
+ name = "Tech Storage APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bDw" = (
+/obj/structure/table,
+/obj/item/screwdriver{
+ pixel_y = 16
+ },
+/obj/item/wirecutters,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bDx" = (
+/obj/structure/table,
+/obj/item/electronics/apc,
+/obj/item/electronics/airlock,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bDA" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/storage)
+"bDB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bDC" = (
+/obj/effect/landmark/start/medical_doctor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bDD" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bDE" = (
+/obj/machinery/vending/wallmed{
+ pixel_x = 28
+ },
+/obj/machinery/camera{
+ c_tag = "Medbay Recovery Room";
+ dir = 8;
+ network = list("ss13","medbay")
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/vehicle/ridden/wheelchair{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bDF" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "medpriv4";
+ name = "privacy door"
+ },
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/medical/medbay/central)
+"bDG" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bDH" = (
+/obj/structure/closet/l3closet/janitor,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bDI" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bDJ" = (
+/obj/structure/closet/jcloset,
+/obj/item/storage/bag/trash,
+/obj/item/clothing/under/rank/civilian/janitor/maid,
+/obj/item/clothing/under/rank/civilian/janitor/maid,
+/obj/item/clothing/under/rank/civilian/janitor/maid,
+/obj/item/clothing/under/costume/maid,
+/obj/item/clothing/under/costume/maid,
+/obj/item/clothing/under/costume/maid,
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bDK" = (
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/camera{
+ c_tag = "Custodial Closet"
+ },
+/obj/vehicle/ridden/janicart,
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bDL" = (
+/obj/structure/sign/poster/contraband/lizard{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bDM" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bDN" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bDO" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/sign/poster/contraband/hacking_guide{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bDP" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=8";
+ dir = 1;
+ freq = 1400;
+ location = "Janitor"
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bDQ" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bDS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bDT" = (
+/obj/effect/landmark/start/medical_doctor,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bDU" = (
+/obj/machinery/door/airlock/command/glass{
+ name = "Chief Medical Officer";
+ req_access_txt = "40"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bDV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/sorting/mail{
+ sortType = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bDW" = (
+/obj/machinery/door/airlock/medical/glass{
+ name = "Medbay Storage";
+ req_access_txt = "5"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bDY" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/landmark/xeno_spawn,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/science/storage)
+"bEa" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bEb" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/science/storage)
+"bEc" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/science/storage)
+"bEd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/airlock/medical/glass{
+ name = "Medbay Storage";
+ req_access_txt = "5"
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bEe" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bEf" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bEg" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/research{
+ name = "Toxins Storage";
+ req_access_txt = "8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/storage)
+"bEh" = (
+/obj/structure/table/glass,
+/obj/item/paper_bin{
+ pixel_x = -2;
+ pixel_y = 5
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bEi" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/command/heads_quarters/cmo)
+"bEj" = (
+/obj/structure/table/glass,
+/obj/item/pen,
+/obj/item/clothing/neck/stethoscope,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/mob/living/simple_animal/pet/cat/Runtime,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bEk" = (
+/obj/structure/table/glass,
+/obj/item/folder/white,
+/obj/item/stamp/cmo,
+/obj/item/clothing/glasses/hud/health,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bEl" = (
+/obj/structure/disposalpipe/segment,
+/obj/item/radio/intercom{
+ pixel_x = 25
+ },
+/obj/machinery/camera{
+ c_tag = "Chief Medical Office";
+ dir = 8;
+ network = list("ss13","medbay");
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bEm" = (
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bEn" = (
+/obj/machinery/camera{
+ c_tag = "Xenobiology Test Chamber";
+ network = list("xeno","rd")
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bEo" = (
+/obj/machinery/portable_atmospherics/canister/toxins,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/engine,
+/area/science/storage)
+"bEp" = (
+/obj/machinery/portable_atmospherics/canister/toxins,
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/engine,
+/area/science/storage)
+"bEq" = (
+/obj/machinery/power/apc{
+ areastring = "/area/science";
+ dir = 8;
+ name = "Misc Research APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bEr" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bEs" = (
+/turf/closed/wall,
+/area/science/mixing)
+"bEt" = (
+/obj/machinery/vending/coffee,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bEu" = (
+/obj/structure/closet/bombcloset,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bEv" = (
+/obj/structure/closet/bombcloset,
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bEw" = (
+/obj/machinery/portable_atmospherics/canister,
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bEx" = (
+/obj/machinery/portable_atmospherics/canister,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/machinery/camera{
+ c_tag = "Toxins Lab West";
+ network = list("ss13","rd")
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bEy" = (
+/obj/machinery/portable_atmospherics/pump,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bEz" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bEA" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bEB" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bEC" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/science/mixing)
+"bED" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bEE" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bEF" = (
+/obj/structure/closet/crate,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bEG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bEH" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/science/mixing)
+"bEI" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bEJ" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"bEK" = (
+/obj/machinery/camera{
+ c_tag = "Mining Dock";
+ dir = 4
+ },
+/obj/machinery/computer/security/mining,
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bEL" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bEM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/science/mixing)
+"bEN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bEO" = (
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bEP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bEQ" = (
+/obj/effect/landmark/start/shaft_miner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bER" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bES" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/maintenance/port/aft)
+"bET" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bEU" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bEV" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bEW" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bEX" = (
+/obj/structure/table,
+/obj/item/aicard,
+/obj/item/ai_module/reset,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bEY" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bEZ" = (
+/obj/structure/table,
+/obj/item/stack/cable_coil{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/stack/cable_coil,
+/obj/item/stock_parts/cell/high/plus,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bFa" = (
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bFb" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bFc" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/landmark/blobstart,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bFd" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bFe" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Tech Storage";
+ req_access_txt = "23"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bFf" = (
+/obj/structure/chair/stool,
+/obj/effect/landmark/start/janitor,
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bFg" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bFh" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bFi" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bFj" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bFk" = (
+/obj/item/mop,
+/obj/item/reagent_containers/glass/bucket,
+/obj/structure/sign/poster/contraband/busty_backdoor_xeno_babes_6{
+ pixel_x = 32
+ },
+/obj/structure/closet,
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bFl" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/service/janitor";
+ dir = 8;
+ name = "Custodial Closet APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bFm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/storage)
+"bFn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bFo" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/blood/old,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/storage)
+"bFp" = (
+/obj/structure/closet/crate/freezer,
+/obj/item/reagent_containers/blood/random,
+/obj/item/reagent_containers/blood/APlus,
+/obj/item/reagent_containers/blood/random,
+/obj/item/reagent_containers/blood/random,
+/obj/item/reagent_containers/blood/OPlus{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/item/reagent_containers/blood/OMinus,
+/obj/item/reagent_containers/blood/BPlus{
+ pixel_x = 1;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/blood/BMinus{
+ pixel_x = -4;
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/blood/AMinus,
+/obj/item/reagent_containers/blood,
+/obj/item/reagent_containers/blood,
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 8;
+ sortType = 6
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/storage)
+"bFq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bFr" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bFs" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Custodial Maintenance";
+ req_access_txt = "26"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bFt" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/closet/crate/freezer/surplus_limbs,
+/obj/item/reagent_containers/glass/beaker/synthflesh,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/storage)
+"bFu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/surgery)
+"bFv" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bFw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = -28
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bFx" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/limbgrower,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/medical/storage)
+"bFy" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bFz" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/structure/bed,
+/obj/item/bedsheet/medical,
+/obj/machinery/iv_drip,
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bFA" = (
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/machinery/requests_console{
+ department = "Medbay";
+ departmentType = 1;
+ name = "Medbay RC";
+ pixel_x = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bFB" = (
+/obj/structure/closet/secure_closet/medical2,
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bFC" = (
+/obj/structure/table/wood/poker,
+/obj/item/clothing/mask/cigarette/cigar{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4;
+ pixel_y = 5
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"bFD" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bFE" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/machinery/computer/security/telescreen/cmo{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bFF" = (
+/obj/machinery/light,
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bFG" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bFH" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light_switch{
+ pixel_x = 28
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bFI" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/science/storage)
+"bFJ" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bFK" = (
+/obj/structure/closet/wardrobe/pjs,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bFL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bFM" = (
+/obj/structure/disposalpipe/junction/flip{
+ dir = 2
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bFN" = (
+/obj/structure/table,
+/obj/item/cartridge/medical{
+ pixel_x = -2;
+ pixel_y = 6
+ },
+/obj/item/cartridge/medical{
+ pixel_x = 6;
+ pixel_y = 3
+ },
+/obj/item/cartridge/medical,
+/obj/item/cartridge/chemistry{
+ pixel_y = 2
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bFO" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/command/heads_quarters/cmo)
+"bFP" = (
+/obj/machinery/computer/card/minor/cmo{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bFQ" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bFR" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bFS" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bFT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bFU" = (
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bFV" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible,
+/obj/machinery/meter,
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bFW" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bFX" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bFY" = (
+/obj/machinery/door/airlock/maintenance{
+ req_one_access_txt = "8;12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bFZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/science/mixing)
+"bGa" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/starboard)
+"bGb" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/science/mixing)
+"bGc" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/mixing)
+"bGd" = (
+/obj/machinery/doppler_array/research/science{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bGe" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/science/test_area)
+"bGf" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating/airless,
+/area/science/test_area)
+"bGi" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/cargo/miningdock)
+"bGj" = (
+/obj/machinery/computer/shuttle/mining{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bGk" = (
+/obj/structure/chair/stool,
+/obj/effect/landmark/start/scientist,
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bGl" = (
+/obj/item/assembly/prox_sensor{
+ pixel_x = -4;
+ pixel_y = 1
+ },
+/obj/item/assembly/prox_sensor{
+ pixel_x = 8;
+ pixel_y = 9
+ },
+/obj/item/assembly/prox_sensor{
+ pixel_x = 9;
+ pixel_y = -2
+ },
+/obj/item/assembly/prox_sensor{
+ pixel_y = 2
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bGm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bGn" = (
+/obj/structure/closet/secure_closet/miner,
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bGo" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "Firefighting equipment";
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bGp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bGq" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bGr" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bGs" = (
+/obj/machinery/camera{
+ c_tag = "Secure Tech Storage"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/storage/tech)
+"bGt" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/techstorage/AI,
+/turf/open/floor/plasteel/dark,
+/area/engineering/storage/tech)
+"bGu" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/storage/tech)
+"bGv" = (
+/obj/structure/table,
+/obj/machinery/cell_charger{
+ pixel_y = 5
+ },
+/obj/item/multitool,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bGw" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/techstorage/rnd,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bGx" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/techstorage/tcomms,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bGy" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/techstorage/service,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bGz" = (
+/obj/structure/table/reinforced,
+/obj/item/wrench,
+/obj/item/screwdriver{
+ pixel_y = 10
+ },
+/obj/item/analyzer,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bGA" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bGB" = (
+/obj/structure/table,
+/obj/item/grenade/chem_grenade/cleaner,
+/obj/item/grenade/chem_grenade/cleaner,
+/obj/item/grenade/chem_grenade/cleaner,
+/obj/machinery/requests_console{
+ department = "Janitorial";
+ departmentType = 1;
+ pixel_y = -29
+ },
+/obj/item/reagent_containers/spray/cleaner,
+/obj/item/storage/box/lights/mixed,
+/obj/item/storage/box/lights/mixed,
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bGC" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/airlock/research{
+ name = "Toxins Launch Room Access";
+ req_access_txt = "7"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bGD" = (
+/obj/structure/janitorialcart,
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bGE" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/machinery/light,
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"bGF" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bGG" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bGI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance{
+ name = "Surgery Maintenance";
+ req_access_txt = "45"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bGJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bGK" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bGL" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bGM" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bGN" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bGO" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bGP" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bGQ" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/storage)
+"bGR" = (
+/obj/structure/table,
+/obj/item/storage/belt/medical{
+ pixel_y = 2
+ },
+/obj/item/storage/belt/medical{
+ pixel_y = 2
+ },
+/obj/item/storage/belt/medical{
+ pixel_y = 2
+ },
+/obj/item/clothing/neck/stethoscope,
+/obj/item/gun/syringe/dart,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bGT" = (
+/obj/structure/table,
+/obj/item/folder/white,
+/obj/item/clothing/neck/stethoscope,
+/obj/machinery/vending/wallmed{
+ pixel_y = 28
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bGU" = (
+/obj/structure/closet/secure_closet/personal/patient,
+/obj/machinery/button/door{
+ id = "medpriv4";
+ name = "Privacy Shutters";
+ pixel_y = 25
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bGV" = (
+/obj/structure/chair/office/light{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bGW" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/storage)
+"bGX" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bGY" = (
+/obj/machinery/portable_atmospherics/scrubber/huge,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/engine,
+/area/science/storage)
+"bGZ" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/holopad/secure,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bHa" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/command/heads_quarters/cmo)
+"bHb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bHc" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bHd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bHe" = (
+/obj/machinery/power/apc{
+ areastring = "/area/science/storage";
+ dir = 8;
+ name = "Toxins Storage APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/camera{
+ c_tag = "Toxins Storage";
+ dir = 4;
+ network = list("ss13","rd")
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/science/storage)
+"bHf" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bHh" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bHi" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bHj" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bHk" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bHl" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bHm" = (
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/airlock/research{
+ name = "Toxins Lab";
+ req_access_txt = "7"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bHn" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/aft)
+"bHo" = (
+/obj/structure/closet,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bHp" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bHq" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bHr" = (
+/obj/effect/turf_decal/caution/stand_clear/red,
+/turf/open/floor/mineral/plastitanium/red,
+/area/hallway/secondary/exit)
+"bHs" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bHt" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bHu" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bHv" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bHw" = (
+/obj/item/target,
+/obj/structure/window/reinforced,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/test_area)
+"bHy" = (
+/obj/structure/closet/crate,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ dir = 4;
+ name = "Station Intercom (General)";
+ pixel_x = 27
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bHz" = (
+/obj/item/stack/ore/iron,
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bHA" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bHC" = (
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bHD" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/structure/chair/stool,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bHE" = (
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bHG" = (
+/obj/structure/rack,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/effect/spawner/lootdrop/techstorage/command,
+/turf/open/floor/plasteel/dark,
+/area/engineering/storage/tech)
+"bHH" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bHI" = (
+/obj/machinery/door/airlock/highsecurity{
+ name = "Secure Tech Storage";
+ req_access_txt = "19;23"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bHJ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/landmark/xeno_spawn,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bHK" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bHL" = (
+/obj/machinery/camera{
+ c_tag = "Research Division South";
+ dir = 8
+ },
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bHM" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bHN" = (
+/obj/machinery/requests_console{
+ department = "Tech storage";
+ pixel_y = -32
+ },
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bHO" = (
+/obj/structure/rack,
+/obj/item/storage/toolbox/electrical{
+ pixel_x = 1;
+ pixel_y = -1
+ },
+/obj/item/multitool,
+/obj/item/clothing/glasses/meson,
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bHP" = (
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bHQ" = (
+/obj/machinery/vending/assist,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bHR" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/camera{
+ c_tag = "Aft Primary Hallway 2";
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bHS" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bHT" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/medical/medbay/central)
+"bHU" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/landmark/event_spawn,
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bHV" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/aft";
+ dir = 8;
+ name = "Aft Maintenance APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bHX" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bHY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bIa" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bIb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bIc" = (
+/obj/structure/bed,
+/obj/item/bedsheet/medical,
+/obj/machinery/iv_drip,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -23
+ },
+/obj/machinery/camera{
+ c_tag = "Surgery Operating";
+ dir = 1;
+ network = list("ss13","medbay");
+ pixel_x = 22
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bId" = (
+/obj/structure/bed,
+/obj/item/bedsheet/medical,
+/obj/machinery/iv_drip,
+/obj/machinery/light,
+/obj/machinery/vending/wallmed{
+ pixel_y = -28
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"bIe" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/status_display/evac{
+ pixel_x = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bIf" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/doorButtons/access_button{
+ idDoor = "virology_airlock_exterior";
+ idSelf = "virology_airlock_control";
+ name = "Virology Access Button";
+ pixel_x = -24;
+ req_access_txt = "39"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/locked,
+/obj/machinery/door/airlock/virology{
+ autoclose = 0;
+ frequency = 1449;
+ id_tag = "virology_airlock_exterior";
+ name = "Virology Exterior Airlock";
+ req_access_txt = "39"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bIg" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 2;
+ sortType = 13
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bIh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bIi" = (
+/obj/structure/table,
+/obj/item/storage/firstaid/o2{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/o2,
+/obj/item/storage/firstaid/regular{
+ pixel_x = -3;
+ pixel_y = -3
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bIj" = (
+/obj/structure/table,
+/obj/machinery/light,
+/obj/item/reagent_containers/spray/cleaner,
+/obj/item/clothing/glasses/hud/health,
+/obj/item/clothing/glasses/hud/health,
+/obj/item/clothing/glasses/hud/health,
+/obj/item/hand_labeler,
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bIk" = (
+/obj/structure/table,
+/obj/item/storage/firstaid/fire{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/fire,
+/obj/item/storage/firstaid/regular{
+ pixel_x = -3;
+ pixel_y = -3
+ },
+/obj/machinery/door/window/northright{
+ name = "First-Aid Supplies";
+ red_alert_access = 1;
+ req_access_txt = "5"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bIl" = (
+/obj/structure/table,
+/obj/item/storage/firstaid/toxin{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/toxin,
+/obj/item/storage/firstaid/regular{
+ pixel_x = -3;
+ pixel_y = -3
+ },
+/obj/machinery/door/window/northleft{
+ name = "First-Aid Supplies";
+ red_alert_access = 1;
+ req_access_txt = "5"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bIm" = (
+/obj/machinery/light,
+/obj/machinery/rnd/production/techfab/department/medical,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bIn" = (
+/obj/structure/table,
+/obj/item/storage/firstaid/brute{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/firstaid/brute,
+/obj/item/storage/firstaid/regular{
+ pixel_x = -3;
+ pixel_y = -3
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bIo" = (
+/obj/structure/bed,
+/obj/item/bedsheet/medical,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bIp" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bIq" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bIr" = (
+/obj/machinery/door/airlock/medical{
+ name = "Patient Room";
+ req_access_txt = "5"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bIs" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance{
+ name = "Xenobiology Maintenance";
+ req_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bIt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bIu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bIv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bIw" = (
+/obj/structure/closet/secure_closet/CMO,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/cmo)
+"bIx" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall/syndicate,
+/area/science/xenobiology)
+"bIy" = (
+/obj/structure/disposaloutlet{
+ dir = 1
+ },
+/obj/structure/disposalpipe/trunk,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bIz" = (
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/engine,
+/area/science/storage)
+"bIA" = (
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/engine,
+/area/science/storage)
+"bIB" = (
+/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/engine,
+/area/science/storage)
+"bIC" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/science/storage)
+"bID" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bIE" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bIF" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bIG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bIH" = (
+/obj/machinery/pipedispenser/disposal,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bII" = (
+/obj/item/storage/secure/safe{
+ pixel_x = 5;
+ pixel_y = 29
+ },
+/obj/machinery/camera{
+ c_tag = "Virology Break Room";
+ network = list("ss13","medbay")
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bIJ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bIK" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bIL" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bIM" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bIN" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/science/xenobiology)
+"bIO" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bIP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/chair/comfy/black,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bIQ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bIR" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bIS" = (
+/obj/machinery/door/airlock/research{
+ name = "Toxins Launch Room";
+ req_access_txt = "7"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bIT" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/sign/departments/xenobio{
+ pixel_y = -32
+ },
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"bIU" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bIV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bIW" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bIX" = (
+/obj/structure/sign/warning/securearea{
+ desc = "A warning sign which reads 'BOMB RANGE";
+ name = "BOMB RANGE"
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/science/test_area)
+"bIY" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/test_area)
+"bIZ" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/test_area)
+"bJa" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/test_area)
+"bJb" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Mining Dock Airlock";
+ req_access_txt = "48";
+ shuttledocked = 1
+ },
+/turf/open/floor/plating,
+/area/cargo/miningdock)
+"bJc" = (
+/obj/docking_port/stationary{
+ dir = 8;
+ dwidth = 3;
+ height = 5;
+ id = "mining_home";
+ name = "mining shuttle bay";
+ roundstart_template = /datum/map_template/shuttle/mining/box;
+ width = 7
+ },
+/turf/open/space/basic,
+/area/space)
+"bJd" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/mining/glass{
+ name = "Mining Dock";
+ req_access_txt = "48"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bJe" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bJf" = (
+/obj/structure/closet/firecloset,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bJg" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/storage/tech)
+"bJh" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/techstorage/RnD_secure,
+/turf/open/floor/plasteel/dark,
+/area/engineering/storage/tech)
+"bJi" = (
+/obj/structure/sign/warning/securearea,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/storage/tech)
+"bJj" = (
+/obj/structure/table,
+/obj/item/stock_parts/subspace/analyzer,
+/obj/item/stock_parts/subspace/analyzer,
+/obj/item/stock_parts/subspace/analyzer,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bJk" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/techstorage/medical,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bJl" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/techstorage/engineering,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bJm" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/techstorage/security,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bJn" = (
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bJp" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bJq" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bJr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bJs" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bJt" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bJu" = (
+/obj/structure/light_construct{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/construction)
+"bJv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bJw" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bJx" = (
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"bJy" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bJz" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27;
+ pixel_y = 1
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bJA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/storage)
+"bJB" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bJD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/medbay/central)
+"bJE" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/medbay/central)
+"bJF" = (
+/obj/machinery/pipedispenser/disposal/transit_tube,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bJG" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bJH" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/shieldwallgen/xenobiologyaccess,
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"bJI" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "misclab";
+ name = "test chamber blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bJJ" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "misclab";
+ name = "test chamber blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bJK" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "misclab";
+ name = "test chamber blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bJM" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "misclab";
+ name = "test chamber blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bJN" = (
+/turf/closed/wall,
+/area/science/xenobiology)
+"bJO" = (
+/obj/machinery/door/airlock/research{
+ name = "Testing Lab";
+ req_access_txt = "47"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bJP" = (
+/obj/effect/spawner/lootdrop/keg,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bJQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bJR" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/science/storage)
+"bJT" = (
+/obj/machinery/vending/cigarette,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bJU" = (
+/obj/machinery/vending/wardrobe/science_wardrobe,
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bJV" = (
+/obj/structure/closet/l3closet/scientist{
+ pixel_x = -2
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bJW" = (
+/obj/item/transfer_valve{
+ pixel_x = -5
+ },
+/obj/item/transfer_valve{
+ pixel_x = -5
+ },
+/obj/item/transfer_valve,
+/obj/item/transfer_valve,
+/obj/item/transfer_valve{
+ pixel_x = 5
+ },
+/obj/item/transfer_valve{
+ pixel_x = 5
+ },
+/obj/machinery/requests_console{
+ department = "Science";
+ departmentType = 2;
+ name = "Science Requests Console";
+ pixel_y = -30;
+ receive_ore_updates = 1
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bJX" = (
+/obj/item/assembly/signaler{
+ pixel_y = 8
+ },
+/obj/item/assembly/signaler{
+ pixel_x = -8;
+ pixel_y = 5
+ },
+/obj/item/assembly/signaler{
+ pixel_x = 6;
+ pixel_y = 5
+ },
+/obj/item/assembly/signaler{
+ pixel_x = -2;
+ pixel_y = -2
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bJY" = (
+/obj/structure/tank_dispenser,
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bJZ" = (
+/obj/item/assembly/timer{
+ pixel_x = 5;
+ pixel_y = 4
+ },
+/obj/item/assembly/timer{
+ pixel_x = -4;
+ pixel_y = 2
+ },
+/obj/item/assembly/timer{
+ pixel_x = 6;
+ pixel_y = -4
+ },
+/obj/item/assembly/timer,
+/obj/structure/table/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bKa" = (
+/obj/machinery/power/apc{
+ areastring = "/area/science/mixing";
+ dir = 4;
+ name = "Toxins Lab APC";
+ pixel_x = 24
+ },
+/obj/structure/cable,
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bKb" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bKc" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bKd" = (
+/obj/machinery/camera{
+ c_tag = "Toxins Launch Room Access";
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bKe" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/science/mixing)
+"bKf" = (
+/obj/machinery/door/window/southleft{
+ name = "Mass Driver Door";
+ req_access_txt = "7"
+ },
+/obj/effect/turf_decal/loading_area,
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bKg" = (
+/turf/open/floor/plasteel/dark,
+/area/science/test_area)
+"bKh" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/test_area)
+"bKi" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/test_area)
+"bKj" = (
+/obj/machinery/camera{
+ c_tag = "Mining Dock External";
+ dir = 8
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bKk" = (
+/obj/item/stack/ore/silver{
+ amount = 2
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bKl" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/tile/brown{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/brown,
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bKm" = (
+/obj/structure/sign/warning/vacuum/external,
+/turf/closed/wall,
+/area/cargo/miningdock)
+"bKn" = (
+/obj/structure/rack,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/item/pickaxe{
+ pixel_x = 5
+ },
+/obj/item/shovel{
+ pixel_x = -5
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bKo" = (
+/obj/machinery/light,
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bKp" = (
+/obj/structure/closet/crate,
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bKq" = (
+/obj/machinery/mineral/equipment_vendor,
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"bKr" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bKs" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bKt" = (
+/obj/structure/table,
+/obj/item/stock_parts/micro_laser,
+/obj/item/stock_parts/manipulator,
+/obj/item/stock_parts/manipulator,
+/obj/item/stock_parts/manipulator,
+/obj/item/stock_parts/manipulator,
+/obj/item/stock_parts/capacitor,
+/obj/item/stock_parts/micro_laser/high,
+/obj/item/stock_parts/micro_laser/high,
+/obj/item/stock_parts/micro_laser/high,
+/obj/item/stock_parts/micro_laser/high,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bKu" = (
+/obj/structure/table,
+/obj/item/stock_parts/subspace/amplifier,
+/obj/item/stock_parts/subspace/amplifier,
+/obj/item/stock_parts/subspace/amplifier,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bKv" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bKx" = (
+/obj/structure/closet/crate,
+/obj/effect/landmark/blobstart,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/construction)
+"bKy" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/aft)
+"bKz" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKA" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/construction)
+"bKB" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKC" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKF" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/chair/office/dark{
+ dir = 4
+ },
+/obj/effect/landmark/start/cargo_technician,
+/turf/open/floor/plasteel/dark,
+/area/cargo/sorting)
+"bKG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKH" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKI" = (
+/obj/structure/disposalpipe/sorting/mail{
+ dir = 8;
+ sortType = 11
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKJ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKK" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKL" = (
+/obj/machinery/power/apc{
+ areastring = "/area/medical/medbay/central";
+ dir = 1;
+ name = "Medbay Central APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bKM" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bKN" = (
+/obj/machinery/door/airlock/medical{
+ name = "Apothecary";
+ req_access_txt = "5"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bKO" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bKP" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/window/westleft{
+ name = "Delivery Desk";
+ req_access_txt = "50"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel,
+/area/cargo/sorting)
+"bKQ" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/medical/medbay/central)
+"bKS" = (
+/obj/machinery/power/apc{
+ areastring = "/area/command/heads_quarters/cmo";
+ dir = 1;
+ name = "CMO Office APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bKU" = (
+/obj/machinery/door/airlock/engineering/abandoned{
+ name = "Construction Area";
+ req_access_txt = "32"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/construction)
+"bKV" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bKW" = (
+/obj/item/wrench,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bKX" = (
+/obj/machinery/button/door{
+ id = "misclab";
+ name = "Test Chamber Blast Doors";
+ pixel_y = -2;
+ req_access_txt = "55"
+ },
+/obj/structure/table/reinforced,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bKY" = (
+/obj/machinery/computer/security/telescreen{
+ name = "Test Chamber Monitor";
+ network = list("xeno");
+ pixel_y = 2
+ },
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bKZ" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bLb" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bLc" = (
+/obj/item/clothing/mask/gas,
+/obj/item/clothing/mask/gas,
+/obj/item/clothing/mask/gas,
+/obj/item/clothing/glasses/science,
+/obj/item/clothing/glasses/science,
+/obj/structure/table,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bLd" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/obj/machinery/doorButtons/access_button{
+ idDoor = "virology_airlock_interior";
+ idSelf = "virology_airlock_control";
+ name = "Virology Access Button";
+ pixel_x = 8;
+ pixel_y = -28;
+ req_access_txt = "39"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bLe" = (
+/obj/structure/sign/warning/biohazard,
+/turf/closed/wall/r_wall/syndicate,
+/area/science/xenobiology)
+"bLf" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bLg" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bLh" = (
+/obj/structure/sign/warning/fire,
+/turf/closed/wall/r_wall/syndicate,
+/area/science)
+"bLi" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bLj" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = -32
+ },
+/turf/open/floor/plating,
+/area/science/mixing)
+"bLk" = (
+/obj/machinery/mass_driver{
+ dir = 4;
+ id = "toxinsdriver"
+ },
+/turf/open/floor/plating,
+/area/science/mixing)
+"bLl" = (
+/obj/machinery/door/poddoor{
+ id = "toxinsdriver";
+ name = "toxins launcher bay door"
+ },
+/obj/structure/fans/tiny,
+/turf/open/floor/plating,
+/area/science/mixing)
+"bLm" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/science/mixing)
+"bLn" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/test_area)
+"bLo" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/test_area)
+"bLp" = (
+/obj/item/beacon,
+/turf/open/floor/plasteel/dark,
+/area/science/test_area)
+"bLq" = (
+/turf/closed/indestructible{
+ desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease";
+ icon_state = "riveted";
+ name = "hyper-reinforced wall"
+ },
+/area/science/test_area)
+"bLr" = (
+/obj/item/target/alien/anchored,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/camera/preset/toxins{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/test_area)
+"bLu" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bLv" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bLw" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bLx" = (
+/obj/structure/table,
+/obj/item/stock_parts/subspace/transmitter,
+/obj/item/stock_parts/subspace/transmitter,
+/obj/item/stock_parts/subspace/treatment,
+/obj/item/stock_parts/subspace/treatment,
+/obj/item/stock_parts/subspace/treatment,
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bLy" = (
+/obj/structure/table,
+/obj/item/stock_parts/subspace/ansible,
+/obj/item/stock_parts/subspace/ansible,
+/obj/item/stock_parts/subspace/ansible,
+/obj/item/stock_parts/subspace/crystal,
+/obj/item/stock_parts/subspace/crystal,
+/obj/item/stock_parts/subspace/crystal,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bLz" = (
+/obj/structure/table,
+/obj/item/stock_parts/subspace/filter,
+/obj/item/stock_parts/subspace/filter,
+/obj/item/stock_parts/subspace/filter,
+/obj/item/stock_parts/subspace/filter,
+/obj/item/stock_parts/subspace/filter,
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bLA" = (
+/obj/structure/rack,
+/obj/item/storage/toolbox/electrical{
+ pixel_x = 1;
+ pixel_y = -1
+ },
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/t_scanner,
+/obj/item/multitool,
+/obj/machinery/camera{
+ c_tag = "Tech Storage";
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"bLB" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bLC" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/construction)
+"bLD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/storage/tech)
+"bLE" = (
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/detectives_office)
+"bLF" = (
+/obj/structure/filingcabinet/filingcabinet,
+/obj/machinery/power/apc{
+ areastring = "/area/cargo/sorting";
+ name = "Delivery Office APC";
+ pixel_x = 1;
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/sorting)
+"bLG" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/detectives_office)
+"bLH" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bLI" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bLJ" = (
+/obj/machinery/computer/atmos_control,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bLK" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/atmos)
+"bLL" = (
+/obj/machinery/computer/station_alert,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bLM" = (
+/obj/machinery/computer/atmos_alert,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bLN" = (
+/obj/machinery/button/door{
+ id = "atmos";
+ name = "Atmospherics Lockdown";
+ pixel_x = 24;
+ pixel_y = 4;
+ req_access_txt = "24"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bLO" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/airlock/maintenance{
+ name = "Atmospherics Maintenance";
+ req_access_txt = "24"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bLQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/atmos)
+"bLR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/visible,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/atmos)
+"bLS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bLT" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bLU" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/chem_dispenser/apothecary,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bLV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/chem_heater,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bLW" = (
+/obj/structure/chair/office/light{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bLX" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"bLY" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bLZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bMa" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bMb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bMc" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Medbay Maintenance";
+ req_access_txt = "5"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bMd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bMe" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/junction,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bMf" = (
+/obj/structure/table,
+/obj/machinery/cell_charger{
+ pixel_y = 5
+ },
+/obj/item/stack/cable_coil,
+/obj/item/multitool,
+/obj/item/stock_parts/cell/high/plus,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bMg" = (
+/obj/machinery/power/apc{
+ areastring = "/area/science/xenobiology";
+ dir = 8;
+ name = "Xenobiology APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bMh" = (
+/obj/structure/chair/stool,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bMi" = (
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bMj" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/aft)
+"bMk" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bMl" = (
+/obj/machinery/processor/slime,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bMm" = (
+/obj/machinery/monkey_recycler,
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bMn" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/structure/table/glass,
+/obj/machinery/reagentgrinder{
+ desc = "Used to grind things up into raw materials and liquids.";
+ pixel_y = 5
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bMo" = (
+/obj/machinery/smartfridge/extract/preloaded,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bMp" = (
+/obj/structure/closet/l3closet/scientist,
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/item/extinguisher,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bMq" = (
+/obj/structure/closet/l3closet/scientist,
+/obj/item/extinguisher,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bMr" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"bMs" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science)
+"bMt" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/turf/open/floor/engine/vacuum,
+/area/science/mixing)
+"bMu" = (
+/obj/machinery/door/poddoor/incinerator_toxmix,
+/turf/open/floor/engine/vacuum,
+/area/science/mixing)
+"bMv" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/science/mixing)
+"bMw" = (
+/obj/machinery/sparker/toxmix{
+ pixel_x = 25
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output{
+ dir = 4
+ },
+/turf/open/floor/engine/vacuum,
+/area/science/mixing)
+"bMx" = (
+/obj/machinery/airlock_sensor/incinerator_toxmix{
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/engine,
+/area/science/mixing)
+"bMy" = (
+/obj/machinery/atmospherics/components/binary/valve{
+ dir = 4;
+ name = "mix to port"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bMz" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/obj/machinery/meter,
+/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{
+ pixel_x = -24
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bMA" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bMB" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"bMC" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"bMD" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/test_area)
+"bME" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/test_area)
+"bMG" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bMH" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bMI" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bMJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bMK" = (
+/turf/closed/wall,
+/area/engineering/atmos)
+"bML" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bMN" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/heater,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bMO" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bMP" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bMQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"bMR" = (
+/obj/machinery/pipedispenser,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bMS" = (
+/obj/machinery/camera{
+ c_tag = "Atmospherics North East"
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Distro to Waste"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bMT" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/meter/atmos/atmos_waste_loop,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bMU" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bMV" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/visible,
+/obj/machinery/meter/atmos/distro_loop,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bMW" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bMX" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Air to Distro"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bMZ" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/heater/on,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bNc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/virology)
+"bNd" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/virology)
+"bNe" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/item/hand_labeler,
+/obj/item/clothing/glasses/science,
+/obj/item/clothing/glasses/science,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bNf" = (
+/obj/structure/sign/warning/biohazard,
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/virology)
+"bNg" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bNh" = (
+/obj/machinery/computer/pandemic,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bNi" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bNj" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/virology/glass{
+ name = "Isolation A";
+ req_access_txt = "39"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bNk" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/medical/virology)
+"bNl" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/virology/glass{
+ name = "Isolation B";
+ req_access_txt = "39"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bNm" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bNn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bNo" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bNp" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bNq" = (
+/obj/structure/table,
+/obj/item/stack/sheet/glass/fifty{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/mineral/plasma,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bNr" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/research{
+ name = "Xenobiology Lab";
+ req_access_txt = "55"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bNs" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bNt" = (
+/turf/open/floor/engine/vacuum,
+/area/science/mixing)
+"bNu" = (
+/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior,
+/turf/open/floor/engine,
+/area/science/mixing)
+"bNv" = (
+/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior,
+/turf/open/floor/engine,
+/area/science/mixing)
+"bNw" = (
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix,
+/turf/open/floor/engine,
+/area/science/mixing)
+"bNx" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bNy" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bNz" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/machinery/camera{
+ c_tag = "Toxins Lab East";
+ dir = 8;
+ network = list("ss13","rd");
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bNA" = (
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"bNB" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"bND" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/test_area)
+"bNE" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/test_area)
+"bNF" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/test_area)
+"bNG" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/test_area)
+"bNH" = (
+/obj/structure/table/reinforced,
+/obj/item/radio/intercom{
+ pixel_y = -26
+ },
+/obj/item/paper_bin{
+ pixel_x = -3
+ },
+/obj/item/pen{
+ pixel_x = -3
+ },
+/obj/item/folder/yellow{
+ pixel_x = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/sorting)
+"bNI" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/construction)
+"bNJ" = (
+/turf/open/floor/plating,
+/area/construction)
+"bNK" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/mining/glass{
+ name = "Cargo Office";
+ req_access_txt = "50"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bNN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bNO" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/loading_area{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bNP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bNQ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bNR" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "Atmospherics Monitoring"
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bNS" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bNT" = (
+/obj/machinery/camera{
+ c_tag = "Atmospherics North West";
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bNU" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/medical/virology)
+"bNV" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bNW" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bNX" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bNY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"bNZ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bOb" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bOc" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "Mix to Distro"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bOd" = (
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bOe" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 8
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bOf" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 10
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"bOh" = (
+/obj/structure/grille,
+/turf/closed/wall/r_wall,
+/area/engineering/atmos)
+"bOi" = (
+/obj/structure/table/reinforced,
+/obj/item/grenade/barrier,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"bOj" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/virology)
+"bOk" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bOl" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/announcement_system,
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bOm" = (
+/obj/structure/bed,
+/obj/item/bedsheet/medical,
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bOn" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bOo" = (
+/obj/item/radio/intercom{
+ dir = 8;
+ freerange = 1;
+ name = "Station Intercom (Telecomms)";
+ pixel_y = 26
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bOp" = (
+/obj/structure/closet/emcloset,
+/obj/machinery/camera{
+ c_tag = "Virology Airlock";
+ network = list("ss13","medbay")
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bOq" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bOr" = (
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bOs" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bOt" = (
+/mob/living/carbon/monkey,
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bOu" = (
+/obj/structure/rack,
+/obj/item/clothing/mask/gas{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/clothing/mask/gas,
+/obj/item/clothing/mask/gas{
+ pixel_x = -3;
+ pixel_y = -3
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bOv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bOw" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bOx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bOy" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bOz" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bOA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/kirbyplants,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"bOB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bOC" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bOD" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bOE" = (
+/obj/machinery/sparker/toxmix{
+ pixel_x = 25
+ },
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{
+ dir = 4
+ },
+/turf/open/floor/engine/vacuum,
+/area/science/mixing)
+"bOF" = (
+/obj/structure/sign/warning/fire{
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/engine,
+/area/science/mixing)
+"bOG" = (
+/obj/machinery/light,
+/obj/machinery/atmospherics/components/binary/valve{
+ dir = 4;
+ name = "port to mix"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bOH" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/obj/machinery/meter,
+/obj/machinery/button/door/incinerator_vent_toxmix{
+ pixel_x = -25;
+ pixel_y = 5
+ },
+/obj/machinery/button/ignition/incinerator/toxmix{
+ pixel_x = -25;
+ pixel_y = -5
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bOI" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"bOJ" = (
+/obj/item/target,
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/test_area)
+"bOK" = (
+/obj/structure/barricade/wooden,
+/obj/structure/girder,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bOL" = (
+/obj/structure/closet/crate,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"bOM" = (
+/obj/structure/table,
+/obj/item/paper_bin,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/item/pen/fountain,
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bON" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "kanyewest";
+ name = "privacy shutters"
+ },
+/turf/open/floor/plating,
+/area/security/detectives_office)
+"bOO" = (
+/obj/machinery/power/apc{
+ areastring = "/area/security/checkpoint/engineering";
+ dir = 8;
+ name = "Engineering Security APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/newscaster{
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/engineering)
+"bOP" = (
+/obj/structure/table/glass,
+/obj/structure/reagent_dispensers/virusfood{
+ pixel_x = -30
+ },
+/obj/item/book/manual/wiki/infections{
+ pixel_y = 7
+ },
+/obj/item/reagent_containers/syringe/antiviral,
+/obj/item/reagent_containers/dropper,
+/obj/item/reagent_containers/spray/cleaner,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bOR" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bOS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bOT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=4";
+ dir = 4;
+ freq = 1400;
+ location = "Atmospherics"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/door/window/northleft{
+ dir = 4;
+ name = "Atmospherics Desk";
+ req_access_txt = "24"
+ },
+/turf/open/floor/plasteel,
+/area/engineering/atmos)
+"bOU" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bOV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bOW" = (
+/obj/machinery/requests_console{
+ department = "Atmospherics";
+ departmentType = 4;
+ name = "Atmos RC";
+ pixel_x = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/computer/atmos_control{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bOX" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bOY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/atmos)
+"bOZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bPa" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"bPb" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/research/glass{
+ name = "Circuitry Lab";
+ req_access_txt = "47"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"bPc" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Mix to Waste"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bPd" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bPe" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Pure to Ports"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bPf" = (
+/obj/machinery/atmospherics/pipe/simple/purple/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bPg" = (
+/obj/machinery/atmospherics/pipe/simple/purple/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bPh" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/layer_manifold{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"bPi" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/purple/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bPj" = (
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 4
+ },
+/obj/structure/grille,
+/obj/machinery/meter,
+/turf/closed/wall/r_wall,
+/area/engineering/atmos)
+"bPk" = (
+/obj/machinery/camera{
+ c_tag = "Atmospherics Waste Tank"
+ },
+/turf/open/floor/engine/vacuum,
+/area/engineering/atmos)
+"bPl" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/mix_output{
+ dir = 8
+ },
+/turf/open/floor/engine/vacuum,
+/area/engineering/atmos)
+"bPm" = (
+/turf/open/floor/engine/vacuum,
+/area/engineering/atmos)
+"bPn" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bPo" = (
+/obj/structure/table,
+/obj/machinery/microwave{
+ pixel_x = -3;
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bPp" = (
+/obj/machinery/iv_drip,
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bPq" = (
+/obj/machinery/shower{
+ dir = 4
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bPr" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/closet/l3closet,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bPs" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bPt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/mob/living/carbon/monkey,
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bPu" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bPw" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/virology)
+"bPx" = (
+/obj/machinery/disposal/bin,
+/obj/structure/sign/warning/deathsposal{
+ pixel_y = -32
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bPz" = (
+/obj/structure/table/glass,
+/obj/item/storage/box/beakers{
+ pixel_x = 2;
+ pixel_y = 7
+ },
+/obj/item/storage/box/syringes{
+ pixel_y = 5
+ },
+/obj/item/storage/box/monkeycubes{
+ pixel_x = 2;
+ pixel_y = -2
+ },
+/obj/item/storage/box/monkeycubes,
+/obj/machinery/light,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bPA" = (
+/obj/machinery/computer/camera_advanced/xenobio{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bPE" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/machinery/portable_atmospherics/canister/bz,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bPF" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"bPG" = (
+/obj/machinery/chem_master,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/machinery/light,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bPH" = (
+/obj/machinery/requests_console{
+ department = "Science";
+ departmentType = 2;
+ name = "Science Requests Console";
+ pixel_y = -30;
+ receive_ore_updates = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/table/reinforced,
+/obj/item/slime_scanner,
+/obj/item/clothing/gloves/color/latex,
+/obj/item/clothing/glasses/science,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bPI" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bPJ" = (
+/obj/structure/table/glass,
+/obj/item/stack/sheet/mineral/plasma{
+ pixel_y = 4
+ },
+/obj/item/stack/sheet/mineral/plasma{
+ pixel_y = 4
+ },
+/obj/item/stack/sheet/mineral/plasma{
+ pixel_y = 4
+ },
+/obj/item/stack/sheet/mineral/plasma{
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/glass/beaker{
+ pixel_x = 8;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/glass/beaker/large{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/dropper,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bPK" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/science/misc_lab)
+"bPL" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"bPO" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"bPP" = (
+/obj/structure/table/reinforced,
+/obj/structure/table/reinforced,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"bPQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bPU" = (
+/obj/item/shard,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bPV" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Maint Bar Access";
+ req_access_txt = "12"
+ },
+/obj/structure/barricade/wooden{
+ name = "wooden barricade (CLOSED)"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bPW" = (
+/obj/effect/decal/cleanable/oil,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bPX" = (
+/obj/structure/closet/emcloset,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bPY" = (
+/obj/structure/girder,
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bPZ" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bQa" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bQb" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bQc" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plating,
+/area/construction)
+"bQd" = (
+/obj/structure/table,
+/obj/item/folder/blue,
+/obj/item/pen/blue,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bQe" = (
+/obj/item/screwdriver{
+ pixel_y = 10
+ },
+/obj/machinery/button/door{
+ desc = "A remote control-switch for the engineering security doors.";
+ id = "Engineering";
+ name = "Engineering Lockdown";
+ pixel_x = -24;
+ pixel_y = -6;
+ req_access_txt = "10"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/item/radio/off,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/light_switch{
+ pixel_x = -27;
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/engineering)
+"bQg" = (
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bQh" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/landmark/start/atmospheric_technician,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bQi" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "atmos";
+ name = "Atmospherics Blast Door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"bQj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bQk" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bQl" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/machinery/computer/atmos_alert{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bQm" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bQn" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "atmos";
+ name = "Atmospherics Blast Door"
+ },
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"bQp" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bQq" = (
+/obj/machinery/camera{
+ c_tag = "Security Post - Engineering";
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ dir = 4;
+ name = "Station Intercom (General)";
+ pixel_x = 27
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/vending/wardrobe/sec_wardrobe,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/engineering)
+"bQs" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Air to Waste"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bQt" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bQv" = (
+/obj/machinery/atmospherics/pipe/simple/purple/visible,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bQx" = (
+/obj/machinery/atmospherics/pipe/manifold/green/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bQy" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"bQz" = (
+/obj/machinery/computer/atmos_control/tank/mix_tank{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bQA" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/turf/open/floor/plating/airless,
+/area/engineering/atmos)
+"bQB" = (
+/obj/machinery/air_sensor/atmos/mix_tank,
+/turf/open/floor/engine/vacuum,
+/area/engineering/atmos)
+"bQC" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/engine/vacuum,
+/area/engineering/atmos)
+"bQD" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bQE" = (
+/obj/structure/table,
+/obj/item/storage/box/donkpockets{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/machinery/newscaster{
+ pixel_x = -30
+ },
+/obj/item/stack/sheet/mineral/plasma,
+/obj/item/stack/sheet/mineral/plasma,
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bQF" = (
+/obj/machinery/vending/wardrobe/viro_wardrobe,
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bQG" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/science/circuit)
+"bQH" = (
+/obj/structure/closet/l3closet,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bQI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"bQJ" = (
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bQK" = (
+/obj/machinery/door/airlock/command/glass{
+ name = "Control Room";
+ req_access_txt = "19; 61"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bQM" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bQN" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Xenobiology North";
+ dir = 8;
+ network = list("ss13","rd")
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bQO" = (
+/obj/structure/closet/bombcloset,
+/obj/machinery/light_switch{
+ pixel_x = -20
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bQP" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"bQQ" = (
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bQR" = (
+/obj/structure/table,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/item/storage/toolbox/mechanical,
+/obj/item/clothing/ears/earmuffs,
+/obj/machinery/camera{
+ c_tag = "Testing Lab North";
+ network = list("ss13","rd")
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bQS" = (
+/obj/machinery/requests_console{
+ department = "Science";
+ departmentType = 2;
+ name = "Science Requests Console";
+ pixel_y = 30;
+ receive_ore_updates = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bQT" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bQU" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bQV" = (
+/obj/machinery/atmospherics/components/trinary/filter{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bQW" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/heater{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bQY" = (
+/obj/structure/table/reinforced,
+/obj/item/integrated_circuit_printer,
+/obj/machinery/computer/security/telescreen/circuitry{
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"bQZ" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/science/misc_lab)
+"bRa" = (
+/obj/structure/table/reinforced,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/item/stack/sheet/metal/ten,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"bRg" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bRh" = (
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bRi" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bRj" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bRk" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/engineering)
+"bRl" = (
+/obj/structure/light_construct{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/construction)
+"bRm" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Office";
+ req_access_txt = "63"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/engineering)
+"bRn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/construction)
+"bRo" = (
+/obj/machinery/computer/secure_data{
+ dir = 8
+ },
+/obj/machinery/computer/security/telescreen/engine{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/engineering)
+"bRp" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bRq" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bRr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/obj/structure/tank_dispenser,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bRs" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/window/northleft{
+ dir = 4;
+ name = "Atmospherics Desk";
+ req_access_txt = "24"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "atmos";
+ name = "Atmospherics Blast Door"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/engineering/atmos)
+"bRt" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bRu" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/machinery/computer/atmos_alert{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bRv" = (
+/obj/structure/chair/office/dark{
+ dir = 4
+ },
+/obj/effect/landmark/start/atmospheric_technician,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bRw" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bRx" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bRy" = (
+/obj/machinery/portable_atmospherics/pump,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bRA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bRB" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Waste to Filter"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bRC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/atmos/glass{
+ name = "Distribution Loop";
+ req_access_txt = "24"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bRD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bRE" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "Pure to Mix"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bRF" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "Mix to Ports"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bRH" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bRI" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"bRJ" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 4;
+ name = "Unfiltered & Air to Mix"
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bRK" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 6
+ },
+/obj/structure/lattice,
+/turf/open/space,
+/area/space/nearstation)
+"bRL" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/mix_input{
+ dir = 8
+ },
+/turf/open/floor/engine/vacuum,
+/area/engineering/atmos)
+"bRM" = (
+/obj/structure/table,
+/obj/machinery/light_switch{
+ pixel_x = -23
+ },
+/obj/machinery/reagentgrinder,
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bRO" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bRP" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/locked,
+/obj/machinery/door/airlock/virology{
+ autoclose = 0;
+ frequency = 1449;
+ id_tag = "virology_airlock_interior";
+ name = "Virology Interior Airlock";
+ req_access_txt = "39"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bRQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/medical/virology)
+"bRR" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/virology/glass{
+ name = "Monkey Pen";
+ req_access_txt = "39"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bRS" = (
+/obj/structure/chair/office/dark,
+/obj/effect/landmark/start/depsec/engineering,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/engineering)
+"bRT" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/structure/disposaloutlet,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bRU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bRV" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/structure/window/reinforced,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bRW" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio3";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bRY" = (
+/obj/structure/window/reinforced,
+/obj/structure/table/reinforced,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/button/door{
+ id = "xenobio8";
+ name = "Containment Blast Doors";
+ pixel_y = 4;
+ req_access_txt = "55"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bRZ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bSa" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio8";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bSb" = (
+/obj/structure/closet/l3closet/scientist{
+ pixel_x = -2
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bSc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bSd" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bSe" = (
+/obj/structure/table,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/item/electropack,
+/obj/item/healthanalyzer,
+/obj/item/assembly/signaler,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bSf" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bSg" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bSh" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible,
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bSi" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bSj" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bSk" = (
+/obj/effect/landmark/start/scientist,
+/obj/structure/chair/office/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"bSm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/starboard/aft)
+"bSn" = (
+/obj/effect/spawner/lootdrop/crate_spawner,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bSo" = (
+/obj/effect/spawner/lootdrop/grille_or_trash,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bSp" = (
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bSq" = (
+/obj/structure/rack,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bSs" = (
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bSt" = (
+/obj/structure/closet/emcloset,
+/obj/machinery/camera{
+ c_tag = "Telecomms Monitoring";
+ dir = 8;
+ network = list("tcomms")
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bSv" = (
+/obj/machinery/camera{
+ c_tag = "Construction Area";
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/construction)
+"bSw" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bSx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/construction)
+"bSy" = (
+/obj/machinery/light/small,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/detectives_office)
+"bSz" = (
+/obj/structure/table,
+/turf/open/floor/plating,
+/area/construction)
+"bSA" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bSC" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "atmos";
+ name = "Atmospherics Blast Door"
+ },
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"bSD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/airlock/atmos/glass{
+ name = "Atmospherics Monitoring";
+ req_access_txt = "24"
+ },
+/obj/machinery/door/firedoor/heavy,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bSF" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/portable_atmospherics/canister/nitrogen,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bSI" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bSM" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"bSP" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"bSQ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bSR" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bSS" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/virology{
+ name = "Break Room";
+ req_access_txt = "39"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bST" = (
+/obj/machinery/doorButtons/airlock_controller{
+ idExterior = "virology_airlock_exterior";
+ idInterior = "virology_airlock_interior";
+ idSelf = "virology_airlock_control";
+ name = "Virology Access Console";
+ pixel_x = 8;
+ pixel_y = 22;
+ req_access_txt = "39"
+ },
+/obj/machinery/light_switch{
+ pixel_x = -4;
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bSU" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bSV" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/firealarm{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bSW" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bSX" = (
+/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/medical/virology";
+ dir = 1;
+ name = "Virology APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/camera{
+ c_tag = "Virology Module";
+ network = list("ss13","medbay")
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bSY" = (
+/obj/machinery/vending/medical,
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bTf" = (
+/obj/structure/rack,
+/obj/item/wrench,
+/obj/item/crowbar,
+/obj/machinery/computer/security/telescreen{
+ name = "Test Chamber Monitor";
+ network = list("test");
+ pixel_y = -30
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bTg" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bTh" = (
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bTi" = (
+/obj/structure/table,
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/engineering)
+"bTj" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/security/checkpoint/engineering)
+"bTk" = (
+/obj/machinery/atmospherics/components/binary/valve,
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bTl" = (
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bTm" = (
+/obj/machinery/atmospherics/components/trinary/mixer/flipped{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bTn" = (
+/obj/structure/table,
+/obj/item/assembly/igniter{
+ pixel_x = -5;
+ pixel_y = 3
+ },
+/obj/item/assembly/igniter{
+ pixel_x = 5;
+ pixel_y = -4
+ },
+/obj/item/assembly/igniter{
+ pixel_x = 2;
+ pixel_y = 6
+ },
+/obj/item/assembly/igniter{
+ pixel_x = 2;
+ pixel_y = -1
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/item/assembly/timer{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/assembly/timer{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/assembly/timer{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/assembly/timer{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bTp" = (
+/obj/structure/table/reinforced,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/paper_bin,
+/obj/item/pen,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"bTr" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"bTz" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bTA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/port/aft)
+"bTB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/aft)
+"bTC" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/aft)
+"bTD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bTE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bTF" = (
+/obj/structure/closet/emcloset,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bTG" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/obj/item/pen,
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_x = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/engineering)
+"bTH" = (
+/obj/structure/table,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/engineering)
+"bTI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/holopad/secure,
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bTJ" = (
+/obj/machinery/power/apc{
+ areastring = "/area/hallway/primary/aft";
+ dir = 8;
+ name = "Aft Hall APC";
+ pixel_x = -25;
+ pixel_y = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bTK" = (
+/obj/item/crowbar,
+/obj/item/wrench,
+/obj/structure/window/reinforced,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bTL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/engineering/atmos)
+"bTM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bTN" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/obj/structure/closet/secure_closet/atmospherics,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bTO" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bTP" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bTT" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 1
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bTU" = (
+/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bTV" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "N2O to Pure"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bTW" = (
+/turf/open/floor/engine/n2o,
+/area/engineering/atmos)
+"bTX" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrous_output{
+ dir = 8
+ },
+/turf/open/floor/engine/n2o,
+/area/engineering/atmos)
+"bTY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/virology)
+"bTZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/virology)
+"bUa" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/virology)
+"bUb" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bUc" = (
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Telecomms Admin";
+ departmentType = 5;
+ name = "Telecomms RC";
+ pixel_x = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bUd" = (
+/obj/structure/table/reinforced,
+/obj/machinery/button/door{
+ id = "xenobio3";
+ name = "Containment Blast Doors";
+ pixel_y = 4;
+ req_access_txt = "55"
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bUe" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable,
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio3";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bUg" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bUh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio8";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bUi" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/structure/disposaloutlet{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bUj" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bUk" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bUl" = (
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 2;
+ sortType = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bUm" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bUn" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 9
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bUo" = (
+/obj/structure/table,
+/obj/item/storage/box/beakers{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/obj/item/grenade/chem_grenade,
+/obj/item/grenade/chem_grenade,
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bUp" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"bUq" = (
+/obj/machinery/vending/assist,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"bUr" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 10
+ },
+/turf/open/space,
+/area/space/nearstation)
+"bUs" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bUt" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#cee5d2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bUu" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bUv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bUx" = (
+/obj/structure/disposalpipe/junction/yjunction{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bUy" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bUz" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bUB" = (
+/obj/machinery/power/apc{
+ areastring = "/area/tcommsat/computer";
+ name = "Telecomms Monitoring APC";
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bUC" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/tcommsat/computer)
+"bUD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bUE" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/pump,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bUF" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bUG" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 1
+ },
+/obj/machinery/meter,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/atmos)
+"bUH" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bUI" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/oil{
+ icon_state = "floor5"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bUJ" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/airlock/atmos{
+ name = "Atmospherics";
+ req_access_txt = "24"
+ },
+/turf/open/floor/plasteel,
+/area/engineering/atmos)
+"bUK" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Air to External"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bUL" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bUM" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bUN" = (
+/obj/machinery/portable_atmospherics/canister,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bUR" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bUS" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bUT" = (
+/obj/machinery/computer/atmos_control/tank/nitrous_tank{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bUU" = (
+/obj/effect/turf_decal/vg_decals/atmos/nitrous_oxide,
+/turf/open/floor/engine/n2o,
+/area/engineering/atmos)
+"bUV" = (
+/obj/machinery/air_sensor/atmos/nitrous_tank,
+/turf/open/floor/engine/n2o,
+/area/engineering/atmos)
+"bUW" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/atmospherics/miner/n2o,
+/turf/open/floor/engine/n2o,
+/area/engineering/atmos)
+"bUY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bUZ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bVa" = (
+/obj/machinery/smartfridge/chemistry/virology/preloaded,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bVb" = (
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bVc" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bVd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bVe" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bVf" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bVg" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = 20
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bVh" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bVj" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bVk" = (
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bVl" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bVm" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bVn" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 4
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bVo" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engineering/break_room)
+"bVp" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bVq" = (
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bVr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bVs" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"bVt" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/structure/target_stake,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"bVu" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/turf/open/space,
+/area/space/nearstation)
+"bVv" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/turf/open/space,
+/area/space/nearstation)
+"bVx" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on,
+/turf/open/floor/plating/airless,
+/area/maintenance/port/aft)
+"bVy" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bVz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"bVA" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bVB" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/closet/emcloset,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bVC" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bVD" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/structure/sign/warning/deathsposal{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bVE" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bVF" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bVG" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = -28
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bVI" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/tcommsat/server)
+"bVJ" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/tcommsat/computer)
+"bVK" = (
+/obj/machinery/vending/snack/random,
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bVM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bVN" = (
+/obj/machinery/camera{
+ c_tag = "Atmospherics Access";
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bVO" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 9
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/atmos)
+"bVP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bVQ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bVR" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/suit_storage_unit/atmos,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bVS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/structure/sign/warning/securearea,
+/turf/closed/wall,
+/area/engineering/atmos)
+"bVT" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 4;
+ name = "External to Filter"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bVV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bVW" = (
+/obj/structure/rack,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/gloves/color/black,
+/obj/item/clothing/gloves/color/black,
+/obj/item/clothing/gloves/color/black,
+/obj/item/clothing/mask/gas,
+/obj/item/clothing/mask/gas,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bVX" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bVZ" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Ports to External"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bWc" = (
+/obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bWd" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrous_input{
+ dir = 8
+ },
+/turf/open/floor/engine/n2o,
+/area/engineering/atmos)
+"bWe" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bWf" = (
+/obj/structure/table/glass,
+/obj/item/clothing/gloves/color/latex,
+/obj/machinery/requests_console{
+ department = "Virology";
+ name = "Virology Requests Console";
+ pixel_x = -32
+ },
+/obj/item/healthanalyzer,
+/obj/item/clothing/glasses/hud/health,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bWg" = (
+/obj/structure/table,
+/obj/item/hand_labeler,
+/obj/item/radio/headset/headset_med,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bWh" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bWi" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/medical/virology)
+"bWj" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/medical/virology)
+"bWl" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio2";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bWm" = (
+/obj/structure/window/reinforced,
+/obj/structure/table/reinforced,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/button/door{
+ id = "xenobio7";
+ name = "Containment Blast Doors";
+ pixel_y = 4;
+ req_access_txt = "55"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bWn" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio7";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bWo" = (
+/obj/item/radio/intercom{
+ pixel_x = -25
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bWp" = (
+/obj/structure/chair/office/light,
+/obj/effect/landmark/start/scientist,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bWq" = (
+/obj/machinery/atmospherics/components/binary/pump,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bWr" = (
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bWs" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bWt" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bWu" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Telecommunications";
+ req_access_txt = "61"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bWv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bWw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bWx" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bWy" = (
+/turf/open/floor/plasteel/dark,
+/area/maintenance/port/aft)
+"bWz" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bWA" = (
+/obj/machinery/atmospherics/pipe/manifold4w/general,
+/obj/machinery/meter,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bWB" = (
+/turf/open/floor/circuit/red/telecomms,
+/area/tcommsat/server)
+"bWC" = (
+/obj/machinery/telecomms/bus/preset_four,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bWD" = (
+/obj/machinery/telecomms/server/presets/engineering,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bWE" = (
+/obj/machinery/telecomms/processor/preset_three,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bWF" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/tcommsat/server";
+ dir = 1;
+ name = "Telecomms Server APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/circuit/red/telecomms,
+/area/tcommsat/server)
+"bWG" = (
+/obj/machinery/telecomms/server/presets/security,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bWH" = (
+/obj/structure/table,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bWI" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"bWJ" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bWK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bWL" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bWM" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bWN" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bWO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 10
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/atmos)
+"bWP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 9
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "atmos";
+ name = "Atmospherics Blast Door"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bWQ" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/security/checkpoint/engineering)
+"bWR" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = -30
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bWU" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "Mix to Engine"
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bWV" = (
+/obj/structure/door_assembly/door_assembly_mai,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bWW" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bWX" = (
+/obj/structure/table/glass,
+/obj/item/radio/intercom{
+ pixel_x = -25
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/item/storage/box/beakers{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/obj/item/storage/box/syringes,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bWY" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = -2;
+ pixel_y = 5
+ },
+/obj/item/pen/red,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bWZ" = (
+/obj/structure/chair/office/light{
+ dir = 4
+ },
+/obj/effect/landmark/start/virologist,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bXa" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bXb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/medical/virology)
+"bXc" = (
+/obj/structure/table,
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bXd" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bXh" = (
+/obj/structure/filingcabinet/chestdrawer,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bXi" = (
+/obj/structure/table,
+/obj/item/folder/white,
+/obj/item/folder/white,
+/obj/item/pen,
+/obj/item/taperecorder,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bXj" = (
+/obj/structure/table,
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/obj/machinery/button/ignition{
+ id = "testigniter";
+ pixel_x = -6;
+ pixel_y = 2
+ },
+/obj/machinery/button/door{
+ id = "testlab";
+ name = "Test Chamber Blast Doors";
+ pixel_x = 4;
+ pixel_y = 2;
+ req_access_txt = "55"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bXk" = (
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=AIE";
+ location = "AftH"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bXl" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_y = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bXm" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bXn" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bXo" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bXp" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bXq" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Engineering";
+ req_access_txt = "32"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bXr" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bXs" = (
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"bXw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plasteel/dark,
+/area/maintenance/port/aft)
+"bXx" = (
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plasteel/dark,
+/area/maintenance/port/aft)
+"bXy" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/turf/open/floor/plasteel/dark,
+/area/maintenance/port/aft)
+"bXz" = (
+/obj/machinery/telecomms/processor/preset_four,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bXA" = (
+/obj/machinery/telecomms/server/presets/common,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bXB" = (
+/obj/machinery/telecomms/bus/preset_three,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bXC" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/circuit/red/telecomms,
+/area/tcommsat/server)
+"bXD" = (
+/obj/machinery/telecomms/server/presets/command,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bXE" = (
+/obj/machinery/computer/message_monitor{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bXF" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"bXG" = (
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bXH" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bXI" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bXJ" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/machinery/light/small,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bXK" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/atmos)
+"bXN" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bXO" = (
+/obj/structure/filingcabinet,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/engineering)
+"bXP" = (
+/obj/machinery/requests_console{
+ department = "Security";
+ departmentType = 5;
+ pixel_y = 30
+ },
+/obj/structure/closet/secure_closet/security/engine,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/engineering)
+"bXQ" = (
+/obj/structure/fireaxecabinet{
+ pixel_x = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bXU" = (
+/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bXV" = (
+/obj/machinery/camera{
+ c_tag = "Atmospherics East";
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Plasma to Pure"
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bXW" = (
+/turf/open/floor/engine/plasma,
+/area/engineering/atmos)
+"bXX" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output{
+ dir = 8
+ },
+/turf/open/floor/engine/plasma,
+/area/engineering/atmos)
+"bXY" = (
+/obj/effect/landmark/xeno_spawn,
+/turf/open/floor/engine/plasma,
+/area/engineering/atmos)
+"bXZ" = (
+/obj/structure/closet/crate,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bYa" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bYb" = (
+/obj/machinery/vending/cigarette,
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bYc" = (
+/obj/machinery/disposal/bin,
+/obj/structure/sign/warning/deathsposal{
+ pixel_y = -32
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bYd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bYe" = (
+/obj/structure/closet/secure_closet/personal/patient,
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bYf" = (
+/obj/structure/table/reinforced,
+/obj/machinery/button/door{
+ id = "xenobio2";
+ name = "Containment Blast Doors";
+ pixel_y = 4;
+ req_access_txt = "55"
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bYg" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio2";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bYh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio7";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bYi" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "testlab";
+ name = "test chamber blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bYj" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "testlab";
+ name = "test chamber blast door"
+ },
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bYk" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bYl" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bYm" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bYn" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bYo" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bYp" = (
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bYq" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bYr" = (
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/starboard/aft)
+"bYt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bYu" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = -32
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bYv" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Mix to Space"
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/port/aft)
+"bYw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/port/aft)
+"bYx" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/port/aft)
+"bYy" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "Incinerator Access";
+ req_access_txt = "12"
+ },
+/obj/structure/barricade/wooden{
+ name = "wooden barricade (CLOSED)"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bYz" = (
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bYA" = (
+/obj/machinery/telecomms/broadcaster/preset_right,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bYB" = (
+/obj/machinery/blackbox_recorder,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bYC" = (
+/obj/machinery/telecomms/receiver/preset_right,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"bYD" = (
+/obj/machinery/computer/telecomms/server{
+ dir = 4;
+ network = "tcommsat"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bYE" = (
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bYF" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"bYG" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/structure/sign/departments/engineering{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bYH" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/break_room)
+"bYI" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bYL" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/heavy,
+/obj/machinery/door/airlock/atmos{
+ name = "Atmospherics";
+ req_access_txt = "24"
+ },
+/turf/open/floor/plasteel/dark/corner{
+ dir = 1
+ },
+/area/engineering/atmos)
+"bYM" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bYO" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bYP" = (
+/obj/effect/landmark/event_spawn,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/bar)
+"bYQ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bYT" = (
+/obj/machinery/computer/atmos_control/tank/toxin_tank{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bYU" = (
+/obj/effect/turf_decal/vg_decals/atmos/plasma,
+/turf/open/floor/engine/plasma,
+/area/engineering/atmos)
+"bYV" = (
+/obj/machinery/air_sensor/atmos/toxin_tank,
+/turf/open/floor/engine/plasma,
+/area/engineering/atmos)
+"bYW" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/atmospherics/miner/toxins,
+/turf/open/floor/engine/plasma,
+/area/engineering/atmos)
+"bYX" = (
+/obj/structure/closet/l3closet/virology,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bYY" = (
+/obj/structure/closet/secure_closet/medical1,
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/virology)
+"bYZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/virology)
+"bZa" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/obj/machinery/camera{
+ c_tag = "Xenobiology South";
+ dir = 4;
+ network = list("ss13","rd")
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bZb" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bZc" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bZd" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/structure/disposalpipe/junction/flip,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"bZe" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/break_room)
+"bZg" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bZh" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"bZi" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/heat_exchanging/junction{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"bZj" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bZk" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/canister,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bZl" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Mix to Port"
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bZm" = (
+/obj/structure/disposaloutlet{
+ dir = 8;
+ name = "Prisoner Outlet"
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"bZn" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/circuit/red/telecomms,
+/area/tcommsat/server)
+"bZo" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/circuit/red/telecomms,
+/area/tcommsat/server)
+"bZp" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/circuit/red/telecomms,
+/area/tcommsat/server)
+"bZq" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"bZr" = (
+/obj/machinery/status_display/evac,
+/turf/closed/wall/r_wall/syndicate,
+/area/tcommsat/computer)
+"bZs" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"bZt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bZu" = (
+/obj/machinery/camera{
+ c_tag = "Engineering Foyer";
+ dir = 1
+ },
+/obj/structure/noticeboard{
+ dir = 1;
+ pixel_y = -27
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bZv" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"bZw" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/closet/firecloset,
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bZx" = (
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"bZy" = (
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bZz" = (
+/obj/structure/table,
+/obj/machinery/light_switch{
+ pixel_x = -23
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/item/book/manual/wiki/engineering_hacking{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/book/manual/wiki/engineering_construction,
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bZA" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bZB" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"bZC" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "ceprivacy";
+ name = "privacy shutter"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/command/heads_quarters/ce)
+"bZD" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "ceprivacy";
+ name = "privacy shutter"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/command/heads_quarters/ce)
+"bZE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"bZF" = (
+/obj/machinery/power/apc{
+ areastring = "/area/engineering/atmos";
+ dir = 8;
+ name = "Atmospherics APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bZG" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bZK" = (
+/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"bZL" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input{
+ dir = 8
+ },
+/turf/open/floor/engine/plasma,
+/area/engineering/atmos)
+"bZM" = (
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/aft)
+"bZN" = (
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bZO" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bZP" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/virology)
+"bZQ" = (
+/obj/machinery/atmospherics/components/binary/valve/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bZR" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/item/wrench,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bZS" = (
+/obj/machinery/atmospherics/components/unary/tank/air{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bZT" = (
+/obj/structure/rack,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bZU" = (
+/obj/structure/closet/emcloset,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"bZV" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio1";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bZW" = (
+/obj/structure/window/reinforced,
+/obj/structure/table/reinforced,
+/obj/machinery/button/door{
+ id = "xenobio6";
+ name = "Containment Blast Doors";
+ pixel_y = 4;
+ req_access_txt = "55"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"bZX" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio6";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"bZY" = (
+/obj/item/radio/intercom{
+ pixel_x = -25
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"bZZ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/misc_lab)
+"caa" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"cac" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"cad" = (
+/obj/effect/decal/cleanable/cobweb,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/maintenance/starboard/aft)
+"cae" = (
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/starboard/aft)
+"caf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 5
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/airless,
+/area/maintenance/port/aft)
+"cag" = (
+/obj/machinery/ntnet_relay,
+/turf/open/floor/circuit/red/telecomms,
+/area/tcommsat/server)
+"cah" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/circuit/red/telecomms,
+/area/tcommsat/server)
+"cai" = (
+/obj/machinery/power/smes{
+ charge = 5e+006
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/circuit/red/telecomms,
+/area/tcommsat/server)
+"cak" = (
+/obj/machinery/telecomms/hub/preset,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cal" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Server Room";
+ req_access_txt = "61"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"can" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Server Room";
+ req_access_txt = "61"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"cao" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"cap" = (
+/obj/machinery/light,
+/obj/structure/closet/firecloset,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"caq" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"car" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/aft)
+"cas" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cat" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cau" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"cav" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"caw" = (
+/obj/structure/table,
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/obj/item/hand_labeler,
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"cax" = (
+/obj/structure/closet/wardrobe/black,
+/obj/effect/decal/cleanable/cobweb,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cay" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"caz" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"caA" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/checkpoint/engineering)
+"caC" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"caD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/security/checkpoint/engineering)
+"caJ" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
+/turf/open/space,
+/area/space/nearstation)
+"caK" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caM" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caO" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caP" = (
+/obj/machinery/atmospherics/components/binary/valve{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caQ" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caR" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
+ },
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caS" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"caX" = (
+/obj/machinery/sparker{
+ id = "testigniter";
+ pixel_x = -25
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"caY" = (
+/obj/item/beacon,
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"caZ" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "testlab";
+ name = "test chamber blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"cba" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"cbb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"cbc" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"cbd" = (
+/obj/machinery/power/apc{
+ areastring = "/area/science/misc_lab";
+ dir = 4;
+ name = "Testing Lab APC";
+ pixel_x = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"cbe" = (
+/obj/structure/table/reinforced,
+/obj/item/integrated_electronics/analyzer,
+/obj/item/integrated_electronics/debugger,
+/obj/item/integrated_electronics/wirer,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"cbf" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cbg" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/starboard/aft)
+"cbh" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/caution/stand_clear/red,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"cbi" = (
+/obj/structure/barricade/wooden,
+/obj/structure/girder,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cbj" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating/airless,
+/area/maintenance/port/aft)
+"cbk" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Mix to Space"
+ },
+/turf/open/floor/plating/airless,
+/area/maintenance/port/aft)
+"cbl" = (
+/obj/machinery/camera{
+ c_tag = "Telecomms Server Room";
+ dir = 4;
+ network = list("tcomms")
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cbm" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"cbn" = (
+/obj/structure/sign/warning/securearea{
+ desc = "A warning sign which reads 'SERVER ROOM'.";
+ name = "SERVER ROOM"
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/tcommsat/computer)
+"cbo" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"cbp" = (
+/obj/structure/closet/secure_closet/engineering_chief,
+/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/command/heads_quarters/ce";
+ dir = 4;
+ name = "CE Office APC";
+ pixel_x = 24
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"cbq" = (
+/obj/structure/filingcabinet/chestdrawer,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/mob/living/simple_animal/parrot/Poly,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"cbr" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"cbs" = (
+/obj/structure/sign/warning/securearea,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/main)
+"cbt" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/camera{
+ c_tag = "Aft Primary Hallway 1";
+ dir = 8;
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/tile/yellow,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"cbu" = (
+/obj/machinery/power/apc{
+ areastring = "/area/engineering/break_room";
+ dir = 8;
+ name = "Engineering Foyer APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"cbv" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "Research Delivery access";
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cbw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cbx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 8;
+ sortType = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cby" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cbz" = (
+/obj/machinery/vending/wardrobe/atmos_wardrobe,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cbA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cbG" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "CO2 to Pure"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cbH" = (
+/turf/open/floor/engine/co2,
+/area/engineering/atmos)
+"cbI" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/carbon_output{
+ dir = 8
+ },
+/turf/open/floor/engine/co2,
+/area/engineering/atmos)
+"cbJ" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cbK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/maintenance/aft)
+"cbL" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cbM" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cbN" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cbO" = (
+/obj/machinery/door/airlock/atmos/abandoned{
+ name = "Atmospherics Maintenance";
+ req_access_txt = "12;24"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cbP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cbQ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cbR" = (
+/obj/structure/table/reinforced,
+/obj/machinery/button/door{
+ id = "xenobio1";
+ name = "Containment Blast Doors";
+ pixel_y = 4;
+ req_access_txt = "55"
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cbS" = (
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio1";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"cbU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/door/poddoor/preopen{
+ id = "xenobio6";
+ name = "containment blast door"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"cbV" = (
+/obj/machinery/camera{
+ c_tag = "Testing Chamber";
+ dir = 1;
+ network = list("test","rd")
+ },
+/obj/machinery/light,
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"cbW" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"cbY" = (
+/obj/structure/table/reinforced,
+/obj/item/multitool,
+/obj/item/screwdriver,
+/obj/machinery/requests_console{
+ department = "Science";
+ departmentType = 2;
+ name = "Science Requests Console";
+ pixel_y = -30;
+ receive_ore_updates = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"cbZ" = (
+/obj/structure/table/reinforced,
+/obj/item/integrated_circuit_printer,
+/obj/machinery/computer/security/telescreen/circuitry{
+ dir = 1;
+ pixel_y = -30
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"cca" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/solar{
+ id = "portsolar";
+ name = "Port Solar Array"
+ },
+/turf/open/floor/plasteel/airless/solarpanel,
+/area/solars/port/aft)
+"ccb" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/solar{
+ id = "portsolar";
+ name = "Port Solar Array"
+ },
+/turf/open/floor/plasteel/airless/solarpanel,
+/area/solars/port/aft)
+"ccc" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/port/aft)
+"ccd" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 8;
+ name = "8maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cce" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "Construction Area Maintenance";
+ req_access_txt = "32"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"ccf" = (
+/obj/machinery/telecomms/broadcaster/preset_left,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"ccg" = (
+/obj/machinery/telecomms/message_server,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cch" = (
+/obj/machinery/telecomms/receiver/preset_left,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cci" = (
+/obj/structure/table,
+/obj/item/multitool,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"ccj" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"cck" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"ccl" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"ccm" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"ccn" = (
+/obj/machinery/camera{
+ c_tag = "Engineering Access"
+ },
+/obj/structure/closet/radiation,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cco" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"ccp" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ccq" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ccr" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ccs" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"cct" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ccv" = (
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"ccw" = (
+/turf/closed/wall/r_wall,
+/area/engineering/main)
+"ccz" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "N2 to Pure"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"ccA" = (
+/obj/machinery/computer/atmos_control/tank/carbon_tank{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"ccB" = (
+/obj/effect/turf_decal/vg_decals/atmos/carbon_dioxide,
+/turf/open/floor/engine/co2,
+/area/engineering/atmos)
+"ccC" = (
+/obj/machinery/air_sensor/atmos/carbon_tank,
+/turf/open/floor/engine/co2,
+/area/engineering/atmos)
+"ccD" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/atmospherics/miner/carbon_dioxide,
+/turf/open/floor/engine/co2,
+/area/engineering/atmos)
+"ccE" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 28
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ccF" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ccG" = (
+/obj/structure/chair/stool,
+/obj/effect/decal/cleanable/cobweb{
+ icon_state = "cobweb2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ccI" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ccJ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ccK" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ccL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ccM" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ccN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ccO" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ccQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"ccR" = (
+/obj/machinery/portable_atmospherics/pump,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"ccT" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"ccU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/starboard/aft)
+"ccV" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ccW" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ccX" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/port/aft)
+"ccZ" = (
+/obj/structure/chair/stool,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cda" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cdb" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cdc" = (
+/obj/machinery/telecomms/bus/preset_two,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cdd" = (
+/obj/machinery/telecomms/server/presets/supply,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cde" = (
+/obj/machinery/telecomms/processor/preset_one,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cdf" = (
+/obj/machinery/telecomms/server/presets/medical,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cdg" = (
+/obj/machinery/computer/telecomms/monitor{
+ dir = 4;
+ network = "tcommsat"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"cdh" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cdj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cdk" = (
+/obj/machinery/computer/atmos_alert,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cdl" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/carpet/black,
+/area/service/chapel/main)
+"cdm" = (
+/obj/structure/table/reinforced,
+/obj/item/clipboard,
+/obj/item/paper/monitorkey,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/item/pen/fountain,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"cdn" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/structure/closet/firecloset,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cdo" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/structure/closet/radiation,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cdp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cdq" = (
+/obj/effect/spawner/structure/window/reinforced/tinted,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cdr" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cds" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/starboard/aft";
+ dir = 8;
+ name = "Starboard Quarter Maintenance APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/camera{
+ c_tag = "Aft Starboard Solar Access";
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cdt" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"cdu" = (
+/obj/structure/closet/emcloset,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cdv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cdw" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cdx" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cdC" = (
+/obj/machinery/atmospherics/components/trinary/filter/atmos/co2{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cdD" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input{
+ dir = 8
+ },
+/turf/open/floor/engine/co2,
+/area/engineering/atmos)
+"cdE" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cdF" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cdG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cdH" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cdI" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cdJ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cdK" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cdL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cdN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cdO" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cdQ" = (
+/obj/structure/closet/emcloset,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cdR" = (
+/obj/machinery/atmospherics/components/unary/tank/air,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cdS" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"cdT" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cdU" = (
+/obj/structure/chair/office/light{
+ dir = 4
+ },
+/obj/effect/landmark/start/chief_engineer,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"cdW" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/port/aft";
+ dir = 8;
+ name = "Port Quarter Maintenance APC";
+ pixel_x = -25;
+ pixel_y = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cdX" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science)
+"cdZ" = (
+/obj/machinery/telecomms/processor/preset_two,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cea" = (
+/obj/machinery/telecomms/server/presets/service,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"ceb" = (
+/obj/machinery/telecomms/bus/preset_one,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cec" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = -32
+ },
+/obj/machinery/light,
+/turf/open/floor/circuit/red/telecomms,
+/area/tcommsat/server)
+"ced" = (
+/obj/machinery/telecomms/server/presets/science,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cee" = (
+/obj/structure/table,
+/obj/item/radio/off,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"cef" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/tcommsat/computer)
+"ceg" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/machinery/light,
+/obj/structure/filingcabinet/chestdrawer,
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"ceh" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"cei" = (
+/obj/structure/rack,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"cej" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "Engineering";
+ name = "engineering security door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/shower{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cek" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "Engineering";
+ name = "engineering security door"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/shower{
+ dir = 8
+ },
+/obj/structure/sign/warning/enginesafety{
+ pixel_x = 32
+ },
+/obj/structure/sign/poster/official/safety_eye_protection{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cel" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "Engineering";
+ name = "engineering security door"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cem" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cen" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"ceo" = (
+/obj/machinery/keycard_auth{
+ pixel_y = -28
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"ceq" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/command/heads_quarters/ce)
+"cer" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"ces" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cet" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cev" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/engineering/main)
+"cew" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"cex" = (
+/obj/machinery/camera{
+ c_tag = "Atmospherics South West";
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cey" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/atmos)
+"cez" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"ceA" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"ceB" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"ceD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ceE" = (
+/obj/structure/sign/warning/fire{
+ pixel_y = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ceF" = (
+/obj/structure/closet/emcloset,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ceG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ceH" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/aft)
+"ceI" = (
+/obj/structure/sign/warning/biohazard,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/aft)
+"ceJ" = (
+/obj/structure/disposalpipe/segment,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/aft)
+"ceK" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/closet/l3closet,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ceL" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ceM" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ceN" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ceO" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/manifold/cyan/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ceP" = (
+/obj/machinery/portable_atmospherics/canister,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"ceQ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"ceR" = (
+/obj/effect/landmark/blobstart,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ceS" = (
+/obj/item/stack/sheet/cardboard,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ceT" = (
+/obj/machinery/light/small,
+/obj/structure/sign/poster/ripped{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ceU" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = -32
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ceV" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"ceW" = (
+/obj/machinery/space_heater,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"ceX" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"ceY" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"ceZ" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Power Storage";
+ req_access_txt = "11"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cfa" = (
+/obj/structure/rack,
+/obj/item/storage/belt/utility,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/item/weldingtool/largetank,
+/obj/item/clothing/head/welding{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/obj/item/clothing/glasses/welding,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cfb" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/command/heads_quarters/ce)
+"cfc" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "ceprivacy";
+ name = "privacy shutter"
+ },
+/turf/open/floor/plating,
+/area/command/heads_quarters/ce)
+"cfd" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/closet/radiation,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cfe" = (
+/obj/structure/sign/warning/radiation/rad_area{
+ pixel_x = -32
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/sign/warning/securearea{
+ pixel_x = 32
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cfg" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cfh" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/break_room)
+"cfi" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/structure/reagent_dispensers/watertank/high,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cfj" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal/incinerator)
+"cfk" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/airlock/atmos{
+ name = "Turbine Access";
+ req_access_txt = "32"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal/incinerator)
+"cfl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal/incinerator)
+"cfm" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/obj/item/toy/minimeteor,
+/obj/item/poster/random_contraband,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cfn" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/reagent_containers/food/snacks/donkpocket,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cfo" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/roller,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cfp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/item/c_tube,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cfq" = (
+/obj/structure/mopbucket,
+/obj/item/clothing/suit/caution,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cfr" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ external_pressure_bound = 140;
+ name = "killroom vent";
+ pressure_checks = 0
+ },
+/obj/machinery/camera{
+ c_tag = "Xenobiology Kill Room";
+ dir = 4;
+ network = list("ss13","rd")
+ },
+/turf/open/floor/circuit/red,
+/area/science/xenobiology)
+"cfs" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "Air Supply Maintenance";
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cft" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Testing Lab Maintenance";
+ req_access_txt = "47"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cfu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/science/misc_lab)
+"cfw" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/solars/port/aft)
+"cfx" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating/airless,
+/area/maintenance/solars/port/aft)
+"cfy" = (
+/obj/structure/rack,
+/obj/item/clothing/shoes/winterboots,
+/obj/item/clothing/suit/hooded/wintercoat,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cfz" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cfB" = (
+/obj/structure/closet/secure_closet/engineering_personal,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/item/clothing/under/misc/overalls,
+/obj/item/clothing/under/misc/overalls,
+/obj/item/radio/headset/headset_eng,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cfD" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/airlock/maintenance{
+ name = "Engineering Maintenance";
+ req_access_txt = "10"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cfF" = (
+/obj/machinery/suit_storage_unit/ce,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"cfG" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cfH" = (
+/obj/machinery/button/door{
+ id = "ceprivacy";
+ name = "Privacy Shutters Control";
+ pixel_y = 26
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/holopad/secure,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"cfI" = (
+/obj/structure/closet/secure_closet/engineering_personal,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/item/clothing/under/misc/overalls,
+/obj/item/clothing/under/misc/overalls,
+/obj/item/radio/headset/headset_eng,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cfJ" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cfK" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/space,
+/area/solars/port/fore)
+"cfL" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cfM" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/engineering{
+ name = "Engine Room";
+ req_access_txt = "10"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cfP" = (
+/obj/machinery/atmospherics/components/trinary/mixer/airmix/inverse{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cfQ" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cfU" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/door/airlock/atmos{
+ name = "Atmospherics";
+ req_access_txt = "24"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal/incinerator)
+"cfW" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cfX" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/disposal/incinerator";
+ name = "Incinerator APC";
+ pixel_y = -24
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cfY" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal/incinerator)
+"cfZ" = (
+/obj/machinery/light_switch{
+ pixel_y = 26
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"cga" = (
+/obj/machinery/power/smes{
+ capacity = 9e+006;
+ charge = 10000
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/decal/cleanable/cobweb{
+ icon_state = "cobweb2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal/incinerator)
+"cgb" = (
+/obj/machinery/disposal/bin,
+/obj/structure/sign/warning/deathsposal{
+ pixel_y = 32
+ },
+/obj/structure/disposalpipe/trunk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal/incinerator)
+"cgc" = (
+/obj/effect/landmark/xeno_spawn,
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/aft)
+"cgd" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cge" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cgf" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/grille/broken,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cgg" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cgh" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cgi" = (
+/turf/open/floor/circuit/red,
+/area/science/xenobiology)
+"cgj" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/barricade/wooden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cgk" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/sign/warning/biohazard,
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"cgl" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
+ external_pressure_bound = 120;
+ name = "killroom vent"
+ },
+/turf/open/floor/circuit/red,
+/area/science/xenobiology)
+"cgm" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cgn" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cgo" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cgp" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/closet/toolcloset,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cgq" = (
+/obj/machinery/space_heater,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cgr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/starboard/aft)
+"cgs" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cgt" = (
+/obj/structure/sign/warning/securearea{
+ pixel_y = 32
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cgu" = (
+/obj/structure/rack,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cgv" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cgw" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/structure/closet/radiation,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cgy" = (
+/obj/machinery/light/floor,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"cgz" = (
+/obj/structure/cable,
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/port/aft)
+"cgA" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = -32
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"cgB" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/smes,
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"cgC" = (
+/obj/machinery/power/terminal{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"cgD" = (
+/obj/machinery/camera{
+ c_tag = "Aft Port Solar Access";
+ dir = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/structure/closet/emcloset,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cgE" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/solars/port/aft)
+"cgF" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cgG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cgI" = (
+/turf/template_noop,
+/area/template_noop)
+"cgO" = (
+/obj/structure/rack,
+/obj/item/lighter,
+/obj/item/clothing/glasses/meson{
+ pixel_y = 4
+ },
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/reagent_containers/pill/patch/silver_sulf,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command)
+"cgQ" = (
+/obj/machinery/camera{
+ c_tag = "Engineering East";
+ dir = 8
+ },
+/obj/machinery/vending/wardrobe/engi_wardrobe,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cgR" = (
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cgS" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "ceprivacy";
+ name = "privacy shutter"
+ },
+/turf/open/floor/plating,
+/area/command/heads_quarters/ce)
+"cgT" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/engineering{
+ name = "SMES Room";
+ req_access_txt = "32"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cgU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cgV" = (
+/obj/machinery/computer/atmos_control/tank/nitrogen_tank{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cgW" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cgX" = (
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cgY" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 1;
+ name = "N2 Outlet Pump"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cgZ" = (
+/obj/machinery/computer/atmos_control/tank/oxygen_tank{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cha" = (
+/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"chb" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 1;
+ name = "O2 Outlet Pump"
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"chc" = (
+/obj/machinery/computer/atmos_control/tank/air_tank{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"chd" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"che" = (
+/obj/machinery/door/airlock/atmos{
+ name = "Atmospherics";
+ req_access_txt = "24"
+ },
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"chf" = (
+/obj/machinery/camera{
+ c_tag = "Atmospherics South East";
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 1;
+ name = "Air Outlet Pump"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"chg" = (
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"chh" = (
+/obj/machinery/atmospherics/components/unary/tank/toxins{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"chi" = (
+/obj/machinery/atmospherics/pipe/manifold4w/general{
+ level = 2
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"chj" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "plasma tank pump"
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"chk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal/incinerator)
+"chl" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/obj/item/storage/toolbox/emergency,
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"chm" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/machinery/airalarm/all_access{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal/incinerator)
+"chn" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"cho" = (
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 5
+ },
+/turf/open/floor/circuit/red,
+/area/science/xenobiology)
+"chp" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/starboard/aft)
+"chq" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/turf/open/floor/circuit/red,
+/area/science/xenobiology)
+"chr" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/research{
+ name = "Kill Chamber";
+ req_access_txt = "55"
+ },
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"chs" = (
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/manifold/general/visible,
+/turf/open/floor/circuit/red,
+/area/science/xenobiology)
+"chu" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"chv" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"chw" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"chx" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"chy" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"chz" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"chA" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"chB" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"chC" = (
+/obj/structure/rack,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"chD" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"chE" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"chH" = (
+/turf/open/floor/circuit/red,
+/area/maintenance/starboard/aft)
+"chI" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/port/aft)
+"chJ" = (
+/obj/machinery/power/tracker,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/airless/solarpanel,
+/area/solars/port/aft)
+"chK" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/port/aft)
+"chL" = (
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/port/aft)
+"chN" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"chO" = (
+/obj/machinery/door/airlock/external{
+ req_access_txt = "13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"chP" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"chQ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"chR" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"chS" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Port Quarter Solar Access";
+ req_access_txt = "10"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"chT" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"chY" = (
+/obj/machinery/shieldgen,
+/turf/open/floor/plating,
+/area/engineering/main)
+"cia" = (
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cic" = (
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cid" = (
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/obj/structure/reagent_dispensers/watertank,
+/obj/machinery/power/apc/highcap/fifteen_k{
+ areastring = "/area/engineering/main";
+ dir = 1;
+ name = "Engineering APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cie" = (
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/gloves/color/yellow,
+/obj/item/clothing/gloves/color/yellow,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cif" = (
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/reagent_dispensers/fueltank/high,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cig" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/main)
+"cij" = (
+/obj/machinery/modular_computer/console/preset/engineering,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cik" = (
+/obj/machinery/computer/apc_control{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"cim" = (
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"cin" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"cio" = (
+/obj/structure/table/reinforced,
+/obj/item/folder/yellow,
+/obj/item/stamp/ce,
+/obj/structure/disposalpipe/segment,
+/obj/effect/landmark/event_spawn,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"ciq" = (
+/obj/structure/cable,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "ceprivacy";
+ name = "privacy shutter"
+ },
+/turf/open/floor/plating,
+/area/command/heads_quarters/ce)
+"cis" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cit" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/atmos)
+"ciu" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"civ" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"cix" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/atmos)
+"ciy" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = -28
+ },
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4;
+ name = "input gas connector port"
+ },
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"ciz" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"ciA" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "input port pump"
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"ciB" = (
+/obj/effect/decal/cleanable/cobweb,
+/obj/structure/reagent_dispensers/watertank,
+/obj/item/extinguisher,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"ciC" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 5
+ },
+/turf/open/space,
+/area/space/nearstation)
+"ciD" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ name = "output gas connector port"
+ },
+/obj/machinery/portable_atmospherics/canister,
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = 28
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"ciE" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"ciF" = (
+/obj/structure/table,
+/obj/item/cartridge/medical,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ciG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/closet/firecloset/full,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ciH" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/obj/item/latexballon,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ciI" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ciJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/starboard/aft)
+"ciK" = (
+/obj/structure/rack,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ciL" = (
+/obj/effect/spawner/structure/window/reinforced/tinted,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ciM" = (
+/obj/machinery/power/compressor{
+ comp_id = "incineratorturbine";
+ dir = 1;
+ luminosity = 2
+ },
+/obj/structure/cable/yellow,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/machinery/camera{
+ c_tag = "Turbine Chamber";
+ dir = 4;
+ network = list("turbine")
+ },
+/turf/open/floor/engine/vacuum,
+/area/maintenance/disposal/incinerator)
+"ciN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"ciP" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/port/aft)
+"ciQ" = (
+/obj/machinery/power/solar_control{
+ dir = 4;
+ id = "portsolar";
+ name = "Port Quarter Solar Control"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"ciR" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/solars/port/aft";
+ dir = 4;
+ name = "Port Quarter Solar APC";
+ pixel_x = 24;
+ pixel_y = 2
+ },
+/obj/machinery/camera{
+ c_tag = "Aft Port Solar Control";
+ dir = 1
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"ciS" = (
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"ciT" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"ciU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"ciW" = (
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plating,
+/area/engineering/main)
+"ciX" = (
+/obj/structure/closet/crate,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/rods/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/stack/sheet/mineral/plasma{
+ amount = 30
+ },
+/obj/item/lightreplacer,
+/obj/item/lightreplacer,
+/turf/open/floor/plating,
+/area/engineering/main)
+"ciY" = (
+/obj/machinery/door/poddoor{
+ id = "Secure Storage";
+ name = "secure storage"
+ },
+/turf/open/floor/plating,
+/area/engineering/main)
+"ciZ" = (
+/turf/open/floor/plating,
+/area/engineering/main)
+"cja" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cjc" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cjd" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cje" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cjf" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/chair/office/dark{
+ dir = 1
+ },
+/obj/effect/landmark/start/station_engineer,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cjg" = (
+/obj/machinery/computer/card/minor/ce{
+ dir = 4
+ },
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Chief Engineer's Desk";
+ departmentType = 3;
+ name = "Chief Engineer RC";
+ pixel_x = -32
+ },
+/obj/machinery/camera{
+ c_tag = "Chief Engineer's Office";
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"cji" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cjj" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ dir = 4;
+ name = "Station Intercom (General)";
+ pixel_x = 27
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"cjk" = (
+/obj/structure/sign/warning/securearea,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/main)
+"cjl" = (
+/obj/machinery/camera{
+ c_tag = "Engineering MiniSat Access";
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cjm" = (
+/obj/machinery/door/airlock/command{
+ name = "MiniSat Access";
+ req_access_txt = "65"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cjo" = (
+/obj/structure/closet/toolcloset,
+/turf/open/floor/plasteel/dark,
+/area/construction)
+"cjp" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"cjr" = (
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"cju" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "Incinerator to Output"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"cjv" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"cjw" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/aft)
+"cjx" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal/incinerator)
+"cjy" = (
+/obj/structure/disposalpipe/segment,
+/obj/item/shard,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cjz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/aft)
+"cjA" = (
+/obj/structure/disposalpipe/segment,
+/obj/item/cigbutt/roach,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cjB" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 9
+ },
+/obj/structure/table,
+/obj/item/folder/white,
+/obj/item/pen,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cjC" = (
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cjD" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/solars/starboard/aft)
+"cjE" = (
+/obj/structure/rack,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cjF" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Starboard Quarter Solar Access";
+ req_access_txt = "10"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"cjG" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/solars/starboard/aft)
+"cjH" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/port/aft)
+"cjI" = (
+/obj/structure/closet/crate,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cjJ" = (
+/turf/closed/wall/r_wall,
+/area/engineering/engine_smes)
+"cjK" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cjL" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/construction)
+"cjM" = (
+/obj/machinery/portable_atmospherics/canister/toxins,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "Engineering Secure Storage";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engineering/main)
+"cjN" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cjO" = (
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cjP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cjQ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cjR" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "Engineering External Access";
+ req_access_txt = "10;13"
+ },
+/turf/open/floor/plasteel,
+/area/engineering/main)
+"cjS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/closet/wardrobe/engineering_yellow,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cjT" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cjU" = (
+/obj/machinery/computer/station_alert{
+ dir = 4
+ },
+/obj/machinery/computer/security/telescreen/ce{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"cjV" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cjW" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"cjX" = (
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"cjY" = (
+/obj/structure/table/reinforced,
+/obj/item/cartridge/engineering{
+ pixel_x = 4;
+ pixel_y = 5
+ },
+/obj/item/cartridge/engineering{
+ pixel_x = -3;
+ pixel_y = 2
+ },
+/obj/item/cartridge/engineering{
+ pixel_x = 3
+ },
+/obj/item/cartridge/atmos,
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"cka" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "testlab";
+ name = "test chamber blast door"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/research/glass{
+ name = "Test Chamber";
+ req_access_txt = "47"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"ckb" = (
+/obj/machinery/atmospherics/pipe/simple,
+/obj/structure/grille,
+/obj/machinery/meter,
+/turf/closed/wall/r_wall,
+/area/engineering/atmos)
+"ckc" = (
+/obj/machinery/atmospherics/pipe/simple,
+/obj/structure/grille,
+/obj/machinery/meter{
+ name = "Mixed Air Tank In"
+ },
+/turf/closed/wall/r_wall,
+/area/engineering/atmos)
+"ckd" = (
+/obj/machinery/atmospherics/pipe/simple,
+/obj/structure/grille,
+/obj/machinery/meter{
+ name = "Mixed Air Tank Out"
+ },
+/turf/closed/wall/r_wall,
+/area/engineering/atmos)
+"cke" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"ckf" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal/incinerator)
+"ckg" = (
+/obj/machinery/atmospherics/components/binary/valve,
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"ckh" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "atmospherics mix pump"
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"ckj" = (
+/obj/item/cigbutt,
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"ckl" = (
+/obj/machinery/portable_atmospherics/canister,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"ckm" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "Biohazard Disposals";
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cko" = (
+/obj/structure/disposalpipe/segment,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/starboard/aft)
+"ckp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ckr" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cks" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"ckt" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/solars/starboard/aft";
+ dir = 8;
+ name = "Starboard Quarter Solar APC";
+ pixel_x = -25;
+ pixel_y = 3
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"cku" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/smes,
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"ckv" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"ckw" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"ckx" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cky" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"ckz" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"ckA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"ckB" = (
+/obj/machinery/field/generator,
+/turf/open/floor/plating,
+/area/engineering/main)
+"ckC" = (
+/obj/machinery/power/emitter,
+/turf/open/floor/plating,
+/area/engineering/main)
+"ckD" = (
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/item/stack/cable_coil,
+/obj/item/stack/cable_coil,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/item/storage/toolbox/syndicate,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"ckF" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"ckG" = (
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/obj/structure/closet/crate/solarpanel_small,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"ckH" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"ckI" = (
+/obj/machinery/suit_storage_unit/engine,
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"ckK" = (
+/obj/structure/tank_dispenser,
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"ckL" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/command/heads_quarters/ce)
+"ckM" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"ckN" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/research/glass{
+ name = "Test Chamber";
+ req_access_txt = "47"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/science/misc_lab)
+"ckO" = (
+/obj/machinery/door/airlock/command/glass{
+ name = "Chief Engineer";
+ req_access_txt = "56"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"ckQ" = (
+/obj/structure/closet/cardboard,
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"ckS" = (
+/obj/structure/closet/cardboard,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ckT" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"ckU" = (
+/obj/machinery/air_sensor/atmos/nitrogen_tank,
+/turf/open/floor/engine/n2,
+/area/engineering/atmos)
+"ckV" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input{
+ dir = 1
+ },
+/turf/open/floor/engine/n2,
+/area/engineering/atmos)
+"ckW" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output{
+ dir = 1
+ },
+/turf/open/floor/engine/n2,
+/area/engineering/atmos)
+"ckX" = (
+/obj/machinery/air_sensor/atmos/oxygen_tank,
+/turf/open/floor/engine/o2,
+/area/engineering/atmos)
+"ckY" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{
+ dir = 1
+ },
+/turf/open/floor/engine/o2,
+/area/engineering/atmos)
+"ckZ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{
+ dir = 1
+ },
+/turf/open/floor/engine/o2,
+/area/engineering/atmos)
+"cla" = (
+/obj/machinery/air_sensor/atmos/air_tank,
+/turf/open/floor/engine/air,
+/area/engineering/atmos)
+"clb" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input{
+ dir = 1
+ },
+/turf/open/floor/engine/air,
+/area/engineering/atmos)
+"clc" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{
+ dir = 1
+ },
+/turf/open/floor/engine/air,
+/area/engineering/atmos)
+"cld" = (
+/obj/effect/landmark/blobstart,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "Mix to Incinerator"
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"cle" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"clf" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"clh" = (
+/obj/machinery/light/small,
+/obj/structure/extinguisher_cabinet{
+ pixel_y = -31
+ },
+/obj/machinery/computer/turbine_computer{
+ dir = 1;
+ id = "incineratorturbine"
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"cli" = (
+/obj/machinery/button/door/incinerator_vent_atmos_aux{
+ pixel_x = 6;
+ pixel_y = -24
+ },
+/obj/machinery/button/door/incinerator_vent_atmos_main{
+ pixel_x = -6;
+ pixel_y = -24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"clj" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"clk" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cll" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"clm" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/manifold/general/hidden{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cln" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"clo" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/machinery/meter,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"clp" = (
+/obj/machinery/door/airlock/external{
+ name = "Solar Maintenance";
+ req_access_txt = "10; 13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"clq" = (
+/obj/structure/rack,
+/obj/structure/disposalpipe/segment,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"clr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cls" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"clt" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"clu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"clv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/starboard/aft)
+"clw" = (
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"clx" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"cly" = (
+/obj/structure/chair/stool,
+/obj/machinery/camera{
+ c_tag = "Aft Starboard Solar Control";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"clz" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"clA" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"clB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"clC" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"clD" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"clE" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/smes/engineering,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"clF" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"clG" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/smes/engineering,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"clJ" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/engineering/main)
+"clM" = (
+/obj/structure/table,
+/obj/item/clothing/glasses/meson,
+/obj/item/clothing/glasses/meson,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/item/storage/toolbox/syndicate,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"clN" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"clO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/closet/wardrobe/grey,
+/obj/machinery/camera{
+ c_tag = "Dorms East - Holodeck";
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"clQ" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"clR" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"clT" = (
+/obj/effect/turf_decal/vg_decals/atmos/nitrogen,
+/turf/open/floor/engine/n2,
+/area/engineering/atmos)
+"clU" = (
+/turf/open/floor/engine/n2,
+/area/engineering/atmos)
+"clV" = (
+/obj/effect/turf_decal/vg_decals/atmos/oxygen,
+/turf/open/floor/engine/o2,
+/area/engineering/atmos)
+"clW" = (
+/turf/open/floor/engine/o2,
+/area/engineering/atmos)
+"clY" = (
+/obj/effect/landmark/xeno_spawn,
+/turf/open/floor/engine/air,
+/area/engineering/atmos)
+"clZ" = (
+/turf/open/floor/engine/air,
+/area/engineering/atmos)
+"cmb" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"cmd" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal/incinerator)
+"cme" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal/incinerator)
+"cmf" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/binary/valve{
+ dir = 4;
+ name = "Incinerator to Space"
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"cmg" = (
+/obj/machinery/atmospherics/pipe/simple/general/hidden{
+ dir = 9
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cmh" = (
+/obj/structure/disposalpipe/junction/yjunction{
+ dir = 2
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cmi" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cmj" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cmk" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cmo" = (
+/obj/structure/loot_pile/maint,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cmq" = (
+/obj/effect/landmark/xeno_spawn,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/starboard/aft)
+"cmr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/starboard/aft)
+"cmt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cmu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/starboard/aft)
+"cmv" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"cmw" = (
+/obj/machinery/power/solar_control{
+ dir = 1;
+ id = "starboardsolar";
+ name = "Starboard Quarter Solar Control"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"cmx" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = -32
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"cmy" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cmz" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cmA" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cmB" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cmC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/main)
+"cmD" = (
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=2";
+ freq = 1400;
+ location = "Engineering"
+ },
+/obj/structure/plasticflaps/opaque,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/engineering/main)
+"cmF" = (
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cmG" = (
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cmL" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cmN" = (
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 32
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cmP" = (
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/obj/machinery/vending/snack/random,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"cmU" = (
+/obj/machinery/light/small,
+/obj/machinery/atmospherics/miner/nitrogen,
+/turf/open/floor/engine/n2,
+/area/engineering/atmos)
+"cmV" = (
+/obj/machinery/light/small,
+/obj/machinery/atmospherics/miner/oxygen,
+/turf/open/floor/engine/o2,
+/area/engineering/atmos)
+"cmW" = (
+/obj/machinery/light/small,
+/turf/open/floor/engine/air,
+/area/engineering/atmos)
+"cmX" = (
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/construction)
+"cmY" = (
+/obj/machinery/atmospherics/components/binary/pump/on,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/structure/sign/warning/fire{
+ pixel_x = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/airlock_sensor/incinerator_atmos{
+ pixel_x = 8;
+ pixel_y = 24
+ },
+/turf/open/floor/engine,
+/area/maintenance/disposal/incinerator)
+"cmZ" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 1
+ },
+/obj/structure/sign/warning/fire{
+ pixel_x = 32
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/maintenance/disposal/incinerator)
+"cna" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/maintenance/disposal/incinerator)
+"cnb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cnc" = (
+/obj/machinery/light/small,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cnd" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cne" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cnf" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cng" = (
+/obj/machinery/light/small,
+/obj/structure/table,
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/clipboard,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cnj" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"cnk" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "Solar Maintenance";
+ req_access_txt = "10; 13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"cnl" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/port/aft)
+"cnm" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cnn" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cnp" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/camera{
+ c_tag = "SMES Room";
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cnr" = (
+/obj/machinery/door/window/southleft{
+ name = "Engineering Delivery";
+ req_access_txt = "10"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/engineering/main)
+"cnt" = (
+/obj/machinery/camera{
+ c_tag = "Engineering West";
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/landmark/start/station_engineer,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cnv" = (
+/obj/machinery/holopad,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cny" = (
+/obj/effect/landmark/start/station_engineer,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cnA" = (
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/electronics/apc,
+/obj/item/electronics/apc,
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/stock_parts/cell/high/plus,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/item/rcl/pre_loaded,
+/obj/item/rcl/pre_loaded,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cnB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/construction)
+"cnC" = (
+/obj/effect/mapping_helpers/airlock/locked,
+/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/maintenance/disposal/incinerator)
+"cnD" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/aft)
+"cnE" = (
+/obj/structure/disposalpipe/junction/flip{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cnF" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ name = "Waste Out"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cnG" = (
+/obj/structure/closet/emcloset,
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cnH" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cnJ" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cnK" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"cnL" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cnM" = (
+/obj/machinery/door/window{
+ name = "SMES Chamber";
+ req_access_txt = "32"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cnN" = (
+/obj/structure/window/reinforced,
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cnO" = (
+/obj/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cnP" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/structure/window/reinforced,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cnQ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cnR" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/engine_smes)
+"cnS" = (
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/camera{
+ c_tag = "SMES Access";
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cnU" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/sign/warning/electricshock{
+ pixel_x = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/loading_area,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cnX" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cnY" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cnZ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"coa" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cob" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"coh" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"con" = (
+/turf/open/pool,
+/area/commons/fitness/pool)
+"cop" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{
+ dir = 1
+ },
+/turf/open/floor/engine/vacuum,
+/area/maintenance/disposal/incinerator)
+"coq" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/incinerator_output{
+ dir = 1
+ },
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = -32
+ },
+/turf/open/floor/engine/vacuum,
+/area/maintenance/disposal/incinerator)
+"cor" = (
+/obj/machinery/igniter{
+ id = "Incinerator"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/air_sensor{
+ pixel_x = -32;
+ pixel_y = -32
+ },
+/turf/open/floor/engine/vacuum,
+/area/maintenance/disposal/incinerator)
+"cos" = (
+/obj/machinery/door/poddoor/incinerator_atmos_aux,
+/turf/open/floor/engine/vacuum,
+/area/maintenance/disposal/incinerator)
+"cot" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cou" = (
+/obj/machinery/space_heater,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cov" = (
+/obj/machinery/power/port_gen/pacman,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cow" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cox" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"coy" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"coz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"coA" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"coB" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/engineering{
+ name = "SMES Room";
+ req_access_txt = "32"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"coC" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"coH" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"coI" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"coJ" = (
+/obj/machinery/door/firedoor,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"coL" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"coT" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/obj/machinery/meter,
+/turf/open/floor/engine,
+/area/science/misc_lab)
+"coZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/structure/closet/secure_closet/engineering_electrical,
+/obj/item/storage/toolbox/artistic{
+ icon_state = "yellow";
+ item_state = "toolbox_yellow";
+ name = "Cable Toolbox";
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cpa" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/structure/closet/secure_closet/engineering_welding,
+/obj/item/clothing/glasses/welding,
+/obj/item/clothing/glasses/welding,
+/obj/item/clothing/glasses/welding,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cpb" = (
+/obj/structure/closet/emcloset,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/engineering/main)
+"cpe" = (
+/obj/docking_port/stationary/random{
+ dir = 8;
+ id = "pod_lavaland2";
+ name = "lavaland"
+ },
+/turf/open/space,
+/area/space/nearstation)
+"cph" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/space,
+/area/space/nearstation)
+"cpi" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/starboard/aft)
+"cpj" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/structure/chair/office/light,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cpk" = (
+/obj/effect/turf_decal/stripes/corner,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cpl" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cpm" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cpn" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cpo" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cpp" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cpq" = (
+/obj/structure/sign/warning/electricshock{
+ pixel_x = -32
+ },
+/obj/machinery/computer/rdconsole/production{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cps" = (
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cpC" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/command/bridge)
+"cpE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cpF" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/space_cops{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"cpG" = (
+/obj/structure/table,
+/obj/item/clothing/gloves/color/latex,
+/obj/item/clothing/gloves/color/latex,
+/obj/item/clothing/suit/apron/surgical,
+/obj/item/clothing/suit/apron/surgical,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"cpI" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Escape Pod Four"
+ },
+/turf/open/floor/plating,
+/area/engineering/main)
+"cpN" = (
+/obj/machinery/power/turbine{
+ luminosity = 2
+ },
+/obj/structure/cable/yellow,
+/turf/open/floor/engine/vacuum,
+/area/maintenance/disposal/incinerator)
+"cpO" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/components/binary/pump/on{
+ name = "Incinerator Output Pump"
+ },
+/turf/open/space,
+/area/maintenance/disposal/incinerator)
+"cpP" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/open/space,
+/area/space/nearstation)
+"cpQ" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/space,
+/area/maintenance/disposal/incinerator)
+"cpR" = (
+/obj/machinery/door/airlock/abandoned{
+ name = "Observatory Access"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cpS" = (
+/obj/structure/cable,
+/obj/machinery/power/apc{
+ areastring = "/area/engineering/engine_smes";
+ name = "SMES room APC";
+ pixel_y = -24
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/structure/table,
+/obj/item/stock_parts/cell/high/plus,
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cpT" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -35
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/structure/closet/secure_closet/engineering_electrical,
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"cpV" = (
+/obj/machinery/camera{
+ c_tag = "Engineering Storage";
+ dir = 4
+ },
+/obj/machinery/rnd/production/protolathe/department/engineering,
+/obj/structure/sign/poster/contraband/power{
+ desc = "Lord Singuloth must feed. Annoyingly, it's really easy for people to sabotage containment and let Lord Singuloth eat the entire station.. For this reason, Nanotrasen prefers Supermatter reactors.";
+ pixel_x = -32;
+ poster_item_desc = "This poster depicts Lord Singuloth. Nanotrasen doesn't approve. Nanotrasen wants Supermatter over Singularities, as they are usually much safer."
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cpW" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cpX" = (
+/obj/structure/table,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/stack/rods/fifty,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cpY" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cqn" = (
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cqo" = (
+/obj/structure/sign/warning/pods{
+ pixel_x = 32
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cqp" = (
+/obj/machinery/camera{
+ c_tag = "Engineering Escape Pod";
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engineering/main)
+"cqq" = (
+/obj/docking_port/stationary{
+ dir = 8;
+ dwidth = 1;
+ height = 4;
+ name = "escape pod loader";
+ roundstart_template = /datum/map_template/shuttle/escape_pod/default;
+ width = 3
+ },
+/turf/open/space/basic,
+/area/space)
+"cqr" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"cqs" = (
+/obj/structure/sign/warning/fire,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal/incinerator)
+"cqt" = (
+/obj/machinery/door/poddoor/incinerator_atmos_main,
+/turf/open/floor/engine/vacuum,
+/area/maintenance/disposal/incinerator)
+"cqv" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cqw" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/rnd/production/circuit_imprinter,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cqx" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cqy" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cqz" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cqJ" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/space,
+/area/solars/starboard/aft)
+"cqK" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cqL" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cqM" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"cqN" = (
+/obj/structure/table,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/plasteel{
+ amount = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cqO" = (
+/obj/structure/table,
+/obj/item/stack/cable_coil{
+ pixel_x = 3;
+ pixel_y = -7
+ },
+/obj/item/stack/cable_coil,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cqP" = (
+/obj/structure/table,
+/obj/item/folder/yellow,
+/obj/item/clothing/ears/earmuffs{
+ pixel_x = -3;
+ pixel_y = -2
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cqQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"cqR" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cqY" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/main)
+"crh" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/engineering/main)
+"cri" = (
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"crk" = (
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/starboard/aft)
+"crl" = (
+/obj/structure/table,
+/obj/item/taperecorder,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"crm" = (
+/obj/structure/table,
+/obj/item/storage/box/matches,
+/obj/item/storage/fancy/cigarettes,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"crn" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/gravity_generator)
+"cro" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/main)
+"crp" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/main)
+"crq" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/main)
+"crr" = (
+/obj/structure/cable,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/main)
+"crw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cry" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"crz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"crA" = (
+/obj/structure/transit_tube_pod,
+/obj/structure/transit_tube/station/reverse/flipped{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/engineering/main)
+"crB" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/starboard/aft)
+"crC" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/starboard/aft)
+"crD" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/starboard/aft)
+"crE" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/starboard/aft)
+"crF" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/starboard/aft)
+"crG" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/starboard/aft)
+"crP" = (
+/obj/machinery/light,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"crR" = (
+/obj/structure/transit_tube,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/engineering/main)
+"crW" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/engineering/main)
+"crX" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = 32
+ },
+/obj/structure/closet/emcloset/anchored,
+/turf/open/floor/plating,
+/area/engineering/main)
+"crY" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/transit_tube,
+/turf/open/floor/plating,
+/area/engineering/main)
+"csc" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/open/space,
+/area/maintenance/aft)
+"csg" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "Solar Maintenance";
+ req_access_txt = "10; 13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"csi" = (
+/obj/structure/transit_tube/curved/flipped{
+ dir = 1
+ },
+/turf/open/space,
+/area/space/nearstation)
+"csl" = (
+/obj/structure/transit_tube/curved{
+ dir = 4
+ },
+/turf/open/space,
+/area/space/nearstation)
+"csm" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on{
+ dir = 1
+ },
+/turf/open/floor/plating/airless,
+/area/maintenance/aft)
+"csn" = (
+/obj/structure/transit_tube/horizontal,
+/turf/open/space,
+/area/space/nearstation)
+"cso" = (
+/obj/structure/lattice,
+/obj/structure/transit_tube/crossing/horizontal,
+/turf/open/space,
+/area/space/nearstation)
+"csq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/machinery/computer/security/telescreen/turbine{
+ dir = 1;
+ pixel_y = -30
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"csr" = (
+/obj/machinery/button/ignition{
+ id = "Incinerator";
+ pixel_x = -6;
+ pixel_y = -24
+ },
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 4
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"csy" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"csD" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"csM" = (
+/obj/structure/lattice,
+/obj/structure/transit_tube/crossing/horizontal,
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
+/turf/open/space,
+/area/space/nearstation)
+"csN" = (
+/obj/structure/transit_tube/horizontal,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"csO" = (
+/obj/structure/window/reinforced/fulltile,
+/obj/structure/transit_tube/horizontal,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"csT" = (
+/obj/structure/table/glass,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/item/storage/book/bible{
+ pixel_y = -1
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"csU" = (
+/obj/structure/transit_tube/station/reverse,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"csV" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"csW" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"csX" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"csZ" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/space,
+/area/solars/starboard/aft)
+"cta" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "MiniSat External Access";
+ req_access_txt = "65;13"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctb" = (
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctc" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctd" = (
+/obj/structure/lattice/catwalk,
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
+/turf/open/space,
+/area/space/nearstation)
+"ctg" = (
+/obj/structure/closet/emcloset,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cth" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cti" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/sign/warning/securearea{
+ pixel_y = -32
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctj" = (
+/obj/machinery/camera{
+ c_tag = "MiniSat Pod Access";
+ dir = 1;
+ network = list("minisat");
+ start_active = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctk" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cto" = (
+/obj/machinery/door/airlock/hatch{
+ name = "MiniSat Foyer";
+ req_one_access_txt = "65"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctp" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on{
+ dir = 8
+ },
+/turf/open/floor/plating/airless,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctq" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/dorms)
+"ctr" = (
+/obj/structure/table,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/item/folder{
+ pixel_x = 3
+ },
+/obj/item/phone{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/pen,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cts" = (
+/obj/structure/rack,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/item/radio/off{
+ pixel_y = 4
+ },
+/obj/item/screwdriver{
+ pixel_y = 10
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctt" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctu" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctv" = (
+/turf/closed/wall/r_wall,
+/area/space/nearstation)
+"ctw" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/obj/machinery/computer/station_alert{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctx" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/turf/open/floor/plasteel/grimy,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cty" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctz" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "teledoor";
+ name = "MiniSat Teleport Access"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctB" = (
+/obj/structure/cable,
+/obj/machinery/power/tracker,
+/turf/open/floor/plasteel/airless/solarpanel,
+/area/solars/starboard/aft)
+"ctE" = (
+/obj/machinery/teleport/hub,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctF" = (
+/obj/machinery/button/door{
+ id = "teledoor";
+ name = "MiniSat Teleport Shutters Control";
+ pixel_y = 25;
+ req_access_txt = "17;65"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctG" = (
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctH" = (
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_x = -31
+ },
+/obj/machinery/computer/monitor{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/grimy,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/landmark/start/cyborg,
+/obj/machinery/holopad/secure,
+/turf/open/floor/plasteel/grimy,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctK" = (
+/obj/machinery/door/airlock/hatch{
+ name = "MiniSat Teleporter";
+ req_access_txt = "17;65"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctL" = (
+/obj/machinery/teleport/station,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctM" = (
+/obj/machinery/bluespace_beacon,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/landmark/start/cyborg,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctP" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctQ" = (
+/obj/structure/table,
+/obj/machinery/microwave{
+ pixel_y = 4
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctR" = (
+/obj/structure/sign/warning/radiation/rad_area,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/main)
+"ctS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctT" = (
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctV" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/ai_monitored/turret_protected/aisat_interior";
+ dir = 4;
+ name = "MiniSat Foyer APC";
+ pixel_x = 24
+ },
+/obj/structure/chair,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctW" = (
+/obj/machinery/computer/teleporter{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctX" = (
+/obj/machinery/camera{
+ c_tag = "MiniSat Teleporter";
+ dir = 1;
+ network = list("minisat");
+ start_active = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"ctY" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"ctZ" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cua" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cub" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuc" = (
+/obj/structure/rack,
+/obj/machinery/status_display/evac{
+ pixel_y = -32
+ },
+/obj/item/storage/box/donkpockets,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cud" = (
+/obj/machinery/turretid{
+ control_area = "/area/ai_monitored/turret_protected/aisat_interior";
+ name = "Antechamber Turret Control";
+ pixel_y = -24;
+ req_access = null;
+ req_access_txt = "65"
+ },
+/obj/machinery/light/small,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/camera/motion{
+ c_tag = "MiniSat Foyer";
+ dir = 1;
+ network = list("minisat")
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cue" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuf" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/aisat/service)
+"cug" = (
+/obj/machinery/status_display/ai{
+ pixel_y = -32
+ },
+/obj/structure/table,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuh" = (
+/obj/structure/rack,
+/obj/item/wrench,
+/obj/item/crowbar/red,
+/obj/item/clothing/head/welding,
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cui" = (
+/obj/machinery/atmospherics/components/unary/tank/air,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cul" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/hatch{
+ name = "MiniSat Antechamber";
+ req_one_access_txt = "65"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cum" = (
+/obj/machinery/recharge_station,
+/obj/effect/landmark/start/cyborg,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/service)
+"cun" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "Incinerator to MiniSat"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuo" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cup" = (
+/obj/structure/showcase/cyborg/old{
+ dir = 8;
+ pixel_x = 9;
+ pixel_y = 2
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuq" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "Air Out"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cur" = (
+/obj/structure/showcase/cyborg/old{
+ dir = 4;
+ pixel_x = -9;
+ pixel_y = 2
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cus" = (
+/obj/structure/showcase/cyborg/old{
+ dir = 8;
+ pixel_x = 9;
+ pixel_y = 2
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuu" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuv" = (
+/obj/structure/showcase/cyborg/old{
+ dir = 4;
+ pixel_x = -9;
+ pixel_y = 2
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = 30
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/service)
+"cuw" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/service)
+"cux" = (
+/obj/structure/table,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/clothing/head/welding,
+/obj/item/stack/sheet/mineral/plasma{
+ amount = 35
+ },
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/service)
+"cuy" = (
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuA" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "MiniSat Atmospherics";
+ dir = 4;
+ network = list("minisat");
+ start_active = 1
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/obj/machinery/space_heater,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuB" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = 28
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuC" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/landmark/start/cyborg,
+/obj/machinery/holopad/secure,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuD" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "MiniSat Antechamber";
+ dir = 4;
+ network = list("minisat");
+ start_active = 1
+ },
+/obj/machinery/turretid{
+ control_area = "/area/ai_monitored/turret_protected/aisat/atmos";
+ name = "Atmospherics Turret Control";
+ pixel_x = -27;
+ req_access = null;
+ req_access_txt = "65"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuF" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/turretid{
+ control_area = "/area/ai_monitored/turret_protected/aisat/service";
+ name = "Service Bay Turret Control";
+ pixel_x = 27;
+ req_access = null;
+ req_access_txt = "65"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuG" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/landmark/start/cyborg,
+/obj/machinery/holopad/secure,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuH" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = -28
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/service)
+"cuI" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/service)
+"cuJ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/holopad/secure,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/service)
+"cuK" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "MiniSat Service Bay";
+ dir = 8;
+ network = list("minisat");
+ start_active = 1
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/rack,
+/obj/item/storage/toolbox/electrical{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/storage/toolbox/mechanical,
+/obj/item/multitool,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/service)
+"cuL" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuM" = (
+/obj/machinery/power/apc{
+ areastring = "/area/ai_monitored/turret_protected/aisat/atmos";
+ dir = 8;
+ name = "MiniSat Atmospherics APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuN" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuO" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/ai_slipper{
+ uses = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuP" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuQ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/hatch{
+ name = "MiniSat Atmospherics";
+ req_one_access_txt = "65"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuR" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuS" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/ai_slipper{
+ uses = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/mob/living/simple_animal/bot/secbot/pingsky,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuT" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/service)
+"cuU" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/hatch{
+ name = "MiniSat Service Bay";
+ req_one_access_txt = "65"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cuV" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/service)
+"cuW" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/ai_slipper{
+ uses = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/service)
+"cuX" = (
+/obj/machinery/power/apc{
+ areastring = "/area/ai_monitored/turret_protected/aisat/service";
+ dir = 4;
+ name = "MiniSat Service Bay APC";
+ pixel_x = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/port_gen/pacman,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/service)
+"cuY" = (
+/obj/machinery/porta_turret/ai{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cuZ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/mob/living/simple_animal/bot/floorbot,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/atmos)
+"cva" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/ai)
+"cvb" = (
+/obj/machinery/status_display/ai,
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/ai)
+"cvc" = (
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/machinery/porta_turret/ai{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ broadcasting = 1;
+ frequency = 1447;
+ listening = 0;
+ name = "Station Intercom (AI Private)";
+ pixel_y = -29
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cvd" = (
+/obj/machinery/porta_turret/ai{
+ dir = 4
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = 32
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cve" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/machinery/turretid{
+ control_area = "/area/ai_monitored/turret_protected/aisat/hallway";
+ name = "Chamber Hallway Turret Control";
+ pixel_x = 32;
+ pixel_y = -24;
+ req_access = null;
+ req_access_txt = "65"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
+"cvf" = (
+/obj/machinery/status_display/evac,
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/ai)
+"cvg" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/mob/living/simple_animal/bot/cleanbot,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/service)
+"cvh" = (
+/obj/machinery/porta_turret/ai{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/service)
+"cvi" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/service)
+"cvj" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvl" = (
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cvm" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "MiniSat Maintenance";
+ req_access_txt = "65"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvo" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/hatch{
+ name = "MiniSat Chamber Hallway";
+ req_one_access_txt = "65"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvp" = (
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/ai)
+"cvq" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "MiniSat Maintenance";
+ req_access_txt = "65"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvr" = (
+/obj/machinery/porta_turret/ai{
+ dir = 4
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/ai)
+"cvs" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvt" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvu" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvv" = (
+/turf/closed/wall,
+/area/ai_monitored/turret_protected/ai)
+"cvw" = (
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvx" = (
+/obj/effect/landmark/start/ai/secondary,
+/obj/item/radio/intercom{
+ freerange = 1;
+ listening = 0;
+ name = "Custom Channel";
+ pixel_y = 28
+ },
+/obj/item/radio/intercom{
+ freerange = 1;
+ name = "Common Channel";
+ pixel_x = -27;
+ pixel_y = 5
+ },
+/obj/item/radio/intercom{
+ freerange = 1;
+ frequency = 1447;
+ name = "Private Channel";
+ pixel_y = -25
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/ai)
+"cvy" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvz" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvA" = (
+/obj/effect/landmark/start/ai/secondary,
+/obj/item/radio/intercom{
+ freerange = 1;
+ listening = 0;
+ name = "Custom Channel";
+ pixel_y = 28
+ },
+/obj/item/radio/intercom{
+ freerange = 1;
+ name = "Common Channel";
+ pixel_x = 27;
+ pixel_y = 5
+ },
+/obj/item/radio/intercom{
+ freerange = 1;
+ frequency = 1447;
+ name = "Private Channel";
+ pixel_y = -25
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/ai)
+"cvB" = (
+/obj/structure/rack,
+/obj/item/crowbar/red,
+/obj/item/wrench,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvC" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvD" = (
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvE" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvF" = (
+/obj/structure/lattice,
+/obj/machinery/camera{
+ c_tag = "MiniSat External NorthWest";
+ dir = 8;
+ network = list("minisat");
+ start_active = 1
+ },
+/turf/open/space,
+/area/ai_monitored/turret_protected/aisat)
+"cvG" = (
+/obj/machinery/porta_turret/ai{
+ dir = 4;
+ installation = /obj/item/gun/energy/e_gun
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvH" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvI" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvJ" = (
+/obj/machinery/porta_turret/ai{
+ dir = 4;
+ installation = /obj/item/gun/energy/e_gun
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvK" = (
+/obj/structure/lattice,
+/obj/machinery/camera{
+ c_tag = "MiniSat External NorthEast";
+ dir = 4;
+ network = list("minisat");
+ start_active = 1
+ },
+/turf/open/space,
+/area/ai_monitored/turret_protected/aisat)
+"cvL" = (
+/obj/structure/sign/warning/securearea{
+ pixel_x = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvM" = (
+/obj/machinery/camera/motion{
+ c_tag = "MiniSat Core Hallway";
+ dir = 4;
+ network = list("aicore")
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvN" = (
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvO" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cvP" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "MiniSat Maintenance";
+ req_access_txt = "65"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvQ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvR" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/holopad/secure,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvU" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "MiniSat Maintenance";
+ req_access_txt = "65"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvV" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvW" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvX" = (
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvY" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cvZ" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cwa" = (
+/obj/structure/cable,
+/obj/machinery/power/apc{
+ areastring = "/area/ai_monitored/turret_protected/aisat/hallway";
+ dir = 4;
+ name = "MiniSat Chamber Hallway APC";
+ pixel_x = 24
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cwb" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cwc" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cwd" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/item/radio/intercom{
+ broadcasting = 1;
+ frequency = 1447;
+ listening = 0;
+ name = "Station Intercom (AI Private)";
+ pixel_x = -28;
+ pixel_y = -29
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cwe" = (
+/obj/structure/sign/warning/securearea,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/ai)
+"cwf" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/hatch{
+ name = "MiniSat Chamber Observation";
+ req_one_access_txt = "65"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwg" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwh" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwi" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwj" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwk" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwl" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwm" = (
+/obj/structure/table/reinforced,
+/obj/item/folder/white,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwo" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwp" = (
+/obj/structure/chair/office/dark,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwq" = (
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cwr" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/ai)
+"cws" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/ai)
+"cwt" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/command/glass{
+ name = "AI Core";
+ req_access_txt = "65"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwu" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/ai_slipper{
+ uses = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwv" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/status_display/evac{
+ pixel_x = -32
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/ai)
+"cww" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwx" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwz" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwA" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/machinery/holopad/secure,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwB" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/status_display/ai{
+ pixel_x = 32
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/ai)
+"cwC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cwD" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/turretid{
+ name = "AI Chamber turret control";
+ pixel_x = 5;
+ pixel_y = -24
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/ai)
+"cwE" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/ai_monitored/turret_protected/ai";
+ name = "AI Chamber APC";
+ pixel_y = -24
+ },
+/obj/machinery/flasher{
+ id = "AI";
+ pixel_x = -11;
+ pixel_y = -24
+ },
+/obj/machinery/camera/motion{
+ c_tag = "MiniSat AI Chamber North";
+ dir = 1;
+ network = list("aicore")
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/ai)
+"cwH" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"cwS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"cwT" = (
+/obj/machinery/camera{
+ c_tag = "Arrivals Escape Pod 2";
+ dir = 8
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"cwV" = (
+/obj/docking_port/stationary/random{
+ dir = 8;
+ id = "pod_lavaland1";
+ name = "lavaland"
+ },
+/turf/open/space,
+/area/space/nearstation)
+"cxn" = (
+/obj/structure/lattice,
+/obj/effect/landmark/carpspawn,
+/turf/open/space,
+/area/space/nearstation)
+"cxE" = (
+/obj/docking_port/stationary{
+ dir = 8;
+ dwidth = 2;
+ height = 13;
+ id = "ferry_home";
+ name = "port bay 2";
+ width = 5
+ },
+/turf/open/space/basic,
+/area/space)
+"cxN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/airlock/external{
+ name = "Solar Maintenance";
+ req_access_txt = "10; 13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/fore)
+"cxP" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/dark,
+/area/security/processing)
+"cxY" = (
+/obj/machinery/camera{
+ c_tag = "Arrivals Escape Pod 1";
+ dir = 8
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"cya" = (
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"cyb" = (
+/obj/machinery/door/airlock/external{
+ name = "Escape Pod One"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"cyd" = (
+/obj/docking_port/stationary{
+ dir = 2;
+ dwidth = 11;
+ height = 22;
+ id = "whiteship_home";
+ name = "SS13: Auxiliary Dock, Station-Port";
+ width = 35
+ },
+/turf/open/space/basic,
+/area/space)
+"cyg" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/airlock/command{
+ name = "Command Tool Storage";
+ req_access_txt = "19"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"cyh" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "Security Escape Airlock";
+ req_access_txt = "2"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/hallway/secondary/exit)
+"cyl" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "Port Docking Bay 2"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"cyp" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Escape Airlock"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"cyr" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "Cargo Escape Airlock"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"cyu" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/airlock/external{
+ name = "Port Docking Bay 3"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"cyC" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "abandoned library";
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"cyD" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "Supply Dock Airlock";
+ req_access_txt = "31"
+ },
+/turf/open/floor/plating,
+/area/cargo/storage)
+"cyE" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cyG" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"cyK" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "Solar Maintenance";
+ req_access_txt = "10; 13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"cyL" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cyM" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/airlock/engineering{
+ name = "Engine Room";
+ req_access_txt = "10"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cyT" = (
+/obj/docking_port/stationary{
+ dir = 8;
+ dwidth = 5;
+ height = 7;
+ id = "supply_home";
+ name = "Cargo Bay";
+ width = 12
+ },
+/turf/open/space/basic,
+/area/space)
+"cyU" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ req_access_txt = "13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"czg" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "Escape Pod Four";
+ shuttledocked = 1
+ },
+/turf/open/floor/plating,
+/area/engineering/main)
+"czk" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ name = "MiniSat External Access";
+ req_access_txt = "65;13"
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat_interior)
+"czG" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"czH" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"czI" = (
+/obj/item/wrench,
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/space/nearstation)
+"czJ" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on{
+ dir = 1
+ },
+/turf/open/floor/plating/airless,
+/area/maintenance/disposal/incinerator)
+"czK" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/vacant_room/office)
+"czN" = (
+/obj/docking_port/stationary/random{
+ dir = 4;
+ id = "pod_lavaland4";
+ name = "lavaland"
+ },
+/turf/open/space,
+/area/space/nearstation)
+"czO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"czP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/security/prison/cells)
+"czQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"czR" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"czS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/starboard/aft)
+"czT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"czU" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"czW" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"czX" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"czY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"czZ" = (
+/obj/structure/chair,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cAa" = (
+/obj/structure/chair,
+/obj/item/storage/fancy/cigarettes,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cAb" = (
+/obj/structure/closet,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cAc" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/starboard/aft)
+"cAd" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cAe" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cAf" = (
+/obj/structure/disposaloutlet,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"cAg" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"cAh" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAi" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAy" = (
+/obj/structure/closet/secure_closet/freezer/kitchen/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"cAA" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAB" = (
+/obj/structure/table,
+/obj/machinery/microwave,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAC" = (
+/obj/structure/sink/kitchen{
+ dir = 8;
+ pixel_x = 11
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAD" = (
+/obj/structure/table,
+/obj/item/kitchen/knife,
+/obj/item/storage/box/donkpockets,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAE" = (
+/obj/structure/table/glass,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ pixel_x = 2
+ },
+/obj/item/reagent_containers/food/snacks/mint{
+ pixel_y = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAF" = (
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"cAG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/command/heads_quarters/hop";
+ name = "Head of Personnel APC";
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/central)
+"cAH" = (
+/obj/machinery/processor,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAI" = (
+/obj/machinery/conveyor_switch/oneway{
+ dir = 8;
+ id = "garbage";
+ name = "disposal conveyor"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"cAJ" = (
+/obj/structure/closet,
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"cAK" = (
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/landmark/start/janitor,
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"cAQ" = (
+/obj/structure/chair,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cAR" = (
+/obj/machinery/door/window{
+ dir = 1;
+ name = "AI Core Door";
+ req_access_txt = "16"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/ai)
+"cAS" = (
+/obj/effect/landmark/start/ai,
+/obj/item/radio/intercom{
+ freerange = 1;
+ name = "Common Channel";
+ pixel_x = -27;
+ pixel_y = -9
+ },
+/obj/item/radio/intercom{
+ freerange = 1;
+ listening = 0;
+ name = "Custom Channel";
+ pixel_y = -31
+ },
+/obj/item/radio/intercom{
+ freerange = 1;
+ frequency = 1447;
+ name = "Private Channel";
+ pixel_x = 27;
+ pixel_y = -9
+ },
+/obj/machinery/newscaster/security_unit{
+ pixel_x = -28;
+ pixel_y = -28
+ },
+/obj/machinery/requests_console{
+ department = "AI";
+ departmentType = 5;
+ pixel_x = 28;
+ pixel_y = -28
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/ai)
+"cAT" = (
+/obj/machinery/ai_slipper{
+ uses = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cAU" = (
+/obj/structure/lattice,
+/obj/machinery/camera{
+ c_tag = "MiniSat External SouthWest";
+ dir = 8;
+ network = list("minisat");
+ start_active = 1
+ },
+/turf/open/space,
+/area/ai_monitored/turret_protected/aisat)
+"cAV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/showcase/cyborg/old{
+ dir = 8;
+ pixel_x = 9;
+ pixel_y = 2
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cAW" = (
+/obj/structure/showcase/cyborg/old{
+ dir = 4;
+ pixel_x = -9;
+ pixel_y = 2
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cAX" = (
+/obj/structure/lattice,
+/obj/machinery/camera{
+ c_tag = "MiniSat External SouthEast";
+ dir = 4;
+ network = list("minisat");
+ start_active = 1
+ },
+/turf/open/space,
+/area/ai_monitored/turret_protected/aisat)
+"cAY" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/closed/wall,
+/area/ai_monitored/turret_protected/ai)
+"cAZ" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cBa" = (
+/obj/machinery/power/smes{
+ charge = 5e+006
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/ai)
+"cBb" = (
+/obj/machinery/camera/motion{
+ c_tag = "MiniSat AI Chamber South";
+ network = list("aicore")
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/ai)
+"cBc" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/machinery/ai_slipper{
+ uses = 10
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/ai)
+"cBd" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cBe" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai)
+"cBf" = (
+/obj/machinery/camera{
+ c_tag = "MiniSat External South";
+ network = list("minisat");
+ start_active = 1
+ },
+/turf/open/space,
+/area/ai_monitored/turret_protected/aisat)
+"cBg" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plating,
+/area/service/hydroponics)
+"cBi" = (
+/obj/effect/landmark/event_spawn,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"cBj" = (
+/obj/structure/table,
+/obj/item/folder/blue,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/ai_upload)
+"cBk" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"cBl" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/exit)
+"cBm" = (
+/obj/effect/landmark/event_spawn,
+/obj/structure/extinguisher_cabinet{
+ pixel_y = -30
+ },
+/obj/machinery/light,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"cBo" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"cBp" = (
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/bot_red,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"cBq" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"cBr" = (
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"cBt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/science/explab)
+"cBu" = (
+/obj/machinery/status_display/ai{
+ pixel_y = 32
+ },
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/rd)
+"cBv" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/supply)
+"cBw" = (
+/obj/machinery/door/firedoor,
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"cBx" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/science)
+"cBy" = (
+/obj/machinery/door/airlock{
+ name = "Custodial Closet";
+ req_access_txt = "26"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/service/janitor)
+"cBz" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/engine,
+/area/science/xenobiology)
+"cBA" = (
+/obj/machinery/button/massdriver{
+ id = "toxinsdriver";
+ pixel_y = 24
+ },
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"cBB" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"cBC" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/engineering/storage/tech)
+"cBD" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/loot_pile/maint,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"cBE" = (
+/obj/effect/landmark/event_spawn,
+/obj/machinery/air_sensor/atmos/toxins_mixing_tank,
+/turf/open/floor/engine/vacuum,
+/area/science/mixing)
+"cBF" = (
+/obj/effect/landmark/event_spawn,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cBH" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/aft)
+"cBI" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/checkpoint/engineering)
+"cBJ" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cBK" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -35
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/tcommsat/computer)
+"cBL" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cBM" = (
+/obj/structure/table/reinforced,
+/obj/machinery/cell_charger,
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/rcl/pre_loaded,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"cBN" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cBO" = (
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cBP" = (
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/vg_decals/atmos/air,
+/turf/open/floor/engine/air,
+/area/engineering/atmos)
+"cBS" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/turret_protected/aisat/hallway)
+"cBT" = (
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cBZ" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/machinery/disposal/bin,
+/turf/open/floor/carpet/black,
+/area/service/chapel/office)
+"cCb" = (
+/obj/structure/table,
+/obj/item/stack/cable_coil{
+ amount = 5
+ },
+/obj/item/flashlight,
+/turf/open/floor/plating,
+/area/construction)
+"cCc" = (
+/obj/structure/rack,
+/obj/item/clothing/suit/hazardvest,
+/turf/open/floor/plating,
+/area/construction)
+"cCd" = (
+/turf/open/floor/plasteel/dark,
+/area/construction)
+"cCe" = (
+/obj/structure/closet/crate,
+/turf/open/floor/plating,
+/area/construction)
+"cCf" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/construction)
+"cCi" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/vacant_room/office/b)
+"cCj" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/security/detectives_office)
+"cCk" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/security/detectives_office)
+"cCn" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/warehouse)
+"cCo" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"cCp" = (
+/obj/machinery/light_switch{
+ pixel_y = -25
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"cCq" = (
+/obj/machinery/deepfryer,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"cCr" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"cCs" = (
+/obj/structure/closet/emcloset,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"cCt" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
+ },
+/obj/item/poster/random_official,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cCB" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cCC" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cCD" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cCE" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"cCF" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"cCG" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 10
+ },
+/turf/open/space,
+/area/space/nearstation)
+"cCH" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/space,
+/area/space/nearstation)
+"cCI" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/space,
+/area/space/nearstation)
+"cCJ" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/space,
+/area/space/nearstation)
+"cCP" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 5
+ },
+/turf/open/space,
+/area/space/nearstation)
+"cCQ" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/space,
+/area/space/nearstation)
+"cCS" = (
+/obj/structure/lattice,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/atmos)
+"cCT" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/closet/firecloset,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cCY" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cDl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/vending/tool,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cDm" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/vending/engivend,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cDs" = (
+/obj/item/kirbyplants/random,
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/port/fore)
+"cDB" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/landmark/start/station_engineer,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cDJ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cDK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cDN" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/main)
+"cDY" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cDZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/closet/radiation,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cEo" = (
+/obj/structure/closet/boxinggloves,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"cGf" = (
+/obj/structure/sign/poster/contraband/random{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"cHf" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 20
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = 3;
+ pixel_y = 20
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/item/reagent_containers/food/drinks/britcup,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"cHD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 2;
+ sortType = 14
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"cHE" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Mech Bay Maintenance";
+ req_access_txt = "29"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"cHF" = (
+/obj/machinery/button/door{
+ id = "Skynet_launch";
+ name = "Mech Bay Door Control";
+ pixel_x = 6;
+ pixel_y = 24
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/mechbay)
+"cHG" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/mechbay)
+"cHH" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/mechbay)
+"cHI" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/mechbay)
+"cHJ" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/mechbay)
+"cHK" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/research/glass{
+ name = "Robotics Lab";
+ req_access_txt = "29"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"cHL" = (
+/obj/machinery/mech_bay_recharge_port{
+ dir = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/mechbay)
+"cHM" = (
+/obj/structure/chair/office/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"cHN" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/circuit/red,
+/area/science/robotics/mechbay)
+"cHO" = (
+/obj/machinery/conveyor_switch/oneway{
+ id = "robo1"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"cHP" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/item/storage/belt/utility,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/sheet/glass{
+ amount = 20;
+ pixel_x = -3;
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"cHQ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/mechbay)
+"cHR" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "robo1"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"cHS" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/landmark/start/roboticist,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"cHT" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"cHU" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"cHV" = (
+/obj/machinery/conveyor_switch/oneway{
+ id = "robo2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"cHW" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/mecha_part_fabricator,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"cHX" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -1
+ },
+/obj/item/clothing/head/welding{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/obj/item/clothing/glasses/welding,
+/obj/item/multitool{
+ pixel_x = 3
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"cHZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"cIa" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"cIb" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "robo2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"cIc" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/bot,
+/obj/effect/landmark/start/cyborg,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"cId" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"cIe" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"cIf" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"cIg" = (
+/obj/docking_port/stationary{
+ dir = 8;
+ dwidth = 3;
+ height = 15;
+ id = "arrivals_stationary";
+ name = "arrivals";
+ roundstart_template = /datum/map_template/shuttle/arrival/box;
+ width = 7
+ },
+/turf/open/space/basic,
+/area/space)
+"cIh" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/airlock/external{
+ name = "Port Docking Bay 1"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"cIv" = (
+/obj/structure/sign/poster/official/cohiba_robusto_ad,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/lawoffice)
+"cJA" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"cJW" = (
+/obj/machinery/computer/gateway_control,
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"cKC" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"cLS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office/b)
+"cMC" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/computer/security/telescreen/engine{
+ dir = 8;
+ pixel_x = 30
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cMQ" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/solar{
+ id = "starboardsolar";
+ name = "Starboard Solar Array"
+ },
+/turf/open/floor/plasteel/airless/solarpanel,
+/area/solars/starboard/aft)
+"cNa" = (
+/obj/structure/cable,
+/obj/machinery/power/solar{
+ id = "starboardsolar";
+ name = "Starboard Solar Array"
+ },
+/turf/open/floor/plasteel/airless/solarpanel,
+/area/solars/starboard/aft)
+"cNd" = (
+/turf/open/space/basic,
+/area/space/station_ruins)
+"cNi" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "Prison Gate";
+ name = "prison blast door"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "Prison Gate";
+ name = "Prison Lockdown Shutters"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"cNE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/bar)
+"cNG" = (
+/turf/open/floor/plasteel/dark,
+/area/cargo/sorting)
+"cNI" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/cargo/sorting)
+"cNJ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/sorting)
+"cNL" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/central";
+ dir = 1;
+ name = "Central Maintenance APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/central)
+"cNM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/sorting)
+"cNN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/sorting)
+"cNR" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/binary/valve{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"cNS" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/starboard";
+ dir = 4;
+ name = "Starboard Maintenance APC";
+ pixel_x = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"cNT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 8
+ },
+/obj/machinery/meter,
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"cNU" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"cNV" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ req_one_access_txt = "8;12"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"cNW" = (
+/obj/structure/table/reinforced,
+/obj/machinery/light/small{
+ brightness = 3;
+ dir = 8
+ },
+/obj/item/card/id/syndicate,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/bar)
+"cNX" = (
+/obj/machinery/door/airlock/maintenance{
+ req_one_access_txt = "8;12"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cNY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/starboard/aft)
+"cNZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cOb" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cOe" = (
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cOw" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cOx" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cOT" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cOV" = (
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "Prison Gate";
+ name = "Prison Lockdown Shutters"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"cPb" = (
+/turf/open/floor/wood/wood_diagonal,
+/area/maintenance/port/fore)
+"cPA" = (
+/obj/machinery/atmospherics/components/binary/valve{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cPH" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ req_access_txt = "13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cPI" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/obj/machinery/door/airlock/external{
+ req_access_txt = "13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cPO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/loot_pile/maint,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"cQw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/starboard/aft)
+"cQB" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cQF" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 8;
+ name = "8maintenance loot spawner"
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plating,
+/area/service/abandoned_gambling_den)
+"cQT" = (
+/obj/structure/table,
+/obj/item/hand_labeler,
+/obj/item/folder/blue,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"cRq" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/execution/transfer)
+"cSp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/security/prison/upper)
+"cSA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/security/courtroom)
+"cSE" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cSF" = (
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/tcommsat/server)
+"cSL" = (
+/obj/machinery/button/door{
+ id = "atmos";
+ name = "Atmospherics Lockdown";
+ pixel_x = -24;
+ pixel_y = 10;
+ req_access_txt = "24"
+ },
+/obj/machinery/button/door{
+ desc = "A remote control-switch for secure storage.";
+ id = "Secure Storage";
+ name = "Engineering Secure Storage";
+ pixel_x = -24;
+ req_access_txt = "11"
+ },
+/obj/machinery/button/door{
+ desc = "A remote control-switch for the engineering security doors.";
+ id = "Engineering";
+ name = "Engineering Lockdown";
+ pixel_x = -24;
+ pixel_y = -10;
+ req_access_txt = "10"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"cSM" = (
+/obj/machinery/computer/station_alert,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = 20
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cSN" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cSO" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cSP" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cSQ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cSR" = (
+/obj/effect/turf_decal/delivery,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/sign/warning/nosmoking{
+ pixel_y = 32
+ },
+/obj/machinery/camera{
+ c_tag = "Engineering Power Storage"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cSS" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cST" = (
+/obj/effect/landmark/start/station_engineer,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/corner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cSU" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cSV" = (
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cSW" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cSX" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cSY" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cSZ" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/ce)
+"cTa" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cTb" = (
+/obj/effect/turf_decal/bot{
+ dir = 1
+ },
+/obj/machinery/portable_atmospherics/pump,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cTc" = (
+/obj/effect/spawner/structure/window,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/engineering/main)
+"cTd" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/engineering/main)
+"cTe" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cTf" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/requests_console{
+ department = "Engineering";
+ departmentType = 4;
+ name = "Engineering RC";
+ pixel_y = 30
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/main)
+"cTo" = (
+/obj/structure/table/wood,
+/obj/item/storage/dice,
+/obj/item/instrument/piano_synth,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"cTD" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/central/secondary";
+ dir = 8;
+ name = "Central Maintenance APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/central/secondary)
+"cTE" = (
+/obj/machinery/computer/shuttle/mining{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/construction/mining/aux_base)
+"cTF" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cTJ" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"cTK" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"cTO" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"cTS" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"cTX" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/shieldwallgen/xenobiologyaccess,
+/obj/structure/sign/poster/official/safety_eye_protection{
+ pixel_x = 32
+ },
+/turf/open/floor/plating,
+/area/science/xenobiology)
+"cTY" = (
+/obj/structure/sign/poster/official/safety_internals{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cTZ" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/xenobiology)
+"cUb" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/structure/grille/broken,
+/obj/effect/decal/cleanable/blood/old,
+/obj/item/kirbyplants/random,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cUx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/ai_monitored/command/nuke_storage)
+"cVb" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/hallway/secondary/service)
+"cVs" = (
+/obj/machinery/vending/coffee,
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"cVw" = (
+/obj/machinery/hydroponics/soil{
+ pixel_y = 8
+ },
+/obj/item/seeds/tower,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cVE" = (
+/obj/machinery/computer/cryopod{
+ pixel_y = 26
+ },
+/obj/effect/turf_decal/loading_area,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"cVK" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"cXU" = (
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/light{
+ light_color = "#c9d3e8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"cYf" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"cZe" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"daq" = (
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"daI" = (
+/obj/structure/window/reinforced,
+/obj/effect/turf_decal/bot,
+/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"dbb" = (
+/obj/machinery/atmospherics/components/unary/relief_valve/atmos/atmos_waste{
+ dir = 1
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/engineering/atmos)
+"dbU" = (
+/obj/structure/light_construct{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"dce" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/machinery/meter,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"dcX" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"ddl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet/locker)
+"ddI" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/door/airlock{
+ name = "Theatre Backstage";
+ req_access_txt = "46"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"ddM" = (
+/obj/structure/sign/poster/contraband/kudzu,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/kitchen)
+"dev" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/cargo/storage";
+ name = "Cargo Bay APC";
+ pixel_x = 1;
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"dfh" = (
+/obj/machinery/power/apc{
+ areastring = "/area/science/circuit";
+ dir = 4;
+ name = "Circuitry Lab APC";
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"dfL" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/bar)
+"dgz" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/cryopod)
+"dgO" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/gravity_generator)
+"diq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"diH" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/machinery/suit_storage_unit/atmos,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"dkM" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"dly" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/security/range)
+"dml" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/shutters{
+ id = "stationawaygate";
+ name = "Gateway Access Shutters"
+ },
+/turf/open/floor/plasteel,
+/area/command/gateway)
+"dmX" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/service/chapel/main)
+"dnW" = (
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/paramedic)
+"dnX" = (
+/obj/effect/turf_decal/stripes/white/line,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"dsi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/commons/arcade)
+"dsJ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/table/glass,
+/obj/item/toy/figure/chaplain{
+ pixel_y = -9
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"dvb" = (
+/obj/structure/table,
+/obj/item/storage/fancy/cigarettes/cigpack_syndicate,
+/turf/open/floor/carpet/black,
+/area/commons/arcade)
+"dvc" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/commons/cryopod)
+"dvO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/science/circuit)
+"dxv" = (
+/obj/machinery/camera{
+ c_tag = "Prison Cafeteria";
+ dir = 8;
+ network = list("ss13","prison")
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"dyC" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"dyE" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Gate";
+ name = "brig shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/brig)
+"dyS" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Prison Cafeteria"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"dzi" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/carpet,
+/area/commons/cryopod)
+"dzK" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"dAe" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 1
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"dCd" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/drinkingglass,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"dCr" = (
+/obj/structure/pool/Rboard,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"dCt" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/obj/structure/lattice,
+/turf/open/space,
+/area/space/nearstation)
+"dCV" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/range)
+"dEX" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/requests_console{
+ department = "Atmospherics";
+ departmentType = 4;
+ name = "Atmos RC";
+ pixel_x = -30
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"dFX" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/fitness/pool)
+"dGa" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/commons/arcade)
+"dIu" = (
+/obj/structure/chair/sofa{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"dIZ" = (
+/turf/open/floor/padded,
+/area/security/execution/transfer)
+"dJu" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/blood/old,
+/obj/machinery/button/door{
+ id = "permacells3";
+ name = "Privacy Shutters";
+ pixel_x = 25
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"dJL" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/door/airlock/command{
+ name = "Head of Security's Office";
+ req_access_txt = "58"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/mineral/plastitanium/red,
+/area/command/heads_quarters/hos)
+"dKP" = (
+/obj/structure/closet/secure_closet/freezer/kitchen,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/maintenance/bar)
+"dLi" = (
+/obj/machinery/hydroponics/soil,
+/obj/item/cultivator,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"dLl" = (
+/obj/item/stack/rods,
+/turf/open/space,
+/area/space)
+"dLZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"dMj" = (
+/obj/machinery/space_heater,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"dMZ" = (
+/obj/structure/sign/poster/official/random{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"dNP" = (
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"dPk" = (
+/obj/structure/closet{
+ name = "Costume Closet"
+ },
+/obj/item/clothing/head/russobluecamohat,
+/obj/item/clothing/head/russobluecamohat,
+/obj/item/clothing/head/ushanka,
+/obj/item/clothing/head/ushanka,
+/obj/item/clothing/head/ushanka,
+/obj/item/clothing/head/ushanka,
+/obj/item/clothing/under/misc/blue_camo,
+/obj/item/clothing/under/misc/blue_camo,
+/obj/item/clothing/under/misc/blue_camo,
+/obj/item/clothing/under/misc/blue_camo,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/clothing/shoes/jackboots,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"dPq" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/structure/loot_pile/maint,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"dPs" = (
+/obj/machinery/hydroponics/soil,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"dPE" = (
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"dQD" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Incinerator to MiniSat"
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"dQS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"dSh" = (
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"dTI" = (
+/obj/structure/urinal{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"dXq" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#c1caff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"dYl" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/command/gateway)
+"dYQ" = (
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/decal/cleanable/blood/old,
+/obj/machinery/button/electrochromatic{
+ id = "!permabrigshowers";
+ pixel_x = -25
+ },
+/turf/open/floor/plasteel/freezer,
+/area/security/prison/cells)
+"dYZ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/range)
+"dZm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/storage/art)
+"eaI" = (
+/obj/structure/table/reinforced,
+/obj/item/radio/intercom{
+ pixel_x = -30
+ },
+/obj/item/stock_parts/cell/high,
+/obj/item/stock_parts/cell/high,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"eaR" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/space,
+/area/solars/starboard/fore)
+"ebo" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"ecp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/bodycontainer/morgue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"ecB" = (
+/obj/item/toy/beach_ball/holoball,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"edj" = (
+/obj/structure/sign/poster/contraband/random{
+ pixel_y = 32
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/wood/wood_diagonal,
+/area/maintenance/port/fore)
+"edA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-04"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"efs" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"efO" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"egt" = (
+/obj/machinery/requests_console{
+ department = "Bar";
+ departmentType = 2;
+ pixel_x = -30;
+ pixel_y = 45;
+ receive_ore_updates = 1
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"eih" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"eiB" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/structure/bodycontainer/morgue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"eiZ" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/manifold/purple/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"ejr" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/grunge{
+ name = "Permanent Cell 4";
+ wiretypepath = /datum/wires/airlock/security
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"eky" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/snacks/baguette,
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/item/toy/crayon/spraycan/mimecan,
+/obj/item/toy/dummy,
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"elh" = (
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"emf" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Permabrig Maintenance";
+ req_access_txt = "1"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/prison/starboard)
+"ene" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"enB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/security/execution/transfer)
+"enJ" = (
+/obj/structure/girder,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"enS" = (
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"eoJ" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/grunge{
+ name = "Permanent Cell 5";
+ wiretypepath = /datum/wires/airlock/security
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"eoR" = (
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"epj" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"epD" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/obj/structure/chair/sofa/right{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"epG" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"eqq" = (
+/obj/machinery/atmospherics/pipe/manifold/orange/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"eqA" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"esK" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "Chemical Storage";
+ req_access_txt = "12"
+ },
+/obj/structure/barricade/wooden,
+/obj/structure/girder,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"esL" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ pixel_y = 20
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"esZ" = (
+/obj/machinery/door/airlock{
+ desc = "Private study room where nerds are probably playing Dungeons and Dragons 13e, or a place for blood cult rituals.";
+ id_tag = "PrivateStudy";
+ name = "Private Study"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"etr" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"eus" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"evc" = (
+/obj/machinery/hydroponics/soil,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "Prison Forestry";
+ dir = 8;
+ network = list("ss13","prison")
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"evh" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/camera{
+ c_tag = "Prison Workshop";
+ dir = 4;
+ network = list("ss13","prison")
+ },
+/obj/item/stack/sticky_tape,
+/obj/item/stack/sheet/cardboard{
+ amount = 14
+ },
+/obj/item/stack/packageWrap,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"evR" = (
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/food/condiment/peppermill{
+ pixel_x = 2
+ },
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/food/condiment/sugar,
+/obj/item/reagent_containers/food/condiment/enzyme,
+/obj/item/kitchen/knife,
+/obj/item/kitchen/rollingpin,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/maintenance/bar)
+"ewu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/commons/fitness)
+"ewG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "permacells5";
+ name = "Privacy Shutters"
+ },
+/turf/open/floor/plating,
+/area/security/prison/cells)
+"ewN" = (
+/obj/machinery/hydroponics/soil{
+ pixel_y = 8
+ },
+/obj/item/seeds/watermelon,
+/obj/item/seeds/cannabis,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"exP" = (
+/obj/item/kirbyplants{
+ icon_state = "plant-14"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"exX" = (
+/obj/machinery/door/airlock{
+ name = "Shower Room"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"eyq" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/on,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"eyM" = (
+/obj/machinery/mineral/ore_redemption{
+ input_dir = 2;
+ output_dir = 1
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/cargo/miningdock)
+"eyS" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Air to Pure"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"ezF" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"eAe" = (
+/obj/structure/dresser,
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"eAG" = (
+/obj/item/clothing/under/misc/pj/blue,
+/obj/item/clothing/shoes/sneakers/white,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"eAJ" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"eBX" = (
+/obj/machinery/vending/cola/space_up,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"eCm" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/obj/machinery/door/airlock/external{
+ name = "Atmospherics External Airlock";
+ req_access_txt = "24"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"eCr" = (
+/obj/structure/closet{
+ name = "Suit Closet"
+ },
+/obj/item/clothing/under/suit/white,
+/obj/item/clothing/under/suit/tan,
+/obj/item/clothing/under/suit/red,
+/obj/item/clothing/under/suit/black_really,
+/obj/item/clothing/under/suit/navy,
+/obj/item/clothing/under/suit/green,
+/obj/item/clothing/under/suit/black/skirt,
+/obj/item/clothing/under/suit/checkered,
+/obj/item/clothing/under/suit/charcoal,
+/obj/item/clothing/under/suit/burgundy,
+/obj/item/clothing/under/suit/black,
+/obj/item/clothing/under/rank/civilian/lawyer/black,
+/obj/item/clothing/under/suit/black,
+/obj/item/clothing/under/rank/civilian/lawyer/blue,
+/obj/item/clothing/under/rank/civilian/lawyer/bluesuit,
+/obj/item/clothing/under/rank/civilian/lawyer/female,
+/obj/item/clothing/under/rank/civilian/lawyer/purpsuit,
+/obj/item/clothing/under/rank/civilian/lawyer/really_black,
+/obj/item/clothing/under/rank/civilian/lawyer/red,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"eCB" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"eCR" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/gravity_generator)
+"eDf" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"eDz" = (
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/syringe/lethal/execution,
+/obj/item/restraints/handcuffs,
+/turf/open/floor/plasteel/dark,
+/area/maintenance/port/fore)
+"eDF" = (
+/obj/effect/landmark/event_spawn,
+/obj/structure/chair/comfy/brown{
+ color = "#596479";
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"eDJ" = (
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"eFx" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"eFH" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"eFW" = (
+/obj/effect/spawner/structure/window/shuttle,
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"eIW" = (
+/obj/structure/table,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"eJa" = (
+/obj/structure/table/wood/poker,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/item/toy/cards/deck/syndicate,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"eJu" = (
+/obj/machinery/button/door{
+ id = "executionspaceblast";
+ name = "Vent to Space";
+ pixel_x = 25;
+ pixel_y = -5;
+ req_access_txt = "7"
+ },
+/obj/machinery/button/flasher{
+ id = "executionflash";
+ pixel_x = 24;
+ pixel_y = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/execution/transfer)
+"eMs" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"eOu" = (
+/obj/structure/table/wood,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/item/coin/plasma,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"eQb" = (
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"eRr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/lobby)
+"eRz" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/turf/open/space/basic,
+/area/space/nearstation)
+"eRS" = (
+/obj/structure/table,
+/obj/item/folder/red{
+ pixel_x = 3
+ },
+/obj/item/taperecorder{
+ pixel_x = -3
+ },
+/obj/item/assembly/flash/handheld,
+/obj/item/reagent_containers/spray/pepper,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/execution/transfer)
+"eSe" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/sign/poster/contraband/kss13,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/hydroponics)
+"eSJ" = (
+/obj/machinery/button/ignition{
+ id = "executionburn";
+ pixel_x = 24;
+ pixel_y = 5
+ },
+/obj/machinery/button/door{
+ id = "executionfireblast";
+ name = "Transfer Area Lockdown";
+ pixel_x = 25;
+ pixel_y = -5;
+ req_access_txt = "2"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/execution/transfer)
+"eTt" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/port/fore)
+"eTA" = (
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 20
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = 3;
+ pixel_y = 20
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"eUy" = (
+/obj/machinery/door/airlock{
+ name = "Starboard Emergency Storage"
+ },
+/turf/open/floor/plating,
+/area/commons/storage/emergency/starboard)
+"eUW" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 9
+ },
+/turf/open/space,
+/area/space/nearstation)
+"eVC" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/commons/cryopod)
+"eVL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/light_switch{
+ pixel_y = 28
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"eWL" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "Prison Gate";
+ name = "Prison Lockdown Shutters"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"eXz" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/processing)
+"eXI" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"eXL" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 10
+ },
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
+"eZa" = (
+/obj/effect/landmark/start/paramedic,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"eZI" = (
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 10
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"eZS" = (
+/obj/effect/turf_decal/bot_white,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/prison/starboard)
+"fbp" = (
+/obj/structure/tank_dispenser,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/engine,
+/area/science/storage)
+"fbr" = (
+/obj/machinery/door/window/southleft{
+ base_state = "right";
+ dir = 4;
+ icon_state = "right";
+ name = "Transfer Chamber Configuration";
+ req_access_txt = "2"
+ },
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"fbY" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/bed,
+/obj/item/bedsheet/red,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"fcd" = (
+/obj/structure/chair/sofa/right{
+ dir = 8
+ },
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/maintenance/port/fore)
+"fcj" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/plating,
+/area/maintenance/prison/starboard)
+"fcn" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"fcG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/science/mixing)
+"fdJ" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"fdQ" = (
+/obj/structure/bed,
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"fdR" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/security/prison/cells";
+ damage_deflection = 21;
+ desc = "A control terminal for the area's electrical systems. It's secured with a durable antitampering plasteel cage.";
+ dir = 4;
+ name = "Armored Prison Wing Cells APC";
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"fdS" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#cee5d2"
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"feE" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/starboard/fore)
+"feG" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"fgl" = (
+/obj/structure/closet/crate/bin,
+/turf/open/floor/carpet/black,
+/area/commons/arcade)
+"fgy" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/landmark/start/prisoner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "permacells3";
+ name = "Privacy Shutters";
+ pixel_y = -25
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"fhu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/rack,
+/obj/item/clothing/under/costume/owl,
+/obj/item/clothing/suit/toggle/owlwings,
+/obj/item/clothing/mask/gas/owl_mask,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"fiv" = (
+/obj/structure/table,
+/obj/item/cardpack/syndicate,
+/turf/open/floor/carpet/black,
+/area/commons/arcade)
+"fiy" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal/incinerator)
+"fiR" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"fjS" = (
+/obj/structure/closet/radiation,
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"fjU" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 4
+ },
+/obj/structure/lattice,
+/turf/open/space,
+/area/space/nearstation)
+"fkh" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/starboard/aft)
+"fkW" = (
+/obj/structure/table/reinforced,
+/obj/item/clothing/head/syndicatefake,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"flc" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/fancy/donut_box,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"flE" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"flP" = (
+/obj/machinery/hydroponics/soil{
+ pixel_y = 8
+ },
+/obj/item/seeds/carrot,
+/obj/item/seeds/cannabis/white,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"fmJ" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/wood/wood_diagonal,
+/area/maintenance/port/fore)
+"fmR" = (
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#c1caff"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"fnC" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/service)
+"fnE" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"foT" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/processing)
+"fpl" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/commons/fitness)
+"fpz" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"fpI" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-06"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"fsa" = (
+/obj/machinery/button/door{
+ id = "armory3";
+ name = "Armory Shutters";
+ pixel_y = 26;
+ req_access_txt = "3"
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#cee5d2"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"fsj" = (
+/obj/structure/table,
+/obj/item/clothing/glasses/sunglasses{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/clothing/glasses/sunglasses{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/clothing/ears/earmuffs{
+ pixel_x = -3;
+ pixel_y = -2
+ },
+/obj/item/clothing/ears/earmuffs{
+ pixel_x = -3;
+ pixel_y = -2
+ },
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/range)
+"fty" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/space/nearstation)
+"ftE" = (
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"fup" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"fvk" = (
+/obj/structure/disposalpipe/segment,
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/storage)
+"fvU" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/bananalamp{
+ pixel_y = 3
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/requests_console{
+ department = "Theatre";
+ name = "theatre RC";
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"fvY" = (
+/obj/machinery/computer/cryopod{
+ pixel_y = 26
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/commons/cryopod)
+"fxa" = (
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ pixel_x = 2
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/bar)
+"fxe" = (
+/obj/structure/window{
+ dir = 1
+ },
+/obj/structure/chair/sofa/corp,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"fxx" = (
+/obj/structure/disposalpipe/segment,
+/turf/closed/wall,
+/area/security/brig)
+"fxV" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/hallway/primary/central)
+"fyS" = (
+/obj/structure/pool/ladder{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/pool,
+/area/commons/fitness/pool)
+"fzd" = (
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"fAj" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/love_ian{
+ pixel_x = 32;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"fBy" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/service/abandoned_gambling_den)
+"fBW" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/machinery/button/door{
+ id = "commissaryshutters";
+ name = "Commissary Shutters Control";
+ pixel_x = 24;
+ pixel_y = 6;
+ req_access_txt = null
+ },
+/obj/item/paper_bin{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/pen,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"fCx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "holoprivacy";
+ name = "Holodeck Privacy";
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"fCJ" = (
+/obj/structure/sign/poster/contraband/missing_gloves{
+ pixel_x = -32
+ },
+/turf/open/floor/carpet/black,
+/area/commons/arcade)
+"fDn" = (
+/obj/structure/table,
+/obj/item/trash/chips{
+ pixel_x = -4;
+ pixel_y = 1
+ },
+/obj/item/reagent_containers/food/drinks/beer/light{
+ pixel_x = 7
+ },
+/obj/item/cigbutt{
+ pixel_x = 10;
+ pixel_y = 17
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"fFl" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/window{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"fFA" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"fFR" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
+"fGf" = (
+/obj/machinery/smartfridge/disks{
+ pixel_y = 2
+ },
+/obj/structure/table,
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"fHi" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 10
+ },
+/obj/machinery/meter,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"fHG" = (
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"fIs" = (
+/obj/structure/grille,
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
+"fJY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel/dark,
+/area/security/processing)
+"fKC" = (
+/obj/structure/chair/office/dark{
+ dir = 1
+ },
+/obj/effect/landmark/start/atmospheric_technician,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"fKN" = (
+/obj/structure/table,
+/obj/structure/bedsheetbin,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
+"fLN" = (
+/obj/structure/chair/sofa/corp/left,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/bar)
+"fMp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"fMF" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/door/airlock/grunge{
+ name = "Prison Laundry";
+ wiretypepath = /datum/wires/airlock/security
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"fMY" = (
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"fNB" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced/tinted/electrochromatic{
+ electrochromatic_id = "!permabrigshowers"
+ },
+/turf/open/floor/plating,
+/area/security/prison/cells)
+"fNN" = (
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"fOA" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"fOI" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-18"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"fOK" = (
+/obj/machinery/shower{
+ dir = 1
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"fPi" = (
+/obj/effect/decal/cleanable/oil{
+ icon_state = "floor6"
+ },
+/obj/machinery/atmospherics/pipe/manifold/yellow/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"fPM" = (
+/obj/structure/reagent_dispensers/water_cooler,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"fRe" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/window{
+ dir = 1
+ },
+/obj/structure/bedsheetbin/color,
+/obj/structure/table,
+/turf/open/floor/plasteel/cafeteria,
+/area/commons/locker)
+"fSO" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"fTg" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"fTC" = (
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_y = 6
+ },
+/obj/item/pen/fountain,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"fWi" = (
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"fZm" = (
+/obj/structure/chair/sofa/left,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"fZR" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/storage/primary)
+"gav" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/processing)
+"gaF" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/medical/paramedic)
+"gbd" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"gbh" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Holodeck Door"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"gbq" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plating,
+/area/construction)
+"gbT" = (
+/obj/item/storage/box/lights/mixed,
+/obj/machinery/power/apc{
+ areastring = "/area/commons/storage/emergency/starboard";
+ dir = 1;
+ name = "Starboard Emergency Storage APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"gcm" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"gcx" = (
+/obj/structure/chair/sofa/corp{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"gcF" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/light_construct{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"gcV" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"gcX" = (
+/obj/structure/table,
+/obj/item/flashlight/lamp,
+/obj/item/stack/sheet/metal,
+/obj/item/storage/box/bodybags,
+/obj/item/pen,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/execution/transfer)
+"gcY" = (
+/obj/structure/weightmachine/weightlifter,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"geg" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/trash/plate,
+/obj/item/reagent_containers/food/snacks/egg/yellow,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"gfw" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"gfC" = (
+/obj/effect/turf_decal/tile/red,
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"gfD" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/carpet,
+/area/commons/cryopod)
+"gfQ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"ggT" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"ghD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"giE" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/landmark/start/prisoner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "permacells4";
+ name = "Privacy Shutters";
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"giT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"gjl" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/cargo/warehouse)
+"gnf" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/sign/departments/custodian{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"got" = (
+/obj/structure/closet,
+/obj/item/poster/random_contraband,
+/obj/item/poster/random_contraband,
+/obj/item/poster/random_contraband,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"goJ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"gpD" = (
+/obj/effect/turf_decal/bot_white/left,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"grc" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"grd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/security/prison/upper)
+"grr" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal/incinerator)
+"grA" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Holodeck Door"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"gsM" = (
+/turf/open/floor/plasteel/dark,
+/area/maintenance/port/fore)
+"gvX" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/processing)
+"gxc" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"gxw" = (
+/obj/machinery/atmospherics/pipe/manifold/orange/visible,
+/obj/machinery/meter,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/atmos)
+"gxK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "permacells3";
+ name = "Privacy Shutters"
+ },
+/turf/open/floor/plating,
+/area/security/prison/cells)
+"gyr" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"gyy" = (
+/obj/machinery/door/airlock/security{
+ name = "Isolation Cell";
+ req_access_txt = "2"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/execution/transfer)
+"gyQ" = (
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"gzf" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 8
+ },
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/structure/curtain,
+/turf/open/floor/plasteel/freezer,
+/area/commons/dorms)
+"gzY" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"gAu" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "External to Waste"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"gBo" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/maintenance/bar)
+"gCC" = (
+/obj/structure/sign/poster/contraband/rebels_unite,
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/storage/primary)
+"gDl" = (
+/obj/effect/landmark/carpspawn,
+/turf/open/space/basic,
+/area/space)
+"gDO" = (
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"gDP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/obj/item/radio/intercom{
+ pixel_y = 20
+ },
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/processing)
+"gER" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"gFs" = (
+/obj/effect/landmark/start/assistant,
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/structure/sign/poster/contraband/lusty_xenomorph{
+ pixel_x = 32
+ },
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/port/fore)
+"gGK" = (
+/obj/structure/table/reinforced,
+/obj/item/clothing/suit/syndicatefake,
+/obj/item/clothing/head/syndicatefake,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"gIU" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"gJi" = (
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
+/area/space/nearstation)
+"gJN" = (
+/obj/structure/rack,
+/obj/item/book/manual/wiki/engineering_singulo_tesla,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"gKo" = (
+/obj/structure/table/glass,
+/obj/item/restraints/handcuffs/cable/zipties,
+/obj/item/reagent_containers/blood/random,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"gKG" = (
+/obj/structure/bedsheetbin/towel,
+/turf/open/floor/wood/wood_diagonal,
+/area/maintenance/port/fore)
+"gLu" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"gLw" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/landmark/start/clown,
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"gLz" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"gLG" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/heater/on,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"gLH" = (
+/obj/structure/closet/wardrobe/white,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/reagent_containers/blood/random,
+/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"gMB" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/grunge{
+ name = "Permanent Cell 6";
+ wiretypepath = /datum/wires/airlock/security
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"gMD" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"gNE" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"gOF" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/high_class_martini{
+ pixel_x = -32
+ },
+/obj/structure/table/reinforced,
+/obj/item/storage/toolbox/syndicate,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"gOZ" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/commons/fitness)
+"gPY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"gQr" = (
+/obj/machinery/atmospherics/components/binary/valve/digital{
+ name = "gas to sauna"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"gRZ" = (
+/obj/structure/bookcase{
+ name = "Forbidden Knowledge"
+ },
+/turf/open/floor/carpet/black,
+/area/service/library)
+"gSj" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/airlock/grunge{
+ name = "Permanent Cell 3";
+ wiretypepath = /datum/wires/airlock/security
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"gTx" = (
+/obj/effect/turf_decal/bot_white/left,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"gUu" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/gravity_generator)
+"gVc" = (
+/obj/machinery/vending/sustenance,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"gWd" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/construction)
+"gXs" = (
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
+"gXu" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"gYo" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/closet/crate{
+ icon_state = "crateopen"
+ },
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"gZB" = (
+/obj/item/clothing/mask/cigarette{
+ pixel_x = -6;
+ pixel_y = 14
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"gZG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"gZT" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/prison/port";
+ dir = 8;
+ name = "Prison Port Maintenance APC";
+ pixel_x = -25
+ },
+/obj/effect/turf_decal/bot,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/maintenance/prison/port)
+"haM" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"hbi" = (
+/obj/machinery/hydroponics/soil{
+ pixel_y = 8
+ },
+/obj/item/seeds/glowshroom,
+/obj/item/seeds/cannabis/ultimate,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/maintenance/starboard/aft)
+"hch" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"hcA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"hcT" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/port/fore)
+"hgG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"hgO" = (
+/obj/item/storage/dice{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/food/snacks/cherrycupcake,
+/obj/structure/table/reinforced,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"hho" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"hiV" = (
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
+"hkA" = (
+/obj/structure/table,
+/obj/item/clothing/under/rank/prisoner/skirt{
+ pixel_x = -13;
+ pixel_y = 5
+ },
+/obj/item/clothing/under/rank/prisoner/skirt{
+ pixel_x = 9;
+ pixel_y = 5
+ },
+/obj/item/clothing/under/rank/prisoner{
+ pixel_x = -2;
+ pixel_y = 5
+ },
+/obj/machinery/flasher{
+ id = "waitingflash";
+ pixel_y = -28
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
+"hlS" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"hlT" = (
+/obj/machinery/door/airlock/external{
+ name = "Labor Camp Shuttle Airlock";
+ req_access_txt = "2";
+ shuttledocked = 1
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/security/processing)
+"hlV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/dorms)
+"hmT" = (
+/obj/structure/loot_pile/maint,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"hnc" = (
+/obj/structure/chair/pew/left{
+ dir = 4
+ },
+/turf/open/floor/wood/wood_diagonal,
+/area/maintenance/port/fore)
+"hnp" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"hnU" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/door/window/westleft{
+ base_state = "right";
+ dir = 4;
+ icon_state = "right";
+ name = "Shooting Range"
+ },
+/turf/open/floor/plating,
+/area/security/range)
+"hoL" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/bot_white,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"hpY" = (
+/obj/machinery/vr_sleeper{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"hrF" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/space,
+/area/solars/port/aft)
+"hsb" = (
+/obj/structure/table/wood,
+/obj/item/book/codex_gigas,
+/obj/item/clothing/under/suit/red,
+/obj/structure/destructible/cult/tome,
+/turf/open/floor/carpet/black,
+/area/service/library)
+"hse" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"htu" = (
+/obj/item/kirbyplants/random,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"hty" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/command/gateway)
+"hvC" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"hvJ" = (
+/obj/item/toy/plush/beeplushie,
+/turf/open/floor/padded,
+/area/security/execution/transfer)
+"hxg" = (
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"hxn" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"hyY" = (
+/obj/structure/loot_pile/maint,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"hzs" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/plate_press,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"hzC" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"hzK" = (
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/processing)
+"hBw" = (
+/obj/structure/lattice,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/fore)
+"hBA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/table,
+/obj/item/storage/firstaid/regular{
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"hCn" = (
+/obj/structure/closet/firecloset,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"hEL" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"hGH" = (
+/obj/machinery/door/airlock{
+ desc = "Private study room where nerds are probably playing Dungeons and Dragons 13e, or a place for blood cult rituals.";
+ id_tag = "PrivateStudy";
+ name = "Private Study"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"hHQ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"hIM" = (
+/obj/machinery/door/airlock{
+ name = "Unisex Restrooms"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"hJO" = (
+/obj/structure/closet/crate/trashcart,
+/obj/effect/spawner/lootdrop/prison_contraband,
+/obj/item/trash/chips,
+/obj/item/trash/candy,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"hJP" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"hKo" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/spawner/structure/window/reinforced/tinted/electrochromatic{
+ electrochromatic_id = "!permabrigshowers"
+ },
+/turf/open/floor/plating,
+/area/security/prison/cells)
+"hMs" = (
+/obj/structure/table,
+/obj/item/storage/box/bodybags,
+/obj/item/pen,
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"hNm" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/commons/locker)
+"hOv" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4;
+ pixel_y = 5
+ },
+/obj/item/reagent_containers/food/snacks/burger/plain,
+/obj/structure/table/reinforced,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"hPP" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/cargo/warehouse)
+"hQw" = (
+/obj/item/electropack/shockcollar,
+/obj/item/assembly/signaler,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/prison/port)
+"hQX" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/command/gateway)
+"hQY" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"hRa" = (
+/obj/structure/table/reinforced,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/cell_charger{
+ pixel_y = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"hRI" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plating,
+/area/service/abandoned_gambling_den)
+"hSf" = (
+/obj/structure/cable,
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/port/fore)
+"hSl" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"hSZ" = (
+/obj/structure/chair/comfy/black{
+ dir = 1
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"hTt" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"hWd" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"hYd" = (
+/obj/machinery/door/airlock/medical{
+ name = "Morgue";
+ req_access_txt = "6"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"ibK" = (
+/turf/open/floor/plasteel/dark,
+/area/security/processing)
+"icS" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/maintenance/prison/port)
+"idK" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "Firing Range";
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/range)
+"ifJ" = (
+/obj/machinery/biogenerator,
+/obj/structure/sign/poster/contraband/have_a_puff{
+ pixel_y = -32
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ifM" = (
+/obj/machinery/shower{
+ dir = 8;
+ pixel_y = -4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/security/prison/cells)
+"ihR" = (
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/lobby)
+"ihS" = (
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/cafeteria,
+/area/commons/locker)
+"iiW" = (
+/obj/structure/table/reinforced,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/item/toy/cards/deck/syndicate,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/maintenance/bar)
+"ijG" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/window,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"ijO" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"ikk" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"ikm" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"ikv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"iky" = (
+/obj/effect/turf_decal/weather/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ili" = (
+/obj/structure/table,
+/obj/item/electropack,
+/obj/item/screwdriver,
+/obj/item/wrench,
+/obj/item/clothing/head/helmet,
+/obj/item/assembly/signaler,
+/obj/machinery/light/small,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/machinery/light_switch{
+ pixel_y = 23
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/execution/transfer)
+"imk" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 9
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"imZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"inq" = (
+/obj/structure/table/wood,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"inw" = (
+/mob/living/simple_animal/hostile/retaliate/goose{
+ desc = "Some evil loose goose.";
+ name = "Cere"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"inR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/service/theater)
+"iou" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"iqi" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/camera{
+ c_tag = "Prison Laundry";
+ dir = 4;
+ network = list("ss13","prison")
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
+"iql" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/beacon,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"iss" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/command/gateway)
+"itD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/holopad,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"itK" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
+ },
+/obj/structure/light_construct{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"itQ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/security/range)
+"ium" = (
+/mob/living/simple_animal/bot/cleanbot{
+ name = "C.L.E.A.N."
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"iuR" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"ivJ" = (
+/obj/structure/curtain{
+ pixel_y = -32
+ },
+/obj/structure/table/optable,
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"iwU" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"iyG" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light/small{
+ brightness = 3;
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"izg" = (
+/obj/item/cigbutt/cigarbutt,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"izv" = (
+/obj/structure/table/reinforced,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/item/chameleon,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/maintenance/bar)
+"iBj" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/maintenance/prison/starboard)
+"iBq" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/prison/starboard)
+"iBv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"iCN" = (
+/obj/machinery/door/airlock{
+ name = "Permabrig Showers"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"iDo" = (
+/obj/structure/grille,
+/turf/open/space/basic,
+/area/space/nearstation)
+"iEJ" = (
+/obj/machinery/door/airlock/external{
+ name = "Escape Pod One"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"iHk" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/gravity_generator)
+"iII" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/closet,
+/obj/item/clothing/head/bowler,
+/obj/item/clothing/neck/tie/red,
+/obj/item/clothing/mask/cigarette/pipe,
+/obj/item/clothing/mask/fakemoustache,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"iIS" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"iKV" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"iLJ" = (
+/obj/item/reagent_containers/glass/bucket,
+/mob/living/simple_animal/pet/bumbles,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"iMv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/structure/table/glass,
+/obj/structure/bedsheetbin/towel,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#c1caff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"iMy" = (
+/obj/structure/chair/sofa/right,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"iNn" = (
+/obj/machinery/camera{
+ c_tag = "Kitchen Cold Room"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/reagent_dispensers/cooking_oil,
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen/coldroom)
+"iPX" = (
+/obj/structure/table,
+/obj/machinery/reagentgrinder{
+ desc = "Used to grind things up into raw materials and liquids.";
+ pixel_y = 5
+ },
+/obj/item/lighter,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"iQc" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/structure/table/reinforced,
+/obj/item/storage/toolbox/syndicate,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"iQg" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"iRj" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/sign/warning/electricshock{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"iRV" = (
+/obj/structure/table,
+/obj/item/storage/backpack/duffelbag/med/surgery,
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"iTU" = (
+/obj/structure/musician/piano{
+ icon_state = "piano"
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"iUp" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"iVH" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/medical{
+ name = "Operating Theatre";
+ req_access_txt = "45"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"iVJ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"iVU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/commons/cryopod)
+"iWx" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/coin/silver,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"iWK" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"iYE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/table/glass,
+/obj/item/storage/firstaid/regular,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"iZd" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/command/gateway)
+"jaF" = (
+/obj/machinery/light/small,
+/obj/machinery/atmospherics/components/unary/tank/air{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"jaG" = (
+/obj/structure/sign/poster/official/no_erp,
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/chemistry)
+"jaH" = (
+/obj/structure/door_assembly/door_assembly_mai,
+/obj/item/electronics/airlock,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/service/abandoned_gambling_den)
+"jbf" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/hallway/secondary/service";
+ dir = 1;
+ name = "Service Hall APC";
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/service)
+"jbp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/item/flashlight,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"jbr" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/junction{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/fore)
+"jbK" = (
+/obj/item/stack/sheet/glass{
+ amount = 20;
+ pixel_x = -3;
+ pixel_y = 6
+ },
+/obj/item/stack/sheet/metal/fifty,
+/obj/structure/rack,
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"jdj" = (
+/obj/docking_port/stationary/random{
+ dir = 4;
+ id = "pod_lavaland3";
+ name = "lavaland"
+ },
+/turf/open/space,
+/area/space)
+"jdu" = (
+/obj/machinery/light/floor,
+/obj/machinery/light/floor,
+/obj/structure/sign/poster/contraband/borg_fancy_2{
+ pixel_y = -32
+ },
+/obj/structure/chair/sofa/corp/left{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"jdE" = (
+/obj/effect/turf_decal/trimline/blue/filled/corner{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/machinery/vending/wallmed{
+ pixel_y = -28
+ },
+/obj/effect/landmark/start/paramedic,
+/turf/open/floor/plasteel/dark,
+/area/medical/paramedic)
+"jex" = (
+/obj/machinery/door/airlock/medical{
+ name = "Operating Theatre";
+ req_access_txt = "45"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/surgery)
+"jez" = (
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"jfZ" = (
+/obj/machinery/computer/communications{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"jge" = (
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/space/nearstation)
+"jgm" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/machinery/camera{
+ c_tag = "Circuitry Lab";
+ dir = 8;
+ network = list("ss13","rd")
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"jgA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"jiK" = (
+/obj/structure/sign/warning/securearea,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/main)
+"jiT" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/lobby)
+"jkx" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/machinery/computer/slot_machine,
+/obj/item/coin/iron,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"jkz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/gravity_generator)
+"jlm" = (
+/obj/machinery/rnd/production/techfab/department/cargo,
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"jlQ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/prison/port)
+"jmL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/ai_upload)
+"jmV" = (
+/obj/structure/table/wood/fancy,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/item/reagent_containers/food/drinks/britcup{
+ desc = "Kingston's personal cup.";
+ pixel_x = 5;
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"jnV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"jon" = (
+/obj/machinery/atmospherics/components/binary/valve/digital{
+ name = "gas to sauna"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"jqD" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/commons/arcade)
+"jqK" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/prison_contraband,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/prison/starboard)
+"jrE" = (
+/obj/item/beacon,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"jrR" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"jsO" = (
+/obj/machinery/hydroponics/soil{
+ pixel_y = 8
+ },
+/obj/item/seeds/glowshroom,
+/obj/item/seeds/corn,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"jtj" = (
+/obj/machinery/space_heater,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"juy" = (
+/obj/structure/mopbucket,
+/obj/item/mop,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"juG" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "kitchen";
+ name = "kitchen shutters"
+ },
+/obj/item/reagent_containers/food/snacks/bluecherrycupcake{
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"jvd" = (
+/obj/structure/closet/athletic_mixed,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"jvB" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"jvO" = (
+/obj/structure/rack,
+/obj/item/flashlight{
+ pixel_x = 1;
+ pixel_y = 5
+ },
+/obj/item/tank/internals/anesthetic{
+ pixel_x = -3;
+ pixel_y = 1
+ },
+/obj/item/tank/internals/oxygen/red{
+ pixel_x = 3
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"jwH" = (
+/obj/machinery/holopad,
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"jxx" = (
+/obj/machinery/door/firedoor,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/public/glass{
+ name = "Prison Yard"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"jxF" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"jyO" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"jzM" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"jAD" = (
+/obj/structure/grille,
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"jAN" = (
+/obj/machinery/vr_sleeper{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"jBi" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Holodeck Door"
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"jBA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/gravity_generator)
+"jBQ" = (
+/obj/machinery/atmospherics/pipe/manifold4w/general/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"jBZ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/landmark/start/mime,
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"jCV" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"jDr" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "atmos";
+ name = "Atmospherics Blast Door"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"jDZ" = (
+/obj/machinery/atmospherics/pipe/simple/orange/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/fore)
+"jEc" = (
+/obj/machinery/vr_sleeper{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"jFB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"jFH" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"jGI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal/incinerator)
+"jGW" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/machinery/disposal/bin,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/light,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"jHh" = (
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"jHp" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"jHt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"jIj" = (
+/obj/machinery/portable_atmospherics/scrubber/huge,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"jIs" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/space,
+/area/solars/starboard/fore)
+"jIy" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 6
+ },
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
+"jIH" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"jIW" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"jJF" = (
+/obj/machinery/door/airlock/maintenance,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/maintenance/port/aft)
+"jKc" = (
+/obj/structure/closet/secure_closet/injection,
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/security/execution/transfer";
+ dir = 1;
+ name = "Prisoner Transfer Centre";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/execution/transfer)
+"jKj" = (
+/obj/structure/table,
+/obj/item/razor,
+/obj/item/toy/plush/borgplushie{
+ desc = "A horrible abomination to God in plushie form. Legends say this is used to torture prisoners by repeatedly beating them in the head with it.. ..It feels sorta heavy.";
+ force = 1;
+ name = "dogborg plushie";
+ throwforce = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 5
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/execution/transfer)
+"jKm" = (
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"jKP" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"jLn" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Gravity Generator";
+ req_access_txt = "11"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plasteel/dark,
+/area/engineering/engine_smes)
+"jLJ" = (
+/obj/structure/table/reinforced,
+/obj/item/gun/ballistic/automatic/pistol,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"jLT" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"jMW" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "PoolShut";
+ name = "Pool Shutters";
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"jNr" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/obj/item/cigbutt{
+ pixel_x = -15;
+ pixel_y = 16
+ },
+/turf/open/floor/plating/rust,
+/area/maintenance/port/fore)
+"jNN" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
+"jNT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/loot_pile/maint,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"jOB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/medical/glass{
+ name = "Prison Forestry"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"jRw" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"jRV" = (
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
+"jRW" = (
+/obj/item/reagent_containers/glass/bucket,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"jSD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"jSO" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"jSY" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"jTy" = (
+/obj/machinery/washing_machine,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
+"jUN" = (
+/obj/structure/table/reinforced,
+/obj/structure/reagent_dispensers/servingdish,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"jUV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"jVl" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"jVP" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"jVV" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"jVX" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"jYl" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"jZT" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "maint2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"kaq" = (
+/turf/closed/wall/mineral/titanium,
+/area/space/nearstation)
+"kbm" = (
+/obj/machinery/door/window/brigdoor/security/cell{
+ id = "Cell 2";
+ name = "Cell 2"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"kbO" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/closet/firecloset,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"kcx" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
+/turf/open/space/basic,
+/area/space/nearstation)
+"kcB" = (
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/camera{
+ c_tag = "Prison Isolation Cell";
+ dir = 8;
+ network = list("ss13","prison");
+ view_range = 5
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"kcR" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "permacells3";
+ name = "Privacy Shutters";
+ pixel_y = -25
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"kdF" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/closet/crate/coffin,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"kdO" = (
+/obj/machinery/pool/controller,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"kdP" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/range)
+"ker" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"keM" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "Prison Gate";
+ name = "prison blast door"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "Prison Gate";
+ name = "Prison Lockdown Shutters"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"kfv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/engineering/storage/tech)
+"kfG" = (
+/obj/structure/table/wood,
+/obj/item/toy/cards/deck,
+/obj/item/instrument/harmonica,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"kfS" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/starboard/aft)
+"kfX" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/engine_smes)
+"kgk" = (
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/starboard)
+"kgr" = (
+/obj/machinery/cryopod{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"kgB" = (
+/obj/machinery/vending/snack/orange,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"khb" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/structure/table,
+/obj/item/kitchen/rollingpin,
+/obj/item/shovel/spade,
+/obj/item/reagent_containers/glass/bucket,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/service)
+"khB" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Pool Maintenance";
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"khO" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security{
+ aiControlDisabled = 1;
+ name = "Prisoner Transfer Centre";
+ req_access_txt = "2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/execution/transfer)
+"khV" = (
+/obj/machinery/vending/cola/red,
+/obj/structure/sign/poster/contraband/robust_softdrinks{
+ pixel_x = -32;
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"kic" = (
+/obj/structure/table,
+/obj/item/circuitboard/machine/paystand{
+ pixel_x = 5;
+ pixel_y = -5
+ },
+/obj/effect/decal/cleanable/dirt{
+ desc = "A thin layer of dust coating the floor.";
+ name = "dust"
+ },
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"kil" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"kiW" = (
+/obj/machinery/button/door{
+ id = "Sauna";
+ name = "Sauna Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_y = -25;
+ specialfunctions = 4
+ },
+/turf/open/floor/wood/wood_diagonal,
+/area/maintenance/port/fore)
+"kiY" = (
+/obj/machinery/door/airlock/external{
+ name = "Port Docking Bay 4"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"kkb" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"kkK" = (
+/obj/machinery/vending/autodrobe,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"klN" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"kma" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/security/prison/cells)
+"kmw" = (
+/obj/structure/chair/comfy/black{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"kmS" = (
+/obj/structure/dresser,
+/obj/item/flashlight/lamp/green{
+ pixel_x = -2;
+ pixel_y = 15
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"knx" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Central Access"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"knA" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"kob" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"kqo" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 4
+ },
+/obj/structure/chair/pew{
+ dir = 4
+ },
+/turf/open/floor/wood/wood_diagonal,
+/area/maintenance/port/fore)
+"kqy" = (
+/obj/machinery/gear_painter,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"ksa" = (
+/obj/structure/closet/secure_closet/brig,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot_white,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"ktP" = (
+/obj/machinery/power/smes{
+ charge = 5e+006
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"ktS" = (
+/turf/open/space/basic,
+/area/space/nearstation)
+"ktW" = (
+/obj/machinery/hydroponics/soil,
+/obj/item/plant_analyzer,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"kuh" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"kuw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/structure/cable,
+/obj/machinery/power/apc{
+ areastring = "/area/commons/arcade";
+ dir = 8;
+ name = "Arcade Room";
+ pixel_x = -25
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"kuA" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/item/radio/intercom{
+ pixel_y = 20
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/range)
+"kuL" = (
+/obj/item/trash/candy,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"kvL" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"kwY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"kxf" = (
+/obj/machinery/vr_sleeper{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"kzn" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/command/gateway)
+"kzT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/science/mixing)
+"kAH" = (
+/obj/machinery/camera{
+ c_tag = "Bar West";
+ dir = 4
+ },
+/obj/machinery/computer/arcade/orion_trail,
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"kAO" = (
+/obj/structure/window,
+/obj/structure/chair/sofa/corp{
+ dir = 1
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"kCa" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/security/range)
+"kCo" = (
+/obj/machinery/door/airlock{
+ name = "Theatre Backstage";
+ req_access_txt = "46"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"kEm" = (
+/mob/living/simple_animal/opossum/poppy,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"kEJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"kEY" = (
+/obj/effect/landmark/stationroom/box/engine,
+/turf/open/space/basic,
+/area/space)
+"kGj" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"kGv" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"kGJ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"kGL" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/maintenance/prison/starboard)
+"kHd" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Prisoner Processing";
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/processing)
+"kJE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"kMn" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/camera{
+ c_tag = "Permabrig North";
+ dir = 4;
+ network = list("ss13","prison")
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/structure/disposaloutlet{
+ dir = 4;
+ name = "Prisoner Delivery"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/structure/window/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"kMt" = (
+/obj/machinery/computer/prisoner/gulag_teleporter_computer,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"kNv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/sign/poster/contraband/free_drone{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"kOE" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"kOL" = (
+/obj/structure/table/glass,
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"kPd" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/service)
+"kPi" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/cobweb,
+/obj/machinery/light/small/broken{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"kPj" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/junction/flip,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"kQa" = (
+/obj/machinery/door/airlock/medical/glass{
+ id_tag = "MedbayFoyer";
+ name = "Paramedic's Office";
+ req_access_txt = "5;6;12;64"
+ },
+/turf/open/floor/plating,
+/area/medical/paramedic)
+"kQk" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/department/medical/morgue)
+"kQz" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"kSb" = (
+/obj/effect/turf_decal/bot_red,
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"kTj" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ req_access_txt = "12"
+ },
+/obj/structure/barricade/wooden,
+/obj/structure/girder,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"kUC" = (
+/obj/machinery/chem_master/condimaster,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"kVj" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/medical{
+ name = "Paramedic's Office";
+ req_access_txt = "5;6;12;64"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"kWp" = (
+/obj/structure/shuttle/engine/heater{
+ dir = 1
+ },
+/turf/closed/wall/mineral/titanium,
+/area/space/nearstation)
+"kYk" = (
+/obj/machinery/door/firedoor,
+/obj/structure/sign/departments/evac{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"kYm" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"kZS" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"laq" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/range)
+"laN" = (
+/obj/machinery/space_heater,
+/turf/open/floor/plating,
+/area/commons/storage/emergency/starboard)
+"lcx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/command/gateway)
+"ldT" = (
+/obj/structure/chair/office{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"ldY" = (
+/obj/machinery/door/airlock/security{
+ name = "Firing Range";
+ req_access_txt = "2"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"leE" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/maintenance/bar)
+"lfu" = (
+/obj/machinery/light/small,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/structure/urinal{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"lfV" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"lgX" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"lht" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"lhQ" = (
+/obj/machinery/power/floodlight,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"lic" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"lip" = (
+/obj/structure/closet{
+ name = "Suit Closet"
+ },
+/obj/item/clothing/under/suit/white,
+/obj/item/clothing/under/suit/tan,
+/obj/item/clothing/under/suit/red,
+/obj/item/clothing/under/suit/black_really,
+/obj/item/clothing/under/suit/navy,
+/obj/item/clothing/under/suit/green,
+/obj/item/clothing/under/suit/black/skirt,
+/obj/item/clothing/under/suit/checkered,
+/obj/item/clothing/under/suit/charcoal,
+/obj/item/clothing/under/suit/burgundy,
+/obj/item/clothing/under/suit/black,
+/obj/item/clothing/under/rank/civilian/lawyer/black,
+/obj/item/clothing/under/suit/black,
+/obj/item/clothing/under/rank/civilian/lawyer/blue,
+/obj/item/clothing/under/rank/civilian/lawyer/bluesuit,
+/obj/item/clothing/under/rank/civilian/lawyer/female,
+/obj/item/clothing/under/rank/civilian/lawyer/purpsuit,
+/obj/item/clothing/under/rank/civilian/lawyer/really_black,
+/obj/item/clothing/under/rank/civilian/lawyer/red,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"liJ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"ljV" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/closet/l3closet/scientist,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"lkT" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"llb" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/computer/libraryconsole/bookmanagement,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"lnk" = (
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"lpx" = (
+/obj/structure/window,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"lpQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/command/gateway)
+"lqO" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot_white/right,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/nuke_storage)
+"lsk" = (
+/obj/machinery/vending/kink,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"lsS" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"ltm" = (
+/obj/structure/chair/comfy/brown{
+ color = "#66b266";
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"ltw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"ltK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"lux" = (
+/obj/structure/closet/crate/hydroponics,
+/obj/item/paper/guides/jobs/hydroponics,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/item/seeds/onion,
+/obj/item/seeds/garlic,
+/obj/item/seeds/potato,
+/obj/item/seeds/tomato,
+/obj/item/seeds/carrot,
+/obj/item/seeds/grass,
+/obj/item/seeds/ambrosia,
+/obj/item/seeds/wheat,
+/obj/item/seeds/pumpkin,
+/obj/effect/spawner/lootdrop/prison_contraband,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"lva" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"lvc" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"lvw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "permacells6";
+ name = "Privacy Shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/prison/cells)
+"lwN" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"lzk" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/junction{
+ dir = 8
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/fore)
+"lzt" = (
+/obj/machinery/portable_atmospherics/pump,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"lAB" = (
+/obj/structure/sign/nanotrasen,
+/turf/closed/wall/r_wall/syndicate,
+/area/science/circuit)
+"lAD" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/camera{
+ c_tag = "Prison Cell Block Central";
+ dir = 1;
+ network = list("ss13","prison")
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"lAH" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/processing)
+"lBd" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/structure/chair,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"lBk" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/public/glass{
+ name = "Prison Yard"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"lBz" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/door/window/northleft{
+ name = "Brig Operations";
+ req_one_access_txt = "4; 1"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"lCi" = (
+/obj/docking_port/stationary/public_mining_dock{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/construction/mining/aux_base)
+"lCo" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"lCt" = (
+/obj/machinery/light/small{
+ dir = 1;
+ light_color = "#ffc1c1"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"lDm" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"lEf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "permacells4";
+ name = "Privacy Shutters"
+ },
+/turf/open/floor/plating,
+/area/security/prison/cells)
+"lGm" = (
+/obj/machinery/shower{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/security/prison/cells)
+"lGV" = (
+/obj/machinery/button/door{
+ id = "maintdiy";
+ name = "Shutters Control Button";
+ pixel_x = -6;
+ pixel_y = 24
+ },
+/turf/open/floor/plating,
+/area/service/abandoned_gambling_den)
+"lHK" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"lJA" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/security/prison/cells)
+"lJC" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Escape Pod Three"
+ },
+/turf/open/floor/plating,
+/area/security/office)
+"lJS" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"lKj" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal/incinerator)
+"lLf" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/command/nuke_storage)
+"lLu" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"lLA" = (
+/obj/machinery/computer/slot_machine{
+ balance = 15;
+ money = 500
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"lMg" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"lNB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/landmark/xmastree{
+ pixel_x = 14
+ },
+/turf/open/floor/carpet/black,
+/area/service/chapel/main)
+"lNH" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/processing)
+"lNQ" = (
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#d1dfff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"lOr" = (
+/obj/machinery/light/floor,
+/obj/structure/table/reinforced,
+/obj/item/cardpack/syndicate,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"lPr" = (
+/obj/item/kirbyplants{
+ icon_state = "applebush"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"lPG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/item/soap,
+/obj/effect/landmark/xeno_spawn,
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"lQG" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/science/circuit)
+"lRb" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/range)
+"lSa" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/primary/port)
+"lUP" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12;
+ pixel_y = 2
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"lUS" = (
+/obj/structure/table/wood/fancy/black,
+/obj/machinery/light/small,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"lUU" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"lVy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"lWD" = (
+/turf/open/floor/carpet/black,
+/area/commons/arcade)
+"lYI" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"lZa" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/door/window/westright{
+ name = "Red Corner"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"lZl" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/coin/gold,
+/obj/item/coin/gold,
+/obj/item/coin/gold,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"lZn" = (
+/obj/machinery/door/airlock/security/glass{
+ id_tag = null;
+ name = "Brig Infirmary";
+ req_access_txt = "2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"lZp" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"lZs" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"lZK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/fitness/pool)
+"lZN" = (
+/obj/machinery/door/airlock/wood{
+ id_tag = "Sauna";
+ name = "Sauna"
+ },
+/turf/open/floor/wood/wood_diagonal,
+/area/maintenance/port/fore)
+"mau" = (
+/obj/machinery/power/apc{
+ areastring = "/area/service/theater";
+ dir = 8;
+ name = "Theatre APC";
+ pixel_x = -25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"maP" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"maT" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal/incinerator)
+"maU" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"mbC" = (
+/obj/effect/turf_decal/caution/stand_clear/red,
+/turf/open/floor/plasteel/dark,
+/area/cargo/miningdock)
+"mbU" = (
+/obj/machinery/vr_sleeper{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"mcp" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/security/range)
+"mcE" = (
+/obj/machinery/vending/cigarette,
+/obj/structure/sign/poster/contraband/fun_police{
+ pixel_x = 32
+ },
+/turf/open/floor/carpet/black,
+/area/commons/arcade)
+"meb" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/bed,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"mfI" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
+"mgF" = (
+/obj/structure/bed,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"mhv" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Prison Visitation Observation";
+ req_access_txt = "2"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"mjr" = (
+/obj/structure/reagent_dispensers/keg/milk,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"mjJ" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/execution/transfer)
+"mke" = (
+/obj/machinery/camera{
+ c_tag = "Prison Common Room";
+ dir = 8;
+ network = list("ss13","prison")
+ },
+/obj/machinery/vr_sleeper{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"mkv" = (
+/obj/machinery/camera{
+ c_tag = "Gravity Generator Room";
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#c1caff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"mkU" = (
+/obj/machinery/door/airlock/external{
+ name = "Labor Camp Shuttle Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/security/processing)
+"mml" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"mmx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet/locker)
+"mnu" = (
+/obj/machinery/cryopod{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"mnC" = (
+/obj/structure/target_stake,
+/obj/item/target/syndicate,
+/turf/open/floor/plating,
+/area/security/range)
+"moe" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"mos" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/item/radio/intercom{
+ desc = "Talk through this. It looks like it has been modified to not broadcast.";
+ name = "Prison Intercom (General)";
+ pixel_x = -27;
+ pixel_y = -27;
+ prison_radio = 1
+ },
+/obj/machinery/flasher{
+ id = "Cell 3";
+ pixel_x = -24;
+ pixel_y = -36
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/structure/bed,
+/obj/item/bedsheet/yellow,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"moD" = (
+/obj/item/reagent_containers/food/snacks/bluecherrycupcake{
+ pixel_y = 5
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"moS" = (
+/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible,
+/obj/machinery/meter,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"mps" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"mpI" = (
+/obj/structure/table/reinforced,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/item/toy/syndicateballoon,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/maintenance/bar)
+"mpY" = (
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/mop,
+/obj/item/reagent_containers/glass/bottle/ammonia,
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 12
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"mqo" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"mqH" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/poddoor/shutters{
+ id = "commissaryshutters";
+ name = "Vacant Commissary Shutters"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"mqQ" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/maintenance/prison/port)
+"mqZ" = (
+/turf/open/floor/plasteel/dark/telecomms,
+/area/maintenance/bar)
+"msp" = (
+/obj/machinery/computer/arcade/orion_trail,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"mte" = (
+/obj/structure/closet/crate,
+/obj/item/reagent_containers/glass/bowl,
+/obj/item/reagent_containers/glass/bowl,
+/obj/item/reagent_containers/glass/bowl,
+/obj/item/reagent_containers/glass/bowl,
+/obj/item/reagent_containers/glass/bowl,
+/obj/item/reagent_containers/glass/bowl,
+/obj/item/reagent_containers/glass/bowl,
+/obj/item/reagent_containers/glass/bowl,
+/obj/item/storage/box/drinkingglasses,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/box/drinkingglasses,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"mtU" = (
+/obj/structure/sign/departments/holy,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/chapel/main)
+"mui" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Prison Common Room"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"muv" = (
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/obj/machinery/shower,
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"mvt" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"mvV" = (
+/obj/effect/spawner/lootdrop/prison_contraband,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/bed{
+ dir = 8
+ },
+/obj/item/bedsheet/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"mwj" = (
+/obj/structure/noticeboard{
+ dir = 8;
+ pixel_x = 27
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/meeting_room)
+"mwN" = (
+/obj/structure/chair/sofa/left,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"mwS" = (
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/port/fore)
+"mxn" = (
+/obj/machinery/door/airlock/external{
+ name = "Escape Pod Three"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/security/office)
+"mxZ" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/closet/crate/trashcart/laundry,
+/obj/item/clothing/under/rank/prisoner,
+/obj/item/clothing/under/rank/prisoner,
+/obj/item/clothing/under/rank/prisoner/skirt,
+/obj/item/clothing/under/rank/prisoner/skirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/clothing/shoes/sneakers/orange{
+ pixel_y = 8
+ },
+/obj/item/clothing/shoes/sneakers/orange{
+ pixel_y = 8
+ },
+/obj/item/clothing/shoes/sneakers/orange{
+ pixel_y = 8
+ },
+/obj/item/clothing/shoes/sneakers/orange{
+ pixel_y = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
+"myh" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/service/theater)
+"mzv" = (
+/obj/machinery/door/morgue{
+ name = "Confession Booth"
+ },
+/turf/open/floor/wood/wood_large,
+/area/service/chapel/main)
+"mzB" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"mzT" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/vending/coffee,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"mAH" = (
+/obj/machinery/atmospherics/components/unary/tank/air{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"mAT" = (
+/obj/machinery/shower{
+ dir = 8;
+ pixel_y = -4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/security/prison/cells)
+"mCm" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"mCo" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/execution/transfer)
+"mDZ" = (
+/obj/structure/table/reinforced,
+/obj/item/ammo_box/magazine/pistolm9mm,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"mFo" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"mGw" = (
+/obj/machinery/door/airlock/security{
+ name = "Labor Shuttle";
+ req_access_txt = "2"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/door/firedoor,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/range)
+"mHA" = (
+/obj/item/reagent_containers/food/snacks/grown/banana,
+/obj/item/reagent_containers/food/snacks/grown/banana,
+/obj/item/reagent_containers/food/snacks/grown/wheat,
+/obj/item/reagent_containers/food/snacks/grown/watermelon,
+/obj/item/reagent_containers/food/snacks/grown/watermelon,
+/obj/item/reagent_containers/food/snacks/grown/watermelon,
+/obj/item/reagent_containers/food/snacks/grown/citrus/orange,
+/obj/item/reagent_containers/food/snacks/grown/grapes,
+/obj/item/reagent_containers/food/snacks/grown/cocoapod,
+/obj/structure/rack,
+/obj/item/seeds/wheat,
+/obj/item/seeds/watermelon,
+/obj/item/seeds/watermelon,
+/obj/item/seeds/grape,
+/obj/item/seeds/glowshroom,
+/obj/item/seeds/cannabis/rainbow,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"mHH" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"mHU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/light_construct{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"mIZ" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"mJf" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/engineering/gravity_generator)
+"mJo" = (
+/obj/structure/door_assembly/door_assembly_mai,
+/obj/item/electronics/airlock,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"mJy" = (
+/obj/structure/table,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/item/restraints/handcuffs,
+/obj/item/taperecorder,
+/obj/item/folder/red,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"mJH" = (
+/obj/structure/cable,
+/obj/effect/spawner/structure/window/reinforced/tinted/electrochromatic{
+ electrochromatic_id = "!permabrigshowers"
+ },
+/turf/open/floor/plating,
+/area/security/prison/cells)
+"mLS" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/starboard/aft)
+"mNi" = (
+/obj/machinery/light_switch{
+ pixel_x = -20
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"mNW" = (
+/obj/structure/sign/poster/official/fruit_bowl{
+ pixel_y = 32
+ },
+/obj/structure/closet/firecloset,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"mOB" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Gravity Generator";
+ req_access_txt = "11"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"mOG" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/engineering/atmos)
+"mPk" = (
+/obj/structure/bed,
+/obj/machinery/button/door{
+ id = "Dorm5";
+ name = "Cabin Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_y = -25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"mPr" = (
+/obj/structure/rack,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/obj/effect/decal/cleanable/cobweb,
+/obj/item/clothing/under/color/grey,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"mPE" = (
+/obj/structure/sign/painting/library,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/library)
+"mQp" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/airlock/external{
+ name = "Solar Maintenance";
+ req_access_txt = "10; 13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/starboard/aft)
+"mQS" = (
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"mRe" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"mRQ" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"mTG" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"mZu" = (
+/obj/machinery/door/airlock{
+ name = "Cleaning Closet"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"mZx" = (
+/obj/structure/table/glass,
+/obj/item/storage/box/matches{
+ pixel_x = 4;
+ pixel_y = -8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"naj" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "executionfireblast"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"naI" = (
+/turf/open/space,
+/area/space/station_ruins)
+"nbr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/primary/port)
+"nbT" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "bridge blast";
+ name = "bridge blast door"
+ },
+/turf/open/floor/plating,
+/area/hallway/primary/central)
+"nbY" = (
+/obj/item/melee/baton/cattleprod,
+/obj/item/stock_parts/cell/high,
+/obj/item/electropack,
+/obj/structure/closet/secure_closet{
+ name = "Persuasion Storage";
+ req_access = "list(2)"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/brig)
+"ncg" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/shower{
+ dir = 1
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"ncU" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "visitation";
+ name = "Visitation Shutters"
+ },
+/obj/structure/window/reinforced,
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"ndq" = (
+/turf/open/floor/plating,
+/area/service/abandoned_gambling_den)
+"nez" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/primary/port)
+"ngq" = (
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"ngs" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ngU" = (
+/obj/structure/rack,
+/obj/item/storage/firstaid,
+/obj/item/clothing/glasses/hud/health,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"ngV" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"nhY" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"nko" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/landmark/start/prisoner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/button/door{
+ id = "permacells2";
+ name = "Privacy Shutters";
+ pixel_x = 25
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"nkP" = (
+/obj/structure/loot_pile/maint,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"nmZ" = (
+/obj/effect/mapping_helpers/airlock/locked,
+/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos{
+ pixel_x = 38;
+ pixel_y = 6
+ },
+/turf/open/floor/engine,
+/area/maintenance/disposal/incinerator)
+"nnp" = (
+/obj/structure/closet/secure_closet/medical1,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"nnM" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/starboard/aft)
+"noa" = (
+/obj/machinery/door/airlock/maintenance/abandoned,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"noy" = (
+/obj/structure/sign/poster/contraband/smoke{
+ desc = "This poster reminds us all that the Detective is a parasite. Year after year, they must get replacement lungs because of their addiction. ";
+ pixel_y = -32
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/detectives_office)
+"noF" = (
+/obj/machinery/door/airlock{
+ name = "Instrument Storage"
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/starboard/fore)
+"noJ" = (
+/obj/structure/closet/secure_closet/brig,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot_white,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"noL" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"noR" = (
+/obj/structure/sink/kitchen{
+ pixel_y = 28
+ },
+/obj/structure/chair/stool,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"nqu" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"nss" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/door/window/northright{
+ name = "Brig Operations";
+ req_one_access_txt = "4; 1"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"nsA" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/service/abandoned_gambling_den)
+"ntt" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"nuw" = (
+/obj/structure/table,
+/obj/item/storage/box/syndie_kit/chameleon,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"nwX" = (
+/obj/structure/grille/broken,
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"nxv" = (
+/obj/machinery/power/apc{
+ areastring = "/area/construction";
+ name = "Construction Area APC";
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/construction)
+"nyi" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/paramedic)
+"nyn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"nzB" = (
+/obj/machinery/hydroponics/soil{
+ pixel_y = 8
+ },
+/obj/item/seeds/grass,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"nzR" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal/incinerator)
+"nzX" = (
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 8;
+ name = "8maintenance loot spawner"
+ },
+/obj/structure/rack,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"nBI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/fore)
+"nDd" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light,
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"nEj" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/security/processing)
+"nEu" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/surgery)
+"nFj" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 10
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"nFA" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"nGf" = (
+/obj/machinery/hydroponics/constructable,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"nGt" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"nJP" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 5
+ },
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
+"nJQ" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
+/obj/machinery/atmospherics/pipe/simple/purple/visible{
+ dir = 4
+ },
+/turf/open/space,
+/area/space/nearstation)
+"nLu" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"nLw" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/window{
+ dir = 1
+ },
+/obj/structure/window{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"nLP" = (
+/obj/item/storage/bag/trash,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"nNF" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"nPr" = (
+/obj/item/broken_bottle,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"nQi" = (
+/obj/machinery/recharge_station,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"nRG" = (
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/starboard/aft)
+"nRO" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/airlock/grunge{
+ name = "Permanent Cell 2";
+ wiretypepath = /datum/wires/airlock/security
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"nSt" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"nSI" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"nTG" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/processing)
+"nTU" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "Air to Ports"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"nUV" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"nVz" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/ai_upload)
+"nXg" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/box/syndie_kit/chameleon,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"nYe" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"nYT" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
+/turf/open/space,
+/area/space/nearstation)
+"nZh" = (
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/execution/transfer)
+"nZs" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"nZE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"nZL" = (
+/obj/machinery/computer/arcade/orion_trail,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"oax" = (
+/obj/machinery/light,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 20
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = 3;
+ pixel_y = 20
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4;
+ pixel_y = 5
+ },
+/obj/item/clothing/head/hardhat/cakehat,
+/obj/structure/table/reinforced,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"obq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"obs" = (
+/obj/machinery/light/small{
+ dir = 1;
+ light_color = "#ffc1c1"
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/padded,
+/area/security/execution/transfer)
+"oby" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/item/radio/intercom{
+ pixel_y = 20
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"oce" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"ocv" = (
+/obj/structure/table,
+/obj/item/clothing/gloves/boxing/yellow,
+/obj/item/clothing/gloves/boxing/green,
+/obj/item/clothing/gloves/boxing/blue,
+/obj/item/clothing/gloves/boxing/blue,
+/obj/item/clothing/gloves/boxing,
+/obj/item/clothing/gloves/boxing,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"odx" = (
+/obj/structure/closet/secure_closet/freezer/fridge,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/maintenance/bar)
+"odV" = (
+/obj/structure/loot_pile/maint,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"ofj" = (
+/obj/machinery/smartfridge/organ/preloaded,
+/turf/closed/wall,
+/area/medical/surgery)
+"ofU" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"ohq" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"oiY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"okK" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/item/radio/intercom{
+ desc = "Talk through this. It looks like it has been modified to not broadcast.";
+ name = "Prison Intercom (General)";
+ pixel_x = -27;
+ pixel_y = -27;
+ prison_radio = 1
+ },
+/obj/machinery/flasher{
+ id = "Cell 1";
+ pixel_x = -24;
+ pixel_y = -36
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/structure/bed,
+/obj/item/bedsheet/green,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"old" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/sign/departments/security{
+ pixel_x = -32;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"olr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"olH" = (
+/obj/structure/closet/crate,
+/obj/effect/spawner/lootdrop/prison_contraband,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"omk" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"omE" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/shutters{
+ id = "stationawaygate";
+ name = "Gateway Access Shutters"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/command/gateway)
+"omX" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/holopad,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"ooF" = (
+/obj/effect/turf_decal/stripes/white/line,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"oqf" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"oqj" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/commons/fitness)
+"oqO" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#c1caff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"oss" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"otC" = (
+/obj/machinery/status_display/evac,
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/ai_upload)
+"ouf" = (
+/obj/effect/turf_decal/trimline/blue/filled/corner{
+ dir = 4
+ },
+/obj/structure/closet/secure_closet/paramedic,
+/turf/open/floor/plasteel/dark,
+/area/medical/paramedic)
+"ouQ" = (
+/obj/machinery/vending/cigarette/beach,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"ovv" = (
+/obj/structure/table,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/recharger,
+/obj/item/gun/energy/laser/practice,
+/obj/item/gun/energy/laser/practice,
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 30
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/range)
+"owa" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"owx" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/commons/locker)
+"oxm" = (
+/obj/structure/flora/ausbushes/fullgrass,
+/obj/structure/flora/ausbushes/sparsegrass,
+/obj/structure/flora/ausbushes/ppflowers,
+/obj/structure/flora/ausbushes/ywflowers,
+/obj/structure/flora/ausbushes/brflowers,
+/obj/effect/spawner/structure/window,
+/turf/open/floor/grass,
+/area/service/bar)
+"oyl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/machinery/door/window/eastleft{
+ name = "Blue Corner"
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"oyN" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"oyX" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 4;
+ name = "Air In"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"ozh" = (
+/obj/machinery/door/window/eastright{
+ dir = 8;
+ name = "Holding Cell";
+ req_access_txt = "2"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/button/flasher{
+ id = "waitingflash";
+ pixel_x = 6;
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
+"oAB" = (
+/obj/structure/fireplace{
+ pixel_y = -6
+ },
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"oBQ" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ name = "Space Loop In"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"oCF" = (
+/obj/structure/closet/crate{
+ icon_state = "crateopen"
+ },
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"oDm" = (
+/obj/machinery/gulag_teleporter,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"oDD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"oDN" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/commons/fitness)
+"oEZ" = (
+/obj/effect/spawner/lootdrop/keg,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"oGv" = (
+/obj/structure/extinguisher_cabinet,
+/turf/closed/wall/r_wall/syndicate,
+/area/hallway/primary/central)
+"oHB" = (
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"oIl" = (
+/obj/structure/weightmachine/weightlifter,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"oIJ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"oIW" = (
+/obj/structure/toilet/secret/low_loot{
+ dir = 8
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/dorms)
+"oJV" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"oKh" = (
+/obj/structure/chair/sofa/corp/left{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/maintenance/bar)
+"oKB" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"oLl" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light_switch{
+ pixel_y = -25
+ },
+/turf/open/floor/plating,
+/area/service/abandoned_gambling_den)
+"oMT" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"oNz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"oPY" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"oQY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/medbay/central)
+"oTx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "permacells2";
+ name = "Privacy Shutters"
+ },
+/turf/open/floor/plating,
+/area/security/prison/cells)
+"oTH" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/shower,
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"oTW" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"oUh" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/machinery/disposal/bin,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"oUF" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"oVo" = (
+/obj/structure/pool/ladder,
+/turf/open/pool,
+/area/commons/fitness/pool)
+"oVL" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"oVN" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"oXn" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 10
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/atmos)
+"oXV" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "visitation";
+ name = "Visitation Shutters"
+ },
+/obj/structure/window/reinforced,
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"oZl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/closet/wardrobe/pjs,
+/obj/item/clothing/under/rank/civilian/janitor/maid,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"paJ" = (
+/obj/structure/rack,
+/obj/item/storage/box/syndie_kit/chameleon,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"pbC" = (
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"pcz" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"pem" = (
+/obj/machinery/button/door{
+ desc = "Bolts the doors to the Private Study.";
+ id = "PrivateStudy";
+ name = "Private Study Lock";
+ pixel_x = 25;
+ pixel_y = 25;
+ req_access_txt = "";
+ req_one_access_txt = "28;63"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"peD" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"peE" = (
+/obj/structure/table/reinforced,
+/obj/structure/reagent_dispensers/servingdish,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"pgf" = (
+/turf/open/floor/plasteel/freezer,
+/area/commons/dorms)
+"pgl" = (
+/obj/structure/closet/firecloset,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"pgn" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/security/range)
+"pgq" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Prison Common Room"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"pgZ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"pjg" = (
+/obj/structure/table/wood,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"pkg" = (
+/turf/open/floor/plating,
+/area/commons/storage/emergency/starboard)
+"pkq" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/port/fore)
+"pkF" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -27;
+ pixel_y = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"plS" = (
+/obj/machinery/door/window/brigdoor/security/cell{
+ id = "Cell 1";
+ name = "Cell 1"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"pnb" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
+"pnc" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/structure/window{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"poc" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"pou" = (
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/plating,
+/area/service/abandoned_gambling_den)
+"ppw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"pqe" = (
+/obj/structure/window{
+ dir = 1
+ },
+/obj/effect/landmark/start/assistant,
+/obj/structure/chair/sofa/corp,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"pqs" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/gear_painter,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"pqR" = (
+/obj/structure/chair/pew/right{
+ dir = 4
+ },
+/turf/open/floor/wood/wood_diagonal,
+/area/maintenance/port/fore)
+"pry" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/port/fore)
+"psf" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/sign/poster/official/the_owl{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"pst" = (
+/obj/machinery/gateway/centerstation,
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"pta" = (
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/space/nearstation)
+"pub" = (
+/obj/machinery/light_switch{
+ pixel_x = -20
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/command/gateway";
+ dir = 8;
+ name = "Gateway APC";
+ pixel_x = -25;
+ pixel_y = -1
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"puh" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/light/small,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"pvJ" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"pwF" = (
+/obj/machinery/shower{
+ dir = 4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/security/prison/cells)
+"pzG" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"pzP" = (
+/obj/machinery/door/airlock/maintenance/abandoned{
+ req_access_txt = "12"
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/port/fore)
+"pAK" = (
+/obj/machinery/door/window/brigdoor/security/cell{
+ id = "Cell 3";
+ name = "Cell 3"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"pBd" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/prison/starboard";
+ dir = 4;
+ name = "Prison Central Maintenance APC";
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/bot,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/maintenance/prison/starboard)
+"pBp" = (
+/obj/effect/landmark/event_spawn,
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/fitness)
+"pCj" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"pCE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"pDe" = (
+/obj/machinery/door/window/southright{
+ name = "Target Storage"
+ },
+/obj/item/target/alien,
+/obj/item/target/alien,
+/obj/item/target/syndicate,
+/turf/open/floor/plating,
+/area/security/range)
+"pDG" = (
+/obj/structure/closet,
+/obj/item/clothing/glasses/science,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"pFj" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/light/small{
+ dir = 4;
+ light_color = "#d8b1b1"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"pFt" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"pFY" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-06"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"pGs" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/prison/starboard)
+"pGA" = (
+/obj/machinery/hydroponics/soil,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"pHl" = (
+/obj/structure/table,
+/obj/item/storage/box/beakers{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/obj/item/storage/box/syringes,
+/obj/item/reagent_containers/glass/bottle/epinephrine{
+ pixel_x = 7;
+ pixel_y = -3
+ },
+/obj/item/reagent_containers/glass/bottle/morphine{
+ pixel_x = 8;
+ pixel_y = -3
+ },
+/obj/item/reagent_containers/syringe{
+ pixel_x = 6;
+ pixel_y = -3
+ },
+/obj/item/radio/intercom{
+ frequency = 1485;
+ name = "Station Intercom (Medbay)";
+ pixel_x = 30
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"pHt" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"pHK" = (
+/obj/machinery/camera{
+ c_tag = "Prison Yard";
+ dir = 4;
+ network = list("ss13","prison")
+ },
+/obj/structure/chair/stool,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"pHO" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/sign/poster/contraband/fun_police{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"pIR" = (
+/obj/structure/table,
+/obj/item/storage/box/handcuffs{
+ pixel_y = 10
+ },
+/obj/item/storage/box/prisoner{
+ pixel_y = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "Prison Hallway West";
+ network = list("ss13","prison")
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"pJR" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/chair/comfy/black{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"pLn" = (
+/obj/machinery/conveyor/inverted{
+ dir = 5;
+ id = "garbage"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"pMQ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"pNS" = (
+/obj/effect/decal/cleanable/dirt{
+ desc = "A thin layer of dust coating the floor.";
+ name = "dust"
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"pPi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"pPE" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "permacells1";
+ name = "Privacy Shutters"
+ },
+/turf/open/floor/plating,
+/area/security/prison/cells)
+"pPI" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/gravity_generator)
+"pQp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/commons/fitness)
+"pQr" = (
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"pQN" = (
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"pRi" = (
+/obj/structure/table,
+/obj/item/reagent_containers/glass/bottle/morphine{
+ pixel_x = -4;
+ pixel_y = 1
+ },
+/obj/item/reagent_containers/glass/bottle/chloralhydrate,
+/obj/item/reagent_containers/glass/bottle/toxin{
+ pixel_x = 6;
+ pixel_y = 8
+ },
+/obj/item/reagent_containers/glass/bottle/morphine{
+ pixel_x = 5;
+ pixel_y = 1
+ },
+/obj/item/reagent_containers/syringe,
+/obj/item/reagent_containers/glass/bottle/facid{
+ name = "fluorosulfuric acid bottle";
+ pixel_x = -3;
+ pixel_y = 6
+ },
+/obj/item/reagent_containers/syringe{
+ pixel_y = 5
+ },
+/obj/item/reagent_containers/dropper,
+/obj/machinery/airalarm/directional/west,
+/obj/item/assembly/signaler{
+ pixel_x = -3;
+ pixel_y = 2
+ },
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 10
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/execution/transfer)
+"pRj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/fore)
+"pRs" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/commons/fitness)
+"pTB" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/space,
+/area/solars/starboard/aft)
+"pTT" = (
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"pUf" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"pUy" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/processing)
+"pUP" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"pVi" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"pXG" = (
+/obj/item/candle{
+ pixel_x = 5;
+ pixel_y = 2
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/carpet/black,
+/area/service/chapel/main)
+"pYQ" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/item/reagent_containers/glass/bucket,
+/obj/structure/sign/poster/official/hydro_ad{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"pZD" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/airlock/grunge{
+ name = "Permanent Cell 1";
+ wiretypepath = /datum/wires/airlock/security
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"qae" = (
+/obj/effect/decal/cleanable/vomit,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"qaY" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"qbk" = (
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"qcU" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"qeb" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/service/abandoned_gambling_den";
+ name = "Abandoned Gambling Den APC";
+ pixel_y = -24
+ },
+/turf/open/floor/plating,
+/area/service/abandoned_gambling_den)
+"qeA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Pool"
+ },
+/turf/open/floor/plasteel,
+/area/commons/fitness/pool)
+"qeQ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"qfk" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/structure/window,
+/obj/structure/window{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"qfD" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ desc = "Privacy shutters for the Private Study. Stops people spying in on your game.";
+ id = "PrivateStudy1";
+ name = "Private Study Privacy Shutters"
+ },
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"qgj" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"qhA" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/port/fore)
+"qjo" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"qki" = (
+/obj/machinery/door/airlock{
+ name = "Unisex Restrooms"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet/locker)
+"qkn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"qkC" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/landmark/start/paramedic,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"qll" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/fore)
+"qlV" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/fore)
+"qlY" = (
+/turf/open/floor/plasteel/dark,
+/area/maintenance/starboard/aft)
+"qnC" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/lobby)
+"qoT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"qto" = (
+/obj/machinery/hydroponics/soil,
+/obj/item/shovel/spade,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"qtw" = (
+/obj/machinery/door/airlock/external{
+ name = "Port Docking Bay 4"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"qtH" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 4
+ },
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
+"qus" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "kitchen";
+ name = "kitchen shutters"
+ },
+/obj/item/reagent_containers/food/snacks/cheesynachos{
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/kitchen)
+"quT" = (
+/obj/structure/lattice,
+/obj/structure/grille/broken,
+/turf/open/space/basic,
+/area/space/nearstation)
+"qvc" = (
+/obj/structure/table,
+/obj/structure/window,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ layer = 3.1;
+ pixel_x = -2;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table.";
+ pixel_x = -8;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/food/condiment/enzyme{
+ pixel_x = 9;
+ pixel_y = 3
+ },
+/obj/item/book/manual/chef_recipes,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"qvf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"qwA" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"qAu" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/structure/rack,
+/obj/item/storage/toolbox/emergency,
+/obj/machinery/light/small,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"qBi" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"qCc" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/prison/port)
+"qCw" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/carpet/black,
+/area/commons/arcade)
+"qCR" = (
+/obj/structure/musician/piano,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"qEB" = (
+/obj/machinery/hydroponics/soil{
+ pixel_y = 8
+ },
+/obj/item/seeds/berry,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"qFf" = (
+/obj/machinery/door/window/westright{
+ dir = 2
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"qFK" = (
+/obj/machinery/biogenerator,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"qGw" = (
+/obj/structure/chair/pew/right{
+ dir = 8
+ },
+/turf/open/floor/wood/wood_diagonal,
+/area/maintenance/port/fore)
+"qIw" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/commons/cryopod)
+"qIO" = (
+/turf/open/floor/plating/rust,
+/area/maintenance/starboard/aft)
+"qIW" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/machinery/atmospherics/components/unary/outlet_injector/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"qJr" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/space,
+/area/solars/port/aft)
+"qJV" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
+/obj/structure/lattice,
+/turf/open/space,
+/area/space/nearstation)
+"qLo" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/spawner/structure/window/reinforced/tinted/electrochromatic{
+ electrochromatic_id = "!permabrigshowers"
+ },
+/turf/open/floor/plating,
+/area/security/prison/cells)
+"qLy" = (
+/obj/structure/chair/sofa/left{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"qLR" = (
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ pixel_y = 25
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/dorms)
+"qMv" = (
+/obj/structure/sign/poster/contraband/syndicate_logo,
+/turf/closed/wall/r_wall/syndicate,
+/area/service/bar)
+"qNU" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "executionfireblast"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/window/westright{
+ dir = 2;
+ name = "Transfer Room";
+ req_access_txt = "2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/execution/transfer)
+"qOc" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/camera{
+ c_tag = "VR Sleepers";
+ dir = 1
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"qOB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"qOY" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/prison/starboard)
+"qQK" = (
+/obj/machinery/hydroponics/soil,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"qRI" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"qSf" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"qSo" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/commons/locker)
+"qSF" = (
+/obj/item/seeds/bee_balm/honey_balm,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"qTG" = (
+/obj/structure/table/reinforced,
+/obj/item/book/granter/spell/mimery_blockade,
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"qTV" = (
+/obj/item/kirbyplants{
+ icon_state = "plant-22"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/lobby)
+"qUh" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Chapel Office";
+ req_access_txt = "22"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/office)
+"qVP" = (
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/service/abandoned_gambling_den)
+"qWV" = (
+/obj/machinery/pool/filter{
+ pixel_y = 24
+ },
+/turf/open/pool,
+/area/commons/fitness/pool)
+"qXg" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/vending/cola/red{
+ onstation = 0
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"qXJ" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 9
+ },
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
+"qYa" = (
+/obj/effect/turf_decal/bot_white,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/prison/port)
+"qZD" = (
+/obj/effect/decal/cleanable/egg_smudge,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"qZQ" = (
+/obj/structure/holohoop{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"qZT" = (
+/obj/machinery/shower{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/security/prison/cells)
+"raH" = (
+/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"rba" = (
+/obj/structure/table/reinforced,
+/obj/item/clothing/head/HoS/syndicate,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"rbH" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/window{
+ dir = 1
+ },
+/obj/machinery/washing_machine,
+/turf/open/floor/plasteel/cafeteria,
+/area/commons/locker)
+"rcD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/science/circuit)
+"rcI" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/closet/secure_closet/brig{
+ id = "Cell 1";
+ name = "Cell 1 Locker"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"rcV" = (
+/obj/structure/sign/warning/securearea{
+ pixel_y = -32
+ },
+/turf/open/space/basic,
+/area/space)
+"rdl" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"rdG" = (
+/obj/machinery/hydroponics/constructable,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = 29
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"ref" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"reA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/obj/machinery/vending/games,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"reE" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"rgu" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ layer = 2.4
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"rgL" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"rgW" = (
+/obj/structure/chair/sofa/corp/right{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/bar)
+"rhX" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/processing)
+"rla" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/closet/firecloset,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"rmN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/structure/chair/comfy/black,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"rmQ" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"rnt" = (
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/carpet/black,
+/area/command/meeting_room)
+"rnK" = (
+/obj/structure/shuttle/engine/propulsion{
+ dir = 1
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"rqf" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"rqk" = (
+/obj/structure/reagent_dispensers/water_cooler,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"rqq" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"rqE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"rrM" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/structure/closet/wardrobe/black,
+/obj/item/clothing/under/dress/sundress,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"rsn" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "executionfireblast"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple,
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"rsp" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/table,
+/obj/item/flashlight,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"rtl" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/camera{
+ c_tag = "Gravity Generator - Fore"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"rtC" = (
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"rtU" = (
+/mob/living/simple_animal/opossum,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"ruo" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"ruu" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/security/glass{
+ id_tag = "permaouter";
+ name = "Permabrig Transfer";
+ req_access_txt = "2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"rvr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"rvS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"rwj" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/structure/closet/crate/bin,
+/turf/open/floor/plating{
+ icon_state = "platingdmg2"
+ },
+/area/maintenance/port/fore)
+"rwA" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/port/fore)
+"rxD" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/machinery/camera{
+ c_tag = "Locker Room Toilets";
+ dir = 8
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet/locker)
+"rxF" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/table/glass,
+/obj/item/storage/book/bible{
+ pixel_y = 17
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"ryi" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"ryr" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"ryN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"rAR" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"rAW" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/flasher{
+ id = "executionflash";
+ pixel_y = -25
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"rBq" = (
+/obj/structure/table/reinforced,
+/obj/machinery/microwave,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/maintenance/bar)
+"rBK" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"rBY" = (
+/obj/structure/bed,
+/turf/open/floor/padded,
+/area/security/execution/transfer)
+"rCl" = (
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/door/airlock/security/glass{
+ id_tag = "outerbrig";
+ name = "Brig";
+ req_access_txt = "63"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"rDc" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"rDh" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/sign/poster/contraband/clown{
+ pixel_y = -32
+ },
+/obj/structure/closet/crate/wooden/toy,
+/obj/item/toy/crayon/spraycan/lubecan,
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"rGo" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"rGq" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"rGZ" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/port/fore)
+"rIA" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/service/abandoned_gambling_den)
+"rJw" = (
+/obj/structure/table/glass,
+/obj/item/storage/backpack/duffelbag/med/surgery,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"rKP" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/construction)
+"rML" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"rNc" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/machinery/computer/security/telescreen/toxins{
+ dir = 1;
+ pixel_y = -28
+ },
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"rNG" = (
+/obj/machinery/status_display/evac,
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/command/storage/eva)
+"rQJ" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"rSf" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/old,
+/obj/structure/sign/poster/contraband/random{
+ pixel_y = 32
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"rTj" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"rTo" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "External to Pumps"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"rUe" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/medical/medbay/central)
+"rUr" = (
+/obj/effect/spawner/lootdrop/prison_contraband,
+/obj/structure/rack,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/prison/port)
+"rVy" = (
+/obj/structure/chair/sofa/corp/right,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/bar)
+"rVN" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"rWg" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/paramedic)
+"rXl" = (
+/obj/structure/chair/office/light,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"rYa" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"rYM" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/tracker,
+/turf/open/floor/plasteel/airless/solarpanel,
+/area/solars/port/fore)
+"rZE" = (
+/obj/structure/table,
+/turf/open/floor/carpet/black,
+/area/commons/arcade)
+"rZQ" = (
+/obj/docking_port/stationary{
+ dir = 8;
+ dwidth = 3;
+ height = 5;
+ id = "commonmining_home";
+ name = "SS13: Common Mining Dock";
+ roundstart_template = /datum/map_template/shuttle/mining_common/meta;
+ width = 7
+ },
+/turf/open/space/basic,
+/area/space)
+"saK" = (
+/obj/structure/closet/crate,
+/obj/item/target/alien,
+/obj/item/target/alien,
+/obj/item/target/clown,
+/obj/item/target/clown,
+/obj/item/target/syndicate,
+/obj/item/target/syndicate,
+/obj/item/gun/energy/laser/practice,
+/obj/item/gun/energy/laser/practice,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"saU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/engine_smes)
+"sci" = (
+/obj/machinery/vr_sleeper{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"sew" = (
+/obj/structure/table,
+/obj/machinery/microwave,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"seP" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Gate";
+ name = "brig shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"sfs" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"sfz" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/bed,
+/obj/item/bedsheet/red,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"shR" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"siz" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"ske" = (
+/obj/machinery/camera{
+ c_tag = "Permabrig South";
+ dir = 1;
+ network = list("ss13","prison")
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"slk" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"smN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/machinery/camera{
+ c_tag = "Locker Room West";
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"smP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/closet/crate,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"spR" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 4
+ },
+/obj/structure/chair/pew{
+ dir = 8
+ },
+/turf/open/floor/wood/wood_diagonal,
+/area/maintenance/port/fore)
+"sqg" = (
+/obj/structure/table/wood,
+/obj/item/clothing/under/misc/pj/red,
+/obj/item/clothing/shoes/sneakers/white,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"srG" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plating,
+/area/service/abandoned_gambling_den)
+"ssc" = (
+/obj/effect/turf_decal/stripes/white/line,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"ssB" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"sth" = (
+/obj/structure/table/glass,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"str" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/fitness/pool)
+"stF" = (
+/obj/structure/closet/secure_closet/personal,
+/obj/item/toy/poolnoodle/yellow,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"suC" = (
+/obj/machinery/shower{
+ dir = 4
+ },
+/obj/item/soap/nanotrasen,
+/turf/open/floor/plasteel/freezer,
+/area/security/prison/cells)
+"suN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/landmark/event_spawn,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"suS" = (
+/obj/structure/table,
+/obj/item/storage/fancy/egg_box,
+/obj/item/reagent_containers/food/condiment/flour,
+/obj/item/reagent_containers/food/condiment/rice,
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"sxs" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/table,
+/obj/item/storage/box/beakers{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/storage/box/beakers{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/service)
+"syJ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"szf" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"sAk" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"sAm" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"sAH" = (
+/obj/structure/chair/sofa/corp/right{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/maintenance/bar)
+"sAM" = (
+/obj/machinery/door/airlock/maintenance,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/maintenance/bar)
+"sAT" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"sBM" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"sEi" = (
+/obj/machinery/vr_sleeper{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"sEM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/commons/fitness)
+"sFW" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/sign/departments/restroom{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"sHd" = (
+/obj/machinery/door/window/southleft{
+ name = "Permabrig Kitchen"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"sHx" = (
+/obj/structure/table,
+/obj/item/book/manual/hydroponics_pod_people{
+ pixel_x = -4;
+ pixel_y = 5
+ },
+/obj/item/paper/guides/jobs/hydroponics{
+ pixel_x = -5;
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"sIn" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/plating,
+/area/maintenance/prison/starboard)
+"sJw" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/machinery/computer/shuttle/mining/common{
+ dir = 1
+ },
+/obj/machinery/camera{
+ c_tag = "Arrivals Bay Mining Dock";
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"sJx" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/hydroponics)
+"sJI" = (
+/obj/structure/table/wood/fancy,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = 3;
+ pixel_y = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"sKA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/security/execution/transfer)
+"sKL" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/maintenance/aft)
+"sLj" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"sLv" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"sMu" = (
+/obj/structure/lattice,
+/obj/structure/lattice,
+/obj/structure/grille,
+/turf/open/space/basic,
+/area/space/nearstation)
+"sMG" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"sMI" = (
+/obj/structure/table,
+/obj/item/storage/secure/briefcase,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"sNg" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"sNj" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"sOs" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance/abandoned,
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"sOA" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/detectives_office)
+"sPT" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"sPY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/engine_smes)
+"sRd" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/girder,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"sRH" = (
+/obj/machinery/autolathe/secure{
+ name = "public autolathe"
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"sSW" = (
+/obj/structure/chair/office/light,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"sUx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/command/gateway)
+"sVt" = (
+/obj/item/storage/secure/safe{
+ pixel_y = 32
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"sVD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance/abandoned{
+ name = "abandoned library";
+ req_access_txt = "12"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"sWR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/computer/bounty{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/cargo/office)
+"sXy" = (
+/obj/machinery/door/airlock/external{
+ name = "Security External Airlock";
+ req_access_txt = "63"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"sXV" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/security/range)
+"sYm" = (
+/obj/effect/turf_decal/vg_decals/atmos/mix,
+/turf/open/floor/engine/vacuum,
+/area/engineering/atmos)
+"sYv" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/closet/secure_closet/freezer/cream_pie,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"sYV" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"tal" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/hallway/secondary/service)
+"tbR" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/toilet{
+ dir = 8
+ },
+/obj/structure/window/reinforced/tinted{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"tcU" = (
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "46"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"tdd" = (
+/obj/machinery/camera{
+ c_tag = "Prison Cell Block North";
+ dir = 4;
+ network = list("ss13","prison")
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"teq" = (
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/machinery/light,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"tgH" = (
+/obj/structure/filingcabinet/employment,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"thg" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/sign/poster/contraband/random{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"thB" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#cee5d2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"tif" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"tkq" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"tkx" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"tkB" = (
+/obj/structure/rack,
+/obj/item/storage/box/syndie_kit/throwing_weapons,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"tkU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"tmO" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/security/range)
+"tnH" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#cee5d2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"tnL" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"tqg" = (
+/obj/machinery/cryopod{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/carpet,
+/area/commons/cryopod)
+"tqk" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/security/execution/transfer)
+"tqB" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"tqG" = (
+/obj/structure/chair/pew/left{
+ dir = 8
+ },
+/turf/open/floor/wood/wood_diagonal,
+/area/maintenance/port/fore)
+"trb" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/courtroom)
+"trT" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"tso" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/toilet{
+ dir = 4
+ },
+/obj/structure/window/reinforced/tinted{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"tsq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"ttd" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"ttL" = (
+/obj/structure/sign/poster/contraband/random{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"tur" = (
+/obj/machinery/deepfryer,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/maintenance/bar)
+"tvi" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"twE" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"txs" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/structure/toilet{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"tyb" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "visitation";
+ name = "Visitation Shutters"
+ },
+/obj/machinery/door/window/southright,
+/obj/structure/table/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"tyE" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"tyX" = (
+/obj/effect/turf_decal/bot_white,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"tzQ" = (
+/obj/machinery/shower{
+ dir = 4
+ },
+/obj/item/soap,
+/turf/open/floor/plasteel/freezer,
+/area/commons/dorms)
+"tAC" = (
+/obj/structure/closet/athletic_mixed,
+/obj/item/toy/poolnoodle/red,
+/obj/item/toy/poolnoodle/blue,
+/obj/item/toy/poolnoodle/yellow,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"tAH" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"tAS" = (
+/turf/open/floor/mineral/plastitanium/red,
+/area/hallway/secondary/exit)
+"tBV" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/medical/storage)
+"tCa" = (
+/obj/structure/table/wood,
+/obj/item/instrument/guitar{
+ pixel_x = -7
+ },
+/obj/item/instrument/eguitar{
+ pixel_x = 5
+ },
+/obj/item/instrument/violin,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"tCd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ alpha = 255;
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/lobby)
+"tCs" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/structure/toilet{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"tEK" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ name = "Solar Maintenance";
+ req_access_txt = "10; 13"
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
+"tEL" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/obj/item/storage/toolbox/electrical,
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
+"tHh" = (
+/obj/machinery/disposal/bin,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/disposalpipe/trunk,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"tHy" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/item/kirbyplants{
+ icon_state = "applebush"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"tHO" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"tIE" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/trimline/blue/filled/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/paramedic)
+"tJE" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/door/airlock/grunge{
+ name = "Isolation Cell";
+ req_access_txt = "2";
+ wiretypepath = /datum/wires/airlock/security
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"tJK" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Gravity Generator";
+ req_access_txt = "11"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"tJS" = (
+/obj/effect/spawner/lootdrop/keg,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"tKb" = (
+/obj/item/radio/intercom{
+ pixel_y = 20
+ },
+/turf/open/floor/plating,
+/area/commons/vacant_room/office/b)
+"tKk" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ icon_state = "roomnum";
+ name = "Room Number 1";
+ pixel_x = -30;
+ pixel_y = -7
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"tLC" = (
+/obj/machinery/vr_sleeper{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"tNl" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"tNF" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"tOk" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"tOq" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"tPY" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"tRe" = (
+/obj/machinery/chem_master,
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/central)
+"tRB" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"tSm" = (
+/obj/item/kirbyplants{
+ icon_state = "plant-18"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"tSo" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 6
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"tTc" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"tTw" = (
+/obj/structure/girder,
+/obj/structure/grille,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"tVB" = (
+/obj/effect/landmark/blobstart,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet/locker)
+"tVE" = (
+/obj/structure/table/reinforced,
+/obj/item/grenade/plastic,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"tWe" = (
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"tXs" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/port/fore)
+"tXL" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal/incinerator)
+"tYd" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 10
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/execution/transfer)
+"tYg" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"tZa" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"tZe" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/sign/poster/official/pda_ad{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"tZp" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/arcade)
+"tZu" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/structure/window/reinforced,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"uaw" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/bar";
+ dir = 1;
+ name = "Maint bar";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/dark/telecomms,
+/area/maintenance/bar)
+"udT" = (
+/obj/machinery/atmospherics/pipe/manifold/purple/visible,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"uei" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"ueN" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
+"ueZ" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = -30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/machinery/camera{
+ c_tag = "Atmospherics Central";
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"ufD" = (
+/obj/machinery/vr_sleeper{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"ugi" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"ugp" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"ugq" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/port/fore)
+"ugu" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"uhm" = (
+/obj/machinery/door/airlock{
+ name = "Recharging Station"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"uhK" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"ujv" = (
+/obj/structure/sign/departments/restroom,
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/toilet)
+"ujF" = (
+/obj/machinery/cryopod{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/commons/cryopod)
+"ujS" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"ulM" = (
+/obj/structure/closet/secure_closet/personal,
+/obj/item/toy/poolnoodle/red,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"unA" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"unQ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/item/papercutter,
+/obj/structure/table,
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/hop)
+"unR" = (
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"uoB" = (
+/obj/structure/table/reinforced,
+/obj/item/multitool,
+/obj/item/screwdriver,
+/obj/machinery/camera{
+ c_tag = "Circuitry Lab North";
+ network = list("ss13","rd")
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"uoG" = (
+/obj/machinery/power/apc{
+ areastring = "/area/security/detectives_office";
+ dir = 4;
+ name = "Detective's Office APC";
+ pixel_x = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/detectives_office)
+"uqu" = (
+/obj/machinery/hydroponics/soil{
+ pixel_y = 8
+ },
+/obj/item/cultivator,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"usE" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/structure/rack,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"usO" = (
+/obj/structure/chair/sofa/corp/left,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/maintenance/bar)
+"uua" = (
+/obj/machinery/atmospherics/components/binary/valve,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"uuw" = (
+/obj/machinery/hydroponics/soil,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"uuG" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"uve" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/coin/silver,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"uwN" = (
+/obj/structure/sign/poster/contraband/power,
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/locker)
+"uwQ" = (
+/obj/structure/sign/warning/securearea,
+/turf/closed/wall/r_wall/syndicate,
+/area/command/gateway)
+"uxY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/disposalpipe/sorting/mail{
+ sortType = 26
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"uzm" = (
+/obj/structure/table/reinforced,
+/obj/item/clothing/suit/syndicatefake,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"uBa" = (
+/obj/item/reagent_containers/food/drinks/soda_cans/starkist{
+ pixel_x = 5;
+ pixel_y = 7
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb{
+ pixel_x = -3;
+ pixel_y = 2
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"uBf" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"uBr" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/lobby)
+"uCn" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin,
+/obj/item/pen,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"uCo" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"uCU" = (
+/obj/machinery/door/airlock/security{
+ name = "Interrogation";
+ req_access_txt = "2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/firedoor,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"uDO" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/space,
+/area/solars/port/fore)
+"uEx" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "PoolShut";
+ name = "Pool Shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/commons/fitness/pool)
+"uFp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/cohiba_robusto_ad{
+ pixel_y = -32
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/detectives_office)
+"uFV" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/power/apc{
+ areastring = "/area/medical/storage";
+ name = "Medbay Surgery Storage";
+ pixel_x = 1;
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/storage)
+"uFZ" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/machinery/light{
+ light_color = "#cee5d2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/processing)
+"uGI" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"uHc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal/incinerator)
+"uHl" = (
+/obj/machinery/portable_atmospherics/pump,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"uHp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/security/office)
+"uIO" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"uJY" = (
+/obj/structure/chair/comfy/brown{
+ color = "#596479";
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"uKW" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"uLB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"uOm" = (
+/obj/machinery/light/small{
+ dir = 1;
+ light_color = "#ffc1c1"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/old,
+/mob/living/simple_animal/mouse/brown/Tom,
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"uOJ" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"uQR" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "O2 to Pure"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"uRd" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/engineering/gravity_generator)
+"uRS" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"uSc" = (
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#c1caff"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/table/reinforced,
+/obj/item/storage/backpack/duffelbag/clown/cream_pie,
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"uSC" = (
+/obj/machinery/pool/drain,
+/turf/open/pool,
+/area/commons/fitness/pool)
+"uTe" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"uTL" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"uUb" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"uVS" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"uWq" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"uXt" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"uZM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/ai_monitored/turret_protected/ai_upload)
+"uZY" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"vae" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"vbi" = (
+/obj/structure/table,
+/obj/item/instrument/guitar{
+ pixel_x = -7
+ },
+/obj/item/instrument/eguitar{
+ pixel_x = 5
+ },
+/obj/item/instrument/violin,
+/obj/item/instrument/trombone,
+/obj/item/instrument/saxophone,
+/obj/item/instrument/piano_synth,
+/obj/item/instrument/recorder,
+/obj/item/instrument/accordion,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"vbD" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/command/glass{
+ name = "EVA Storage";
+ req_access_txt = "18"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ai_monitored/command/storage/eva)
+"vcN" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"vda" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/security/range)
+"vde" = (
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/obj/effect/landmark/start/captain,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"vdo" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
+"vdu" = (
+/obj/structure/table/wood,
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/vacant_room/office)
+"veS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/fitness/pool)
+"vfX" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"vgJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/fore";
+ dir = 1;
+ name = "Fore Maintenance APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"vhy" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"vhC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"vim" = (
+/obj/machinery/computer/arcade/battle,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"viF" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/port)
+"viH" = (
+/obj/machinery/camera{
+ c_tag = "Permabrig Central";
+ dir = 8;
+ network = list("ss13","prison")
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"vmQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/commons/fitness)
+"vnI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/cargo/warehouse";
+ dir = 4;
+ name = "Cargo Warehouse APC";
+ pixel_x = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"vob" = (
+/obj/machinery/atmospherics/pipe/simple/yellow/visible,
+/obj/machinery/meter,
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"voT" = (
+/obj/machinery/camera{
+ c_tag = "Bathrooms";
+ dir = 1
+ },
+/obj/structure/sink{
+ pixel_y = 25
+ },
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"voW" = (
+/obj/structure/pool/Lboard,
+/turf/open/pool,
+/area/commons/fitness/pool)
+"voZ" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/storage)
+"vpY" = (
+/obj/structure/closet/lasertag/blue,
+/obj/item/clothing/under/misc/pj/blue,
+/obj/item/clothing/under/misc/pj/blue,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"vqE" = (
+/obj/structure/chair/wood/normal{
+ dir = 1
+ },
+/obj/machinery/light/floor,
+/obj/item/radio/intercom{
+ broadcasting = 1;
+ frequency = 1480;
+ name = "Confessional Intercom";
+ pixel_x = -25
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"vqP" = (
+/obj/structure/bed/dogbed{
+ desc = "A comfy-looking pet bed. You can even strap your pet in, in case the gravity turns off.";
+ name = "pet bed"
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"vsM" = (
+/obj/machinery/power/apc/auto_name/south,
+/obj/structure/cable,
+/turf/open/floor/carpet,
+/area/commons/cryopod)
+"vsT" = (
+/obj/structure/closet/crate,
+/obj/item/book/manual/wiki/telescience,
+/obj/item/book/manual/wiki/engineering_guide,
+/obj/item/book/manual/wiki/engineering_construction,
+/obj/item/book/manual/wiki/atmospherics,
+/obj/item/book/manual/wiki/detective,
+/obj/item/book/manual/wiki/tcomms,
+/obj/item/book/manual/wiki/engineering_singulo_tesla,
+/obj/item/book/manual/wiki/experimentor,
+/obj/item/book/manual/wiki/research_and_development,
+/obj/item/book/manual/wiki/robotics_cyborgs,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/item/book/manual/wiki/medicine,
+/obj/item/book/manual/wiki/medical_cloning,
+/obj/item/book/manual/wiki/infections,
+/obj/item/book/manual/ripley_build_and_repair,
+/obj/item/book/manual/hydroponics_pod_people,
+/obj/item/book/manual/wiki/toxins,
+/obj/item/book/manual/wiki/grenades,
+/obj/item/book{
+ desc = "An undeniably handy book.";
+ icon_state = "bookknock";
+ name = "A Simpleton's Guide to Safe-cracking with Stethoscopes"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"vws" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"vwQ" = (
+/obj/structure/bookcase,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"vxh" = (
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/maintenance/starboard/aft)
+"vxz" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/item/storage/box/lights/mixed,
+/turf/open/floor/plating,
+/area/commons/storage/emergency/starboard)
+"vxX" = (
+/obj/machinery/door/airlock/external{
+ name = "Labor Camp Shuttle Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/security/processing)
+"vyp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall/r_wall/syndicate,
+/area/commons/dorms)
+"vyK" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Gate";
+ name = "brig shutters"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"vyP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/structure/mirror{
+ pixel_x = 28
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet/locker)
+"vzp" = (
+/obj/structure/table/reinforced,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/item/stock_parts/cell/high,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"vAl" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/machinery/camera{
+ c_tag = "Pool East";
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"vCb" = (
+/obj/machinery/rnd/production/techfab/department/service,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/service)
+"vCn" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"vCt" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"vCy" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/starboard/fore";
+ dir = 1;
+ name = "Starboard Bow Maintenance APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"vCS" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/execution/transfer)
+"vEi" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"vEp" = (
+/obj/structure/sign/poster/contraband/lizard{
+ pixel_x = -32
+ },
+/obj/structure/sign/poster/contraband/lizard{
+ pixel_x = -32
+ },
+/obj/structure/sign/poster/contraband/lizard{
+ pixel_x = -32
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"vFr" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/power/terminal{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"vFZ" = (
+/obj/effect/spawner/lootdrop/prison_contraband,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/bed,
+/obj/item/bedsheet/red,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"vGn" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security/glass{
+ name = "Prisoner Processing";
+ req_access_txt = "2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/processing)
+"vHj" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Cryogenics "
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/commons/cryopod)
+"vHo" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/obj/machinery/door/airlock/external{
+ name = "Atmospherics External Airlock";
+ req_access_txt = "24"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"vHz" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/machinery/light/small{
+ dir = 4;
+ light_color = "#d8b1b1"
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"vHK" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/prison/starboard)
+"vHT" = (
+/obj/machinery/door/firedoor,
+/obj/structure/sign/departments/evac{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/starboard)
+"vHY" = (
+/turf/open/floor/plating,
+/area/science/mixing)
+"vIi" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/security/range";
+ dir = 4;
+ name = "Firing Range APC";
+ pixel_x = 24
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/range)
+"vIo" = (
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Brig East";
+ dir = 8
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"vJu" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"vLo" = (
+/obj/structure/closet/secure_closet/chemical,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"vMi" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"vOC" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 5
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
+"vOU" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"vOV" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
+/turf/open/space,
+/area/space/nearstation)
+"vPd" = (
+/obj/structure/window/reinforced,
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/port/fore)
+"vPs" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/space,
+/area/solars/starboard/aft)
+"vPE" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"vPQ" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/yellow/visible{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"vQf" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Mix to External"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"vRN" = (
+/obj/structure/closet/crate,
+/obj/item/stack/license_plates/empty/fifty,
+/obj/item/stack/license_plates/empty/fifty,
+/obj/item/stack/license_plates/empty/fifty,
+/obj/item/stack/license_plates/empty/fifty,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"vTP" = (
+/obj/machinery/door/airlock/external{
+ name = "Labor Camp Shuttle Airlock";
+ req_access_txt = "2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/security/processing)
+"vYF" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/light/small{
+ brightness = 3;
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"vYY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"vZA" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable,
+/turf/open/space,
+/area/solars/starboard/aft)
+"vZR" = (
+/obj/structure/chair/comfy/black{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/library)
+"wag" = (
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"waX" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/execution/transfer)
+"wbw" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/space/nearstation)
+"wbE" = (
+/obj/effect/turf_decal/tile/blue{
+ alpha = 255
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ alpha = 255;
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/medbay/lobby)
+"wcB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/command/heads_quarters/captain)
+"wcS" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"wdr" = (
+/obj/machinery/door/window/southleft{
+ name = "Target Storage"
+ },
+/obj/item/target/clown,
+/obj/item/target/clown,
+/obj/item/target,
+/obj/item/target,
+/turf/open/floor/plating,
+/area/security/range)
+"wdv" = (
+/obj/structure/fans/tiny/invisible,
+/turf/open/space/basic,
+/area/space)
+"weM" = (
+/obj/structure/girder,
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"weW" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"wfC" = (
+/obj/structure/chair/sofa/corp/right{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"wfR" = (
+/obj/machinery/processor,
+/turf/open/floor/plasteel/dark/telecomms,
+/area/maintenance/bar)
+"wgo" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/structure/closet/firecloset,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"wgu" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Permabrig Maintenance";
+ req_access_txt = "1"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/prison/port)
+"wig" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"wiR" = (
+/obj/effect/landmark/event_spawn,
+/obj/structure/loot_pile/maint,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"wjd" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/table,
+/obj/item/gps/mining{
+ gpstag = "MINE_PUB"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/entry)
+"wje" = (
+/obj/structure/rack,
+/obj/item/instrument/banjo,
+/obj/item/instrument/harmonica,
+/obj/item/instrument/accordion,
+/obj/item/instrument/recorder,
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"wkc" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard)
+"wkN" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/science/circuit)
+"wkU" = (
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"wlg" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supplymain/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"wly" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"wlI" = (
+/obj/machinery/holopad,
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/office)
+"wmu" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/airlock/external{
+ name = "Engineering External Access";
+ req_access_txt = "10;13"
+ },
+/turf/open/floor/plating,
+/area/engineering/main)
+"wnX" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/security/prison/cells)
+"woR" = (
+/obj/machinery/cryopod{
+ dir = 1
+ },
+/turf/open/floor/carpet,
+/area/commons/cryopod)
+"wph" = (
+/obj/docking_port/stationary{
+ area_type = /area/construction/mining/aux_base;
+ dheight = 4;
+ dir = 8;
+ dwidth = 4;
+ height = 9;
+ id = "aux_base_zone";
+ name = "aux base zone";
+ roundstart_template = /datum/map_template/shuttle/aux_base/default;
+ width = 9
+ },
+/turf/open/floor/plating,
+/area/construction/mining/aux_base)
+"wpV" = (
+/obj/machinery/seed_extractor,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#d1dfff"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"wql" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/command/gateway)
+"wqF" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"wqW" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/maintenance/starboard)
+"wrp" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/service)
+"wrX" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/structure/window,
+/obj/structure/window{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"wuO" = (
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/costume,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"wvg" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "Ports to Incinerator"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/atmos)
+"wvX" = (
+/obj/structure/table/reinforced,
+/obj/machinery/light,
+/obj/item/stack/sheet/metal/ten,
+/turf/open/floor/plasteel/dark,
+/area/science/circuit)
+"wwG" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"wxf" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/holopad/secure,
+/turf/open/floor/plasteel/dark,
+/area/command/heads_quarters/captain)
+"wxk" = (
+/obj/machinery/computer/arcade,
+/turf/open/floor/carpet/black,
+/area/commons/arcade)
+"wxT" = (
+/obj/structure/window{
+ dir = 1
+ },
+/obj/structure/chair/sofa/corp/left,
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"wyE" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"wAj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"wAN" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"wBd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/hallway/secondary/service)
+"wCQ" = (
+/obj/machinery/light/small{
+ brightness = 3;
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"wGc" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"wHk" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"wHm" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/dark,
+/area/service/theater)
+"wHT" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"wIl" = (
+/obj/structure/bed,
+/obj/effect/spawner/lootdrop/bedsheet,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/plating,
+/area/maintenance/prison/port)
+"wII" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/airlock/maintenance,
+/turf/open/floor/plasteel/dark,
+/area/service/bar)
+"wJA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/medical/morgue)
+"wKe" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "maintdiy";
+ name = "Security Shutters"
+ },
+/turf/open/floor/plating,
+/area/service/abandoned_gambling_den)
+"wQg" = (
+/obj/structure/pool/ladder{
+ dir = 2;
+ pixel_y = 24
+ },
+/turf/open/pool,
+/area/commons/fitness/pool)
+"wTf" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"wTk" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet/locker)
+"wUg" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"wUr" = (
+/turf/closed/wall/r_wall/syndicate,
+/area/service/theater)
+"wUY" = (
+/obj/structure/table,
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/obj/item/hand_labeler,
+/turf/open/floor/plasteel/dark,
+/area/hallway/secondary/service)
+"wVq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/grunge{
+ name = "Prison Workshop";
+ wiretypepath = /datum/wires/airlock/security
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"wVt" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"wVN" = (
+/obj/structure/falsewall,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"wWi" = (
+/obj/machinery/atmospherics/pipe/simple/dark/visible,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/engineering/atmos)
+"wWT" = (
+/obj/effect/landmark/start/roboticist,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
+"wWW" = (
+/obj/structure/closet/secure_closet/personal,
+/obj/item/toy/poolnoodle/yellow,
+/obj/machinery/button/door{
+ id = "PoolShut";
+ name = "Pool Shutters";
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"wXl" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/machinery/camera{
+ c_tag = "Pool West";
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"wYc" = (
+/obj/structure/table,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"wYn" = (
+/obj/structure/plasticflaps/opaque,
+/obj/structure/sign/poster/contraband/free_drone{
+ pixel_y = 32
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"wZI" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"xal" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Secure Gate";
+ name = "brig shutters"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"xaB" = (
+/obj/structure/closet/athletic_mixed,
+/obj/item/toy/poolnoodle/red,
+/obj/item/toy/poolnoodle/blue,
+/obj/item/toy/poolnoodle/yellow,
+/obj/machinery/button/door{
+ id = "PoolShut";
+ name = "Pool Shutters";
+ pixel_y = 24
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#c1caff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"xbi" = (
+/obj/machinery/atmospherics/pipe/simple/orange/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"xbn" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/structure/table,
+/obj/item/coin/gold,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"xbP" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"xcl" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/dark/visible{
+ dir = 6
+ },
+/turf/open/space,
+/area/space/nearstation)
+"xcz" = (
+/obj/machinery/hydroponics/soil{
+ pixel_y = 8
+ },
+/obj/item/seeds/onion,
+/obj/structure/sign/poster/contraband/ambrosia_vulgaris{
+ pixel_x = 32
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"xfW" = (
+/obj/machinery/vr_sleeper{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"xgk" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"xgs" = (
+/turf/open/floor/mineral/plastitanium/red,
+/area/maintenance/starboard/aft)
+"xgC" = (
+/obj/machinery/power/apc{
+ areastring = "/area/engineering/gravity_generator";
+ dir = 8;
+ name = "Gravity Generator APC";
+ pixel_x = -25;
+ pixel_y = 1
+ },
+/obj/structure/table,
+/obj/item/paper/guides/jobs/engi/gravity_gen,
+/obj/item/pen/blue,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"xhS" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"xhV" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/construction)
+"xib" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "Prison Gate";
+ name = "prison blast door"
+ },
+/obj/structure/cable,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "Prison Gate";
+ name = "Prison Lockdown Shutters"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"xiw" = (
+/obj/machinery/door/airlock{
+ name = "Service Hall";
+ req_one_access_txt = "25;26;35;28"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/hallway/secondary/service)
+"xjU" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/grunge{
+ name = "Prison Visitation";
+ wiretypepath = /datum/wires/airlock/security
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"xkd" = (
+/obj/machinery/light/small{
+ dir = 4;
+ light_color = "#d8b1b1"
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"xkk" = (
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/sign/warning/securearea{
+ pixel_x = -32;
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "Prison Gate";
+ name = "Prison Lockdown Shutters"
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/range)
+"xlX" = (
+/obj/structure/table/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "commissaryshutters";
+ name = "Vacant Commissary Shutters"
+ },
+/turf/open/floor/plasteel,
+/area/commons/locker)
+"xmS" = (
+/obj/structure/chair/comfy/beige{
+ dir = 8
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
+"xnm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"xnF" = (
+/obj/machinery/door/airlock/security{
+ name = "Isolation Cell";
+ req_access_txt = "2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"xpH" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"xqG" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/starkist{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/turf/open/floor/carpet/black,
+/area/service/bar)
+"xrN" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light,
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"xtP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"xud" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/disposal/incinerator)
+"xuu" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "Prison Gate";
+ name = "Prison Lockdown Shutters"
+ },
+/turf/open/floor/plating,
+/area/security/brig)
+"xwB" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/carpet/black,
+/area/commons/arcade)
+"xxi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore)
+"xxp" = (
+/turf/open/floor/plating,
+/area/security/range)
+"xzd" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/structure/closet,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"xzv" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"xAk" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"xAv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/dorms)
+"xAA" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"xBk" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 23
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet)
+"xBw" = (
+/obj/structure/closet/wardrobe/cargotech,
+/obj/item/radio/headset/headset_cargo,
+/turf/open/floor/plasteel/dark,
+/area/cargo/storage)
+"xBJ" = (
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"xDM" = (
+/obj/machinery/camera{
+ c_tag = "Locker Room South";
+ dir = 8
+ },
+/obj/structure/closet/secure_closet/personal,
+/turf/open/floor/plasteel/dark,
+/area/commons/locker)
+"xEB" = (
+/obj/effect/turf_decal/bot_white/right,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"xEE" = (
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/obj/machinery/vending/wardrobe/curator_wardrobe,
+/turf/open/floor/carpet/black,
+/area/service/library)
+"xES" = (
+/obj/structure/table/glass,
+/obj/item/storage/fancy/candle_box{
+ pixel_x = 5;
+ pixel_y = 4
+ },
+/obj/item/storage/fancy/candle_box{
+ pixel_x = 1;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"xFj" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"xFM" = (
+/obj/item/clothing/gloves/color/rainbow,
+/obj/item/clothing/head/soft/rainbow,
+/obj/item/clothing/shoes/sneakers/rainbow,
+/obj/item/clothing/under/color/rainbow,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
+"xGm" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"xGQ" = (
+/obj/structure/sign/plaques/golden{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"xJC" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/maintenance/disposal/incinerator)
+"xJW" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Security Maintenance";
+ req_access_txt = "1"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/security/office)
+"xKl" = (
+/obj/machinery/computer/security/telescreen/prison{
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/prison)
+"xLQ" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/security/prison/upper";
+ damage_deflection = 21;
+ desc = "A control terminal for the area's electrical systems. It's secured with a durable antitampering plasteel cage.";
+ dir = 1;
+ name = "Armored Upper Prison Wing APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"xLX" = (
+/obj/structure/lattice/catwalk,
+/obj/item/stack/marker_beacon{
+ anchored = 1;
+ icon_state = "markerburgundy-on";
+ light_color = "#FA644B";
+ light_power = 3;
+ light_range = 3;
+ name = "Docking Beacon";
+ picked_color = "Burgundy"
+ },
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"xMg" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"xMS" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
+"xNV" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"xOx" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/flasher{
+ id = "visitorflash";
+ pixel_x = 16;
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"xPk" = (
+/obj/structure/bed,
+/obj/machinery/button/door{
+ id = "Dorm6";
+ name = "Cabin Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_y = -25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/carpet/black,
+/area/commons/dorms)
+"xRa" = (
+/obj/item/kirbyplants{
+ icon_state = "plant-20"
+ },
+/turf/open/floor/plasteel/dark,
+/area/service/chapel/main)
+"xSW" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"xTe" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/mineral/plastitanium/red,
+/area/ai_monitored/security/armory)
+"xTy" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engineering/gravity_generator)
+"xUe" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/prison)
+"xUn" = (
+/obj/effect/landmark/carpspawn,
+/turf/open/space,
+/area/space/station_ruins)
+"xUL" = (
+/obj/effect/turf_decal/bot_white/right,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/command/gateway)
+"xUX" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/rack,
+/obj/item/storage/box/zipties{
+ pixel_x = -1;
+ pixel_y = 1
+ },
+/obj/item/storage/box/zipties{
+ pixel_x = 1;
+ pixel_y = -1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/security/brig)
+"xVZ" = (
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space,
+/area/solars/port/fore)
+"xWq" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = -32
+ },
+/turf/open/floor/plating,
+/area/security/processing)
+"xWs" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/maintenance/starboard/aft)
+"xWS" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"xXi" = (
+/obj/machinery/vending/clothing,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"xYf" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"xZD" = (
+/obj/structure/closet/lasertag/red,
+/obj/item/clothing/under/misc/pj/red,
+/obj/item/clothing/under/misc/pj/red,
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness)
+"xZL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/commons/fitness/pool)
+"yan" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal/incinerator)
+"yaW" = (
+/obj/machinery/hydroponics/soil{
+ pixel_y = 8
+ },
+/obj/item/seeds/ambrosia,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"ybb" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"ycd" = (
+/obj/structure/toilet/secret/low_loot{
+ dir = 4
+ },
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ pixel_y = 25
+ },
+/obj/machinery/button/door{
+ id = "LockerShitter2";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 14;
+ pixel_y = 38;
+ specialfunctions = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plasteel/freezer,
+/area/commons/toilet/locker)
+"yco" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/security/prison/cells)
+"ycL" = (
+/obj/effect/spawner/lootdrop/prison_contraband,
+/obj/structure/closet/crate,
+/obj/item/stack/license_plates/empty/fifty,
+/obj/item/stack/license_plates/empty/fifty,
+/obj/item/stack/license_plates/empty/fifty,
+/obj/item/stack/license_plates/empty/fifty,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"ycY" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#d1dfff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/fore)
+"yds" = (
+/obj/structure/table/reinforced,
+/obj/item/electropack,
+/turf/open/floor/plasteel/dark,
+/area/maintenance/port/fore)
+"ydD" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/suit_storage_unit/rd,
+/turf/open/floor/plasteel/dark,
+/area/science/mixing)
+"ydM" = (
+/obj/machinery/meter,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"yeA" = (
+/obj/machinery/status_display/evac,
+/turf/closed/wall/r_wall/syndicate,
+/area/hallway/primary/central)
+"yeZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/security/execution/transfer)
+"yfX" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/carpet/black,
+/area/commons/arcade)
+"ygb" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 4
+ },
+/turf/open/floor/wood/wood_diagonal,
+/area/maintenance/port/fore)
+"yhx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/turf/closed/wall/r_wall/syndicate,
+/area/security/brig)
+"yhz" = (
+/obj/machinery/vending/coffee,
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"yhI" = (
+/obj/machinery/computer/arcade/battle,
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+
+(1,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(2,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(3,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(4,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(5,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(6,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(7,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(8,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(9,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(10,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(11,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(12,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(13,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(14,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(15,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(16,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(17,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(18,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(19,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(20,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(21,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(22,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(23,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(24,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+xLX
+aaa
+aaa
+aaa
+xLX
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gDl
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(25,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+xLX
+aaa
+xLX
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+xLX
+aaa
+xLX
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(26,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+gXs
+aaa
+aaa
+gXs
+gJi
+gXs
+gXs
+gXs
+gJi
+gXs
+aaa
+aaa
+gXs
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(27,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gJi
+gJi
+gXs
+aag
+gJi
+gXs
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+gXs
+gJi
+gJi
+gXs
+aag
+gJi
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gDl
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(28,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gIU
+shR
+aaa
+shR
+hse
+gXs
+aoV
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+gIU
+shR
+aaa
+shR
+hse
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(29,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+bvG
+aaa
+cpe
+aaa
+oyN
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+bvG
+aaa
+cwV
+aaa
+oyN
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+rZQ
+aaa
+aaa
+aoV
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(30,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aae
+aaa
+gXs
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+awW
+kiY
+awW
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(31,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+awW
+auP
+awW
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(32,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+arB
+awW
+qtw
+awW
+arB
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(33,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+cqq
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+cqq
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+arB
+tHy
+aNi
+sJw
+arB
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(34,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaf
+aaf
+aaf
+aaa
+aaa
+arB
+arB
+cyb
+arB
+arB
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+arB
+arB
+cyb
+arB
+arB
+aaa
+aaa
+aaa
+aaa
+aaa
+awW
+lBd
+aNi
+rsp
+awW
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(35,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+apJ
+apJ
+apJ
+apJ
+apJ
+apJ
+apJ
+apJ
+apJ
+apJ
+apJ
+auO
+auP
+cwT
+aAC
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aAC
+auO
+auP
+cxY
+arB
+aaa
+aaa
+aaa
+aaa
+aaa
+awW
+lBd
+aNi
+wjd
+awW
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(36,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+apJ
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apJ
+avP
+iEJ
+arB
+arB
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+arB
+arB
+iEJ
+avP
+arB
+aaa
+aaa
+aaa
+aaa
+aaa
+arB
+mqo
+ayn
+pFY
+aAC
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(37,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+apJ
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apJ
+fpI
+ayk
+awW
+aAD
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+awW
+awW
+awW
+aQG
+aRX
+arB
+aaa
+aaa
+aaa
+aaa
+aaa
+arB
+iWK
+ayk
+awW
+aAD
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(38,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+apJ
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apJ
+aFG
+ayl
+azy
+auP
+cIh
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+azy
+auP
+cIh
+ayl
+aRY
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+awW
+aFG
+aNi
+beK
+auP
+cyu
+cyd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(39,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+apJ
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apJ
+aFG
+ayk
+awW
+awW
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+awW
+awW
+awW
+awV
+aRY
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+awW
+aFG
+ayk
+awW
+awW
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(40,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+apJ
+apN
+apN
+apN
+apN
+wph
+apN
+apN
+apN
+apN
+apJ
+aFG
+cqr
+azz
+aAF
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+awW
+aOf
+azz
+aPu
+aRY
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+awW
+aFG
+aym
+azz
+wgo
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(41,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+apJ
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apJ
+aFG
+aIK
+aNi
+rla
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+awW
+aOe
+aNi
+aNi
+aRY
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+awW
+aFG
+aNi
+aNi
+aAE
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(42,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+apJ
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apJ
+aFG
+aIK
+aNi
+aAH
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+awW
+aOh
+aNi
+jHh
+aRY
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+awW
+aFG
+aNi
+aNi
+bgi
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(43,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+apJ
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apN
+apJ
+aFG
+cry
+azA
+aAG
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+awW
+aOg
+azA
+aQH
+aRY
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+awW
+aFG
+ayn
+azA
+bgh
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(44,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+apJ
+apN
+apN
+apN
+apN
+lCi
+apN
+apN
+apN
+apN
+apJ
+aFG
+crz
+awW
+awW
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+awW
+awW
+awW
+awV
+aRY
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+awW
+aFG
+ayk
+awW
+awW
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(45,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+apJ
+apJ
+apJ
+ajZ
+asF
+atp
+asF
+asF
+asF
+asF
+apJ
+axh
+cbh
+azy
+auP
+cIh
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+azy
+auP
+cIh
+ayl
+aRY
+awW
+aaa
+aaa
+cxE
+aaa
+aaa
+awW
+aFG
+aNi
+beL
+auP
+cyu
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(46,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+apJ
+asH
+atI
+atI
+arE
+ayq
+ayq
+auc
+avp
+axI
+ayp
+awW
+aAD
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+awW
+awW
+awW
+aQG
+aRX
+arB
+aaa
+aWa
+aXI
+awW
+aaa
+arB
+awY
+ayk
+awW
+aAD
+awW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(47,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+asF
+asI
+auQ
+auQ
+auQ
+auQ
+aCX
+aub
+aLu
+axH
+ayo
+azB
+awW
+aaa
+aaa
+aaa
+aaa
+cIg
+aaa
+aaa
+aaa
+aaa
+awW
+aPt
+aPu
+aRY
+arB
+awW
+awW
+auP
+awW
+awW
+arB
+aFG
+aym
+fOI
+awW
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aae
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(48,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+apJ
+asJ
+cTE
+avQ
+axc
+aCT
+atb
+aIH
+apJ
+clB
+aIK
+azC
+arB
+arB
+arB
+awW
+awW
+awW
+awW
+awW
+arB
+arB
+arB
+aPv
+aNi
+aNi
+arB
+aAF
+awW
+cyl
+awW
+baF
+arB
+bbb
+aNi
+beN
+arB
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(49,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+apJ
+apJ
+apJ
+apJ
+apJ
+apJ
+apJ
+apJ
+apJ
+axG
+aIK
+aym
+aAI
+aBH
+azz
+azz
+azz
+azz
+azz
+azz
+aLv
+aBH
+azz
+aPu
+aNi
+aNi
+aNh
+aym
+azz
+aNi
+azz
+aPu
+aNi
+aIK
+aNi
+beM
+aAC
+aaf
+aoV
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(50,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaf
+aaf
+qlV
+avS
+atJ
+amC
+amC
+aKf
+bEJ
+axb
+ayr
+azD
+aAJ
+azD
+aCp
+aEz
+aFG
+aHu
+aNi
+aNi
+aNi
+aNb
+aNi
+aNi
+aNi
+aNi
+aTr
+aUM
+aNi
+aNi
+aWc
+baG
+aNi
+aIK
+aNi
+beM
+arB
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(51,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aag
+qlV
+qlV
+qlV
+qlV
+rGo
+amC
+aKY
+aoW
+asK
+qlV
+qlV
+atO
+qlV
+qlV
+aBI
+aBI
+aBI
+aBI
+aBI
+aNh
+aKj
+aLw
+aLw
+aLw
+aLw
+aQI
+aNh
+czK
+czK
+czK
+czK
+aXX
+czK
+czK
+bbc
+beO
+beO
+beO
+beO
+beO
+beO
+beO
+beO
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(52,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aag
+arN
+amC
+amC
+auX
+arM
+ase
+ase
+avq
+aum
+avq
+avq
+cwH
+avq
+aAj
+aBK
+aCL
+aEG
+aFI
+aBI
+aIM
+aKk
+aLy
+aNd
+aOj
+aPx
+aQJ
+aNi
+czK
+aUO
+aUy
+aWm
+aXZ
+vdu
+czK
+bhN
+bcl
+beQ
+pLn
+bhI
+bjb
+bkz
+blS
+bnv
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(53,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gJi
+qlV
+qlV
+qlV
+qlV
+aqO
+qlV
+qlV
+kwY
+qll
+aue
+aue
+ayy
+ayy
+aAe
+aBJ
+aCs
+aEE
+aFH
+aGZ
+aIJ
+aJX
+aLi
+aMO
+aNR
+aOY
+aQl
+bcD
+aTs
+aUN
+baH
+aWi
+aXY
+baH
+aTs
+bbd
+beO
+beP
+bgj
+beO
+bja
+beO
+bja
+bja
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(54,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+qlV
+atM
+atW
+qlV
+aqO
+qlV
+aon
+atq
+aCW
+gLH
+qlV
+hho
+aKY
+auT
+aBI
+aCY
+aEI
+aFK
+aHy
+aIM
+aKk
+aLz
+aNe
+aNe
+aLz
+aQo
+aSb
+czK
+aUQ
+aUA
+aWr
+aXZ
+aUQ
+czK
+bbe
+beO
+beS
+bgj
+bhJ
+bjd
+bkB
+cAI
+bja
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aae
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaS
+aaS
+aaS
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(55,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+qlV
+qlV
+atP
+auV
+qlV
+aqO
+qlV
+axe
+atq
+avb
+avb
+qlV
+pvJ
+mwS
+auT
+aBI
+aDc
+aEH
+bxM
+aHa
+aIL
+aJY
+aLj
+aMP
+aMP
+aPa
+aQn
+aNi
+czK
+aUO
+aUO
+aUO
+aXZ
+aUO
+czK
+bbe
+beO
+beR
+bgj
+bgj
+bjc
+cAF
+cAF
+bja
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaa
+aaf
+aaa
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(56,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aba
+aaS
+aaS
+gXs
+gXs
+gXs
+eRz
+eRz
+eRz
+aaf
+aaf
+aaT
+aaf
+aaf
+qlV
+arO
+amC
+aom
+ank
+aqO
+qlV
+axf
+ayu
+avb
+avb
+qlV
+gJN
+amC
+auT
+aBI
+aDf
+aEK
+aFM
+aHy
+aNi
+aKk
+aLA
+xmS
+aNf
+aLA
+aQD
+aSd
+czK
+aUQ
+aUW
+aUO
+aXZ
+baJ
+czK
+bbe
+beO
+beU
+bgk
+bhL
+bjc
+cAF
+blV
+beO
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaf
+chJ
+aaf
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(57,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+abY
+aaa
+aaf
+aaa
+aaf
+aaa
+aaf
+aaa
+acy
+aaa
+aaf
+aaa
+dLl
+aaa
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+qlV
+ash
+atU
+aoR
+apO
+aqO
+qlV
+axg
+atq
+avb
+rJw
+qlV
+cGf
+aKY
+aAw
+aBl
+aCZ
+aEJ
+aFL
+aBI
+aIO
+aKk
+arB
+arB
+arB
+arB
+aQD
+aNi
+czK
+aUl
+aUR
+aWs
+aXZ
+aUQ
+czK
+bbf
+beT
+beT
+bdQ
+beZ
+bje
+bkC
+cAJ
+beO
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaS
+aaS
+aaS
+aaS
+aaf
+aaf
+aaa
+chI
+aaa
+aaf
+aaf
+aaS
+aaS
+aba
+aaS
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(58,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+abY
+aaa
+acW
+eTt
+adA
+aaa
+acW
+eTt
+adA
+aaa
+acW
+eTt
+adA
+aaa
+aaS
+gXs
+gXs
+gXs
+gXs
+eRz
+eRz
+aaf
+aaf
+aaT
+aaT
+aaf
+qlV
+atn
+amC
+aoT
+auY
+aqO
+qlV
+avb
+atq
+ava
+gKo
+qlV
+amC
+azF
+azF
+azF
+azF
+azF
+azF
+azF
+aIQ
+aKk
+aLC
+aNg
+aOk
+aPy
+aRd
+aRM
+aTt
+aUm
+aUm
+aWt
+aYd
+aZn
+aTt
+bbg
+bdG
+bdu
+bdT
+beO
+bjf
+beO
+beO
+beO
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aae
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaa
+aaa
+aaf
+aaa
+aaf
+aaa
+aaa
+chI
+aaa
+aaa
+aaf
+aaa
+aaf
+aaa
+aaa
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(59,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aae
+aaa
+aaa
+abY
+aaf
+acW
+hcT
+adA
+aaa
+acW
+hcT
+adA
+aaa
+acW
+hcT
+adA
+aaf
+aaf
+aaa
+aaa
+aaa
+gXs
+aaa
+ktS
+aaa
+aaa
+gXs
+aaa
+aaa
+qlV
+qlV
+qlV
+qlV
+auY
+aqO
+qlV
+qlV
+tsq
+qlV
+qlV
+qlV
+amC
+azF
+aAP
+aAP
+aAP
+aEF
+aFN
+azF
+aIP
+aKl
+aLB
+aLB
+aLB
+aLB
+aQK
+aSe
+czK
+aUQ
+aUQ
+aXN
+aUO
+aUQ
+czK
+bcI
+aPz
+bdt
+bdR
+aSg
+aYf
+bkD
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaf
+cca
+cca
+cca
+cca
+cca
+aaa
+chK
+aaa
+cca
+cca
+cca
+cca
+cca
+aaf
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aae
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(60,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+abY
+aaa
+acW
+hcT
+adA
+aaf
+acW
+hcT
+adA
+aaf
+acW
+hcT
+adA
+aaa
+aaf
+aaa
+aaa
+aaa
+gXs
+aaa
+ktS
+aaa
+aaa
+gXs
+aaa
+aaa
+gXs
+ali
+aok
+aKY
+anJ
+asc
+aol
+aol
+atr
+atN
+atN
+atN
+ayi
+azq
+aAK
+aBv
+aDa
+aAQ
+aAQ
+azF
+aIR
+aNi
+aNi
+aNi
+aNi
+aNi
+aNi
+aSf
+czK
+czK
+czK
+czK
+czK
+czK
+czK
+aPz
+aPz
+bdB
+aWv
+aTu
+bjg
+bkD
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaa
+ccc
+ccX
+ccX
+ccX
+ccX
+cgz
+chL
+ciP
+cjH
+cjH
+cjH
+cjH
+cnl
+aaa
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(61,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+acW
+hcT
+adA
+aaa
+acW
+hcT
+adA
+aaa
+acW
+hcT
+adA
+aaf
+aaf
+gXs
+gXs
+gXs
+gXs
+gXs
+gXs
+aaf
+aaf
+aaf
+aaf
+aaa
+gXs
+ali
+aok
+amC
+anJ
+asi
+arH
+cCs
+ann
+ann
+hCn
+cwS
+ayh
+azi
+aAx
+aBm
+aAQ
+aAQ
+aAQ
+azF
+azF
+azF
+aLD
+aNh
+aNh
+aPz
+aPz
+aPz
+aPz
+hmT
+aWj
+aXP
+aZr
+baL
+bbI
+bcK
+aPz
+bdB
+aWv
+bfh
+aPz
+aPz
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaS
+aaf
+ccb
+ccb
+ccb
+ccb
+ccb
+aaa
+chL
+aaa
+ccb
+ccb
+ccb
+ccb
+ccb
+aaf
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(62,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaS
+aaS
+aaS
+aaf
+aaa
+acW
+hcT
+adA
+aaa
+acW
+hcT
+adA
+aaa
+acW
+hcT
+adA
+aaa
+aaf
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+ajV
+alR
+alR
+alR
+alR
+apL
+pkq
+wlg
+aqP
+qlV
+qlV
+qlV
+qlV
+qlV
+juy
+asK
+azF
+aAT
+aBw
+aDg
+aAQ
+aAQ
+aHz
+aIS
+aKn
+aLF
+aLF
+aLF
+aPz
+aQL
+aSg
+aSg
+aSg
+aWl
+aSg
+aZs
+baN
+bbK
+bcM
+bdH
+bdD
+bea
+bfq
+bji
+aPz
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaS
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+chL
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aba
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(63,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaS
+aaa
+aaf
+aaa
+aaa
+aaa
+rwA
+aaa
+aaa
+aaa
+rwA
+aaa
+aaa
+aaa
+rwA
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+gXs
+aaa
+ajV
+ajV
+ajV
+ajV
+alQ
+amy
+ang
+alR
+aoj
+kuL
+anJ
+tXs
+qlV
+bOi
+avb
+avb
+asO
+qlV
+asK
+azF
+aAS
+aFP
+aAQ
+aAQ
+aAQ
+aAQ
+aAQ
+aKm
+aLE
+aNj
+aLE
+aPz
+aPz
+aPz
+aTu
+aUS
+aWk
+aWk
+aWk
+baM
+bbJ
+bcL
+aWk
+bdC
+bdZ
+bhO
+bjh
+bkE
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaS
+aaf
+cca
+cca
+cca
+cca
+cca
+aaa
+chL
+aaa
+cca
+cca
+cca
+cca
+cca
+aaf
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(64,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaS
+aaf
+rYM
+qhA
+qhA
+hSf
+ady
+ady
+ady
+ady
+ady
+ady
+ady
+ady
+ady
+cfK
+uDO
+uDO
+uDO
+uDO
+uDO
+uDO
+uDO
+ajq
+akB
+akB
+alh
+alT
+amA
+ani
+anI
+aol
+jUV
+arI
+atL
+qlV
+axl
+avb
+avb
+bOi
+qlV
+asK
+azF
+aAU
+aBG
+aAQ
+aAQ
+aAQ
+aAQ
+aAQ
+aKn
+aLE
+aNl
+aOm
+aPB
+aQM
+aQM
+aTv
+aUT
+aPz
+aPA
+hNm
+aPA
+aPA
+aXQ
+aXQ
+aXQ
+aXQ
+bhQ
+bjj
+aPz
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaS
+aaa
+ccc
+ccX
+ccX
+ccX
+ccX
+cgz
+chL
+ciP
+cjH
+cjH
+cjH
+cjH
+cnl
+aaa
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(65,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaS
+aaa
+aaf
+aaa
+aaa
+aaa
+xVZ
+aaa
+aaa
+aaa
+xVZ
+aaa
+aaa
+aaa
+xVZ
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+gXs
+aaa
+ajV
+ajV
+ajV
+ajV
+alS
+amz
+anh
+anH
+oCF
+amC
+anJ
+wiR
+qlV
+avV
+avb
+avb
+avV
+qlV
+thg
+azF
+aAP
+aAP
+aAP
+aAQ
+aFO
+aHA
+aIT
+azF
+aLG
+aNk
+aOl
+aPA
+aPA
+aPA
+aPA
+aPA
+aPA
+got
+pNS
+sMI
+kic
+aXQ
+aZt
+aXQ
+ycd
+bhQ
+bjj
+aPz
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaS
+acy
+ccb
+ccb
+ccb
+ccb
+ccb
+aaa
+chL
+aaa
+ccb
+ccb
+ccb
+ccb
+ccb
+aaf
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(66,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaS
+aba
+aaS
+aaf
+aaa
+acW
+pry
+adA
+aaa
+acW
+pry
+adA
+aaa
+acW
+pry
+adA
+aaa
+aaf
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+ajV
+alR
+alR
+alR
+alR
+qlV
+qlV
+arJ
+qlV
+qlV
+ays
+avb
+bsU
+tVE
+qlV
+asK
+azF
+azF
+azF
+azF
+aEL
+azF
+azF
+azF
+azF
+aLE
+aNm
+aOl
+aPA
+aQO
+aSh
+aTw
+aUU
+aPA
+aPA
+sVt
+pNS
+qAu
+aXQ
+aZv
+aXQ
+bbL
+bhQ
+bjj
+aPz
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aba
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+chL
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(67,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+acW
+pry
+adA
+aaa
+acW
+pry
+adA
+aaa
+acW
+pry
+adA
+aaf
+aaf
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+qlV
+amF
+alF
+aoS
+apM
+enS
+aoU
+amC
+qlV
+ayt
+avb
+pVi
+avV
+qlV
+ayw
+atN
+aAV
+aBQ
+aDh
+aDo
+aFQ
+aHe
+aIN
+aKp
+aLE
+aNm
+aOl
+aPA
+aQN
+aQN
+aQN
+aQN
+aWn
+aPA
+uTL
+wwG
+fBW
+aWy
+mmx
+tVB
+wTk
+bhQ
+bjk
+bkE
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaS
+aaf
+cca
+cca
+cca
+cca
+cca
+aaa
+chL
+aaa
+cca
+cca
+cca
+cca
+cca
+aaf
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(68,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaa
+acW
+pry
+adA
+aaf
+acW
+pry
+adA
+aaf
+acW
+pry
+adA
+aaa
+aaf
+gXs
+gXs
+gXs
+gXs
+gXs
+gXs
+aaf
+aaf
+aaf
+qlV
+amF
+aoU
+amC
+qlV
+apP
+amC
+amC
+qlV
+qlV
+qlV
+cyC
+qlV
+pRj
+cwS
+cwS
+aAN
+aBL
+aDd
+aDd
+aFR
+aDd
+aDd
+aJZ
+aLk
+aNo
+aOo
+aPA
+aQS
+aQN
+aSV
+aYU
+smN
+aPA
+mqH
+xlX
+aPA
+aXQ
+ddl
+vyP
+rxD
+bhQ
+bjk
+aPz
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cyT
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aoV
+bZm
+aoV
+aoV
+aoV
+aaa
+aaS
+aaa
+ccc
+ccX
+ccX
+ccX
+ccX
+cgz
+chL
+ciP
+cjH
+cjH
+cjH
+cjH
+cnl
+aaa
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(69,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaf
+acW
+pry
+adA
+aaa
+acW
+pry
+adA
+aaa
+acW
+pry
+adA
+aaf
+aba
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+quT
+aaa
+aaa
+qlV
+qlV
+qlV
+ank
+qlV
+amC
+amC
+amC
+amC
+qlV
+nXg
+pVi
+qlV
+rYa
+amC
+sRd
+aAL
+aBQ
+aDb
+aDo
+aFY
+aDo
+aDo
+aKp
+aLE
+aLE
+aOn
+aPA
+aQP
+aQN
+aTB
+aQN
+aWq
+aQN
+aWq
+aUt
+aQN
+aXQ
+qki
+aXQ
+aXQ
+bhQ
+bjk
+aPz
+aaa
+aaa
+boI
+bqi
+brJ
+boI
+brJ
+bvS
+boI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aoV
+bVz
+aaf
+aaf
+aoV
+aaa
+aaS
+aaf
+ccb
+ccb
+ccb
+ccb
+ccb
+aaa
+qJr
+aaa
+ccb
+ccb
+ccb
+ccb
+ccb
+aaf
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(70,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaa
+acW
+rGZ
+adA
+aaa
+acW
+rGZ
+adA
+aaa
+acW
+rGZ
+adA
+aaa
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+eRz
+aaa
+aaa
+qlV
+lLA
+mzT
+aKY
+qlV
+amC
+amC
+amC
+amC
+qlV
+qlV
+sVD
+qlV
+fhu
+amC
+amC
+aAY
+aBQ
+aDl
+bxk
+aDo
+aDo
+aIX
+aNW
+aLE
+aLE
+aOp
+uwN
+aQR
+aQN
+aQN
+aQN
+aWq
+aQN
+aWq
+aUt
+aQN
+fRe
+qSo
+aPA
+hmT
+bhS
+bjk
+aPz
+aaa
+aaa
+blW
+bqj
+brK
+blW
+brK
+bvT
+blW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aag
+bVz
+aag
+aag
+aoV
+aaa
+aaS
+aaa
+aaa
+aaf
+aaa
+aaf
+aaa
+aaf
+hrF
+aaf
+aaa
+aaf
+aaa
+aaf
+aaa
+aaa
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gDl
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(71,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+naI
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaa
+aaf
+aaa
+aaf
+aaa
+aaf
+aaa
+aaf
+aaa
+aaf
+aaa
+aaf
+aaa
+aaS
+gXs
+gXs
+gXs
+gXs
+quT
+eRz
+aaT
+aaf
+aaf
+qlV
+jNr
+gZB
+amC
+ank
+amC
+amC
+amC
+amC
+amC
+amC
+noL
+arH
+psf
+arK
+amC
+klN
+aBQ
+aDk
+aDo
+aDo
+aDo
+aIW
+aBQ
+aLE
+aLE
+aOl
+aPC
+aQN
+aQN
+aTz
+aXr
+lZa
+fFl
+wrX
+aUo
+aYU
+ihS
+owx
+aPA
+bgt
+bhR
+bjk
+aZE
+blW
+blW
+blW
+bqi
+cyD
+aZE
+cyD
+bvS
+blW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gJi
+aaa
+aaf
+bVz
+aoV
+aag
+aoV
+aaa
+aaS
+aaS
+aaS
+aaf
+aaf
+aaf
+aaf
+cfx
+tEK
+cfx
+aaf
+aaf
+aaf
+aaf
+aaS
+aaS
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(72,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+gXs
+gXs
+gXs
+gXs
+gXs
+aaS
+aaS
+aaS
+aaS
+aaS
+aba
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+qlV
+enJ
+enJ
+arL
+qlV
+qjo
+qlV
+qlV
+qlV
+qlV
+qlV
+qlV
+qlV
+cPO
+amC
+avW
+gYo
+aBQ
+aDn
+aDo
+aDo
+aHD
+aIZ
+aBQ
+aLE
+aLE
+aOq
+aPD
+aQT
+aQN
+aTC
+dyC
+aUY
+aXv
+aYS
+aUt
+aQN
+rbH
+bbO
+aPA
+aSg
+bhT
+bjk
+aZE
+blY
+bjr
+boJ
+bql
+bnw
+btr
+bnw
+bvV
+blW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gJi
+aaa
+aaf
+bVz
+aaf
+aag
+aoV
+aaa
+aaa
+aaf
+aaa
+aaa
+aaf
+aaa
+aaa
+cfx
+chN
+cfx
+aaa
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(73,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+qlV
+rwj
+nPr
+amC
+qlV
+qlV
+qlV
+avX
+amC
+arK
+amC
+amC
+jFB
+ppw
+enJ
+amC
+iII
+aBQ
+aDm
+aDo
+aDo
+aDo
+aIY
+gCC
+aLE
+aLE
+aOl
+aJR
+pqs
+aQN
+aTC
+dyC
+mTG
+aXt
+ijG
+aUt
+aQN
+aPA
+aPA
+aPA
+bel
+bfI
+bgq
+bhY
+bkj
+bqm
+bqm
+bps
+bjr
+bjr
+buB
+bvU
+aZE
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaf
+aaa
+aaa
+aag
+aaa
+bVx
+caf
+aoV
+aag
+aaf
+gXs
+gXs
+aaf
+aaa
+aaa
+aaf
+aaa
+aaa
+cfx
+chN
+cfx
+aaa
+aaa
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(74,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+ali
+fDn
+gFs
+aKY
+qlV
+xFM
+qlV
+gLG
+raH
+jon
+atU
+amC
+uBf
+amC
+aKY
+amC
+aAY
+aBQ
+aDp
+aDo
+aFU
+aDo
+aJb
+aKp
+aLE
+aLE
+aOl
+aPE
+aQV
+aQN
+aTC
+aXv
+gxc
+aXt
+ijG
+aUt
+aQN
+aZB
+aPA
+bfc
+bew
+bfM
+bjl
+bkG
+bkp
+bmj
+bjt
+cCo
+bjt
+bjt
+biq
+bvV
+blW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+bCq
+bCq
+bCq
+bLv
+bCq
+aoV
+cbj
+bLv
+cDY
+bLv
+aaf
+bCq
+bCq
+bCq
+bCq
+bCq
+bCq
+cfx
+cfx
+cyK
+cfx
+cfx
+aaa
+aaa
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(75,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+gXs
+gXs
+gXs
+gXs
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+quT
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+qlV
+qlV
+alU
+ank
+qlV
+qlV
+qlV
+qlV
+jbr
+qlV
+qlV
+amC
+ntt
+axk
+jbp
+ayy
+aAO
+aBN
+aDe
+fZR
+aFT
+aDe
+aIU
+aKa
+aLH
+aLE
+aOl
+aPA
+aiB
+aQN
+nLw
+pnc
+oyl
+aXw
+qfk
+aUt
+aQN
+aZA
+aPA
+jxF
+aYb
+aZE
+aZE
+aZE
+bkn
+bmh
+bjr
+bmb
+bjr
+bjr
+buC
+bvV
+blW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+bCq
+ajD
+bCq
+bSn
+bCq
+bCq
+cbj
+bLv
+bHE
+bLv
+aaf
+bCq
+cAy
+cAB
+ajG
+cAD
+cAH
+cfw
+cgA
+chP
+ciQ
+cfw
+aaa
+aaa
+gXs
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(76,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+eRz
+eRz
+eRz
+quT
+gXs
+aaa
+aaa
+aaa
+aaa
+eRz
+aaa
+aaa
+aaa
+quT
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+ali
+aok
+qZD
+anK
+geg
+qlV
+pqR
+kqo
+hnc
+qlV
+amC
+ntt
+aAY
+amC
+aoX
+atJ
+aBQ
+aDq
+aLM
+aFZ
+aHE
+aJc
+aKs
+aLK
+aLK
+aOr
+aPA
+aQX
+aQN
+aSi
+aTy
+aWp
+aTy
+aTy
+aUv
+aTy
+bbs
+bcw
+bfd
+bgw
+aZE
+bjn
+bjr
+bkt
+bmh
+boK
+bpz
+boK
+bjr
+bkt
+bvV
+blW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+bCq
+bHE
+bJP
+bHE
+bJP
+bCq
+cbk
+bLv
+bHE
+bLv
+aaf
+bCq
+cAA
+bHE
+bHE
+ccZ
+cAK
+cfw
+cgC
+chR
+ciS
+cfw
+aag
+aag
+aag
+aaa
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(77,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+eRz
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+eRz
+aaa
+aaa
+aaa
+eRz
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+ali
+aok
+amC
+aKY
+cDs
+qlV
+fmJ
+ygb
+kiW
+qlV
+amC
+ntt
+nBI
+qlV
+qlV
+qlV
+aBQ
+aBQ
+aBR
+aBQ
+aBQ
+aBQ
+aBQ
+aLm
+aLF
+viF
+aPA
+vJu
+aQN
+aTD
+ocv
+aUZ
+aYU
+aYU
+aYU
+aYU
+aYU
+bcu
+bfe
+aYb
+aZE
+bjm
+bjr
+bjr
+bmh
+boK
+bjr
+boK
+bjr
+bjr
+bvV
+bxu
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+bCq
+bHE
+bHE
+bHE
+bHE
+bCq
+bVy
+bLv
+cyE
+bLv
+bLv
+bCq
+bHE
+cAC
+ccZ
+cAE
+ceV
+cfw
+cgB
+chQ
+ciR
+cfw
+bCq
+cDY
+bCq
+aaa
+aaa
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(78,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+gXs
+gXs
+gXs
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+eRz
+aaa
+aaa
+aaa
+gXs
+gXs
+gXs
+gXs
+gXs
+eRz
+gXs
+gXs
+gXs
+ali
+ali
+qlV
+qlV
+ali
+qlV
+qlV
+qlV
+rGo
+amC
+amC
+amC
+lZN
+cPb
+ygb
+cPb
+lZN
+amC
+jIW
+nBI
+eky
+mau
+eAe
+wUr
+aHI
+aLP
+bwb
+qTG
+bwb
+aKw
+aLE
+aLE
+aOl
+aPG
+aPG
+aPG
+aPG
+aPG
+lip
+aQW
+aQW
+aQW
+aQW
+xDM
+aPA
+aWv
+aYb
+aZE
+bjp
+bjr
+bjr
+bmh
+boK
+bjr
+cBp
+bjr
+buB
+bvV
+bxu
+bxu
+bxx
+bxu
+bxu
+bDi
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+bCq
+bHE
+bPW
+bHE
+bHE
+bCq
+bVB
+bHE
+bHE
+bYu
+bZk
+bCq
+cTF
+bCq
+bCq
+bCq
+bCq
+cfw
+cgE
+chS
+cfw
+cfw
+bCq
+bHE
+bCq
+aaa
+aaa
+aaa
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(79,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+eRz
+eRz
+eRz
+eRz
+eRz
+eRz
+eRz
+eRz
+eRz
+eRz
+eRz
+aaa
+aaa
+aaa
+quT
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+wbw
+aaa
+aaa
+aaa
+ali
+avb
+avb
+tZu
+gsM
+eDz
+yds
+qlV
+amC
+amC
+amC
+htu
+qlV
+edj
+ygb
+gKG
+qlV
+amC
+ntt
+ugq
+kkK
+jBZ
+aHI
+wUr
+aHI
+fOA
+aHI
+aHI
+aHI
+aKw
+aLE
+bDe
+aOl
+aPF
+aQY
+aSk
+aTE
+aPG
+aPA
+aPA
+aPA
+aPA
+aPA
+aPA
+aPA
+aWv
+aYb
+aZE
+bjo
+bjr
+bjr
+bmh
+boK
+bjr
+boK
+bjr
+bjr
+bub
+bxu
+bvF
+bzP
+bAS
+bxu
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+bCq
+bHE
+bHE
+bSo
+bHE
+bCq
+bVA
+bWw
+bXw
+bYt
+bZj
+bCq
+bHE
+bCq
+bSq
+cdW
+ceW
+bCq
+cgD
+bUs
+bHE
+cjI
+bCq
+clA
+bCq
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(80,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+gXs
+eRz
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+gXs
+gXs
+gXs
+gXs
+gXs
+gXs
+gXs
+gXs
+gXs
+aaa
+aae
+aaa
+aaa
+jge
+aaa
+aaa
+aaa
+ali
+avb
+avY
+qFf
+gsM
+gsM
+gsM
+pzP
+amC
+fcd
+dIu
+qLy
+qlV
+tqG
+spR
+qGw
+qlV
+aFJ
+ntt
+nBI
+wUr
+fvU
+gER
+kCo
+aHI
+aHI
+aHI
+ikk
+byS
+ddI
+aPO
+qOB
+aOl
+aPH
+aRa
+aRa
+aTG
+aPG
+aWu
+aYc
+aZD
+aZD
+vnI
+aZD
+aZD
+bff
+dev
+aZE
+xBw
+bjr
+ama
+bmh
+bjr
+bjr
+bjr
+bjr
+bjr
+bvX
+bxu
+byA
+bzR
+byd
+bxx
+aaa
+aaa
+aaa
+aaa
+bJc
+aaa
+aaa
+aaa
+aaa
+bCq
+bPV
+bCq
+bCq
+cTF
+bCq
+bVD
+bWy
+bXx
+bYw
+bZj
+bYy
+bHE
+bTz
+bHE
+bUs
+ceY
+bCq
+bJP
+bUs
+bHE
+paJ
+bCq
+cyE
+bCq
+aaa
+aaa
+aaf
+aaa
+bCq
+bCq
+bLv
+bLv
+bLv
+aaa
+iDo
+iDo
+iDo
+iDo
+iDo
+iDo
+iDo
+iDo
+iDo
+aaa
+aaa
+gDl
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(81,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+gXs
+eRz
+aaa
+aaa
+aaa
+aaa
+gXs
+gXs
+aaa
+gXs
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+jge
+aaa
+aaa
+aaa
+ali
+avb
+avb
+vPd
+gsM
+gsM
+gsM
+qlV
+ali
+ali
+ali
+ali
+qlV
+qlV
+lzk
+qlV
+qlV
+qlV
+awa
+axp
+tcU
+fnE
+gLw
+wUr
+aHI
+aLT
+aHI
+aHI
+tkU
+aKw
+aLE
+aMS
+aOl
+aPF
+aQZ
+aRa
+aTF
+dZm
+aSX
+hPP
+aZF
+aZF
+aZF
+aZF
+aZF
+aZF
+bgy
+gjl
+bjq
+bjr
+bjr
+bmh
+bjr
+bjr
+bjr
+bjr
+bjr
+bjr
+bxw
+byz
+bzQ
+byc
+bxx
+aaa
+aaa
+bGi
+bGi
+bJb
+bGi
+bGi
+aoV
+aoV
+bCq
+bPU
+bHE
+bSp
+bHE
+bCq
+bVC
+bWx
+bWy
+bYv
+bZl
+bCq
+bHE
+bCq
+cda
+cgF
+bCq
+cqn
+cAh
+chT
+bHE
+bHE
+ckv
+bHE
+bCq
+bLv
+bLv
+bLv
+bLv
+bCq
+ciT
+cqK
+crl
+bLv
+aaa
+iDo
+atS
+atS
+atS
+atS
+atS
+atS
+atS
+iDo
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(82,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+eRz
+aaa
+rcV
+lJA
+hKo
+fNB
+lJA
+qLo
+mJH
+lJA
+lJA
+lJA
+lJA
+lJA
+lJA
+abc
+abc
+abc
+abc
+abc
+hEL
+abc
+abc
+jge
+gXs
+gXs
+gXs
+ali
+ali
+qlV
+qlV
+ali
+qlV
+qlV
+qlV
+aaa
+aaa
+aaa
+eyq
+jDZ
+gQr
+xbi
+wje
+rQJ
+arP
+avZ
+xtP
+wUr
+sYv
+rDh
+wUr
+mzB
+uSc
+wHm
+bwb
+aJe
+aKw
+aLE
+aMR
+aNU
+aPJ
+aPJ
+aPJ
+aPJ
+aPJ
+aVC
+aXJ
+bgA
+aZp
+baY
+bcJ
+bcF
+bfg
+bgA
+bhW
+bjt
+biq
+bjr
+bmh
+bjr
+bqn
+brN
+brN
+brN
+brN
+bxx
+byC
+bzT
+byl
+bxx
+aaf
+aaf
+bGi
+bHz
+mbC
+bKk
+bGi
+aoV
+aoV
+bCq
+bPW
+bCq
+bCq
+cOw
+bCq
+bVF
+bWA
+bXy
+bYx
+bWz
+bCq
+bHE
+bCq
+bQa
+cpY
+cyL
+cqy
+cAi
+bQa
+bHE
+bHE
+bHE
+bHE
+bHE
+bHE
+bHE
+bHE
+bHE
+cpR
+bHE
+cAQ
+crm
+bLv
+aaa
+iDo
+iDo
+iDo
+iDo
+iDo
+iDo
+iDo
+iDo
+iDo
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(83,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+gDl
+aaa
+eRz
+gXs
+gXs
+lJA
+suC
+qZT
+dYQ
+lGm
+pwF
+lJA
+mvV
+tso
+lJA
+mvV
+tso
+abc
+hvJ
+dIZ
+abc
+jvO
+sNg
+hJP
+abc
+jge
+aaa
+aaa
+aaa
+pta
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+arP
+vqP
+inw
+gzY
+rtC
+izg
+avZ
+xtP
+wUr
+wUr
+wUr
+wUr
+myh
+inR
+wUr
+wUr
+inR
+wUr
+aLE
+aMY
+aNT
+aPI
+aRb
+aRb
+aRb
+aRb
+aWx
+aXE
+baS
+baS
+bbP
+bcR
+bcE
+baS
+bex
+aZF
+bgu
+bic
+bku
+bmh
+bjr
+aZE
+brM
+bts
+buD
+bvY
+bxx
+byB
+bwS
+byg
+bxx
+aaa
+aaa
+bGi
+bHy
+byE
+bKj
+bGi
+aoV
+aoV
+bCq
+bHE
+bHE
+mPr
+cdb
+bCq
+bVE
+bWz
+bHE
+nkP
+bLu
+bCq
+bLu
+bCq
+cdb
+bSs
+bCq
+bCq
+cgG
+bCq
+bCq
+bCq
+bCq
+cTF
+bCq
+bLv
+bLv
+bLv
+bLv
+bCq
+cqv
+cqL
+bJe
+bLv
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+iDo
+iDo
+iDo
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(84,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+eRz
+aaa
+aaa
+lJA
+mAT
+ifM
+wnX
+mAT
+mAT
+lJA
+giE
+rBK
+lJA
+fgy
+rBK
+abc
+obs
+rBY
+abc
+rgu
+fbr
+mCm
+abc
+abc
+gXs
+gXs
+gXs
+jge
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aqQ
+uCo
+gzY
+eAG
+aqR
+aqR
+kTj
+xxi
+ngs
+ngs
+ngs
+ngs
+aDv
+uRS
+aOs
+ngs
+uRS
+fcn
+trT
+jSD
+nDd
+aPK
+aPK
+aPK
+aPK
+aPK
+aWA
+aXM
+bfi
+cBi
+bbS
+bcS
+bbt
+bfi
+beD
+gjl
+aZE
+biA
+bmg
+bmH
+bkJ
+aZE
+aZE
+aZE
+aZE
+aZE
+bxu
+byD
+bwU
+byn
+bxu
+aaa
+bxy
+bxy
+bxy
+bJd
+bKm
+bxy
+aaf
+aaf
+bCq
+bPY
+cOw
+bCq
+bCq
+bCq
+bCq
+bCq
+bYy
+bCq
+bCq
+bCq
+bCq
+bCq
+bCq
+bCq
+bCq
+bCq
+bUs
+bLv
+aaa
+bCq
+ckv
+bHE
+bCq
+aaa
+aaa
+aaf
+aaa
+bCq
+bCq
+bCq
+bCq
+bCq
+gXs
+gXs
+aaa
+gXs
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+iDo
+atS
+iDo
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(85,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+gXs
+aaa
+fIs
+fIs
+fIs
+eRz
+gXs
+gXs
+lJA
+lJA
+czP
+iCN
+lJA
+lJA
+lJA
+ewG
+eoJ
+lJA
+lEf
+ejr
+abc
+tJE
+hEL
+abc
+tYd
+cRq
+gcX
+jKj
+abc
+abu
+abu
+abu
+abc
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aqQ
+aqR
+aqR
+pjg
+sqg
+inq
+avZ
+ayz
+arP
+arP
+arP
+arP
+arP
+arP
+arP
+arP
+arP
+arP
+aLE
+aMS
+aOv
+lPr
+aPK
+aSl
+aTH
+aPK
+aWz
+aWC
+baS
+baS
+baS
+bcR
+baS
+baS
+baS
+gjl
+bju
+biv
+bmf
+bmt
+boN
+bqo
+brO
+btt
+buE
+bvZ
+bxu
+bxx
+bwT
+bym
+bxu
+bxy
+bxy
+bGj
+bHA
+bHA
+bKl
+bxy
+aaH
+aaH
+bCq
+bPX
+bRg
+bRg
+bCq
+bHE
+bVG
+bHE
+bHE
+bCq
+mqZ
+mqZ
+dfL
+dKP
+odx
+rBq
+evR
+bCq
+bUs
+bLv
+aaa
+bLv
+bJf
+ccd
+bCq
+aaa
+aaa
+aaf
+aaa
+aaa
+aaf
+aaf
+aaa
+aaf
+gXs
+gUu
+crn
+bij
+bij
+bij
+bij
+bij
+jkz
+btG
+aaa
+iDo
+atS
+iDo
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(86,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+gXs
+gXs
+fIs
+aaa
+aaa
+gXs
+aaa
+gXs
+kma
+fdJ
+hch
+reE
+tdd
+cJA
+tOk
+knA
+vws
+tkx
+epj
+lDm
+xnF
+pFj
+kcB
+gyy
+mCo
+vCS
+nZh
+pRi
+rsn
+qIW
+aca
+ebo
+yeZ
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aqQ
+uCo
+gzY
+arP
+arP
+arP
+avZ
+ayz
+arP
+ktS
+gXs
+ktS
+ktS
+gXs
+ktS
+gXs
+gXs
+aKB
+ngV
+aMS
+aOv
+aLE
+aRc
+aSm
+aTJ
+aPK
+aWA
+aWC
+aDW
+aZI
+baS
+cCn
+bdS
+bdU
+ckQ
+gjl
+bgz
+biT
+boU
+bmP
+buF
+bbR
+bbR
+btu
+bbR
+bOL
+bxy
+byF
+bwW
+bGm
+bCo
+bDk
+bEK
+byE
+byE
+byE
+byE
+bGi
+aaf
+aaf
+bLv
+bQa
+bHE
+bHE
+bCq
+bHE
+bCq
+bCq
+bCq
+dfL
+bcU
+bcU
+sAM
+mqZ
+mqZ
+mqZ
+mqZ
+bCq
+bUs
+bLv
+aaf
+aDM
+aDM
+aDM
+aDM
+aDM
+aDM
+aDM
+kfX
+saU
+saU
+bij
+crn
+bij
+bij
+eCR
+wUg
+bnT
+bph
+bgN
+mQS
+bgN
+tNF
+btG
+gXs
+iDo
+atS
+iDo
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(87,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+eRz
+eRz
+eRz
+eRz
+eRz
+eRz
+gXs
+gXs
+gXs
+aaa
+gXs
+yco
+lZp
+qgj
+lYI
+hzC
+ggT
+fdR
+qwA
+oqf
+wcS
+pFt
+lAD
+lJA
+lJA
+lJA
+lJA
+ili
+waX
+mCo
+eRS
+naj
+liJ
+acc
+rAW
+abe
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+anO
+aaa
+aaa
+arP
+qae
+aqR
+arP
+asQ
+aqR
+awb
+axr
+arP
+gXs
+lLf
+lLf
+lLf
+lLf
+lLf
+lLf
+ktS
+lSa
+aLl
+aMT
+aOv
+aPL
+aPK
+aSm
+aTI
+aPK
+aWB
+cCj
+apd
+apd
+apd
+cCk
+apd
+aZK
+bgB
+bhX
+bgv
+biF
+bkw
+bnE
+bny
+btv
+btv
+bjv
+btv
+buc
+bxz
+eVL
+bwV
+byy
+bBa
+bAb
+bzY
+bBa
+bEQ
+bGM
+bKn
+bGi
+aoV
+aoV
+bLv
+bPZ
+bHE
+bHE
+cTF
+bHE
+bCq
+mqZ
+rVy
+cNW
+rgW
+bcU
+dfL
+aXL
+mqZ
+tur
+wfR
+bCq
+bUs
+bLv
+aaa
+aDM
+ckw
+clC
+cmy
+cnm
+cnL
+cov
+cpj
+cpS
+aDM
+fjS
+sPT
+btG
+rXl
+xgC
+ugu
+mJf
+bph
+bih
+big
+bii
+bgN
+btG
+aaa
+iDo
+atS
+iDo
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(88,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+eRz
+aaa
+gXs
+gXs
+aaa
+aaa
+aaa
+aaa
+adI
+oUF
+eCB
+adI
+qCc
+qCc
+wgu
+qCc
+qCc
+qCc
+lvw
+gMB
+lJA
+tnH
+wVt
+gSj
+vYF
+txs
+lJA
+jKc
+mjJ
+eJu
+eSJ
+qNU
+moe
+acb
+gcm
+tqk
+aaa
+aaa
+aaa
+aiU
+hlT
+aiU
+aaa
+aiU
+vxX
+aiU
+gXs
+arP
+lZs
+dPq
+arP
+asP
+cya
+avZ
+axu
+ayH
+ktS
+lLf
+aHL
+lqO
+aMU
+aFV
+lLf
+ktS
+aKy
+aLq
+aMS
+aOv
+aPN
+aPK
+aSn
+aTK
+aPK
+uoG
+sOA
+asW
+baW
+bLE
+bLG
+apd
+bfj
+bgC
+bia
+aZK
+bjs
+bkx
+bmQ
+bnA
+bpB
+bpB
+brR
+bsV
+bwc
+bxA
+bvI
+bwX
+byG
+bvI
+bAm
+bBG
+bDo
+byE
+byE
+bKp
+bGi
+aaf
+aaf
+bLv
+bHE
+bHE
+bSs
+bCq
+bHE
+bCq
+mqZ
+fLN
+fxa
+aCr
+bcU
+dfL
+aLt
+leE
+dfL
+dfL
+bCq
+bUs
+bLv
+aaa
+aDM
+cky
+clE
+cmA
+clE
+cnN
+cox
+cpl
+cmy
+jLn
+xTy
+xTy
+tJK
+xTy
+xTy
+xhS
+mOB
+bph
+big
+bgN
+bkZ
+bgN
+btG
+aaa
+iDo
+atS
+iDo
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(89,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+eRz
+aaa
+aaa
+gXs
+aaa
+gXs
+aaa
+aaa
+adI
+hzs
+evh
+ycL
+qCc
+rUr
+jlQ
+gZT
+hQw
+qCc
+kcR
+rBK
+lJA
+weW
+xNV
+gxK
+dJu
+fbY
+lJA
+abd
+khO
+enB
+enB
+enB
+enB
+enB
+enB
+sKA
+gXs
+gXs
+gXs
+aiU
+alp
+aiU
+gXs
+aiU
+alp
+aiU
+arP
+arP
+arP
+arP
+arP
+arP
+arP
+avZ
+azK
+ayG
+ktS
+lLf
+aJi
+aLL
+aOi
+aOw
+bgM
+cUx
+nbr
+oTW
+aMT
+aOv
+aPM
+aPQ
+aPQ
+aPQ
+aPQ
+apd
+aYi
+aqW
+aqW
+bbQ
+uFp
+apd
+aZH
+aZK
+bhZ
+aZK
+cNM
+bfQ
+bnG
+bnz
+bpA
+bbR
+sWR
+jlm
+bud
+eyM
+kSb
+bAZ
+bGm
+bzF
+bAc
+bGm
+byE
+cBB
+byE
+bKo
+bxy
+aaH
+aaH
+bCq
+bHE
+bRh
+bLu
+bCq
+bHE
+bCq
+mqZ
+bcU
+bcU
+bcU
+bcU
+bcU
+bcU
+bcU
+bcU
+mqZ
+bLv
+bUs
+bLv
+aaf
+aDM
+ckx
+clD
+cmz
+cnn
+cnM
+cow
+cpk
+cpT
+aDM
+fjS
+dXq
+btG
+rtl
+oqO
+vFr
+bnV
+bph
+bii
+big
+bih
+bgN
+btG
+aaa
+iDo
+atS
+iDo
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(90,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+sMu
+aaa
+aaa
+adI
+xWS
+adI
+xWS
+adI
+adI
+lCt
+qcU
+vRN
+qCc
+icS
+mqQ
+qYa
+wIl
+qCc
+sfz
+tbR
+lJA
+ryi
+cCr
+lJA
+lJA
+lJA
+lJA
+noJ
+aeO
+afu
+acd
+wdr
+itQ
+pgn
+tmO
+sXV
+xUe
+aiU
+aiT
+nEj
+vTP
+aiU
+amK
+aiU
+mkU
+xWq
+arP
+asR
+gzY
+fdQ
+ngU
+kUC
+arP
+awc
+azK
+ayG
+ktS
+lLf
+aER
+aDj
+aER
+aFX
+aHj
+aJa
+aKc
+aLp
+aMV
+aOy
+pgl
+aPQ
+aRV
+aSW
+aVa
+apd
+aWE
+aqW
+aqW
+bcG
+bLG
+apd
+aZH
+bgD
+bfN
+bgE
+cNN
+bkH
+bfm
+boS
+bfm
+bNK
+bkN
+bfm
+bwe
+bwe
+bwd
+bwY
+byJ
+bwe
+bAc
+bBI
+bGn
+bGn
+bGn
+bKq
+bxy
+aaf
+aaf
+bCq
+bOK
+bCq
+bCq
+bCq
+bUt
+bCq
+uaw
+bcU
+bcU
+bcU
+bcU
+bcU
+bcU
+bcU
+bcU
+mqZ
+bLv
+bUs
+bLv
+aaa
+aDM
+cky
+clG
+cmB
+clG
+cnP
+coz
+cpn
+sPY
+sPY
+bgO
+dgO
+bgO
+pPI
+uRd
+ktP
+bnW
+bph
+bgN
+mkv
+bgN
+jFH
+btG
+gXs
+iDo
+atS
+iDo
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(91,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+eRz
+aaa
+aaa
+oUF
+llb
+eXI
+gLu
+vwQ
+adI
+hzs
+hnp
+jVV
+qCc
+qCc
+qCc
+qCc
+qCc
+qCc
+adI
+adI
+lJA
+maP
+lHK
+nRO
+vYF
+txs
+lJA
+ksa
+dQS
+afu
+acd
+pDe
+dly
+mnC
+mcp
+sXV
+oDm
+hzK
+akb
+ahq
+akI
+ahU
+aiT
+aiD
+gvX
+uFZ
+hBw
+vLo
+gzY
+aqR
+gzY
+gzY
+esK
+awb
+azK
+ayG
+ktS
+lLf
+aBX
+aDi
+aEQ
+aFW
+aHh
+aIV
+nez
+pMQ
+syJ
+aOx
+aPc
+aRe
+aRT
+aSt
+aWF
+apd
+aWG
+aZa
+baX
+bcH
+bdE
+apd
+aZH
+bnL
+cNG
+cNJ
+cNM
+cNI
+bnI
+boR
+bqs
+bbR
+bkM
+bbR
+bwd
+bxB
+bvL
+byI
+byH
+bwe
+bAn
+bBH
+bxy
+bxy
+bxy
+bxy
+bxy
+bLv
+bLv
+bCq
+bHE
+bLv
+aaa
+bLv
+uuG
+jJF
+gBo
+bcU
+bcU
+bcU
+bcU
+bcU
+bcU
+bcU
+bcU
+mqZ
+bLv
+bUs
+bLv
+aaa
+aDM
+ckz
+clF
+cmy
+cnp
+cnO
+coy
+cpm
+aDM
+aaf
+aaf
+aaa
+aaa
+gXs
+iHk
+bgO
+bgO
+bgO
+bgO
+bgO
+bgO
+jBA
+btG
+aaa
+iDo
+atS
+iDo
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(92,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+eRz
+aaa
+gXs
+adI
+lNQ
+eDF
+jYl
+lUU
+adI
+adI
+aaW
+wVq
+adI
+qFK
+jRW
+dLi
+evc
+qto
+pGA
+adI
+mnu
+xGm
+xNV
+oTx
+nko
+vFZ
+lJA
+noJ
+aeO
+afw
+acd
+acd
+dly
+xxp
+mcp
+dYZ
+kMt
+nTG
+rhX
+ahr
+ahD
+ahV
+agr
+fJY
+eXz
+pUy
+arP
+arP
+arP
+arP
+iPX
+nnp
+arP
+awb
+azN
+aHJ
+ktS
+lLf
+aBZ
+aDx
+aET
+aOH
+lLf
+ktS
+aKd
+aLq
+aMY
+aOA
+aPO
+aRf
+aSc
+aSc
+aUw
+apd
+aXK
+avr
+aZJ
+bbT
+bSy
+apd
+aZH
+beF
+bfl
+bmi
+bjw
+bmk
+bbR
+boT
+bbR
+bbR
+buI
+bbR
+bwd
+bxD
+byL
+byK
+byT
+bwe
+bAx
+bTE
+bCq
+bHD
+bJe
+bCq
+nkP
+nzX
+bHE
+bHE
+bHE
+bLv
+aaf
+bLv
+bUs
+bCq
+mqZ
+rVy
+fxa
+rgW
+rVy
+fxa
+rgW
+rVy
+fxa
+sAH
+bLv
+bUs
+bLv
+aaf
+aDM
+aDM
+aDM
+aDM
+aDM
+cnR
+coB
+aDM
+aDM
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+iDo
+atS
+iDo
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(93,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+eRz
+aaa
+aaa
+oUF
+iMy
+cTo
+ltm
+kkb
+xfW
+ybb
+kMn
+rDc
+grd
+wpV
+tYg
+jCV
+sAm
+jrR
+teq
+adI
+cVE
+abb
+abt
+lJA
+lJA
+lJA
+lJA
+noJ
+aeO
+afv
+agf
+acd
+dly
+xxp
+mcp
+sXV
+gDP
+lAH
+lNH
+akG
+akG
+kHd
+vGn
+gav
+cxP
+pUy
+arP
+aqU
+arg
+arP
+arP
+arP
+arP
+vgJ
+hSl
+arP
+gXs
+lLf
+lLf
+lLf
+lLf
+lLf
+lLf
+ktS
+aKA
+qBi
+aMS
+aOz
+exP
+aPQ
+aSa
+aSr
+aSr
+apd
+aYZ
+bLE
+aqW
+aqW
+noy
+apd
+beA
+bqp
+cNG
+cNJ
+bLF
+aZK
+sRH
+bbR
+bqt
+cBq
+bbR
+bbR
+bwd
+bxC
+byK
+cBv
+byO
+bwe
+bAo
+bTE
+bGo
+bHC
+bHE
+bCq
+bCq
+bLv
+bLv
+bHE
+bLv
+bCq
+aaa
+bLv
+bUs
+bCq
+mqZ
+usO
+iiW
+oKh
+usO
+mpI
+oKh
+usO
+izv
+oKh
+bCq
+bUs
+bCq
+aaa
+aaf
+aaa
+aaa
+aaf
+aDM
+cnQ
+coA
+cpo
+aDM
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+iDo
+iDo
+iDo
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(94,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+eRz
+gXs
+gXs
+adI
+mwN
+kfG
+uJY
+vhC
+tLC
+ybb
+uLB
+kGj
+adI
+lux
+gPY
+ktW
+qQK
+uuw
+dPs
+adI
+kgr
+nFA
+wVt
+pZD
+vYF
+tCs
+lJA
+pIR
+aeL
+afy
+agh
+acd
+kCa
+hnU
+vda
+sXV
+agv
+amM
+aiX
+aiX
+aiX
+aiX
+aiX
+foT
+ibK
+pUy
+arP
+aqR
+arl
+arP
+asS
+sfs
+aqR
+awb
+axt
+arP
+ktS
+gXs
+ktS
+ktS
+gXs
+ktS
+gXs
+gXs
+aKB
+aLF
+aNp
+aOC
+aPQ
+aPQ
+aTL
+aTP
+aWD
+apd
+aYj
+aZL
+baU
+baU
+bcV
+apf
+bfn
+beW
+bfR
+bKF
+bNH
+aZK
+bnJ
+bbR
+bbR
+bbR
+bty
+buJ
+bwe
+bxE
+byM
+bAd
+bBf
+bwe
+bAJ
+bCe
+bCq
+bHE
+bJf
+bCq
+aaa
+aaf
+bLv
+bHE
+bLv
+aaa
+aaa
+bTB
+bUv
+alP
+alP
+alP
+alP
+bGp
+bGp
+bGp
+bGp
+alP
+alP
+alP
+car
+bUs
+bCq
+bCq
+bCq
+bCq
+bCq
+bCq
+aDM
+cnS
+coC
+cpp
+aDM
+aaf
+aaf
+aaa
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(95,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+gXs
+eRz
+aaa
+aaa
+oUF
+xFj
+jKm
+cYf
+kkb
+jCV
+pgq
+peD
+sBM
+adI
+aaN
+jOB
+adI
+adI
+adI
+adI
+adI
+aay
+oss
+abv
+pPE
+acA
+acI
+adD
+aed
+wGc
+afv
+agg
+acd
+ovv
+dCV
+idK
+age
+kZS
+agu
+aiX
+amL
+apK
+amX
+aiX
+aiE
+aiK
+aiN
+arP
+arc
+arP
+arP
+usE
+aqR
+aqR
+awb
+axt
+arP
+arP
+arP
+arP
+arP
+arP
+arP
+arP
+arP
+arP
+aHP
+aNc
+aOB
+aPQ
+aPQ
+aSs
+aSs
+aSs
+apd
+apd
+apd
+baV
+bON
+apd
+apd
+aZK
+beV
+cNI
+bKP
+cNI
+aZK
+bnK
+bnK
+bqu
+bqu
+bnK
+bnK
+bwe
+bwe
+bwe
+bwe
+bwe
+bwe
+bAI
+bCd
+bCq
+bCq
+bCq
+bCq
+bLv
+bLv
+bLv
+bOK
+bLv
+bLv
+bLv
+aJq
+bUu
+bLw
+bLw
+bLw
+bLw
+bLw
+bLw
+bLw
+bLw
+bLw
+bLw
+bLw
+caq
+cbw
+bHE
+ciT
+bCq
+bSs
+ceY
+cig
+aDM
+cnR
+cgT
+cjJ
+aDM
+cig
+cig
+cig
+aaa
+aaf
+aaa
+aaa
+aaf
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(96,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+gXs
+sMu
+gXs
+gXs
+adI
+adI
+yhI
+lLu
+dLZ
+vYY
+mui
+gcV
+lic
+aau
+xbP
+mHH
+fMF
+ueN
+iqi
+fKN
+adI
+mIZ
+abg
+lJA
+lJA
+lJA
+lJA
+lJA
+aeg
+ryN
+afA
+acd
+acd
+kuA
+laq
+kdP
+mGw
+akm
+akr
+alZ
+amO
+arQ
+aor
+aiX
+aiF
+aqI
+asv
+aqT
+apS
+arn
+apS
+apS
+apS
+apS
+ajw
+ajy
+ayJ
+ayJ
+aBi
+aqR
+aqR
+aqR
+aqR
+aqR
+aqR
+arP
+aLI
+aNr
+bBo
+pQN
+aRh
+pQN
+pQN
+pQN
+pQN
+pQN
+aLY
+pQN
+pQN
+aRh
+bbV
+bfo
+bkS
+bfo
+bgn
+bfo
+bmn
+bfo
+boW
+bmE
+bmE
+btz
+btz
+bwf
+btz
+btz
+btz
+bBh
+bCr
+bAK
+bCn
+bGq
+bGq
+bGq
+rGq
+bLw
+bGq
+bGq
+bGq
+bLw
+bGq
+rGq
+bTD
+bUx
+bVI
+bVI
+bVI
+bVI
+bVI
+bVI
+bVI
+bVI
+bVI
+bVI
+bVI
+bTA
+xgk
+bHE
+kEm
+bHE
+bHE
+bHE
+cmD
+cnr
+cnU
+chD
+cpq
+cpV
+cqw
+cqO
+crp
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+kEY
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(97,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+gXs
+gXs
+gXs
+eRz
+aaa
+aaa
+aaa
+oUF
+vim
+kYm
+mke
+hpY
+obq
+fiR
+dPE
+pTT
+jIH
+rqq
+adI
+mxZ
+xMS
+pnb
+abf
+aaK
+jRw
+aaU
+eDJ
+acC
+ada
+adF
+aef
+aeM
+aav
+ldY
+xkk
+lRb
+vIi
+fsj
+sXV
+xnm
+rAR
+uCU
+and
+arS
+anq
+aiX
+aiT
+ass
+aiT
+arP
+arP
+arP
+arP
+arP
+arP
+arP
+ajx
+axw
+ayI
+azO
+aBh
+akL
+aDz
+aEV
+aGg
+aHx
+aqZ
+apg
+aLx
+aNq
+aOD
+aPe
+pQN
+pQN
+pQN
+pQN
+pQN
+pQN
+aLY
+pQN
+pQN
+bHt
+pQN
+pQN
+beX
+pQN
+bgm
+bjx
+bmm
+bnM
+boV
+bnM
+bnM
+bnM
+bnM
+bnM
+bnM
+bnM
+bAe
+bBg
+bCq
+bCq
+bDt
+bGp
+bGp
+bGp
+bES
+bGp
+bGp
+bGp
+bGp
+bGp
+bGp
+alP
+bTC
+bAx
+bVI
+bWB
+bWB
+bYz
+bYz
+cag
+cbl
+bYz
+bWB
+bWB
+bVI
+cax
+cbx
+cdh
+ciU
+cjK
+ckA
+ckA
+cmC
+cmC
+cfJ
+chB
+cpW
+cgR
+cgR
+cqN
+cro
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(98,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+eRz
+aaa
+aaa
+rcV
+adI
+adI
+adI
+adI
+adI
+adI
+lBk
+jxx
+adI
+thB
+rqq
+adI
+adI
+jTy
+aaI
+adI
+gXu
+wAN
+ruu
+ace
+ref
+aat
+adH
+aem
+ikv
+adp
+sXV
+sXV
+sXV
+sXV
+sXV
+sXV
+oby
+ajX
+aiX
+amL
+asp
+nbY
+aiX
+iRj
+anz
+kbO
+cCi
+apU
+ajd
+arU
+apU
+apU
+cCi
+awg
+axy
+ayW
+azQ
+aBk
+ayW
+ayW
+ayW
+ayW
+ayW
+ayW
+ayW
+aLW
+aNs
+pQN
+aLX
+aLX
+aLX
+aLX
+aLX
+pQN
+aYl
+aZN
+aYl
+aYl
+aYl
+aYl
+aYl
+bgG
+bid
+aYl
+bBi
+aLY
+bnN
+boY
+bqw
+pQN
+pQN
+aYl
+fAj
+aLX
+pQN
+pQN
+bBi
+fxV
+aaa
+aaf
+aaa
+aaf
+aaa
+aaf
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+bCq
+bTF
+bAx
+bVI
+bWD
+bXA
+bYB
+bYz
+cai
+cSF
+ccg
+cdd
+cea
+bVI
+caz
+cby
+cdj
+cdv
+cem
+cem
+cem
+cfe
+cfD
+cgv
+chE
+ciN
+ciN
+cji
+cDZ
+crr
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(99,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+eRz
+eRz
+gXs
+aaa
+aaa
+gXs
+adI
+msp
+pHK
+wkU
+sNj
+efs
+adI
+sAT
+rqq
+aan
+adI
+adI
+adI
+adI
+xLQ
+abh
+acd
+ozh
+abK
+acY
+acd
+aeh
+lJS
+ado
+afq
+afH
+agY
+ahS
+aiI
+afn
+vfX
+akD
+aiX
+aiX
+aiX
+aiX
+aiX
+ycY
+anz
+aov
+cCi
+air
+aqY
+arT
+apU
+apU
+cCi
+awg
+axy
+ayK
+azE
+aBj
+aBO
+aDC
+ayW
+aGo
+aHN
+aJj
+ayW
+aLV
+pQN
+aOE
+aJn
+aJn
+aJn
+aJn
+aJs
+pQN
+aYk
+aZM
+aZM
+bbW
+bcX
+bcX
+aZM
+aZM
+aZM
+bjz
+bkT
+bjz
+bjz
+aiV
+bqv
+bqv
+bqv
+bqv
+bwg
+aJw
+pQN
+pQN
+bBi
+fxV
+aaa
+bEU
+bGr
+bGr
+bGr
+bKr
+aaa
+aaf
+aaa
+aaa
+aaf
+aaf
+bCq
+bTE
+bAx
+bVI
+bWC
+bXz
+bYA
+bZn
+cah
+bWB
+ccf
+cdc
+cdZ
+bVI
+cay
+cig
+cig
+cig
+cig
+cig
+cig
+cig
+cig
+cfL
+coH
+cBO
+cgR
+cDB
+cqP
+crq
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(100,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+eRz
+aaa
+aaa
+aaa
+aaa
+xWS
+gcY
+oVL
+dSh
+xBJ
+fMY
+adI
+pUf
+aam
+aap
+aau
+aaD
+aau
+vMi
+oKB
+vhy
+abA
+jNN
+jRV
+hkA
+acd
+aek
+acp
+aav
+agO
+afI
+ahb
+ahZ
+aiL
+lZn
+akg
+kuh
+aly
+anP
+gyr
+okK
+xal
+aqC
+anz
+aov
+cCi
+aqX
+arR
+asj
+cLS
+ajr
+atY
+auo
+axy
+ayN
+azE
+aAW
+aCa
+aDB
+aDI
+aEZ
+aEZ
+aEZ
+ayW
+aLX
+pQN
+aOE
+aJn
+aaa
+aaa
+aJn
+aJs
+pQN
+aYn
+aZM
+aZu
+bbY
+bcY
+bdX
+bbX
+bgH
+bie
+bjB
+bkW
+bmp
+bjz
+ajh
+bqy
+cBr
+bqy
+buK
+tZe
+aJw
+pQN
+pQN
+bBi
+fxV
+aaf
+bEW
+bGt
+bHG
+bJh
+bEW
+aaf
+aaf
+aaa
+aaa
+bKv
+bLB
+alP
+bMj
+bAx
+bVI
+bWF
+bXC
+bXC
+bZp
+cak
+bWB
+bWB
+bWB
+cec
+bVI
+kNv
+cig
+chY
+ciX
+cjM
+ckB
+ckB
+ckB
+cig
+cnY
+coH
+cgR
+cgR
+cqx
+cgR
+crp
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(101,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+eRz
+eRz
+eRz
+aaa
+aaa
+uKW
+jCV
+jCV
+eoR
+jCV
+ooF
+adI
+viH
+siz
+aao
+aax
+aaC
+aaA
+ngq
+tWe
+jHp
+aei
+fFR
+acE
+add
+acd
+aej
+aeQ
+adp
+ahv
+afK
+amJ
+aid
+aiM
+ajz
+alz
+cZe
+alg
+plS
+afM
+pQr
+aou
+aqC
+anz
+aov
+ape
+arT
+aqV
+ajf
+apU
+ajt
+cCi
+awg
+axy
+ayM
+azs
+aAR
+aBP
+aDA
+aEW
+aGi
+aHB
+aEZ
+aBt
+aJs
+pQN
+aOE
+aJn
+aaa
+aaa
+fxV
+aVb
+aWH
+aYm
+aZM
+aZq
+bbX
+bbX
+bbX
+bfp
+aZM
+aZM
+bjA
+cAG
+bmo
+bmo
+boZ
+bqx
+brU
+bmo
+bmo
+bmo
+bmo
+byN
+pQN
+bBj
+fxV
+aaa
+bEV
+bGs
+cBC
+bJg
+bKs
+aaa
+aaf
+aaf
+aaf
+bJQ
+bLg
+cem
+cem
+bNg
+bVI
+bWE
+bXB
+bYC
+bZo
+bWB
+bWB
+cch
+cde
+ceb
+bVI
+cay
+cig
+chY
+ciZ
+ciW
+ckB
+ckB
+ckC
+cig
+cnX
+coH
+cps
+cpX
+cqz
+cqR
+cig
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(102,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+gXs
+aaa
+eRz
+gXs
+gXs
+uKW
+oIl
+jCV
+eoR
+ecB
+dnX
+adI
+adI
+mZu
+adI
+uGI
+aaF
+qbk
+ske
+aaW
+xjU
+adI
+adI
+adI
+adI
+adI
+xKl
+omX
+afG
+xuu
+afL
+ahu
+aie
+aiO
+afn
+xzv
+agL
+akT
+gNE
+gLz
+rcI
+seP
+aqC
+anz
+aov
+cCi
+tKb
+arT
+arT
+asn
+atK
+auq
+avs
+axz
+ayP
+azU
+aBo
+aCg
+aEZ
+aEX
+aEZ
+aEZ
+aEZ
+vbD
+aJs
+pQN
+bJx
+aJn
+aaa
+aaa
+aTQ
+aVd
+aWJ
+aYp
+aZM
+aZz
+baI
+bda
+bda
+bca
+bgJ
+aZM
+cNL
+bkY
+bmo
+bnP
+bpc
+bqA
+brW
+btB
+buM
+bwi
+bmo
+aMm
+pQN
+vEi
+bCs
+bCs
+bEY
+bGu
+bHI
+bJi
+bEY
+bCs
+bCs
+bNI
+bNI
+bRn
+cce
+bNI
+bNI
+bUz
+bVI
+bWG
+bXD
+bYz
+cSE
+bWB
+bYz
+bYz
+cdf
+ced
+bVI
+cay
+cig
+ciZ
+ciZ
+ciZ
+ckC
+ckC
+ckC
+cig
+coa
+coJ
+clJ
+clJ
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(103,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+gXs
+aaa
+eRz
+aaa
+aaa
+uhK
+xAA
+jSY
+hxg
+wAj
+ssc
+adI
+uOm
+nLP
+adI
+dyS
+aaE
+aaN
+aaN
+aaV
+rvS
+etr
+tyb
+abL
+adb
+adI
+ael
+aeO
+afF
+aiX
+aiX
+afn
+afn
+aiX
+aiX
+agM
+sAk
+akp
+aiX
+amB
+amn
+aiX
+anz
+anz
+aov
+cCi
+arT
+arT
+asl
+arT
+apU
+cCi
+awg
+axy
+ayv
+azE
+aBn
+aCb
+aDD
+aEY
+aGj
+aHC
+aEZ
+aBt
+aJs
+pQN
+aOE
+aJn
+aaa
+aaa
+aTQ
+aVc
+aWI
+aYo
+aZM
+aZy
+bay
+bcZ
+bdY
+bdF
+bgI
+aZM
+bjC
+bkX
+bmo
+bnO
+bpb
+bqz
+bqq
+brS
+bsY
+bue
+bmo
+aMn
+pQN
+bBi
+bCs
+bDv
+bEX
+bFb
+kfv
+bFa
+bKt
+bLx
+bCs
+cCe
+bRl
+apV
+bLC
+cCf
+bNI
+bUz
+bVI
+bWB
+bWB
+bYz
+bZq
+cal
+cbm
+bYz
+bWB
+bWB
+bVI
+cay
+cig
+cig
+ciY
+ciY
+cig
+cig
+cig
+cig
+cnZ
+coH
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(104,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+gXs
+aaa
+eRz
+aaa
+aaa
+adI
+oIl
+uUb
+eZI
+qZQ
+dNP
+adI
+hJO
+mpY
+adI
+szf
+efs
+gVc
+qXg
+adI
+xOx
+oPY
+ncU
+lvc
+epG
+adI
+aen
+aeO
+afG
+afq
+aii
+afM
+aig
+agp
+aiX
+lfV
+akl
+akM
+amm
+gyr
+anM
+xal
+aqC
+anz
+aox
+cCi
+cCi
+cCi
+cCi
+cCi
+cCi
+cCi
+awg
+axy
+ayQ
+azE
+aBq
+aBr
+aDE
+aFc
+aEZ
+aEZ
+aJf
+ayW
+aJr
+pQN
+aOE
+aJn
+aaa
+aTQ
+aTQ
+aTQ
+aWL
+aTQ
+aZM
+bbX
+bay
+bbM
+bcN
+bdK
+bgL
+aZM
+aZM
+aZM
+bmo
+bnR
+bpe
+bqB
+unQ
+btD
+buO
+bwk
+bmo
+aLY
+cBw
+bBk
+bCs
+bDx
+bFa
+bFa
+bHJ
+bFa
+bFa
+bLz
+bCs
+cCe
+bNJ
+apV
+xhV
+gWd
+bNI
+bUz
+bVJ
+bWI
+bXF
+bXF
+bZs
+cao
+cbo
+bXF
+bXF
+cef
+bVJ
+cay
+cig
+cig
+cSV
+cSV
+cig
+cig
+cmG
+cnt
+cob
+coL
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(105,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+gXs
+gXs
+eRz
+gXs
+gXs
+adI
+vHK
+emf
+vHK
+vHK
+vHK
+vHK
+vHK
+adI
+adI
+fdS
+qRI
+jvB
+iwU
+adI
+ltw
+eDf
+oXV
+acH
+adc
+adI
+aeo
+aev
+aeS
+ahw
+ajg
+afM
+akU
+afM
+lBz
+alA
+alt
+amS
+kbm
+afM
+cKC
+dyE
+aqC
+anR
+aow
+apg
+aqZ
+aqZ
+aqZ
+apW
+aqZ
+avh
+awh
+axz
+ayO
+azE
+aBp
+aCc
+aDF
+ayW
+aGq
+aHO
+aJl
+ayW
+ftE
+pQN
+aOE
+aJn
+aaa
+aTQ
+aTR
+aVe
+aWK
+aYq
+aZO
+aZC
+baK
+rnt
+bbC
+bdI
+bgK
+bgK
+bjE
+bgK
+bmq
+bnQ
+bpd
+bpd
+bqr
+btC
+buN
+bwj
+bmo
+byP
+pQN
+bBi
+bCs
+bDw
+bEZ
+bGv
+bHH
+bJj
+bKu
+bLy
+bCs
+bNJ
+bNJ
+bKx
+cjL
+gbq
+bNI
+bUz
+bVJ
+bWH
+bXE
+bYD
+bZr
+can
+cbn
+cci
+cdg
+cee
+bVJ
+cay
+cig
+cia
+cSN
+cSS
+ckD
+cTc
+cTe
+cfG
+cgw
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(106,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+eRz
+aaa
+aaa
+aaa
+vHK
+qOY
+pBd
+kGL
+fcj
+jqK
+vHK
+rTj
+rTj
+goJ
+efs
+rTj
+hvC
+adI
+oiY
+abE
+acg
+acJ
+adb
+adJ
+aep
+aeT
+afG
+xuu
+ajL
+akj
+afM
+afM
+nss
+kQz
+alB
+akT
+gNE
+gLz
+anB
+seP
+aqC
+anz
+aov
+aph
+aph
+aph
+arW
+aso
+auf
+avi
+awi
+axy
+ayS
+azS
+aBs
+aCi
+aDI
+ayW
+ayW
+ayW
+ayW
+rNG
+pQN
+pQN
+aOE
+aJn
+aaa
+aTQ
+aTT
+aVg
+aWN
+aYs
+aZQ
+bbi
+bde
+kvL
+bcd
+bcd
+bcd
+bcd
+bcd
+bcd
+bms
+bnS
+ajs
+bqC
+brZ
+btE
+bnS
+bwl
+bxG
+byR
+bnM
+bBl
+bCs
+bFa
+bFa
+bFa
+bHH
+bFa
+bFa
+bFa
+bCs
+bNJ
+bNJ
+apV
+cjL
+nxv
+bNI
+bUz
+bVJ
+bOo
+bOD
+bQb
+bZv
+bSd
+bXG
+bOC
+bWt
+cBK
+bVJ
+cay
+cig
+cid
+cSO
+cen
+ckG
+clJ
+cmF
+cgR
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(107,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+eRz
+aaa
+aaa
+aaa
+vHK
+sIn
+eZS
+iBj
+pGs
+iBq
+vHK
+dCd
+aaP
+xpH
+aaG
+wYc
+aaP
+adI
+keM
+xib
+acG
+acD
+cNi
+adI
+aeq
+aeV
+aiX
+aiX
+aiX
+tHh
+ahG
+ajY
+fxx
+ako
+ene
+amj
+aiX
+amB
+amn
+aiX
+anz
+anz
+aov
+aph
+aob
+ara
+arV
+apZ
+aph
+aph
+awg
+axy
+ayR
+azR
+aBr
+aEZ
+afO
+aEZ
+agm
+aBt
+aaa
+aJn
+aLY
+aLY
+aOF
+aTQ
+aTQ
+aTQ
+aTS
+aVf
+aWM
+aYr
+aZM
+bbh
+bcc
+bdd
+cVs
+mwj
+bbX
+bif
+aZM
+aZM
+bmo
+bmo
+bmo
+bmo
+bmo
+bmo
+bmo
+bmo
+bmo
+byQ
+pQN
+bBi
+bCs
+bFa
+bFa
+bGw
+bER
+bJk
+bFa
+bLA
+bCs
+cCd
+bQc
+bKA
+rKP
+bSv
+bNI
+bUB
+bVJ
+bOl
+bOC
+bPQ
+bQK
+bYF
+bTI
+bUy
+bWs
+ceg
+bVJ
+cay
+cig
+cic
+cSP
+cST
+cTa
+ceZ
+clQ
+cgR
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(108,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+eRz
+eRz
+gXs
+gXs
+vHK
+vHK
+vHK
+vHK
+vHK
+vHK
+vHK
+xMg
+tPY
+adb
+lht
+jVP
+tPY
+adI
+abj
+abF
+eIW
+mJy
+ldT
+cSp
+aeP
+afC
+agk
+cOV
+agP
+ajJ
+agT
+all
+all
+aku
+akl
+amk
+amm
+gyr
+mos
+xal
+aqC
+anz
+aov
+aph
+aoc
+ata
+arY
+ata
+auh
+aph
+awg
+axy
+ayT
+azR
+aEZ
+aEZ
+aBt
+aEZ
+aio
+aBt
+aaa
+aJn
+pQN
+pQN
+aOE
+aPT
+aRj
+aSv
+aTV
+aVi
+aWP
+aYu
+aYt
+bbk
+bbk
+bfu
+bbk
+jmL
+aZM
+aZM
+aZM
+ktS
+gXs
+ktS
+ktS
+gXs
+ktS
+ktS
+gXs
+ktS
+fxV
+aXf
+pQN
+bBi
+bCs
+bAM
+bFa
+bGy
+bFc
+bJm
+bFa
+bHO
+bCs
+cCd
+cCd
+aYg
+cjL
+cCc
+bNI
+bEP
+bVJ
+bVJ
+bOM
+bQd
+bQP
+bSt
+bUc
+bVb
+bWv
+cei
+bVJ
+cay
+cig
+cif
+cSQ
+cSU
+cTb
+cTd
+ckF
+ckF
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(109,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+eRz
+aaa
+aaa
+gXs
+aaa
+gXs
+adI
+olH
+mte
+lpx
+nZs
+nZs
+nZs
+sYV
+nZs
+maU
+adI
+abi
+eqA
+ach
+wAj
+adf
+mhv
+aer
+afB
+agi
+eWL
+afN
+ajK
+aiH
+akF
+aiy
+akv
+uXt
+amS
+pAK
+afM
+anQ
+dyE
+aqC
+anz
+aov
+api
+ata
+arb
+arX
+atc
+aug
+aph
+awg
+axy
+aEZ
+ayU
+aEZ
+aCj
+ayW
+ayW
+ayW
+ayW
+aJn
+aJn
+pQN
+pQN
+aOE
+aPS
+aRi
+aSu
+aTU
+cpC
+aWO
+aYt
+aYx
+bbj
+bce
+bdf
+beb
+aYv
+ktS
+ktS
+ktS
+ktS
+gXs
+ktS
+ktS
+gXs
+fxV
+fxV
+fxV
+fxV
+fxV
+aXf
+pQN
+byU
+bCs
+bAL
+bFa
+bGx
+bET
+bJl
+bHh
+bHN
+bCs
+cjo
+cCd
+bSx
+cjL
+cCb
+bNI
+bEP
+bLu
+bVJ
+bVJ
+bVJ
+bVJ
+bVJ
+bVJ
+bUC
+bWu
+bVJ
+bVJ
+cay
+cig
+cie
+cdT
+cCY
+cnA
+cev
+cfg
+cgU
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(110,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+gDl
+aaa
+eRz
+aaa
+aaa
+gXs
+aaa
+aaa
+adI
+noR
+nSI
+sHd
+jCV
+tHO
+aaR
+jUN
+peE
+aaR
+adI
+adI
+adI
+adI
+adI
+adI
+adI
+aaZ
+aaZ
+aiX
+aiX
+afS
+ahx
+aiX
+aiQ
+xUX
+akx
+uTe
+akT
+amx
+any
+arD
+seP
+aqC
+anz
+aov
+aph
+aqb
+are
+arZ
+ata
+aui
+aph
+awg
+axy
+ayX
+azY
+aEZ
+aEZ
+afP
+aFb
+aEZ
+cyg
+aJp
+aKE
+aMa
+aNw
+aOE
+aPU
+aRl
+aSx
+aTX
+aVi
+aWR
+aYv
+aZS
+aZR
+aZR
+bbm
+bec
+bfu
+hty
+lpQ
+sUx
+iZd
+wql
+wql
+wql
+wql
+wql
+yhz
+ouQ
+cQT
+nbT
+aXf
+pQN
+bBi
+bCs
+bFa
+bFa
+bFa
+bET
+bJn
+bHi
+bHQ
+bCs
+cjo
+bJu
+bSx
+cmX
+bSz
+bNI
+bUD
+bVM
+bVM
+bVM
+bVM
+bVM
+cat
+bCq
+bVd
+bWK
+bYp
+bCq
+cay
+cig
+cig
+cSR
+cSV
+cig
+cig
+cTf
+cgR
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(111,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+eRz
+eRz
+eRz
+eRz
+aaa
+aaa
+adI
+sew
+suS
+qvc
+adb
+kOE
+dxv
+fmR
+dzK
+adb
+adI
+aaT
+aaf
+abx
+aaZ
+aeF
+ack
+agJ
+acT
+adK
+aew
+afT
+ahy
+aij
+aiR
+ajc
+akz
+ene
+als
+aiX
+apT
+amn
+aiX
+aqD
+anz
+aov
+aph
+cIv
+ard
+ard
+ard
+aph
+aph
+awj
+axy
+ayW
+ayW
+aBt
+aBt
+ayW
+ayW
+ayW
+ayW
+aJo
+pQN
+aLZ
+aNv
+aOE
+aPS
+aRk
+aSw
+aTW
+aVj
+aWQ
+aYv
+aZR
+aZR
+aZR
+aZR
+aZR
+bft
+wZI
+gDO
+aBW
+aDs
+aEN
+aGb
+pub
+bqD
+bsa
+vCn
+pQN
+pHt
+nbT
+aXf
+pQN
+wTf
+bCs
+bCs
+bCs
+bCs
+bFe
+bCs
+bLD
+bCs
+bCs
+bNI
+bNI
+bKU
+cnB
+bNI
+bNI
+bCq
+bCq
+bCq
+bCq
+bCq
+bCq
+cas
+bCq
+bVc
+bWJ
+bYn
+bZB
+caC
+cig
+cSM
+cjd
+cSW
+ckI
+clJ
+cmL
+cBO
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(112,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+gXs
+eRz
+aaa
+rcV
+adI
+adI
+adI
+adI
+oUF
+gfw
+adI
+adI
+nqu
+uZY
+adI
+aaT
+gXs
+abG
+aaZ
+aeW
+acl
+agJ
+adg
+adL
+adL
+ago
+ahz
+aim
+aiW
+ajc
+akz
+ene
+alg
+alw
+amp
+aot
+apR
+aqE
+anz
+old
+apk
+anw
+anw
+anw
+anw
+aVh
+avj
+awl
+axC
+ayY
+cpF
+azZ
+azZ
+azZ
+azZ
+aGt
+aHQ
+aJr
+pQN
+aMc
+aNy
+aOE
+aPS
+aRn
+aSz
+aTY
+aVl
+aWT
+aYx
+aZR
+bbm
+bbm
+bdh
+bee
+nVz
+xUL
+tyX
+gpD
+aDt
+cJW
+aGa
+aHF
+bqF
+wql
+rML
+pQN
+uWq
+bxI
+bwa
+bAg
+bBq
+bCu
+bAO
+bFd
+bFd
+bFj
+bJp
+bHk
+bHR
+bIe
+bFd
+bJz
+bRp
+cav
+bSA
+bTJ
+bSA
+bSA
+bWL
+bSA
+bSA
+bZx
+bSR
+bUl
+bVf
+bXm
+bYE
+bCq
+bHE
+cig
+cij
+cjf
+cSX
+ckK
+clJ
+cmL
+cgR
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+gDl
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(113,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+eRz
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+gXs
+aaa
+abY
+gXs
+abG
+aaZ
+agS
+acm
+agK
+aaZ
+aaZ
+aex
+agt
+aaZ
+aaZ
+aaZ
+fsa
+akz
+itD
+alg
+vyK
+amI
+amS
+alv
+aqE
+anS
+aoy
+apj
+anz
+anz
+anz
+anz
+anz
+anz
+awk
+axB
+anz
+anz
+anz
+anz
+anz
+anz
+apj
+aHP
+pQN
+pQN
+aMb
+aNx
+aOE
+aPS
+aRm
+aSy
+aTX
+aVk
+aWS
+aYw
+aZT
+cBj
+bcf
+bdg
+bed
+nVz
+tyX
+pst
+hoL
+alu
+aEM
+aGd
+uOJ
+bqE
+omE
+eFH
+pgZ
+jnV
+knx
+bvW
+bAf
+bBp
+aHP
+bAN
+bQg
+bQg
+bFh
+bGN
+bHj
+bNN
+bNN
+bNN
+bNN
+bNN
+cau
+cBH
+bMG
+bLZ
+bLZ
+bLZ
+bLZ
+bLZ
+bQQ
+bSw
+cbr
+bVe
+bXk
+bYq
+bCq
+ceW
+cig
+cdk
+cMC
+cSY
+ckI
+clJ
+cmL
+cnv
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(114,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+gXs
+gXs
+gXs
+eRz
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+gXs
+aaa
+aaT
+gXs
+abG
+aaZ
+aeY
+acn
+agR
+agW
+ahA
+aeE
+agz
+ahW
+ain
+aiZ
+jyO
+ajC
+akC
+akX
+alw
+amJ
+aoY
+rCl
+aqE
+anz
+aoz
+apm
+aqd
+anA
+asa
+atd
+anA
+avk
+awk
+axE
+ayZ
+pHO
+aBu
+aAa
+aAa
+aAa
+aGu
+aHR
+aJt
+pQN
+aMe
+aNA
+aOE
+aPV
+aRp
+aSB
+aTZ
+aVn
+aWV
+aYz
+aZR
+bbm
+bbm
+bdh
+bef
+nVz
+gTx
+tyX
+xEB
+aDt
+aEO
+aGc
+vOU
+gDO
+dml
+xYf
+oNz
+tnL
+bxK
+bwh
+bAh
+bBs
+bzG
+bAP
+bCp
+bDp
+bFq
+bGO
+bHl
+bHS
+bLI
+bOR
+bQg
+bQg
+bQg
+bQg
+bQg
+bQg
+bQg
+bQg
+bQg
+bYI
+bDG
+bHP
+cbt
+bVh
+bXo
+bYM
+cfb
+cfb
+cfb
+cfb
+cfb
+cfb
+cfb
+cig
+cmN
+cgR
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(115,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+eRz
+eRz
+eRz
+eRz
+eRz
+eRz
+eRz
+eRz
+eRz
+eRz
+aaT
+eRz
+aaf
+aaf
+aaT
+gXs
+abG
+aaZ
+aeZ
+aco
+agS
+aho
+ahX
+afb
+agH
+agH
+aip
+aja
+xTe
+akz
+alg
+aaQ
+aaQ
+amN
+aoZ
+aaQ
+anw
+anz
+cXU
+apl
+aqc
+aqc
+aqc
+aqc
+aqc
+aqc
+awm
+axD
+ahn
+ahn
+ahn
+ahn
+ahn
+ahn
+ahn
+ahn
+aJs
+pQN
+aMd
+aNz
+aOE
+aPS
+aRo
+aSA
+aTX
+aVm
+aWU
+aYy
+aZR
+aZR
+aZR
+aZR
+aZR
+otC
+wZI
+gDO
+aBW
+bjy
+aEP
+nYe
+ljV
+bqG
+uwQ
+eih
+pQN
+owa
+nbT
+aNs
+pQN
+bBr
+bCv
+bCv
+bCv
+bCv
+bCv
+bJq
+bKy
+bLH
+bRq
+bNO
+bQg
+bRq
+bTK
+jVX
+jVX
+uHl
+bUE
+bWM
+bXJ
+bLK
+bYH
+bYH
+bYH
+bVg
+bXn
+bYG
+cfb
+cfF
+cfb
+cik
+cjg
+cjU
+cfb
+clM
+cfz
+cgR
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(116,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+gXs
+gXs
+gXs
+gXs
+aaa
+gXs
+aaa
+aaf
+aaa
+aaf
+ktS
+abY
+gXs
+abG
+aaZ
+afc
+aco
+agU
+ahp
+ahY
+afd
+afd
+ahB
+aiq
+ajb
+mml
+ajF
+akN
+akY
+alE
+amU
+apH
+aqt
+aqC
+anz
+gfC
+aod
+aqf
+ahT
+ahT
+ahT
+ahT
+ahT
+awn
+axF
+anF
+anF
+anF
+anF
+anF
+anF
+anF
+aoa
+aJu
+aKF
+aMf
+aNB
+aOE
+aPS
+aRr
+aSD
+ceh
+aVp
+aWX
+aYB
+aZU
+aZR
+aZR
+bbm
+beh
+bfx
+dYl
+kzn
+hQX
+iss
+iss
+lcx
+wql
+wql
+wql
+cmP
+fPM
+fTC
+nbT
+pQN
+pQN
+bBu
+bCv
+bAT
+bDL
+bDq
+bCv
+bJs
+bKy
+bLK
+bLK
+bOT
+bQi
+bRs
+bSC
+oXn
+gxw
+bUG
+bVO
+bWO
+bXK
+bLK
+bZz
+caw
+bYH
+bVo
+bXq
+bZe
+cfb
+cfH
+cSL
+cim
+cim
+ceo
+cfb
+cfa
+cje
+cgR
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(117,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+aaf
+aaa
+aaf
+ktS
+abp
+abo
+abp
+abp
+abp
+abI
+acM
+adh
+adM
+afe
+agI
+ahQ
+ait
+aje
+eFx
+alj
+afM
+akZ
+alM
+amV
+apc
+aqr
+aqC
+anT
+aoA
+apn
+aqe
+ctq
+ctq
+ctq
+ctq
+ctq
+ctq
+ctq
+ctq
+ctq
+dgz
+dgz
+dgz
+dgz
+dgz
+dgz
+aJn
+aJn
+pQN
+pQN
+aOE
+aPS
+aRq
+aSC
+aUa
+aVo
+aWW
+aYA
+aYz
+bbn
+bcg
+aZU
+beg
+aYB
+ktS
+ktS
+ktS
+ktS
+gXs
+ktS
+ktS
+gXs
+fxV
+fxV
+oGv
+fxV
+fxV
+pQN
+pQN
+bBt
+bCv
+bDH
+bFf
+bGB
+bCv
+bJs
+bKy
+bLJ
+bWR
+bNP
+bOS
+bQh
+bRr
+bTL
+rVN
+bUF
+bVN
+bWN
+jDr
+bLK
+bRi
+bZy
+cbu
+bVm
+bXp
+bYO
+cfc
+cgO
+ccj
+cBM
+cdU
+cSZ
+ckL
+cmF
+cje
+cgR
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(118,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+aaf
+aaa
+aaf
+ktS
+abp
+aaY
+abJ
+abR
+abp
+acq
+ahX
+adi
+adP
+ahK
+ahK
+ahR
+aiv
+adg
+xSW
+ajI
+alC
+ala
+alN
+amW
+apv
+aqt
+aqF
+anz
+aoB
+aod
+aqe
+ctq
+aqa
+atf
+ctq
+aqa
+atf
+ctq
+aqa
+atf
+dgz
+tqg
+ujF
+ujF
+ujF
+dgz
+aaa
+aJn
+pQN
+pQN
+aOE
+aPX
+aRs
+aSE
+aUc
+aVm
+aWY
+aYC
+aYA
+bbp
+bbp
+bfx
+bbp
+uZM
+bmx
+bmx
+bmx
+ktS
+gXs
+ktS
+ktS
+gXs
+ktS
+ktS
+gXs
+ktS
+fxV
+pQN
+pQN
+aXf
+bCv
+bDK
+bFi
+bGE
+bCv
+bJs
+bKy
+bLM
+fKC
+bNQ
+bOV
+bQk
+bRt
+bSD
+bTM
+bUH
+bRt
+bVQ
+jDr
+bYL
+cew
+bTh
+cdt
+bVq
+bXI
+bZg
+bZD
+cbq
+ccl
+cdm
+cio
+cjY
+ceq
+clQ
+cje
+cgR
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(119,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+gXs
+gXs
+gXs
+aaf
+aaf
+aaf
+aaf
+gXs
+abo
+abk
+abk
+abk
+abp
+agq
+agV
+aaZ
+aaZ
+agX
+aih
+aaZ
+aaZ
+aaZ
+xGQ
+ajN
+amc
+alo
+alY
+ans
+ary
+aaQ
+anA
+anz
+gfC
+aod
+aqe
+ctq
+apY
+ate
+ctq
+apY
+ath
+ctq
+apY
+ath
+dgz
+fvY
+dvc
+dzi
+vsM
+dgz
+aaa
+aJn
+aLY
+aLY
+aOG
+aTQ
+aTQ
+aTQ
+aUb
+aVq
+aWM
+aYr
+bmx
+bbo
+bch
+bdi
+bbw
+bfy
+bbw
+bik
+bmx
+bmx
+bmx
+bmx
+bmx
+bsh
+bsh
+bsh
+bsh
+bsh
+bsh
+pQN
+pQN
+gnf
+bCv
+bDJ
+bCt
+bGD
+bCv
+bJs
+bKy
+bLL
+bOd
+bNQ
+bOU
+bQj
+bOd
+bMK
+bRx
+bTP
+bVP
+cbA
+bWP
+bLK
+bRj
+bTg
+bUm
+bVp
+bXH
+bUm
+bZC
+cbp
+cck
+cin
+cjj
+cjX
+ckO
+ckH
+cja
+cny
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(120,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaa
+abp
+afU
+wlI
+afU
+abV
+ags
+ags
+adj
+afQ
+afr
+akc
+aik
+akh
+abp
+esL
+aiG
+amf
+anr
+aqN
+arC
+asq
+aaQ
+anA
+anz
+aoD
+aod
+aqe
+ctq
+aqn
+ath
+ctq
+auw
+ath
+ctq
+ayV
+ath
+dgz
+aCd
+qIw
+gfD
+woR
+dgz
+fxV
+yeA
+aMh
+pQN
+aOE
+aJn
+aaa
+aTQ
+aUe
+aVs
+aXa
+aYD
+aZX
+baf
+bdk
+mRQ
+bek
+bfB
+vde
+bdk
+bjF
+blc
+bmz
+bnY
+bpk
+bqJ
+bsj
+btI
+btd
+bwr
+bsh
+aMm
+pQN
+bBv
+cBy
+bDM
+bCw
+bDr
+bCy
+bGP
+bHn
+cbz
+bLN
+bNS
+bOX
+bQm
+bRv
+bSC
+bTN
+bTP
+diH
+bWQ
+bWQ
+bWQ
+bRm
+bTj
+caA
+cer
+ccs
+bZu
+cfb
+cfb
+cgS
+ciq
+cfb
+cfb
+cfb
+clR
+cgR
+cgR
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(121,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+gXs
+abo
+afU
+afU
+afU
+afU
+afU
+afU
+adk
+abo
+afD
+afU
+aju
+aki
+akk
+akq
+lwN
+amq
+aaQ
+amb
+ant
+aaQ
+aaQ
+anA
+anz
+aoC
+aod
+aqe
+ctq
+asd
+atg
+ctq
+asd
+awo
+ctq
+asd
+aAb
+dgz
+iVU
+aDK
+vHj
+eVC
+dgz
+aJv
+khV
+aMg
+bHt
+aOE
+aJn
+aaa
+aTQ
+aUd
+aVr
+aWZ
+aYq
+aZW
+aZG
+bej
+bdj
+bej
+bfA
+jfZ
+bil
+bej
+blb
+bmy
+bnX
+bpj
+bqI
+bsi
+btH
+btc
+bwq
+bsh
+pQN
+pQN
+aXf
+bCv
+bAU
+cAL
+bFg
+bFs
+bJt
+bKy
+bLK
+bLK
+bNR
+bOW
+bQl
+bRu
+bSC
+bTN
+bUI
+bVR
+bWQ
+bOO
+bQe
+bRk
+bTi
+caA
+bVr
+bXN
+bZt
+bZE
+cbs
+cCT
+cdn
+cej
+cbs
+ces
+clN
+ccm
+ckF
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(122,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+abp
+abl
+abN
+abN
+abN
+abN
+acO
+adl
+aet
+agy
+aha
+aah
+afo
+abp
+agD
+agF
+gyr
+alq
+amd
+anu
+asb
+aaQ
+aqH
+anz
+aoF
+apo
+aqh
+arh
+asg
+atj
+aul
+auR
+atj
+mps
+tKk
+atj
+aAX
+azc
+atj
+aFe
+aul
+aHT
+aJy
+aJy
+aMj
+pQN
+aOE
+aJn
+aaa
+aTQ
+aTQ
+aTQ
+aXc
+aTQ
+bmx
+baq
+baQ
+wcB
+bcQ
+bfC
+eOu
+bim
+bjG
+bmx
+bmB
+bnZ
+bpl
+bsh
+bsl
+btK
+buW
+bwt
+bsh
+aLY
+aLY
+bBx
+bCv
+apG
+bFk
+bDs
+bCv
+bJs
+bHo
+bLK
+bLK
+bLK
+bOY
+bQn
+bSC
+bMK
+mOG
+bUJ
+bVS
+bWQ
+bXP
+cBI
+bRS
+bTH
+caA
+bWh
+cdt
+bZA
+cfh
+cfM
+cco
+cdp
+cel
+cyM
+ckT
+cgU
+cco
+cgU
+cgU
+cis
+cjN
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(123,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+gXs
+gXs
+gXs
+gXs
+aaf
+aaf
+aaf
+aaf
+abo
+afU
+abP
+abS
+abS
+abS
+acP
+adm
+afR
+agx
+abS
+ahI
+aiw
+abp
+vIo
+ake
+ame
+aaQ
+amg
+anv
+apQ
+aaQ
+anA
+anz
+aoE
+aod
+aqg
+aun
+asf
+ati
+auk
+aux
+avt
+axL
+bbl
+azT
+nZE
+ker
+aDG
+aFd
+auk
+aHH
+aJg
+aKo
+aLO
+pQN
+aOE
+aJn
+aaa
+aaa
+aTQ
+aVt
+aXb
+aYo
+bmx
+bao
+baP
+asD
+bcP
+cBo
+bbw
+bbw
+bbw
+bmx
+bmA
+bmx
+bmx
+bsh
+bsk
+btJ
+buV
+bws
+bsh
+asY
+pQN
+byW
+bCv
+bAV
+bCv
+bCv
+bCv
+bJs
+bKz
+bLK
+bML
+bNT
+smP
+giT
+bRw
+bSF
+daI
+bTP
+bRA
+bWQ
+bXO
+bQq
+bRo
+bTG
+caA
+bVK
+bYb
+bZw
+cap
+ctR
+ccn
+cdo
+cek
+cig
+cet
+cfd
+cfB
+cfI
+cgQ
+cjS
+cjN
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(124,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+abp
+abn
+abH
+abn
+abn
+abn
+abp
+abp
+abp
+agA
+afU
+ahF
+aiz
+abp
+akf
+akJ
+yhx
+aaQ
+aaQ
+aaQ
+aaQ
+aaQ
+anC
+anU
+anC
+cSA
+aqe
+ctq
+ctq
+ctq
+ctq
+ctq
+ltK
+xAv
+oHB
+oHB
+ruo
+aAh
+aAh
+aAh
+aAh
+aAh
+aAh
+aAh
+aLR
+pQN
+aOE
+aJn
+aaa
+aaa
+aTQ
+aVd
+aXe
+aYp
+bmx
+bbv
+bcm
+bcm
+bem
+bfD
+wxf
+bfD
+bjI
+bmx
+bmC
+boa
+bpm
+bsh
+bsn
+btL
+buY
+buY
+bsh
+ftE
+pQN
+aXf
+bCv
+bDP
+bCv
+pbC
+bHV
+bJw
+bKC
+bLK
+bMN
+bNV
+bOV
+giT
+bRw
+bSF
+daI
+bUK
+bVT
+bWQ
+bWQ
+bWQ
+bWQ
+caD
+bWQ
+bLK
+bLK
+cey
+bLK
+cig
+cig
+cig
+cig
+cig
+cig
+cig
+cig
+cig
+cig
+cDl
+cjN
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+cgI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(125,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaf
+aaf
+aaf
+abq
+abq
+abq
+abT
+abW
+abq
+abq
+aff
+aeU
+ajA
+akd
+adB
+agl
+uHp
+agQ
+agN
+akw
+alb
+alG
+amr
+amY
+amY
+ajp
+ajp
+aoG
+cSA
+aqe
+ctq
+aqo
+eQb
+rgL
+ctq
+avv
+awu
+oHB
+aAd
+tkq
+aAh
+aDL
+aAh
+aGk
+aAh
+aJz
+aAh
+aLQ
+pQN
+aOE
+aJn
+aaa
+aaa
+fxV
+aVu
+aXd
+aYE
+bmx
+bbu
+bbw
+bbw
+bbw
+bbw
+bbw
+bbw
+bjH
+bmx
+bmx
+bmx
+bmx
+bsh
+bsm
+btL
+buX
+buX
+bsh
+pQN
+pQN
+bBy
+bzs
+bDO
+bFl
+bWe
+bHU
+bJv
+mFo
+bBb
+bVW
+bOd
+iql
+bQj
+bVP
+cbA
+fSO
+kJE
+ugp
+ueZ
+bXQ
+cbA
+bZF
+ezF
+hgG
+ccv
+cdw
+cex
+dEX
+cbA
+bQt
+bLQ
+dbb
+bOh
+bOh
+bOh
+bOh
+bOh
+cig
+cDm
+cjP
+ckF
+cDJ
+ckF
+cpE
+cjR
+crW
+ciZ
+wmu
+aag
+aaa
+aaa
+aaa
+aaa
+aaa
+ctv
+ctv
+ctv
+aaT
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(126,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+abq
+adN
+aeu
+aez
+aci
+acs
+acR
+afh
+afV
+agB
+ahd
+ahI
+akO
+abp
+ajj
+ajP
+aky
+alc
+alI
+ams
+amZ
+amZ
+cqQ
+anW
+aoH
+cSA
+aqe
+ctq
+asm
+eQb
+blU
+avg
+awp
+axN
+oHB
+oHB
+haM
+aAh
+aDQ
+aAh
+aGl
+aAh
+aBy
+aAh
+rqf
+pQN
+aOE
+aJn
+aaa
+aaa
+aJn
+aVv
+aXg
+aYF
+bmx
+nZL
+bcn
+tgH
+ben
+bfE
+bgX
+bbw
+bjJ
+bld
+bmD
+cTD
+bmD
+bqK
+bso
+btN
+buZ
+buZ
+bsh
+byN
+pQN
+bBA
+bCz
+bDQ
+bFn
+bGJ
+sKL
+bJy
+iUp
+bLK
+bMP
+bIG
+bJB
+bKV
+bRB
+bSI
+vQf
+bUM
+bVV
+bVV
+bVV
+iVJ
+bZG
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+cgW
+cit
+cph
+ckb
+ckV
+clU
+clU
+bOh
+cig
+coZ
+cgU
+cgU
+cDK
+crw
+cjO
+cig
+crX
+ciZ
+jiK
+aag
+aaa
+aaa
+aaa
+aaa
+aaa
+aaT
+aaT
+aaT
+aaT
+aaa
+aaa
+aaa
+aae
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(127,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaf
+aaf
+aaf
+aaL
+adO
+acr
+acQ
+adn
+agw
+abq
+afg
+afU
+afU
+ahc
+ahH
+akR
+abp
+aji
+ajO
+akw
+ajp
+alH
+amr
+amY
+amY
+ajp
+anV
+ajo
+cSA
+aqe
+ctq
+ari
+asu
+mPk
+aun
+avR
+xAv
+ofU
+oHB
+sFW
+aAh
+gyQ
+aGx
+gyQ
+gyQ
+gyQ
+aAh
+aMm
+pQN
+aOE
+aJn
+aJn
+aJn
+aJn
+aJs
+aXf
+aYk
+bmx
+bmx
+bmx
+bmx
+bmx
+bmx
+bmx
+bmx
+bmx
+bmx
+bmx
+bmx
+bmx
+bsh
+bsh
+btM
+bsh
+bsh
+bsh
+pQN
+bHt
+bBz
+bzs
+tBV
+bFm
+bGI
+tBV
+cBD
+bKD
+bLO
+bMO
+bIF
+bOZ
+bQp
+alk
+gAu
+eqq
+bOd
+bOd
+bOd
+bOd
+bYQ
+bOd
+bOd
+bOd
+bOd
+bOd
+dMj
+cfi
+bOd
+cgV
+bMQ
+aaf
+bQA
+ckU
+clT
+cmU
+bOh
+cig
+cpa
+cjc
+cqo
+cDN
+cjk
+cjm
+cig
+cig
+cig
+cig
+aag
+aag
+aag
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+eRz
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(128,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aae
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaM
+abr
+abQ
+abU
+acj
+acv
+dJL
+afj
+afX
+agC
+ahf
+aks
+akS
+abp
+ajl
+ajR
+akw
+ald
+alJ
+amt
+ajp
+ajp
+ajp
+anY
+ajo
+apq
+aqe
+ctq
+ctq
+ctq
+ctq
+ctq
+ltK
+axP
+azb
+aAi
+uIO
+aCn
+xBk
+hlS
+aGm
+aHV
+gyQ
+hIM
+pQN
+pQN
+pQN
+aJr
+aJr
+aJr
+aJr
+aJr
+aXh
+aYG
+aZY
+aYG
+aYG
+bdn
+bep
+aYG
+aYG
+aYG
+aYG
+ble
+bmE
+bmE
+bpn
+bqL
+bsp
+btO
+bva
+bwu
+bwu
+bwu
+kPj
+bBB
+eBX
+tBV
+bFp
+uFV
+fvk
+bJA
+bKG
+bLK
+bMR
+bIH
+bJF
+bVX
+bRA
+bTP
+rTo
+bOd
+bOd
+bOd
+bOd
+bYQ
+bOd
+bOd
+bOd
+bOd
+bOd
+jtj
+jIj
+bTO
+cgY
+ciu
+bVu
+ckb
+ckW
+clU
+clU
+bOh
+cig
+cig
+cpI
+ccw
+cDN
+cjl
+cjQ
+cjV
+cig
+aaf
+aaf
+aaf
+aaf
+aag
+aaa
+aaa
+aae
+aaa
+aaa
+aaa
+eRz
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(129,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aag
+aaf
+aaf
+aaf
+aaf
+aaf
+aaf
+aaO
+adQ
+act
+acu
+acu
+acF
+abq
+afi
+afW
+afW
+ahe
+ahJ
+ais
+abp
+ajk
+ajQ
+akw
+ajp
+alH
+amr
+amY
+amY
+ajp
+anX
+ajo
+app
+aqi
+ctq
+ask
+eQb
+rgL
+ctq
+awq
+axO
+aza
+kmw
+xrN
+aAh
+aAh
+exX
+aAh
+aAh
+voT
+aAh
+aMo
+aNC
+pQN
+pQN
+pQN
+pQN
+pQN
+pQN
+pQN
+pQN
+aLY
+pQN
+bco
+pQN
+beo
+pQN
+pQN
+pQN
+pQN
+pQN
+pQN
+pQN
+pQN
+aLY
+pQN
+bAk
+pQN
+pQN
+pQN
+pQN
+bAj
+pQN
+aKG
+tBV
+bFo
+bDA
+bFt
+bGQ
+bHp
+bLK
+bMQ
+bNY
+bPa
+bMQ
+bRC
+rdl
+daq
+bUN
+bOd
+bOd
+bOd
+bYQ
+bOd
+bOd
+bOd
+bOd
+bOd
+rmQ
+lzt
+apa
+cgX
+apF
+aaf
+bOh
+bOh
+bOh
+bOh
+bOh
+cig
+cpb
+ciZ
+cqp
+cDN
+cjT
+cgR
+crP
+cig
+aaa
+aaa
+aaa
+aaf
+aag
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+quT
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(130,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+abq
+aes
+aey
+aeD
+afs
+acL
+acS
+afk
+afZ
+agE
+ahh
+ahM
+aiC
+abp
+aiY
+ajE
+ajH
+akn
+ale
+alD
+ana
+ana
+fMp
+amu
+ajo
+aps
+aqk
+ctq
+aqo
+eQb
+aHw
+avn
+awv
+axX
+aze
+oHB
+flE
+aAh
+muv
+gyQ
+fOK
+aAh
+dTI
+ujv
+pQN
+pQN
+pQN
+pQN
+aRt
+pQN
+pQN
+pQN
+pQN
+pQN
+aLY
+pQN
+bcp
+pQN
+beq
+pQN
+bgY
+pQN
+pQN
+pQN
+bAi
+oNz
+oNz
+bpC
+bqN
+aNr
+pQN
+pQN
+bxL
+byX
+aXh
+bmE
+bCA
+tBV
+bCC
+voZ
+bFx
+bGW
+bKI
+bLQ
+bMT
+bOb
+bPd
+cBF
+bRD
+rdl
+daq
+bUN
+bOd
+bOd
+bOd
+bYQ
+bOd
+bOd
+bOd
+cBJ
+bOd
+eus
+bRy
+bTP
+cha
+civ
+cph
+ckb
+ckY
+clW
+clW
+bOh
+cig
+cig
+czg
+cig
+cDN
+crh
+crA
+crR
+crY
+csi
+aaa
+aaa
+aaf
+aag
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+eRz
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(131,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+abq
+abq
+abq
+abq
+abq
+abq
+abq
+afg
+afY
+afY
+ahg
+ahL
+aiu
+abp
+ajm
+ajS
+ajp
+ajT
+akA
+amr
+amY
+amY
+ajp
+anV
+ajo
+apr
+aqj
+ctq
+ark
+asu
+xPk
+aun
+awt
+oHB
+oHB
+azX
+aAZ
+aCe
+oTH
+lPG
+ncg
+aCe
+lfu
+aAh
+aJC
+aJC
+qMv
+aQg
+bYP
+aJC
+aQg
+aJC
+qMv
+aQg
+aJC
+aJC
+aHP
+aHP
+aHP
+aeX
+aeX
+aeX
+aeX
+aeX
+aeX
+aeX
+aeX
+aeX
+asT
+asV
+bJE
+bwv
+nEu
+nEu
+nEu
+nEu
+nEu
+nEu
+bCB
+iVH
+nEu
+bvd
+bKH
+bLK
+bMS
+bTO
+bPc
+bQs
+cez
+ceA
+bTT
+bUN
+bOd
+bOd
+bOd
+lhQ
+bOd
+bOd
+bOd
+bOd
+bOd
+bTO
+cez
+bUL
+cgZ
+rdl
+aaf
+bQA
+ckX
+clV
+cmV
+bOh
+cig
+aaa
+afp
+aaa
+cDN
+cqY
+cqY
+cqY
+cig
+aaa
+csl
+aaa
+aaf
+aag
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+quT
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(132,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaf
+abo
+aeB
+afm
+agb
+agG
+ahi
+ahN
+aix
+abp
+ajp
+ajU
+ajp
+trb
+ajp
+amr
+ajp
+ajp
+ajp
+ajp
+ajo
+apt
+aqm
+ctq
+ctq
+ctq
+ctq
+ctq
+awz
+oHB
+oHB
+avG
+aBA
+aAh
+aAh
+aAh
+aAh
+aAh
+aJC
+aJC
+fWi
+adq
+aQb
+aPZ
+aRu
+kAH
+fWi
+tCa
+aXi
+hgO
+baa
+aJC
+bcq
+bcq
+bcq
+aeX
+bha
+bio
+bgF
+blf
+bmF
+bob
+bnB
+aeX
+asU
+asX
+bJE
+bwx
+nEu
+bwB
+bxa
+byZ
+bzI
+bAX
+bCF
+bDB
+bFB
+bvd
+bKJ
+bLR
+bMV
+bTP
+eiZ
+bQv
+bRF
+bSM
+bVZ
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bTP
+bTO
+bOe
+chb
+iIS
+bVu
+ckb
+ckZ
+clW
+clW
+bOh
+cig
+aaa
+aaa
+aaa
+cDN
+aaa
+aaa
+aaa
+aaf
+aaf
+cso
+aaf
+aaf
+aag
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(133,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aag
+aag
+aag
+aag
+aaf
+aaf
+aaf
+aaf
+abo
+aeA
+afl
+aga
+abp
+ahj
+abp
+xJW
+abp
+ajo
+ajo
+ajo
+ajo
+ajo
+ajo
+ajo
+ajo
+ajo
+aoa
+ajo
+apt
+aql
+wyE
+wyE
+wyE
+wyE
+avw
+awy
+lgX
+lgX
+qvf
+wqF
+aAh
+wxk
+qCw
+fCJ
+fiv
+aJC
+fWi
+fWi
+fWi
+fxe
+aPY
+kAO
+aRx
+fWi
+iTU
+pqe
+aPY
+aZZ
+aQg
+bbz
+bbz
+bbz
+aeX
+bgZ
+bin
+bin
+bjK
+bkK
+bkK
+bkK
+bpD
+bqO
+bLX
+btf
+bui
+bvi
+bww
+bwZ
+byY
+bCD
+ivJ
+bCE
+bFv
+bFz
+bvd
+bKH
+bLK
+bMU
+bOc
+udT
+omk
+nTU
+pUP
+jBQ
+agd
+cCB
+cCC
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+ccz
+uQR
+cfP
+cfQ
+ceA
+aaf
+bOh
+bOh
+bOh
+bOh
+bOh
+cig
+aaa
+aaa
+aaa
+cDN
+aaf
+aaa
+aaa
+aaf
+aaa
+csn
+aaa
+aaf
+aag
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+quT
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(134,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+acw
+abp
+abp
+abp
+abp
+abp
+lJC
+aiX
+abp
+ahl
+uHp
+aic
+ahT
+ahT
+ahT
+ahT
+ahT
+ahT
+ahT
+alL
+ahT
+anb
+ahT
+ydM
+anZ
+apu
+ctq
+ctq
+ctq
+ctq
+ctq
+awA
+axT
+axW
+aAl
+cHf
+tZp
+wxk
+xwB
+lWD
+dvb
+aJC
+nNF
+fWi
+fWi
+wxT
+moD
+aQd
+aQa
+fWi
+elh
+wxT
+uBa
+bac
+aJC
+bbz
+bbz
+bbz
+aeX
+bhc
+bip
+alX
+bjL
+bkL
+bmT
+bnD
+bpM
+bqT
+bFD
+bJG
+bJG
+bvl
+bwE
+bxc
+bzb
+nEu
+nEu
+cpG
+bDC
+bId
+bvd
+bKH
+bLK
+bMX
+omk
+bPg
+hQY
+bRE
+pCj
+bPe
+wvg
+bOd
+cCD
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bOd
+bTU
+fPi
+fHi
+chd
+bQy
+cpP
+ckc
+clb
+clY
+clZ
+bOh
+aaa
+aaa
+aaa
+aaa
+cCQ
+aaf
+aaa
+aaa
+aaf
+aaa
+csn
+aaa
+aaf
+aag
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+eRz
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(135,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aag
+acU
+anF
+adr
+sXy
+aeC
+anF
+agc
+abp
+ahk
+aoJ
+aib
+aif
+aif
+aif
+aif
+aif
+fpz
+bkV
+jKP
+alK
+aif
+anc
+anc
+anD
+aoI
+ctq
+aqo
+asN
+aur
+avy
+nSt
+axS
+azk
+aAk
+tvi
+tZp
+wxk
+jqD
+lWD
+yfX
+wII
+aMu
+kEJ
+fWi
+fWi
+fWi
+fWi
+fWi
+fWi
+fWi
+fWi
+fWi
+bab
+aJC
+bbz
+bbz
+ber
+aeX
+bhb
+bip
+bjO
+bip
+bmG
+bip
+bnC
+bpF
+bqS
+brY
+bwz
+asG
+nEu
+bza
+bxb
+bdN
+iRV
+bAY
+bCH
+gfQ
+bIc
+bzK
+bKH
+bLK
+bMW
+oVN
+bPf
+bQx
+bRH
+vPQ
+moS
+kGv
+bUS
+cCE
+bXU
+bUS
+vob
+bUS
+bXU
+bUS
+bUS
+gMD
+eyS
+bUR
+chc
+bMQ
+aaf
+bQA
+cla
+cBP
+cmW
+bOh
+aaa
+aaa
+czN
+aaa
+cCQ
+aaf
+aaa
+aaa
+aaf
+aaa
+csn
+aaa
+aaf
+aag
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+fIs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(136,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aag
+abp
+abp
+abp
+abp
+abp
+mxn
+abp
+abp
+ahn
+ahn
+ahn
+uhm
+ahn
+aiA
+ahn
+odV
+anE
+aod
+ahn
+apx
+ahn
+ahn
+ahn
+ahn
+ahn
+ctq
+oAB
+eQb
+aut
+ctq
+aXF
+oHB
+oHB
+aAn
+rqk
+tZp
+mcE
+dsi
+fgl
+rZE
+aJC
+kgB
+oDD
+aQc
+sLj
+sLj
+vcN
+fWi
+fWi
+aQc
+sLj
+aQc
+fWi
+bbx
+bbz
+bbz
+bbz
+jaG
+bhd
+bis
+bjR
+bis
+bmI
+bod
+bpt
+aeX
+bqV
+bEe
+bxQ
+bBL
+nEu
+asM
+bAl
+bzH
+bzS
+bBc
+bCJ
+gZG
+cCp
+bvd
+bKH
+bLK
+bMZ
+cdx
+bPi
+bQz
+bRJ
+hxn
+bTV
+bUT
+bWc
+bWU
+bXV
+bYT
+bZK
+bUR
+cbG
+ccA
+cdC
+ceB
+dAe
+cez
+chf
+cix
+cpP
+ckd
+clc
+clZ
+clZ
+bOh
+aaa
+aaa
+aaa
+aaa
+cCQ
+aaf
+aaa
+aaa
+aaf
+aaf
+cso
+aaf
+aaf
+aag
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+eRz
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(137,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aag
+aag
+aag
+aag
+aaf
+aaf
+aaf
+aaf
+abp
+wdv
+afp
+wdv
+abp
+aaa
+aaa
+ahn
+nQi
+ahn
+uei
+ahn
+grc
+anE
+aod
+aoK
+oyX
+aqp
+ahn
+tzQ
+pgf
+gzf
+eQb
+eQb
+eQb
+lUS
+aun
+avz
+oHB
+oHB
+aAn
+jGW
+tZp
+tZp
+dGa
+tZp
+tZp
+aJC
+aKq
+oDD
+aNF
+hOv
+oax
+oxm
+aSH
+fWi
+rmN
+eJa
+hSZ
+fWi
+aQg
+bbz
+bbz
+bes
+aeX
+bfF
+bir
+bjQ
+blh
+aeX
+aeX
+aeX
+aeX
+bqU
+bsq
+bJE
+bJE
+nEu
+nEu
+nEu
+nEu
+nEu
+nEu
+bFu
+jex
+ofj
+bvd
+bKH
+bLK
+bLK
+bOf
+bPh
+bQy
+bRI
+bSP
+bPh
+jzM
+bRI
+cCF
+bPh
+bQy
+bRI
+bQy
+bPh
+bQy
+bRI
+bSP
+bVO
+bLK
+che
+bLK
+aaf
+bOh
+bOh
+bOh
+bOh
+bOh
+aaa
+aaa
+aaa
+aaa
+cCQ
+aaf
+aaa
+aaa
+aaf
+aaa
+csn
+aaa
+aaf
+aag
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+eRz
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(138,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+abp
+aaa
+aaa
+aaa
+abp
+aaa
+aaa
+ahn
+ahn
+ahn
+anF
+ahn
+eMs
+anG
+aoe
+aoL
+apy
+aqq
+ahn
+qLR
+oIW
+arf
+kmS
+ast
+eQb
+auv
+ctq
+avA
+axW
+azo
+aAp
+uxY
+aBC
+aCt
+aEA
+lsS
+kuw
+aJC
+eTA
+oDD
+aQc
+aOJ
+oIJ
+unA
+fWi
+akH
+aUg
+bFC
+hSZ
+fWi
+bbx
+bbz
+bbz
+bet
+bfH
+aiP
+wbE
+ihR
+wbE
+bmJ
+bof
+bpu
+bqP
+bsy
+bEe
+rUe
+ajv
+bxN
+bze
+asL
+rUe
+bCG
+bBd
+bFw
+bDD
+bFJ
+oQY
+bKH
+bzs
+bRK
+qJV
+nJQ
+qJV
+vOV
+qJV
+nYT
+eUW
+bVv
+cCG
+cCH
+cCI
+cCJ
+cCI
+cCH
+cCI
+cCJ
+cCI
+cCP
+bLK
+chg
+bLK
+aaf
+aoV
+aoV
+aaf
+aaf
+aaf
+aoV
+aoV
+aoV
+aoV
+cCQ
+aoV
+aaa
+aaa
+aaf
+aaa
+csn
+aaa
+aaf
+aag
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+quT
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(139,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+ahn
+chO
+ahn
+ahn
+khB
+ahn
+ahn
+ahn
+ahn
+ahn
+ctq
+ctq
+ctq
+asd
+ctq
+ctq
+ctq
+ctq
+hlV
+oHB
+azf
+aAo
+vyp
+aBB
+aBB
+aBB
+tZa
+aIa
+cNE
+aKM
+feG
+aMu
+feG
+tif
+aMu
+aMu
+aMu
+jgA
+oIJ
+aQc
+bad
+bby
+bbz
+bbz
+bet
+bfG
+bhe
+bit
+bjS
+tCd
+eRr
+boe
+bli
+bpN
+bqX
+dcX
+fNN
+twE
+twE
+twE
+twE
+bzc
+twE
+bpP
+bCK
+bFy
+bFF
+oQY
+bKH
+bzs
+fjU
+bOh
+bPj
+bQA
+bPj
+bOh
+bPj
+bQA
+bPj
+bOh
+bPj
+bQA
+bPj
+bOh
+bPj
+bQA
+bPj
+bOh
+cCQ
+cCS
+chg
+cCS
+aaf
+aoV
+aoV
+aaf
+aaf
+aoV
+aoV
+aoV
+aaa
+aaa
+cCQ
+aoV
+aaa
+aaa
+aaf
+aaa
+csn
+aaa
+aaf
+aag
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+eRz
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(140,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+gJi
+gJi
+dFX
+wWW
+unR
+lCo
+ohq
+wXl
+iou
+pkF
+xZL
+wig
+str
+rrM
+clO
+ahC
+ahP
+oZl
+awB
+att
+azh
+fHG
+kqy
+kxf
+ufD
+apC
+aGI
+aId
+aJD
+aKP
+aMx
+aMx
+aQe
+aOL
+aMx
+aMx
+aMx
+aMx
+rqE
+fWi
+aZb
+aJC
+bbz
+bbz
+bet
+bfG
+bhe
+ihR
+bjU
+blk
+blk
+boh
+biu
+bpO
+bqY
+bss
+bfJ
+bxQ
+bvm
+bDT
+bxQ
+rUe
+bzU
+bBe
+bCS
+bDE
+bFK
+oQY
+bKH
+bzs
+fjU
+bOh
+bPl
+bQB
+bRL
+bOh
+bTX
+bUV
+bWd
+bOh
+bXX
+bYV
+bZL
+bOh
+cbI
+ccC
+cdD
+bOh
+cCQ
+cCS
+chg
+cCS
+bLK
+bLK
+bLK
+gJi
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cCQ
+aaf
+aaf
+aaf
+aaf
+aaf
+cso
+aaf
+aaf
+aag
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+quT
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(141,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+bvG
+aaa
+jdj
+aaa
+oyN
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+uEx
+ulM
+unR
+unR
+unR
+unR
+unR
+unR
+unR
+jLT
+veS
+arm
+fHG
+aya
+fHG
+fHG
+auB
+atZ
+azg
+azp
+fHG
+aCu
+qOc
+apC
+aGH
+aIc
+aJC
+aKO
+aMw
+aNI
+fWi
+fWi
+acN
+acN
+acN
+acN
+acN
+fWi
+fWi
+aJC
+bcr
+bbz
+bet
+bfG
+bhe
+ihR
+bjV
+blj
+bmK
+bog
+bog
+bxQ
+bsx
+bsr
+rUe
+bwD
+bxQ
+bxQ
+bAq
+bJE
+bog
+bDW
+bKR
+bof
+bof
+oQY
+bKH
+bzs
+fjU
+bOh
+bPk
+sYm
+bPm
+bOh
+bTW
+bUU
+bTW
+bOh
+bXW
+bYU
+bXW
+bOh
+cbH
+ccB
+cbH
+bOh
+cCG
+tAH
+iKV
+vHo
+iKV
+iKV
+eCm
+fty
+dCt
+dCt
+dCt
+dCt
+dCt
+dCt
+imk
+aoV
+aaa
+aaa
+aaf
+aaa
+csn
+aaa
+aaf
+aag
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+quT
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(142,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+tqB
+vae
+aaa
+vae
+efO
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+uEx
+azm
+unR
+qWV
+con
+oVo
+con
+con
+unR
+ujS
+aqs
+coh
+fHG
+fHG
+fHG
+fHG
+pPi
+fHG
+ayb
+hWd
+fHG
+aCv
+mbU
+apC
+aGJ
+aIe
+aJC
+aJC
+aJC
+aJC
+aJC
+aJC
+aXj
+aVy
+aSY
+aVy
+xqG
+acN
+bah
+aJC
+bbz
+bdo
+beu
+bvk
+jiT
+jiT
+bjT
+blm
+bmL
+boi
+bpw
+ium
+bsx
+btX
+bJE
+bwG
+bxR
+bxR
+bJE
+bJE
+bzW
+bqQ
+bCR
+bGR
+bIj
+oQY
+bKH
+bzs
+fjU
+bOh
+bPm
+bQC
+bPm
+bOh
+bTW
+bUW
+bTW
+bOh
+bXY
+bYW
+bXW
+bOh
+cbH
+ccD
+cbH
+bOh
+aaf
+bLK
+chg
+bLK
+bLK
+bLK
+bLK
+aag
+aoV
+aoV
+aoV
+aoV
+aoV
+aae
+gXs
+aoV
+aaa
+aaa
+aaf
+aaa
+csn
+aaa
+aaf
+aag
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+jAD
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(143,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gJi
+gJi
+gXs
+gJi
+gJi
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+uEx
+stF
+unR
+con
+con
+con
+con
+con
+unR
+unR
+qeA
+ahm
+fHG
+fHG
+fHG
+fHG
+pPi
+fHG
+ayb
+hWd
+fHG
+sci
+sEi
+apC
+aGJ
+aIe
+aka
+aLU
+aKQ
+aNu
+aJC
+aaz
+egt
+aQc
+aSZ
+aQc
+qaY
+acN
+fWi
+aJC
+bbz
+bbz
+bet
+qnC
+ihR
+ihR
+bgQ
+bll
+bxQ
+bxQ
+bpv
+bxQ
+bsx
+btV
+rUe
+bwF
+bxQ
+bxQ
+bAr
+bJE
+bzV
+bqQ
+boo
+bxQ
+bIi
+oQY
+bKH
+bzs
+fjU
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+bOh
+xcl
+wWi
+kil
+cCS
+gXs
+tSo
+kcx
+kcx
+kcx
+ciC
+aoV
+aoV
+aoV
+aoV
+gXs
+aoV
+aaa
+aaa
+aaf
+aaa
+csn
+aaa
+aaf
+aag
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+ctZ
+ctZ
+ctZ
+ctZ
+ctZ
+aaf
+aaa
+aaf
+cvF
+aaf
+aaa
+aaa
+aaf
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+cAU
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(144,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+dFX
+lnk
+unR
+wQg
+con
+con
+con
+fyS
+unR
+unR
+veS
+ahs
+sJI
+ahO
+fHG
+eAJ
+rvr
+nLu
+hcA
+ryr
+fHG
+aCu
+puh
+apC
+aGA
+aHS
+aJx
+aJx
+aMi
+aNE
+aOO
+aQi
+aRz
+aSF
+aQc
+aQc
+aXl
+fWi
+bai
+aJC
+bbz
+bbz
+bet
+bfH
+qTV
+ihR
+uBr
+bln
+bmM
+boj
+bJE
+bxQ
+qkC
+btV
+bJE
+bwI
+bxT
+bxQ
+bAt
+bJE
+bCM
+bqQ
+eZa
+bxQ
+bIl
+oQY
+bKH
+bzs
+bUr
+qJV
+qJV
+qJV
+qJV
+qJV
+qJV
+qJV
+qJV
+qJV
+qJV
+qJV
+qJV
+caJ
+caJ
+caJ
+caJ
+caJ
+eUW
+cfj
+cfU
+maT
+maT
+ckf
+maT
+lKj
+nzR
+nFj
+mfI
+mfI
+mfI
+mfI
+mfI
+mfI
+mfI
+mfI
+mfI
+mfI
+csM
+mfI
+mfI
+ctd
+mfI
+mfI
+mfI
+mfI
+vOC
+ctZ
+ctZ
+cuo
+cuA
+cuM
+ctZ
+cvj
+cvj
+cvj
+cvj
+aaf
+aaf
+aaf
+aaf
+cvj
+cvj
+cvj
+cvj
+cvj
+cvj
+cvj
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(145,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+xLX
+aaa
+xLX
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+uEx
+unR
+unR
+con
+con
+con
+con
+con
+unR
+iBv
+lZK
+fZm
+jmV
+epD
+ghD
+hBA
+xbn
+fHG
+reA
+lsk
+xXi
+jAN
+jEc
+apC
+aGL
+aHM
+aJm
+aKz
+mjr
+akt
+aJC
+aab
+aRg
+aQc
+aac
+aQc
+aXk
+fWi
+fWi
+aJC
+bbz
+bbz
+bev
+bfK
+bhi
+bhi
+bhi
+bfK
+bfK
+bfK
+bJE
+bKL
+brf
+btV
+rUe
+bwH
+bxS
+bzh
+bAs
+bJE
+bCL
+bxO
+bxQ
+bxQ
+bIk
+oQY
+bKH
+bzs
+bzs
+bzs
+bPn
+bPn
+bPn
+bzs
+bzs
+bPn
+bPn
+bPn
+bzs
+bzs
+bPn
+bPn
+bPn
+bzs
+bzs
+bzs
+cfj
+chk
+cjp
+chh
+ciy
+cke
+cjr
+pzG
+uHc
+aoV
+aoV
+aoV
+aoV
+aoV
+aoV
+aoV
+aoV
+aaa
+aaf
+aaa
+csn
+aag
+aag
+aag
+aag
+aaa
+aaa
+aaa
+nFj
+ctY
+cuh
+cun
+cuz
+cuL
+cuY
+cvj
+cvs
+cvD
+cvj
+cvj
+cvj
+cvj
+cvj
+cvj
+cvX
+cvX
+cvX
+cvX
+cwq
+cwq
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(146,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aae
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+uEx
+unR
+kdO
+con
+con
+uSC
+con
+con
+akE
+wHk
+ewu
+pQp
+pQp
+oqj
+jBi
+fpl
+fpl
+jBi
+oDN
+sEM
+sEM
+pRs
+arj
+apC
+aGL
+aIe
+aJC
+aKS
+aMC
+aJC
+aJC
+aJI
+aJI
+aSI
+aJI
+aVA
+aJI
+aYK
+aJI
+aJI
+bcs
+bbz
+bbz
+bfK
+bhk
+bix
+bjX
+blp
+bmO
+bhi
+apI
+bwz
+brg
+btZ
+bJE
+bwI
+bxV
+bzj
+bAv
+bJE
+bCO
+bxQ
+bxQ
+bxQ
+bIn
+oQY
+bUZ
+bLT
+bLT
+bLT
+bLT
+bLT
+bLT
+bLT
+bLT
+bUY
+bWe
+bWe
+bWe
+bWe
+bWe
+cdE
+bAw
+bzs
+bAw
+caK
+uHc
+ciB
+ckh
+chj
+ciA
+dQD
+cjr
+clh
+uHc
+aoV
+aoV
+aoV
+aoV
+aoV
+aoV
+aoV
+aoV
+aaa
+aaf
+aaa
+csn
+csD
+cta
+csD
+cua
+aaa
+aaa
+aaa
+aaf
+ctZ
+cui
+cuq
+cuC
+cuO
+cuz
+cvm
+cvt
+cvt
+cvt
+cvL
+cvQ
+cvX
+cvX
+cvX
+cvX
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+cvx
+cva
+cva
+cva
+cva
+cva
+cva
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(147,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+uEx
+unR
+unR
+con
+con
+con
+con
+con
+unR
+wHk
+aqu
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aCw
+aaa
+apC
+aGL
+aIg
+aJH
+aQc
+aMB
+aJC
+aOP
+aJI
+aRA
+aVz
+aVz
+aVz
+aVz
+aYJ
+aJI
+mNW
+bbz
+bbz
+bbz
+bfK
+bhj
+biw
+bhs
+bjM
+bmN
+bok
+bpx
+bpP
+brf
+bxQ
+rUe
+bwJ
+bxU
+bzi
+bAu
+bJE
+bCN
+bEa
+pHl
+bFA
+bIm
+bJD
+bKK
+bLS
+bNc
+bOj
+bNc
+bNc
+bNc
+bNc
+bTY
+bKH
+bzs
+bWV
+bzs
+bzs
+bZM
+cbJ
+bWe
+bWe
+cfW
+cfX
+chk
+chl
+xud
+chi
+ciz
+ciz
+ckg
+cmb
+yan
+cpO
+cpQ
+cpQ
+cpQ
+cpQ
+czJ
+aaf
+aoV
+aaa
+aaf
+aaa
+csn
+csD
+csX
+ctg
+cua
+cua
+cua
+cua
+cua
+ctZ
+ctZ
+cup
+cuB
+cuN
+cuZ
+cvj
+cvj
+cvj
+cvj
+cvj
+cvP
+cvj
+cvj
+cvj
+cvj
+cva
+cva
+cva
+cva
+cvp
+cwv
+cvr
+cvp
+cvl
+cvr
+cwv
+cvp
+cva
+cva
+cva
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(148,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+dFX
+jMW
+unR
+wQg
+con
+con
+con
+fyS
+unR
+wHk
+aqu
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aCw
+aaf
+apC
+aGL
+aIe
+bhr
+bhr
+bhr
+bhr
+bhr
+aJI
+aRC
+aSK
+aVz
+ijO
+aVz
+aYL
+aJI
+bbz
+bbz
+bdq
+bbz
+bfK
+bhl
+biy
+bjY
+bjN
+bkO
+bmU
+bnH
+bqQ
+bsx
+bxQ
+bJE
+bJE
+bxR
+bxR
+bJE
+bJE
+bog
+bEd
+bJE
+bJE
+bJE
+bJE
+bJE
+bJE
+bNd
+bIJ
+bPo
+bQE
+bRM
+bOr
+bTZ
+bKH
+bzs
+bAw
+bBR
+bHX
+bzs
+bzs
+bzs
+ccF
+cdG
+ceE
+grr
+cfZ
+cjr
+cld
+cjr
+cjr
+cjr
+csq
+xJC
+nzR
+cmd
+cmd
+cmd
+aag
+aag
+aag
+aag
+aaa
+aaf
+csD
+csO
+csD
+czk
+cti
+cua
+cua
+ctw
+ctH
+ctQ
+cuc
+cua
+cua
+cuE
+cuQ
+cua
+cvj
+cvw
+cvw
+cvG
+cvM
+cvS
+cvZ
+cvG
+cvw
+cvw
+cvf
+cwh
+cwm
+cwr
+cvp
+cwx
+cwj
+cwu
+cAV
+cAZ
+cvl
+cvl
+cva
+cva
+cva
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(149,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+uEx
+sth
+unR
+con
+con
+con
+con
+con
+unR
+wHk
+aqu
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aCw
+aaa
+apC
+aGN
+aIh
+bhr
+aKT
+aMD
+aNM
+aOI
+aJI
+aRy
+aSJ
+aTM
+aVB
+aVz
+aVz
+baj
+bbz
+bbz
+ugi
+mvt
+bfK
+bfK
+bfK
+bfK
+bfK
+bfK
+bfK
+bnF
+bqQ
+bsx
+bxQ
+bfJ
+bxQ
+bxQ
+bxQ
+bxQ
+bxQ
+bzX
+bBm
+bJE
+bGT
+bIo
+bJE
+tRe
+bLU
+bNd
+bII
+bOr
+bQD
+bLY
+bMa
+bTZ
+bKH
+bzs
+bAw
+bXZ
+bHX
+bZN
+caK
+bzs
+ccE
+cdF
+ceD
+cfk
+cfY
+cjr
+ckj
+cle
+cle
+cle
+cli
+cme
+cmY
+cme
+cop
+cmd
+cmd
+cqs
+aaa
+aag
+aaa
+aaf
+csD
+csN
+csV
+ctb
+cth
+cua
+ctr
+ctu
+ctG
+ctP
+cub
+cua
+cur
+cuD
+cuP
+cvc
+cvj
+cvu
+cvu
+cvu
+cvu
+cvR
+cvY
+cwb
+cvu
+cvu
+cva
+cwg
+cwl
+cwr
+cvl
+cww
+cwD
+cvv
+cvv
+cAY
+cBb
+cBd
+cva
+cva
+cva
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(150,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+uEx
+wag
+unR
+con
+con
+voW
+con
+con
+unR
+wHk
+aqu
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aCw
+aaf
+apC
+aGB
+aIf
+aJA
+aKC
+aKC
+aKC
+aON
+aQk
+aRD
+aSM
+aVD
+aVE
+aXm
+aVz
+juG
+bbz
+bbz
+ugi
+bbz
+bfL
+bhn
+biz
+biz
+biz
+hMs
+bfL
+bol
+bqQ
+bsx
+bst
+bfJ
+bxQ
+ajB
+bwK
+bxQ
+bxQ
+bxQ
+btV
+bJE
+bGV
+bIp
+bJE
+bKM
+bLW
+bNd
+bOn
+bOr
+bOr
+bRO
+bSQ
+bTZ
+bUZ
+bLT
+bLT
+bLT
+bLT
+bLT
+caM
+cbL
+cbL
+cdI
+ceG
+jGI
+cgb
+chn
+ciE
+cjv
+clj
+clj
+cmf
+nmZ
+cna
+cnC
+cor
+ciM
+cpN
+cqt
+aaa
+aag
+aaa
+aaf
+csD
+csU
+csW
+ctc
+ctc
+cto
+ctt
+cty
+ctJ
+ctT
+cue
+cul
+cuu
+cuG
+cuS
+cve
+cvo
+cvz
+cvz
+cvI
+cvz
+cvT
+cBS
+cwc
+cvz
+cwd
+cwf
+cwj
+cwo
+cwt
+cwu
+cwA
+cAR
+cAS
+cvv
+cBa
+cBc
+cBe
+cva
+cva
+cva
+cBf
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(151,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+uEx
+tAC
+unR
+unR
+unR
+dCr
+unR
+unR
+unR
+iYE
+aqu
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aCw
+aaa
+apC
+aGL
+aHY
+biC
+iNn
+aMk
+aNK
+aOM
+aQj
+aRB
+aSL
+aTN
+cCq
+aVz
+cAg
+bak
+bbz
+bbz
+ugi
+cBm
+bfL
+bhm
+tNl
+ttd
+dkM
+bkP
+bmV
+boc
+bqW
+brh
+bua
+bua
+bua
+bua
+bua
+bua
+bxQ
+bxQ
+btV
+bJE
+bGU
+bqQ
+bJE
+fTg
+bLV
+bNd
+bOm
+bPp
+bQF
+bNd
+bSS
+bUa
+bNc
+bNc
+bOj
+bNc
+bNc
+bZO
+caL
+aPR
+ccG
+cdH
+ceF
+jGI
+cga
+chm
+ciD
+cju
+clf
+cle
+csr
+cme
+cmZ
+cme
+coq
+cmd
+cmd
+cqs
+aaa
+aag
+aaa
+aaf
+csD
+ctb
+csV
+ctb
+ctj
+ctk
+cts
+ctx
+ctI
+ctS
+cud
+cuk
+cus
+cuF
+cuR
+cvd
+cvn
+cvy
+cvy
+cvH
+cvy
+cvy
+cvy
+cvy
+cvy
+cvy
+cwe
+cwi
+cwn
+cws
+cwn
+cwz
+cwE
+cvv
+cvv
+cvv
+cvp
+cvl
+cva
+cva
+cva
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(152,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+dFX
+xaB
+mgF
+mgF
+mgF
+vAl
+meb
+meb
+meb
+iMv
+vmQ
+pQp
+pQp
+pQp
+grA
+fpl
+fpl
+gbh
+sEM
+sEM
+sEM
+aCy
+arj
+apC
+aGL
+avI
+aJK
+aKV
+aMF
+aMl
+aMF
+aJI
+aRG
+aSO
+aTO
+cCq
+aVz
+aVz
+qus
+bbz
+bbz
+blg
+bmX
+hYd
+beY
+oJV
+qSf
+wJA
+bkR
+bfL
+boo
+bqQ
+bhg
+bua
+bvn
+bwL
+bxX
+brd
+bua
+bBJ
+bxQ
+bBn
+bJE
+bDF
+bIr
+bJE
+bKN
+bHT
+bNd
+bNd
+bNd
+bNd
+bNd
+bSU
+bUb
+bVa
+bWf
+bWX
+bOP
+bNd
+bTZ
+bKH
+bzs
+bzs
+bzs
+bzs
+fiy
+cfl
+cfl
+cfl
+cjx
+cfl
+cfl
+cfl
+cfl
+tXL
+cmd
+cos
+cmd
+czI
+aag
+aag
+aag
+aaa
+aaf
+csD
+csD
+csD
+csD
+cti
+cuE
+cua
+ctA
+cuy
+ctV
+cug
+cua
+cua
+cuE
+cuU
+cua
+cvj
+cvw
+cvw
+cvJ
+cvw
+cvV
+cwa
+cvJ
+cvw
+cvw
+cvb
+cwk
+cwp
+cwr
+cvp
+cwC
+cwn
+cAT
+cAW
+cvl
+cvl
+cvl
+cva
+cva
+cva
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(153,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aba
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaa
+dFX
+dFX
+uEx
+uEx
+uEx
+dFX
+uEx
+uEx
+uEx
+dFX
+dFX
+aaa
+aaa
+arj
+fCx
+avD
+awC
+ayb
+eCr
+jvd
+cEo
+xZD
+vpY
+apC
+aGJ
+avI
+bhr
+bhr
+bhr
+aNO
+aOT
+aJI
+aRF
+aSN
+aVF
+aVF
+aVF
+aYM
+aoo
+bbA
+bbz
+ugi
+bbz
+bfL
+blr
+bho
+ecp
+eiB
+bkQ
+bmW
+bom
+bIq
+bri
+bsu
+brd
+brd
+bvo
+bzl
+bua
+bzd
+bxQ
+btT
+bCU
+bCR
+bqQ
+bGX
+bCR
+edA
+bNd
+bIK
+bPq
+bLd
+bNd
+bST
+bOr
+bOr
+bOr
+bWW
+bYa
+bYX
+bTZ
+caN
+cbM
+cbM
+cdJ
+bzs
+cfm
+cgc
+bAw
+ciF
+cjw
+ckl
+clk
+clk
+bAw
+bzs
+aaf
+aaa
+aaf
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+ctp
+cua
+ctz
+ctK
+ctU
+cuf
+cuf
+cuv
+cuH
+cuT
+cvg
+cvj
+cvj
+cvj
+cvj
+cvj
+cvU
+cvj
+cvj
+cvj
+cvj
+cva
+cva
+cva
+cva
+cvp
+cwB
+cvr
+cvp
+cvl
+cvr
+cwB
+cvp
+cva
+cva
+cva
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(154,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaa
+aaf
+aaa
+aaf
+aaa
+aaf
+aaa
+aaf
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+arj
+auz
+avC
+vHz
+aya
+fHG
+fHG
+xkd
+fHG
+fHG
+gOZ
+aGJ
+avI
+aJL
+aKX
+bhr
+bhr
+bhr
+aJI
+aRH
+aVz
+aVz
+aVH
+aXn
+aYN
+aJI
+bkU
+bbz
+ugi
+bbz
+bfL
+bfL
+kVj
+bfL
+bfL
+bla
+bmY
+boq
+boq
+brj
+bpE
+btk
+bum
+bvq
+bzn
+bua
+bBL
+bxQ
+bBC
+bCV
+bDN
+bFM
+btR
+bDN
+bIa
+bIf
+bIL
+bOq
+bLf
+bRP
+bSW
+bMH
+bNi
+bOr
+bWZ
+bYd
+bYY
+bZP
+caO
+cbN
+ccI
+cdL
+ceI
+cfo
+bAw
+bAw
+bAw
+cjz
+ceJ
+clm
+cmg
+cnc
+cnD
+bzs
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+cua
+ctF
+ctM
+ctX
+cuf
+cum
+cuw
+cuJ
+cuW
+cvi
+cvq
+cvC
+cvC
+cvC
+cvN
+cvW
+cvX
+cvX
+cvX
+cvX
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+cvA
+cva
+cva
+cva
+cva
+cva
+cva
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(155,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaa
+ads
+adS
+aeG
+aaa
+ads
+adS
+aeG
+aaa
+ads
+adS
+aeG
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaf
+aaf
+alO
+arj
+arj
+arj
+pBp
+gOZ
+cVb
+cVb
+cVb
+cVb
+cVb
+cVb
+aGQ
+aIk
+aIp
+aKW
+aMG
+aIp
+aIp
+aJI
+aJI
+aSP
+aUh
+aJI
+aJI
+ddM
+aJI
+aJI
+bcq
+blo
+bcq
+bfO
+bhp
+biB
+ouf
+nyi
+cTO
+bmZ
+bpE
+bpE
+bpE
+bpE
+bti
+bul
+bvp
+bzm
+bua
+bBK
+bwz
+bBw
+bJG
+bDI
+bFL
+bli
+bKO
+bHY
+bNf
+bOp
+bPr
+bQH
+bNd
+bSV
+bSQ
+bNh
+bWg
+bWY
+bYc
+bNd
+bNd
+bzs
+bzs
+bMb
+cdK
+ceH
+cfn
+cgd
+ceJ
+ccM
+cjy
+ceJ
+cll
+ccM
+cnb
+bHd
+ceI
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+cua
+ctE
+ctL
+ctW
+cuf
+cum
+cuw
+cuI
+cuV
+cvh
+cvj
+cvB
+cvE
+cvj
+cvj
+cvj
+cvj
+cvj
+cvj
+cvX
+cvX
+cvX
+cvX
+cwq
+cwq
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(156,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aae
+aaa
+aaa
+aaa
+aaS
+aaf
+ads
+adT
+aeG
+aaa
+ads
+adT
+aeG
+aaa
+ads
+adT
+aeG
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gJi
+alO
+alO
+arp
+alO
+anf
+anf
+anf
+anf
+anf
+cVb
+jbf
+wrp
+fnC
+kPd
+xiw
+aGS
+aIm
+aIp
+aKH
+aMI
+aIp
+aOV
+aOX
+aOX
+aSR
+aUi
+aVJ
+aOX
+aiJ
+bal
+bam
+bbz
+bmR
+bmX
+gaF
+bhq
+rWg
+bkb
+nyi
+cTO
+bmZ
+bpH
+bra
+bsK
+bpE
+bpE
+buq
+bvt
+bye
+bua
+bBN
+bEi
+bEi
+bEi
+bDU
+bFO
+bBN
+bKR
+bMc
+bNd
+bNd
+bNd
+bNd
+bNd
+bSX
+bMI
+bNk
+bNU
+bXb
+bWi
+bYZ
+bZR
+caQ
+bzs
+ccK
+ccM
+ceJ
+ceJ
+cgf
+ceJ
+ccM
+ccM
+ceJ
+clo
+cmi
+cbQ
+cnF
+cot
+csc
+csm
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+cua
+cua
+cua
+cua
+cuf
+cuf
+cux
+cuK
+cuX
+cuf
+cvj
+cvj
+cvj
+cvj
+aaf
+aaf
+aaf
+aaf
+cvj
+cvj
+cvj
+cvj
+cvj
+cvj
+cvj
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+cva
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(157,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaa
+ads
+adT
+aeG
+aaf
+ads
+adT
+aeG
+aaf
+ads
+adT
+aeG
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gJi
+cyG
+anf
+anf
+aqv
+ayf
+dce
+uua
+awE
+tRB
+cVb
+vCb
+wUY
+khb
+sxs
+tal
+aCI
+aIj
+aJB
+aKD
+aMs
+aNL
+aOQ
+aQf
+aRE
+aSQ
+aVI
+aVI
+aVI
+aYO
+aSR
+bbB
+bbz
+bbz
+bbz
+kQa
+tIE
+dnW
+jdE
+nyi
+cTO
+bmZ
+bpG
+bqZ
+brk
+bsv
+bsv
+bun
+bvr
+bzo
+bua
+aFa
+bCY
+bEh
+bCW
+bDS
+bFN
+bBN
+bKQ
+bMb
+bNd
+bOr
+bOt
+bOr
+bRQ
+bOr
+bSQ
+bNj
+bNs
+bXa
+bYa
+bNd
+bZQ
+caP
+cbO
+ccJ
+bLS
+bLS
+cfp
+cge
+aPR
+ciG
+bLS
+ckm
+cln
+cmh
+cnd
+cnE
+bPn
+aoV
+aoV
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaf
+aaf
+aaf
+aaf
+cuf
+cuf
+cuf
+cuf
+cuf
+aaf
+aaa
+aaf
+cvK
+aaf
+aaa
+aaa
+aaf
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+cAX
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(158,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+ads
+adT
+aeG
+aaa
+ads
+adT
+aeG
+aaa
+ads
+adT
+aeG
+aaf
+aaf
+aaf
+aaf
+aaf
+aaf
+aaf
+aaf
+aag
+alO
+anf
+anf
+alO
+mAH
+jaF
+apC
+anf
+aCG
+cVb
+cVb
+cVb
+cVb
+cVb
+wBd
+aGC
+aIl
+axj
+aia
+aMy
+aIp
+nGf
+aQm
+fzd
+fFA
+fFA
+aVK
+jwH
+aSR
+aSR
+bbB
+bbz
+bbz
+bbz
+nyi
+nyi
+nyi
+bkd
+nyi
+cTO
+bmZ
+bpJ
+brc
+brd
+bug
+btl
+but
+bvw
+bzq
+bua
+bBP
+bCZ
+bEk
+bFG
+bCY
+bFP
+bBN
+bKQ
+bMb
+bNd
+bOt
+bOr
+bOr
+bRQ
+bOr
+bSQ
+bWj
+bOm
+bXc
+bYe
+bNd
+bZS
+caR
+bzs
+ccL
+ccM
+ceL
+ceJ
+cgh
+ceJ
+ceJ
+ccM
+ceJ
+cAe
+cmj
+cne
+bHd
+bPn
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(159,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaS
+aaS
+aaf
+aaa
+ads
+adT
+aeG
+aaa
+ads
+adT
+aeG
+aaa
+ads
+adT
+aeG
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+amw
+aof
+aof
+aof
+aof
+apC
+apC
+apC
+apC
+apC
+awF
+aCG
+apC
+nhY
+aBE
+aCz
+vEp
+aCJ
+aGT
+aIn
+aIp
+aKI
+aMt
+aIp
+aOW
+aQm
+coI
+aSS
+aUj
+sJx
+aSR
+aYQ
+cBg
+bam
+bbz
+bbz
+beE
+bfS
+biD
+bfS
+kQk
+kQk
+cTO
+bmZ
+bpI
+brb
+brd
+buf
+bvs
+bur
+bvp
+bzp
+bua
+bBO
+bCY
+bEj
+bCY
+bGZ
+bFE
+bBN
+bKS
+bMd
+bNd
+bOs
+bOt
+bQJ
+bRR
+bOr
+bSQ
+bWj
+bWj
+bWj
+bWj
+bNd
+bzs
+bzs
+bzs
+bMb
+bFr
+ceK
+ceJ
+cgg
+ccM
+ccM
+cjA
+ceJ
+ccM
+cdN
+bFr
+cnG
+bzs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(160,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaa
+aaf
+aaa
+aaa
+aaa
+adV
+aaa
+aaa
+aaa
+adV
+aaa
+aaa
+aaa
+adV
+aaa
+aaa
+aaf
+aaa
+amw
+amw
+amw
+amw
+aoh
+aoN
+apA
+aof
+arq
+itK
+atv
+auD
+apC
+aoQ
+cqM
+ayg
+ayg
+ayg
+aCA
+aFn
+aFp
+aGW
+anf
+aIp
+fGf
+aMA
+aIp
+aOX
+aQm
+coI
+aST
+aUk
+sJx
+aSR
+aYQ
+bam
+ssB
+bbz
+bbz
+bbz
+eUy
+pkg
+biE
+kQk
+tEL
+cTO
+bmZ
+bpL
+bre
+bsN
+bre
+bvv
+bur
+bvp
+bzr
+bua
+bBQ
+bDa
+bEl
+bFH
+bHb
+bIw
+bBN
+jNT
+bMb
+bNd
+bOt
+bPu
+bOr
+bRQ
+bOr
+bSQ
+bWj
+bOm
+bXc
+bYe
+bNd
+bZU
+caS
+cbN
+ccN
+bHd
+bzs
+bzs
+bKT
+bAw
+bAw
+bFr
+ceJ
+ccM
+ccM
+cng
+bzs
+bzs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(161,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaf
+abX
+acx
+acx
+adt
+adU
+adU
+adU
+adU
+adU
+adU
+adU
+adU
+adU
+eaR
+jIs
+jIs
+jIs
+csg
+ane
+ane
+cxN
+aog
+aoM
+apz
+aqw
+arr
+asw
+asw
+auE
+apC
+awG
+auF
+apC
+apC
+apC
+apC
+apC
+aFo
+aGV
+aIp
+aIp
+aKL
+aMz
+aNQ
+aOX
+aQm
+lva
+nUV
+nUV
+gbd
+aSR
+aYR
+ban
+ikm
+bbz
+bbz
+bez
+bfS
+vxz
+laN
+kQk
+jbK
+cTO
+bmZ
+bpK
+brd
+bpK
+bpK
+bvu
+bux
+bvy
+bua
+bua
+bBN
+bBN
+bBN
+bBN
+bHa
+bBN
+bBN
+bKB
+bMb
+bNd
+bOr
+bPt
+bOr
+bRQ
+bSY
+bMJ
+bNl
+bNW
+bXd
+bPu
+bNd
+bZT
+bMb
+bFr
+ccM
+cdN
+bzs
+cfq
+bKT
+bAw
+ciH
+bHd
+bzs
+bAw
+cmk
+cnf
+bzs
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(162,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaa
+aaf
+aaa
+aaa
+aaa
+adX
+aaa
+aaa
+aaa
+adX
+aaa
+aaa
+aaa
+adX
+aaa
+aaa
+aaf
+aaa
+amw
+amw
+amw
+amw
+aoi
+aoO
+apB
+aqx
+art
+anf
+anf
+auF
+apC
+awH
+auF
+apC
+aAr
+aBF
+apC
+aaa
+aFq
+aGX
+aIp
+sHx
+aKU
+aME
+aNN
+aOR
+aQh
+aRI
+aSU
+aXo
+aXo
+aXo
+iLJ
+bap
+ikm
+bbz
+bci
+beB
+kQk
+kQk
+kQk
+kQk
+gbT
+bdr
+bmZ
+bua
+bua
+bua
+bua
+bua
+buG
+bvA
+bua
+bAw
+bzg
+bLS
+bLS
+bLS
+cbQ
+bLS
+bLS
+bKE
+caU
+bNc
+bOj
+bPw
+bNc
+bNc
+bNc
+bNc
+bNc
+bNc
+bNc
+bPw
+bNc
+bLS
+caU
+cbQ
+cNY
+cNY
+cNY
+cNY
+cgj
+cNY
+cNY
+chp
+bzs
+clp
+bzs
+bzs
+bzs
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(163,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aba
+aaS
+acy
+aaa
+ads
+adW
+aeG
+aaa
+ads
+adW
+aeG
+aaa
+ads
+adW
+aeG
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+amw
+aof
+aof
+aof
+aof
+vCy
+tkB
+atw
+auF
+apC
+aoP
+auF
+azr
+jez
+atw
+apC
+apC
+aFo
+aGV
+aIp
+aJO
+aLd
+aMN
+aNQ
+aOZ
+aOX
+aOX
+rdG
+aUz
+aVM
+aOX
+aYT
+bam
+iuR
+baR
+bcb
+bdl
+cTJ
+cHD
+bgo
+cTK
+cTK
+blq
+cTS
+cTK
+bpQ
+cTK
+slk
+btm
+buy
+bvz
+bdO
+bLT
+bna
+bLT
+bLT
+bLT
+bDV
+bLT
+bLT
+bHq
+bMe
+bIg
+bIM
+bLT
+bLT
+bLT
+bLT
+bLT
+bLT
+bLT
+bLT
+bLT
+bLT
+bLT
+caT
+cbP
+ccO
+cdO
+cdO
+cdO
+cnH
+czH
+czT
+czY
+kfS
+bAw
+bAw
+clp
+aag
+gJi
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(164,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+ads
+adW
+aeG
+aaa
+ads
+adW
+aeG
+aaa
+ads
+adW
+aeG
+aaf
+aaf
+aaf
+aaf
+aaf
+aaf
+aaf
+aaf
+aaf
+apC
+aqy
+anf
+anf
+aty
+auF
+apC
+aAt
+jZT
+apC
+apC
+apC
+apC
+ayf
+aFm
+aGF
+aIq
+aIq
+aIq
+aIq
+aIq
+aIq
+aIq
+eSe
+aIq
+aIq
+aIq
+aIq
+aXS
+aIq
+aIq
+baZ
+bck
+bdm
+bdP
+cHE
+bdP
+bdP
+bdP
+bdP
+bnc
+boC
+bpV
+boC
+boC
+bto
+buL
+bvB
+cbK
+bxg
+bzk
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bIs
+bIN
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+kfS
+kfS
+cQB
+czY
+kfS
+bPn
+bPn
+bPn
+aag
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(165,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaa
+ads
+adW
+aeG
+aaf
+ads
+adW
+aeG
+aaf
+ads
+adW
+aeG
+aaa
+aaf
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+apC
+anf
+jez
+apC
+atx
+auF
+apC
+auD
+auF
+apE
+aAs
+vbi
+apC
+aCG
+aFr
+aGE
+aIo
+aIo
+aIo
+aIo
+aIo
+aIo
+aIo
+aRK
+aIo
+aIo
+aUx
+aVL
+aXR
+aZc
+aZc
+baT
+bcj
+beC
+bfT
+cHF
+biG
+blw
+blu
+bnb
+bfT
+bor
+bpS
+bsO
+bfV
+btn
+buH
+byf
+byf
+byf
+byf
+bDb
+bEm
+bEm
+bEm
+bDb
+bJH
+bKW
+bMg
+bIh
+bOx
+bPx
+bDb
+bRT
+aad
+bEm
+bDb
+bRT
+aad
+bEm
+bDb
+bRT
+aad
+bEm
+bDb
+cfr
+cho
+bDb
+aaa
+kfS
+cQB
+czY
+cOT
+aaa
+aaa
+gXs
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(166,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaf
+ads
+adW
+aeG
+aaa
+ads
+adW
+aeG
+aaa
+ads
+adW
+aeG
+aaf
+aaf
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+apC
+anf
+apC
+apC
+apE
+auG
+apC
+iWx
+auF
+apE
+anf
+anf
+noF
+aCG
+aDZ
+aFu
+aFu
+aFu
+aFu
+aFu
+aFu
+aFu
+mPE
+aFu
+mPE
+aFu
+aFu
+aVO
+ugi
+bbz
+bbz
+bba
+aXq
+bfU
+bhu
+cHG
+biI
+bkh
+biI
+cHQ
+bfT
+boE
+bpY
+bsQ
+bfV
+btx
+buU
+byf
+bzu
+bAz
+bzu
+bDb
+bEm
+bEm
+bEm
+bIx
+bJJ
+bKY
+bMi
+bNo
+bIP
+bPA
+bDb
+bRU
+aml
+bEm
+bDb
+bRU
+aop
+bEm
+bDb
+bRU
+aml
+bEm
+bDb
+cgi
+chq
+ccQ
+aaa
+cOT
+cQB
+czY
+cOT
+aaa
+aaa
+gXs
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(167,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaa
+ads
+adY
+aeG
+aaa
+ads
+adY
+aeG
+aaa
+ads
+adY
+aeG
+aaa
+aaS
+aaf
+aaf
+aaf
+aaf
+aaf
+aaf
+aaf
+apC
+arA
+anf
+asx
+anf
+auF
+apC
+apC
+auF
+apC
+apC
+apC
+aCB
+aEB
+aFs
+bbE
+aIr
+bav
+aLf
+aNV
+qfD
+aRO
+aQp
+aRN
+aIt
+aUB
+aFu
+aVN
+ugi
+bar
+bar
+bbz
+aXq
+bfU
+bhu
+cHH
+biH
+cHN
+blv
+bls
+bfT
+boD
+bpY
+bsP
+bfV
+btw
+buT
+byf
+bzt
+bAy
+bBS
+bDb
+bEm
+bEm
+cBz
+bEm
+bJI
+bKX
+bMh
+bIt
+bOx
+bPz
+bDb
+bRU
+amo
+bEm
+bDb
+bRU
+amo
+bEm
+bDb
+bRU
+amo
+cBz
+bDb
+cgi
+chq
+ccQ
+aaa
+cOT
+cQB
+czY
+cOT
+aaa
+gJi
+gJi
+gJi
+gJi
+gJi
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(168,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaa
+aaf
+aaa
+aaf
+aaa
+aaf
+aaa
+aaf
+aaa
+aaf
+aaa
+aiS
+aaa
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+apC
+apC
+apC
+apC
+dbU
+auH
+avF
+awI
+ayc
+gcF
+asw
+asw
+aCD
+aEa
+aFv
+aGG
+aIu
+aJQ
+aIt
+aIt
+qfD
+aRO
+aIt
+aRN
+aIt
+aUB
+aFu
+aVZ
+aXT
+aFu
+aFu
+bcv
+aXq
+bfU
+bhu
+cHI
+biJ
+bhM
+biJ
+blx
+bfT
+boL
+bpY
+bsR
+bfV
+buo
+bxf
+byf
+bzw
+bAB
+bBV
+bDb
+bEn
+akK
+akP
+akP
+akV
+akW
+alf
+alm
+aln
+alr
+bDb
+bRW
+amG
+bUe
+bDb
+bWl
+aoq
+bYg
+bDb
+bZV
+apw
+cbS
+bDb
+cgl
+chs
+bDb
+aaa
+kfS
+cQB
+czY
+kfS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(169,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aba
+aaS
+aaS
+aaf
+aaa
+aaa
+aaf
+aaf
+aaf
+aaf
+alO
+aqz
+aru
+apC
+anf
+anf
+avE
+anf
+anf
+awD
+anf
+aty
+aCC
+aDZ
+anf
+aFu
+aIs
+aJP
+vZR
+aIt
+hGH
+aYW
+aYW
+aYW
+aYW
+aYW
+aYW
+aVY
+aYY
+bas
+aFu
+bbz
+cBk
+bbz
+bht
+cHJ
+cHL
+blw
+bjP
+blt
+bfT
+boG
+bqa
+cIe
+bfV
+buo
+bvb
+byh
+bzv
+bAA
+bBU
+bDb
+bEm
+bEm
+bEm
+bIy
+bJK
+bKZ
+bMi
+bIu
+bIO
+alx
+bLe
+bRV
+amH
+bUd
+bIx
+bRV
+amH
+bYf
+bIx
+bRV
+amH
+cbR
+bDb
+cgk
+chr
+bDb
+aaa
+kfS
+cBN
+czY
+kfS
+aaa
+aaa
+aaa
+aaa
+aaH
+eFW
+nwX
+weM
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(170,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+alO
+anf
+anf
+asy
+anf
+anf
+apC
+apC
+rtU
+apC
+apC
+apC
+aCE
+aDZ
+aFu
+aFu
+aIw
+aJS
+pJR
+aNP
+esZ
+aOS
+aOS
+aOS
+aOS
+aOS
+aOS
+aWb
+aXU
+bau
+mPE
+bbz
+aXq
+bbz
+bfV
+cHK
+blA
+blA
+blA
+blD
+bfV
+cHU
+cHZ
+cIf
+bfV
+btA
+bxf
+byf
+bzy
+bAD
+bBX
+bDb
+bEm
+bEm
+bEm
+bIx
+bJM
+bLc
+bMi
+bNo
+bOx
+alV
+bQM
+bMi
+bOx
+bRZ
+bVj
+bMi
+bOx
+bRZ
+bZa
+bMi
+bOx
+bRZ
+cTY
+cTZ
+chu
+ccQ
+aaf
+cOT
+cQB
+cAa
+cOT
+gXs
+rnK
+kWp
+aaa
+aaa
+aaH
+aaH
+aaH
+weM
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(171,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaa
+aaa
+aaa
+aaf
+aaf
+alO
+aqA
+arz
+apC
+anf
+anf
+apC
+awJ
+anf
+apC
+aAv
+tJS
+aCE
+aDZ
+aFu
+aHb
+aIv
+aVQ
+aIt
+aIt
+qfD
+aRO
+aIt
+aPd
+aIt
+aPb
+adu
+aXu
+aYW
+bat
+bbD
+bbz
+aXq
+beE
+bfV
+bhv
+biK
+bkk
+blz
+bly
+bos
+bpR
+bqc
+bsS
+bfV
+buo
+bxf
+byf
+bzx
+bAC
+bBW
+bDb
+bEm
+bEm
+bEm
+bDb
+cTX
+bLb
+bMk
+bNn
+bIQ
+alW
+amh
+ami
+amP
+anp
+anx
+anN
+amP
+anp
+anx
+anN
+amP
+aqG
+aqS
+aqS
+ars
+asr
+asC
+czQ
+czU
+czZ
+cOT
+aaa
+gJi
+aaH
+aaH
+aaH
+aaH
+aaH
+aaH
+eFW
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(172,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaa
+aaa
+aaa
+apC
+apC
+apC
+apC
+apC
+anf
+anf
+apC
+hyY
+anf
+apE
+anf
+anf
+aCE
+aDZ
+aFu
+aHd
+aIx
+aJF
+aQq
+aNS
+qfD
+aRO
+aIt
+aPd
+aIt
+aPb
+aIt
+aXu
+aYW
+aVQ
+mPE
+bbz
+aXq
+bds
+bfV
+bhx
+bsQ
+bkm
+cHO
+blG
+bsQ
+cHV
+cIa
+bsQ
+bfV
+buo
+bvc
+byf
+byf
+byf
+byf
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bMm
+bNp
+bOx
+bMi
+bQN
+bRZ
+bOx
+bMi
+bVk
+bRZ
+bOx
+bMi
+bZb
+bRZ
+bOx
+bMi
+cfy
+cgn
+cjB
+ccQ
+aaf
+cOT
+cgm
+czY
+cOT
+gXs
+rnK
+kWp
+kaq
+aaH
+aaH
+aaa
+aaa
+kaq
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(173,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aae
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaa
+aaa
+apC
+apD
+aEl
+anf
+arx
+anf
+anf
+apC
+apC
+atB
+apC
+apC
+apC
+aCF
+aDZ
+apC
+aFw
+aFw
+aFw
+aFw
+aFw
+aFu
+aPf
+aQq
+aRP
+pem
+aIt
+aIt
+aWd
+aXV
+vsT
+bbD
+bbz
+aXq
+bbz
+bfV
+bhw
+cHM
+wWT
+blB
+blF
+cHS
+cHW
+cIb
+bsT
+bfV
+btP
+bxf
+byi
+bzz
+bAE
+bBY
+bDc
+bEo
+bFI
+bHe
+bIz
+bIz
+bDb
+bMl
+bIv
+bIR
+bPE
+bLe
+bRY
+amQ
+bUg
+bIx
+bWm
+amQ
+bUg
+bIx
+bZW
+amQ
+bUg
+bDb
+bDb
+bDb
+bDb
+aaa
+kfS
+cgm
+czY
+kfS
+aaa
+aaa
+aaa
+kaq
+kaq
+eFW
+aaH
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(174,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaa
+alO
+anf
+anf
+arw
+nuw
+uve
+anf
+apC
+awL
+anf
+anf
+apE
+aBF
+aCH
+aED
+aFy
+aGO
+aIB
+aJJ
+aKZ
+aFw
+aFu
+aFu
+mPE
+aFu
+aTc
+aUD
+aVS
+aYW
+aYW
+bax
+mPE
+bbz
+aXq
+bbz
+bfV
+bfV
+biO
+bsQ
+cHP
+cHR
+bsQ
+bpT
+bqd
+bsQ
+bfV
+btS
+bxf
+byi
+bwN
+bAG
+bCa
+bDc
+bEo
+bIC
+bEc
+bIB
+bIB
+bDb
+bMo
+bNp
+bOx
+bPH
+bDb
+bSa
+amT
+bUh
+bDb
+bWn
+aos
+bYh
+bDb
+bZX
+aqB
+cbU
+bDb
+aaf
+aaf
+aaa
+aaa
+kfS
+cgm
+czY
+kfS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(175,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+alO
+aoQ
+anf
+arv
+asz
+atA
+anf
+apC
+awK
+anf
+awD
+apE
+anf
+aCk
+aEC
+aFx
+aGM
+aIy
+aJG
+cAz
+aFw
+gRZ
+aPg
+aQr
+aFu
+aTb
+aIt
+aLg
+aYW
+aYW
+aUD
+bbD
+bbz
+aXq
+bbz
+bfW
+bhy
+biN
+bsQ
+bni
+blM
+bsQ
+cHX
+cIc
+bsQ
+buj
+buo
+bve
+byj
+bwM
+bAF
+bBZ
+bDc
+bEp
+bCX
+bEc
+bIA
+bIA
+bDb
+bMn
+bNp
+bOz
+bPG
+bDb
+bEm
+amo
+bRU
+bDb
+bEm
+amo
+bRU
+bDb
+bEm
+amo
+bRU
+bDb
+aaf
+aaa
+aaa
+aaa
+cOT
+cgm
+czY
+cOT
+aaa
+aaa
+aaa
+aaa
+gJi
+gJi
+gJi
+gJi
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(176,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+apC
+jkx
+ayf
+xAk
+mHU
+aFn
+aFn
+aBB
+awM
+ayg
+ayg
+ayg
+ayg
+aCl
+aEe
+aFw
+aFw
+aFw
+aLo
+aLb
+aFw
+xEE
+aYW
+aYW
+aRQ
+aIt
+aUF
+aLg
+aYW
+aYW
+aVQ
+mPE
+bbz
+aXq
+bbz
+bfX
+bhz
+biQ
+bsQ
+blC
+bsQ
+cHT
+bsQ
+cId
+bsQ
+bsw
+btU
+bxe
+bvC
+bzD
+bxv
+bCc
+bDc
+bEo
+bDj
+bDY
+bIA
+bIA
+bDb
+bMq
+bNp
+bOx
+bPJ
+bDb
+bEm
+ano
+bRU
+bDb
+bEm
+apb
+bRU
+bDb
+bEm
+ano
+bRU
+bDb
+aaf
+aaa
+aaa
+aaa
+cOT
+cgm
+czY
+cOT
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(177,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+nsA
+nsA
+nsA
+nsA
+qVP
+nsA
+nsA
+atB
+apC
+apC
+awx
+aye
+ayd
+aAc
+ayd
+aCI
+aEd
+aFw
+aHf
+aIz
+aJM
+aLa
+aFw
+hsb
+aYW
+aQs
+aFu
+aTd
+aUE
+aVT
+aYW
+aYW
+aZd
+aFu
+bbz
+aXq
+bbz
+bfX
+bhy
+biP
+bko
+blE
+bnj
+bov
+bpU
+brq
+bsW
+buj
+buo
+bxf
+byk
+bzC
+bAH
+bCb
+bDc
+fbp
+bDf
+bEb
+bGY
+bGY
+bDb
+bMp
+bNp
+bOx
+bPI
+bDb
+bEm
+abz
+bUi
+bDb
+bEm
+abz
+bUi
+bDb
+bEm
+abz
+bUi
+bDb
+aaf
+aaf
+aaa
+aaa
+cOT
+cgm
+czY
+cOT
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(178,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+nsA
+cQF
+ndq
+rIA
+fBy
+hRI
+jaH
+hHQ
+feE
+hHQ
+kGJ
+wHT
+asA
+apE
+dPk
+aCG
+aEf
+aFw
+aGU
+aIC
+aJU
+aLe
+aFw
+aCR
+aCR
+aCR
+aCR
+aCR
+aCR
+aCR
+aWe
+aWe
+aCR
+aCR
+bcs
+aXq
+bbz
+bfX
+bfV
+bfV
+bfV
+bfV
+bfV
+bfV
+bpW
+brs
+bfV
+bfV
+buo
+bxf
+byk
+byk
+byk
+byk
+bDc
+bDc
+bJR
+bEg
+bDc
+bDc
+bLe
+bMr
+bNr
+bIT
+bJN
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+bDb
+kfS
+kfS
+kfS
+kfS
+kfS
+czX
+cAc
+kfS
+kfS
+kfS
+kfS
+kfS
+kfS
+kfS
+cOT
+cOT
+aag
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(179,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+wKe
+ndq
+ndq
+ndq
+ndq
+oLl
+asB
+asB
+asB
+avo
+awx
+avH
+asB
+asB
+asB
+aCK
+aEf
+aFw
+aHg
+cBZ
+aJT
+aLc
+aFw
+tSm
+aFz
+aFz
+aRR
+aTe
+aUG
+aFz
+baA
+aXW
+baz
+mtU
+bcx
+aXq
+bbz
+bfY
+bhA
+biR
+bkq
+bjZ
+bhA
+boz
+boM
+boM
+bsX
+bsz
+buo
+bxf
+boM
+boM
+boM
+boM
+bDd
+bEq
+bDl
+bEf
+bFQ
+bHc
+bHK
+bIb
+bID
+bOA
+bPK
+bQO
+bSb
+bOu
+bUj
+bVl
+bWo
+bXh
+bQZ
+bTl
+bZY
+caX
+bTl
+bQZ
+cdQ
+cOe
+kfS
+czG
+czR
+czW
+cAb
+cko
+clq
+cmq
+ciI
+cnJ
+cri
+cOe
+cOe
+cBT
+aag
+gXs
+gJi
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(180,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+wKe
+ndq
+ndq
+ndq
+ndq
+qeb
+asB
+atD
+auJ
+asB
+awQ
+avK
+azt
+aAy
+asB
+aCN
+aEf
+aFw
+aGY
+aII
+aJW
+aMX
+qUh
+aFz
+aPl
+aQv
+aPl
+aTg
+aUI
+aTg
+baA
+aZf
+xRa
+bbF
+bbz
+aXq
+bbz
+bfX
+bhB
+bgp
+bIb
+bIb
+blX
+bow
+bIb
+bIb
+bsZ
+cdX
+ceX
+bvg
+bvD
+bvD
+cBx
+bzB
+bAa
+bBE
+bDm
+bEr
+bFR
+bHf
+bHM
+bFR
+bIE
+bJr
+bJO
+bWr
+bWr
+bWr
+bUk
+bVn
+bWq
+bXj
+bYj
+bZc
+bTl
+bTl
+bTl
+bQZ
+bNB
+ceM
+ccU
+cgo
+czS
+cOb
+cAd
+kfS
+cOx
+cBL
+cOe
+cvO
+kfS
+kfS
+cOT
+cOT
+aag
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(181,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+nsA
+ndq
+ndq
+ndq
+ndq
+ndq
+asB
+atC
+auI
+auI
+awP
+avJ
+awO
+awO
+asB
+aCM
+aEg
+aFw
+aHi
+aFw
+aFw
+aFw
+aFw
+aFz
+aPk
+aQu
+aPk
+aTf
+aUH
+aTf
+baA
+aZf
+baA
+bbF
+bbz
+aXq
+bbz
+bfZ
+bhA
+biS
+bkr
+blH
+bnm
+boy
+bpX
+brt
+brm
+bsA
+bvH
+bvf
+brt
+bwO
+bxF
+bzA
+bzZ
+boM
+boM
+boM
+boM
+boM
+bHL
+boM
+boM
+boM
+bPK
+bWr
+bWr
+bWr
+bWr
+bWr
+bWp
+bXi
+bYi
+bTl
+bTl
+caY
+cbV
+bQZ
+blQ
+cPA
+cfs
+cgm
+abm
+kfS
+kfS
+kfS
+kfS
+kfS
+cOe
+fup
+csy
+cko
+cAf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(182,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+wKe
+ndq
+ndq
+ndq
+ndq
+ndq
+asB
+atE
+auI
+auI
+awT
+avM
+azv
+aAA
+asB
+aCE
+aEi
+aFw
+aHl
+aID
+vqE
+aCR
+qCR
+aFz
+baA
+aQw
+baA
+baA
+baA
+baA
+baA
+lNB
+baA
+bbF
+bbz
+aXq
+bbz
+bga
+boB
+boB
+boB
+boB
+boB
+boB
+boB
+boB
+btb
+buo
+bvJ
+bvJ
+bvJ
+bwQ
+bxW
+byt
+byt
+bEt
+bDn
+bEz
+bFS
+bJT
+bLh
+bMs
+bMs
+bMs
+bQZ
+bQS
+bSf
+bWr
+bWr
+bWr
+bWr
+bXl
+caZ
+cba
+bTl
+cbc
+bTl
+bQZ
+cdR
+ceO
+kfS
+cgm
+chw
+ciK
+cjC
+ckp
+cls
+cmr
+cOe
+cOe
+cou
+kfS
+aaf
+aaf
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aae
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(183,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+wKe
+ndq
+ndq
+ndq
+ndq
+ndq
+asB
+asB
+asB
+avL
+awR
+hiV
+azu
+aAz
+asB
+aCO
+aEh
+aCR
+aCR
+aCR
+mzv
+aCR
+aML
+aFz
+baA
+pXG
+cdl
+baA
+baA
+baA
+baA
+aZf
+baA
+bbF
+bbz
+aXq
+bbz
+bfX
+bhC
+biU
+bks
+blI
+bnn
+boA
+bpZ
+boB
+bta
+buo
+bvJ
+bCk
+byo
+aDH
+bxP
+bCf
+byt
+bEs
+bGc
+bHm
+bGc
+bEs
+bEC
+aaf
+aaf
+aaf
+bQZ
+bQR
+bSe
+bMf
+bNe
+bNm
+bNX
+bTf
+bQZ
+bTl
+bTl
+cbb
+bTl
+bQZ
+cdR
+ceN
+kfS
+cgp
+chv
+ciJ
+cbf
+diq
+clr
+bnt
+cOe
+cOe
+bMB
+cOT
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(184,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+nsA
+lGV
+ndq
+pou
+ndq
+srG
+asB
+atG
+auL
+avN
+axa
+auI
+azw
+aAA
+asB
+aCQ
+aEk
+aFB
+dsJ
+rxF
+aFB
+qkn
+aLr
+aFB
+aPn
+aQy
+aPn
+aTi
+aUK
+aVU
+aWg
+aZf
+baA
+bbF
+bbz
+aXq
+bbz
+bfX
+bhD
+biV
+bnp
+boA
+bnp
+bng
+boQ
+brx
+bro
+buo
+bvJ
+bxj
+byq
+bwR
+bxY
+bCh
+byt
+bEv
+bFU
+bFU
+bFU
+bJV
+bEC
+bMu
+bMu
+bMu
+bEC
+bQU
+bQU
+bTl
+bQU
+bXr
+bWr
+bOw
+bQZ
+bQZ
+bQZ
+cka
+bQZ
+bQZ
+bQZ
+bQZ
+bQZ
+cgr
+chx
+kfS
+kfS
+kfS
+clt
+abm
+cOe
+cOe
+bNA
+cOT
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(185,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+nsA
+nsA
+nsA
+nsA
+nsA
+nsA
+asB
+atF
+auK
+auJ
+awS
+auI
+awO
+awO
+asB
+aCP
+aEj
+aFA
+aEj
+aEj
+aEj
+aEj
+aEj
+aEj
+aPm
+aQx
+aPm
+aTh
+aUJ
+aTh
+aXz
+aZg
+xRa
+bbF
+bbz
+bdv
+bbz
+bgb
+bhC
+biU
+bnp
+blJ
+bno
+bnf
+boP
+bqf
+brm
+bsC
+byt
+bxi
+byp
+bzJ
+bxY
+bCg
+byt
+bEu
+bFU
+bFU
+bFU
+bJU
+bEC
+bMt
+bNt
+bNt
+bEC
+bQT
+bSg
+bTk
+bSh
+bXr
+bWr
+bOv
+bYk
+bYk
+bZZ
+cjW
+bZZ
+ccR
+cdS
+ceP
+bQZ
+cgq
+chx
+kfS
+aaa
+kfS
+clt
+abm
+kfS
+mJo
+kfS
+kfS
+aaf
+aaf
+aaf
+aaf
+aaf
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(186,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aae
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaa
+aaa
+asB
+atH
+auM
+avO
+awU
+ayj
+azx
+aAB
+asB
+aEm
+aFz
+aQA
+aFz
+aFz
+aFz
+aFz
+aFz
+aFz
+aFz
+aFz
+aFz
+aTj
+aFz
+aVV
+aXB
+aZh
+baB
+aCR
+kYk
+bdx
+vHT
+boB
+boB
+biX
+bhV
+bka
+blZ
+bnk
+bpo
+bqk
+brp
+bsD
+byt
+bxl
+bys
+bzM
+bya
+bCj
+byt
+bEx
+bFU
+bFU
+bGl
+bJX
+bEC
+bMw
+cBE
+bOE
+bEC
+bQV
+coT
+bTm
+bUn
+bXr
+bWr
+bOv
+bYm
+bYm
+bZZ
+ckN
+bZZ
+ccR
+cdS
+ceP
+bQZ
+cgt
+chx
+cOT
+aaa
+cOT
+clt
+abm
+oEZ
+cOe
+cOe
+kfS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(187,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+asB
+asB
+asB
+asB
+asB
+asB
+asB
+asB
+asB
+aHk
+aFz
+bfb
+aKe
+aKe
+aKe
+aFz
+kdF
+aNX
+aPo
+aQz
+aCR
+aCR
+aCR
+aCR
+aXy
+aZe
+aCR
+aCR
+bcy
+bdw
+beG
+boB
+bhE
+bnp
+bkv
+blL
+bnp
+bnh
+bnp
+brx
+bte
+bup
+byt
+cBu
+byr
+bzL
+bxZ
+bCi
+byt
+bEw
+bFU
+bEL
+bGk
+bJW
+bEC
+bMv
+bNu
+bMv
+bEC
+bQT
+bSi
+bUn
+bTl
+bXr
+bNZ
+bOy
+bZd
+bYl
+caa
+ckM
+cbW
+ceQ
+ceQ
+ceQ
+cft
+cgs
+chy
+cOT
+aaa
+cOT
+clt
+abm
+ttL
+cOe
+cOe
+kfS
+aaa
+fIs
+fIs
+fIs
+fIs
+fIs
+fIs
+fIs
+aaS
+aaS
+aba
+aaS
+aaS
+aaS
+aaS
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(188,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+atS
+aaf
+aoV
+aoV
+atS
+aaf
+aaf
+aaf
+asB
+aCR
+aEn
+aCR
+aKe
+aKe
+aKe
+aFz
+aCR
+aCR
+aCR
+aCR
+aCR
+aTl
+aUL
+aVW
+aXD
+aZj
+baD
+bbG
+aTk
+bdy
+beI
+boB
+bhF
+bnp
+bib
+bki
+bma
+bnl
+bpq
+boB
+bth
+bus
+byt
+bxm
+byu
+bzN
+byb
+aGs
+byt
+bBF
+bFU
+oce
+bGz
+bJZ
+kzT
+bMx
+bNw
+bOF
+fcG
+bQW
+bSj
+bTn
+bUo
+bNq
+bOk
+bOB
+bPs
+bYo
+bSc
+bSc
+cbd
+ccT
+bSc
+bSc
+cfu
+cgu
+chA
+kfS
+aaa
+kfS
+clt
+abm
+ajM
+cOe
+cOe
+kfS
+ktS
+aaS
+aaa
+aaf
+aaa
+acy
+aaa
+aaf
+aaa
+aaf
+aaa
+aaf
+aaa
+aaf
+aaa
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(189,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+atS
+aoV
+aoV
+aoV
+atS
+aoV
+aoV
+aaf
+gXs
+aHm
+aHn
+dmX
+aFz
+aFz
+aFz
+aFz
+aMZ
+aNZ
+aPp
+aQB
+aNa
+aTk
+aQE
+aQE
+aXC
+aZi
+baC
+aQE
+aQE
+bdy
+beH
+boB
+boB
+boB
+boB
+boB
+boB
+boB
+bpp
+boB
+brr
+bsE
+byt
+byt
+byt
+byt
+byt
+byt
+byt
+bEy
+bFU
+bFT
+bFU
+bJY
+bEC
+bMv
+bNv
+bMv
+rcD
+wkN
+wkN
+wkN
+wkN
+wkN
+lAB
+lQG
+bPb
+bQG
+lAB
+wkN
+wkN
+wkN
+bQZ
+bQZ
+bQZ
+kfS
+chz
+kfS
+kfS
+kfS
+clt
+abm
+cCt
+cOe
+cmo
+kfS
+aaa
+aaS
+aaa
+cMQ
+crB
+cNa
+aaa
+cMQ
+crB
+cNa
+aaa
+cMQ
+crB
+cNa
+aaa
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(190,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+atS
+aoV
+aoV
+aoV
+aaH
+aoV
+aoV
+aaf
+gXs
+aHm
+aJV
+dmX
+csT
+kOL
+mZx
+xES
+aMZ
+aOb
+aPr
+biL
+aRU
+aQC
+aQC
+aQC
+czO
+aZl
+baE
+bbH
+bcA
+bdz
+beJ
+bge
+bhH
+biY
+biY
+biY
+bmd
+bnr
+bpr
+bgc
+btj
+buu
+bvM
+bxo
+bqe
+bzO
+bzO
+bzO
+bqe
+bEB
+bFW
+bFT
+tOq
+bFU
+bLi
+bMz
+bNy
+bOH
+dvO
+bQY
+vzp
+hRa
+bUp
+mNi
+mRe
+olr
+bPL
+cVK
+uCn
+eaI
+cbZ
+wkN
+cmo
+kfS
+lZl
+kfS
+chC
+ciL
+cOe
+cOe
+clv
+abm
+kfS
+kfS
+kfS
+kfS
+aaa
+aba
+aaf
+cMQ
+crC
+cNa
+aaa
+cMQ
+crC
+cNa
+aaa
+cMQ
+crC
+cNa
+aaf
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(191,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+atS
+aoV
+aoV
+aoV
+aaH
+aoV
+aoV
+aoV
+gXs
+aHm
+aNY
+aCR
+dmX
+dmX
+dmX
+dmX
+aMZ
+aOa
+aVX
+aZV
+aRL
+aTm
+aTm
+aTm
+aWh
+aZk
+aTm
+aTm
+bcz
+aTm
+aTm
+bgd
+bhG
+bhG
+bhG
+blO
+bmc
+bnq
+bgc
+bgc
+bru
+bsF
+btY
+bqe
+bqe
+bzO
+bzO
+bzO
+bqe
+bEA
+bFV
+bFT
+bGA
+bFU
+bFU
+bMy
+bNx
+bOG
+wkN
+uoB
+bSk
+bXs
+bXs
+lMg
+qeQ
+qeQ
+bPF
+bQI
+bXs
+sSW
+cbY
+wkN
+cOe
+kfS
+kfS
+kfS
+ccp
+cbf
+cbf
+cbf
+clu
+cmt
+aaa
+aaa
+gXs
+aaa
+aaa
+aaf
+aaa
+cMQ
+crC
+cNa
+aaf
+cMQ
+crC
+cNa
+aaf
+cMQ
+crC
+cNa
+aaa
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(192,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaH
+aoV
+aoV
+aoV
+atS
+aoV
+aoV
+aoV
+gXs
+aaf
+aaa
+aaf
+aaa
+aaa
+aaa
+aaf
+aNa
+aOd
+aOU
+tAS
+aNa
+aQE
+aQE
+aQE
+brL
+aQE
+aQE
+aQE
+bcC
+cBl
+aQE
+bgg
+aNa
+aaa
+bky
+bqh
+bme
+bnx
+bqe
+brA
+brw
+buw
+bvO
+bxq
+byv
+bzO
+bAR
+bzO
+bqe
+bED
+bFX
+bFT
+bGF
+bKa
+bFU
+bMA
+bNz
+bOI
+wkN
+bRa
+cbe
+bTp
+vCt
+bVs
+suN
+pCE
+qoT
+bZh
+bXs
+cbe
+wvX
+wkN
+cOe
+ceS
+cae
+kfS
+ccq
+cdq
+cjE
+ckr
+clw
+cmu
+aaf
+aaf
+aaf
+aaf
+aaf
+aaf
+aaf
+cMQ
+crC
+cNa
+aaa
+cMQ
+crC
+cNa
+aaa
+cMQ
+crC
+cNa
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(193,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+atS
+aoV
+aoV
+aoV
+atS
+aoV
+aoV
+aoV
+aaf
+aaf
+aaa
+aaf
+aaa
+aaa
+aaa
+aaf
+aNa
+aOc
+aPs
+bHr
+aNa
+aPq
+aQE
+aQE
+aXG
+aZm
+aQE
+aPq
+bcB
+aPq
+aQE
+bgf
+aNa
+aaf
+bky
+blP
+bns
+boF
+bqe
+brz
+brv
+cBt
+bvN
+bxp
+byv
+bzO
+bAQ
+bCl
+bqe
+bEC
+bEC
+bEM
+bGC
+bEC
+bEC
+bEC
+bEC
+bEC
+wkN
+dMZ
+bXs
+vPE
+bXs
+bVt
+dfh
+jSO
+jgm
+oUh
+vPE
+bXs
+bXs
+wkN
+cOe
+ceR
+cbf
+cbv
+uVS
+cQw
+cjD
+cjD
+cjD
+cjD
+cnj
+aaa
+gXs
+aaa
+aaa
+aaf
+aaa
+cMQ
+crC
+cNa
+aaa
+cMQ
+crC
+cNa
+aaa
+cMQ
+crC
+cNa
+aaa
+aaf
+aaS
+aaS
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(194,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aae
+aaa
+atS
+aoV
+aoV
+aoV
+atS
+aoV
+aoV
+aoV
+aoV
+aaf
+aaa
+aaf
+aaf
+aaf
+aaf
+aaf
+aNa
+aNa
+aNa
+aQF
+aNa
+aTn
+aNa
+aNa
+aNa
+aNa
+aNa
+cyp
+aNa
+bdA
+aNa
+aNa
+aNa
+aaa
+bky
+blR
+bns
+boF
+bqe
+brC
+brv
+buv
+bvO
+bxr
+byv
+bzO
+bzO
+bzO
+bqe
+bEF
+bky
+bEO
+bGK
+bKc
+kfS
+bMB
+bNA
+cmo
+wkN
+bUq
+flc
+wkN
+wkN
+wkN
+wkN
+wkN
+wkN
+wkN
+wkN
+jrE
+saK
+wkN
+cOx
+sLv
+ckS
+kfS
+jVl
+cds
+cjD
+ckt
+cly
+cmw
+cnj
+cnj
+cnj
+cnj
+aaa
+aaf
+aaa
+aaa
+crD
+aaa
+aaa
+aaa
+crD
+aaa
+aaa
+aaa
+csZ
+aaa
+aaa
+aaa
+aaf
+aaa
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(195,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aoV
+aoV
+aoV
+atS
+aoV
+aoV
+aoV
+aoV
+aaf
+aaa
+aaf
+aaa
+aaa
+aaa
+aaf
+aaf
+aaf
+aNa
+tAS
+aNa
+aQE
+aNa
+aaa
+aaf
+aaa
+aNa
+aQE
+aNa
+aQE
+aNa
+aaf
+aaf
+aaf
+bky
+btp
+bns
+boF
+bqe
+brB
+brv
+bsG
+bvP
+bqe
+bqe
+bzO
+bzO
+bzO
+bqe
+bEE
+bFY
+bEN
+bGG
+bKb
+cNX
+cNZ
+cNZ
+nyn
+wkN
+wkN
+wkN
+wkN
+kPi
+cOe
+cae
+oMT
+wCQ
+xzd
+wkN
+wkN
+wkN
+wkN
+kfS
+fkh
+kfS
+kfS
+ccr
+cdr
+cjF
+cks
+clx
+cmv
+cnk
+cnK
+cnK
+mQp
+cpi
+cpi
+cqJ
+vZA
+crk
+crk
+crk
+crk
+crk
+pTB
+cqJ
+vZA
+crk
+pTB
+cpi
+cpi
+ctB
+aaf
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(196,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aoV
+aoV
+aoV
+aaf
+aoV
+aoV
+aoV
+aoV
+aaf
+aaa
+aaf
+aaa
+aaa
+aaa
+aaf
+aaf
+aaa
+aNa
+tAS
+aNa
+aQE
+aNa
+aaf
+aaf
+aaf
+aNa
+aQE
+aNa
+aQE
+aNa
+aaa
+aaf
+gXs
+bky
+cyU
+bns
+boF
+bqe
+brD
+brP
+bsI
+bvO
+bxs
+byw
+bzO
+bzO
+bzO
+bqe
+bEG
+bGa
+bHs
+bGL
+bKd
+cNY
+bMC
+lVy
+jHt
+bPO
+kob
+bSm
+bTr
+tyE
+lkT
+cUb
+lkT
+tyE
+bTr
+bTr
+cbg
+bTr
+tyE
+bTr
+nGt
+cbg
+bTr
+cct
+cdu
+cjG
+cku
+clz
+cmx
+cnj
+cnj
+cnj
+cnj
+aaa
+aaf
+aaa
+aaa
+crF
+aaa
+aaa
+aaa
+crF
+aaa
+aaa
+aaa
+vPs
+aaa
+aaa
+aaa
+aaf
+aaa
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(197,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aoV
+aoV
+aoV
+aoV
+aaf
+aoV
+aoV
+aoV
+aoV
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aNa
+aeR
+aNa
+aQE
+aNa
+aaf
+aaa
+aaf
+aNa
+aQE
+aNa
+afE
+aNa
+aaa
+aaa
+gXs
+aaf
+aaa
+bns
+boF
+bqe
+bqe
+bry
+bsH
+bqe
+bqe
+bqe
+bqe
+bqe
+bqe
+bqe
+bEG
+bFZ
+bEM
+bIS
+bEC
+bEC
+bEC
+kfS
+sOs
+kfS
+kfS
+kfS
+kfS
+kfS
+kfS
+kfS
+kfS
+kfS
+kfS
+kfS
+kfS
+kfS
+kfS
+kfS
+clt
+kfS
+wVN
+kfS
+abm
+cjD
+cjD
+cjD
+cjD
+cnj
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+cMQ
+crE
+cNa
+aaa
+cMQ
+crE
+cNa
+aaa
+cMQ
+crE
+cNa
+aaa
+aaf
+aaS
+aaS
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(198,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aNa
+tAS
+aNa
+aQE
+aNa
+aaf
+aaf
+aaf
+aNa
+aQE
+aNa
+aQE
+aNa
+aaa
+aaa
+aaa
+aaf
+aaf
+bns
+boH
+biY
+brF
+brQ
+bsM
+buz
+buz
+buz
+buz
+buz
+cNU
+buz
+bEI
+bFZ
+bHu
+bIV
+bKf
+bLk
+bEC
+qlY
+nRG
+xWs
+xWs
+xWs
+xWs
+xWs
+xWs
+xWs
+bYr
+qlY
+kfS
+cad
+cbi
+iyG
+ccW
+kfS
+clt
+kfS
+wYn
+kfS
+gOF
+gGK
+lOr
+kfS
+gXs
+aaf
+aaf
+aaf
+aaf
+aaf
+aaf
+aaf
+cMQ
+crE
+cNa
+aaa
+cMQ
+crE
+cNa
+aaa
+cMQ
+crE
+cNa
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(199,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+avT
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aNa
+cyh
+aRW
+aTo
+aNa
+aaa
+aaf
+aaa
+aNa
+aTo
+aRW
+cyr
+aNa
+aaa
+aaa
+aaf
+aaf
+aaf
+bnu
+bhG
+bhG
+bhG
+bhG
+bsJ
+brE
+bhG
+bhG
+bhG
+bhG
+cNV
+bhG
+bEH
+bGb
+cBA
+bIU
+bKe
+bLj
+bEC
+qlY
+cac
+xgs
+xgs
+xgs
+xgs
+xgs
+xgs
+xgs
+imZ
+qlY
+kfS
+rSf
+kfS
+wly
+ccV
+noa
+iQg
+ccU
+pcz
+xgs
+xgs
+xgs
+wfC
+kfS
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+cMQ
+crE
+cNa
+aaf
+cMQ
+crE
+cNa
+aaf
+cMQ
+crE
+cNa
+aaa
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aae
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(200,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+afa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+jIy
+nJP
+jIy
+nJP
+gXs
+bky
+kgk
+brH
+bvQ
+bxt
+cNT
+bCm
+bDh
+bEC
+ydD
+bHv
+bIW
+bKe
+vHY
+bEC
+qlY
+xgs
+hTt
+xgs
+rba
+xgs
+bPP
+xgs
+iQc
+sMG
+xWs
+ccU
+nnM
+kfS
+wuO
+pDG
+kfS
+ceT
+kfS
+xgs
+chH
+chH
+xgs
+gcx
+kfS
+gXs
+aaf
+aaf
+aaf
+aaf
+aaf
+aaf
+aaf
+cMQ
+crE
+cNa
+aaa
+cMQ
+crE
+cNa
+aaa
+cMQ
+crE
+cNa
+aaf
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(201,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+qtH
+eXL
+qXJ
+eXL
+vdo
+bZi
+bqg
+oBQ
+wqW
+cNR
+brG
+brG
+bDg
+bEC
+bGd
+poc
+rNc
+bEC
+bLm
+bEC
+qlY
+xgs
+fkW
+xgs
+hTt
+xgs
+mDZ
+xgs
+kfS
+kfS
+kfS
+kfS
+tTw
+kfS
+kfS
+kfS
+kfS
+cPH
+kfS
+xgs
+chH
+chH
+xgs
+gcx
+kfS
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aba
+aaa
+cMQ
+crG
+cNa
+aaa
+cMQ
+crG
+cNa
+aaa
+cMQ
+crG
+cNa
+aaa
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(202,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aae
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+eXL
+vdo
+vdo
+vdo
+vdo
+bZi
+btq
+brI
+bvR
+cNS
+byx
+wkc
+bky
+bky
+bEC
+bGc
+bGc
+bEC
+bLl
+bEC
+qlY
+xgs
+uzm
+xgs
+hTt
+xgs
+hTt
+xgs
+kfS
+hbi
+uqu
+yaW
+iky
+kfS
+mHA
+ifJ
+kfS
+ceU
+kfS
+cgy
+xgs
+xgs
+xgs
+jdu
+kfS
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaS
+aaa
+aaf
+aaa
+aaf
+aaa
+aaf
+aaa
+aaf
+aaa
+aaf
+aaa
+aaf
+aaa
+aba
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(203,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+bky
+bky
+bky
+bky
+bky
+bky
+bky
+bky
+aaf
+gXs
+gXs
+gXs
+aaf
+aaa
+kfS
+qlY
+xgs
+hTt
+xgs
+hTt
+xgs
+hTt
+xgs
+kfS
+pYQ
+mLS
+qIO
+qSF
+lUP
+tTc
+vxh
+kfS
+cOe
+kfS
+kfS
+kfS
+kfS
+kfS
+kfS
+kfS
+gXs
+aaf
+aaf
+aaf
+aaf
+aaf
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(204,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaa
+aaf
+aaf
+aaf
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+cOT
+qlY
+xgs
+hTt
+xgs
+uzm
+xgs
+jLJ
+xgs
+kfS
+ewN
+qEB
+nzB
+xcz
+cVw
+jsO
+flP
+kfS
+cPI
+kfS
+gXs
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(205,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+cOT
+qlY
+xgs
+mDZ
+xgs
+fkW
+xgs
+hTt
+xgs
+kfS
+kfS
+kfS
+kfS
+kfS
+kfS
+kfS
+kfS
+kfS
+aag
+aag
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(206,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+kfS
+qlY
+xgs
+xgs
+xgs
+xgs
+xgs
+xgs
+xgs
+cOT
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aag
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(207,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aag
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+kfS
+qlY
+qlY
+qlY
+qlY
+qlY
+qlY
+qlY
+qlY
+cOT
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aae
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(208,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aag
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+kfS
+kfS
+kfS
+cOT
+cOT
+cOT
+cOT
+kfS
+kfS
+kfS
+aaa
+aaa
+aaa
+aaa
+aae
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aae
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(209,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aag
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+gXs
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(210,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aag
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(211,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aag
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(212,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cxn
+aaa
+aaa
+aaa
+aaa
+aag
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(213,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aag
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(214,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aag
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaf
+aae
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(215,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(216,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(217,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(218,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aae
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(219,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(220,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(221,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(222,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+gXs
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(223,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(224,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaa
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(225,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+bGf
+bLo
+bGf
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(226,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+bIX
+bGf
+bLn
+bGf
+bIX
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(227,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+bGf
+bGf
+bKh
+bLo
+bMD
+bGf
+bGf
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(228,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+bGe
+bGe
+bIY
+bKg
+bKg
+bKg
+bND
+bGe
+bGe
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(229,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaf
+bGf
+bHw
+bJa
+bKg
+bLp
+bKg
+bNF
+bOJ
+bGf
+aaf
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(230,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+bGe
+bGe
+bIZ
+bKg
+bKg
+bKg
+bNE
+bGe
+bGe
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(231,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+bGf
+bGf
+bKi
+bLr
+bME
+bNG
+bNG
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(232,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+bIX
+bGf
+bLq
+bGf
+bIX
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(233,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+bGf
+bGe
+bGf
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+xUn
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(234,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaf
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(235,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaf
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(236,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(237,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(238,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(239,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(240,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+naI
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(241,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+naI
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(242,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+naI
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(243,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(244,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(245,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(246,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(247,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+naI
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+naI
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(248,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+naI
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(249,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(250,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(251,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(252,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(253,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(254,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
+(255,1,1) = {"
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+cNd
+"}
diff --git a/_maps/syndicatestation.dm b/_maps/syndicatestation.dm
new file mode 100644
index 0000000000..69a8d426c7
--- /dev/null
+++ b/_maps/syndicatestation.dm
@@ -0,0 +1 @@
+#define FORCE_MAP "_maps/syndicatestation.json"
diff --git a/_maps/syndicatestation.json b/_maps/syndicatestation.json
new file mode 100644
index 0000000000..cb8eb70bd2
--- /dev/null
+++ b/_maps/syndicatestation.json
@@ -0,0 +1,11 @@
+{
+ "map_name": "Syndicate Station",
+ "map_path": "map_files/SyndicateStation",
+ "map_file": "SyndicateBoxStation.dmm",
+ "shuttles": {
+ "cargo": "cargo_box",
+ "ferry": "ferry_fancy",
+ "whiteship": "whiteship_box",
+ "emergency": "emergency_box"
+ }
+}
diff --git a/code/__DEFINES/_click.dm b/code/__DEFINES/_click.dm
new file mode 100644
index 0000000000..4118fb873d
--- /dev/null
+++ b/code/__DEFINES/_click.dm
@@ -0,0 +1,2 @@
+//The button used for dragging (only sent for unrelated mouse up/down messages during a drag)
+#define DRAG "drag"
diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm
index 00751f2cab..3024d9f4fe 100644
--- a/code/__DEFINES/antagonists.dm
+++ b/code/__DEFINES/antagonists.dm
@@ -75,6 +75,9 @@ GLOBAL_LIST_EMPTY(living_heart_cache) //A list of all living hearts in existance
#define IS_HERETIC(mob) (mob.mind?.has_antag_datum(/datum/antagonist/heretic))
#define IS_HERETIC_MONSTER(mob) (mob.mind?.has_antag_datum(/datum/antagonist/heretic_monster))
+/// Checks if the given mob is a malf ai.
+#define IS_MALF_AI(mob) (isAI(mob) && mob?.mind?.has_antag_datum(/datum/antagonist/traitor))
+
#define PATH_SIDE "Side"
#define PATH_ASH "Ash"
diff --git a/code/__DEFINES/color/colors.dm b/code/__DEFINES/color/colors.dm
index 664b8c0c0d..d88320d094 100644
--- a/code/__DEFINES/color/colors.dm
+++ b/code/__DEFINES/color/colors.dm
@@ -123,6 +123,8 @@
#define COLOR_THEME_OPERATIVE "#B8221F"
#define COLOR_THEME_GLASS "#75A4C4"
#define COLOR_THEME_CLOCKWORK "#CFBA47"
+#define COLOR_THEME_TRASENKNOX "#3ce375"
+#define COLOR_THEME_DETECTIVE "#c7b08b"
///Colors for eigenstates
#define COLOR_PERIWINKLEE "#9999FF"
@@ -188,10 +190,42 @@
#define CIRCUIT_COLOR_ENGINEERING "#F8D700"
#define CIRCUIT_COLOR_SUPPLY "#C47749"
-/// Colors for pride week
+/// === LGBT Colors Start ===
+/// Black and white colors will not be covered for the flags that do have them. We'll just use COLOR_WHITE and COLOR_BLACK.
+/// Colors for pride
#define COLOR_PRIDE_RED "#FF6666"
#define COLOR_PRIDE_ORANGE "#FC9F3C"
#define COLOR_PRIDE_YELLOW "#EAFF51"
#define COLOR_PRIDE_GREEN "#41FC66"
#define COLOR_PRIDE_BLUE "#42FFF2"
#define COLOR_PRIDE_PURPLE "#5D5DFC"
+
+/// Colors for transgender flag
+#define COLOR_TRANS_BLUE "#5ACFFA"
+#define COLOR_TRANS_PINK "#F5ABB9"
+
+/// Colors for lesbian flag
+#define COLOR_LESBIAN_ORANGERED "#D62900"
+#define COLOR_LESBIAN_SANDYBROWN "#FF9B55"
+#define COLOR_LESBIAN_PALEVIOLETRED "#D462A5"
+#define COLOR_LESBIAN_DARKMAGENTA "#A50062"
+
+/// Colors for bisexual flag
+#define COLOR_BISEXUAL_MEDIUMVIOLETRED "#D70071"
+#define COLOR_BISEXUAL_DARKORCHID "#9C4E97"
+#define COLOR_BISEXUAL_DARKBLUE "#0035A9"
+
+/// Colors for intersex flag
+#define COLOR_INTERSEX_GOLD "#FFD900"
+#define COLOR_INTERSEX_DARKMAGENTA "#7A00AB"
+
+/// Colors for asexual flag
+#define COLOR_ACE_DARKGRAY "#A4A5A4"
+#define COLOR_ACE_PURPLE "#810081"
+
+/// Colors for pansexual flag
+#define COLOR_PAN_DEEPPINK "#FF1B8D"
+#define COLOR_PAN_GOLD "#FFD900"
+#define COLOR_PAN_DODGERBLUE "#1BB3FF"
+
+/// === LGBT Colors End ===
diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm
index 4477c8aee8..6b9fc0d6ba 100644
--- a/code/__DEFINES/dcs/signals.dm
+++ b/code/__DEFINES/dcs/signals.dm
@@ -196,18 +196,6 @@
#define COMSIG_ENTER_AREA "enter_area" //from base of area/Entered(): (/area)
#define COMSIG_EXIT_AREA "exit_area" //from base of area/Exited(): (/area)
-#define COMSIG_CLICK "atom_click" //from base of atom/Click(): (location, control, params, mob/user)
-#define COMSIG_CLICK_SHIFT "shift_click" //from base of atom/ShiftClick(): (/mob), return flags also used by other signals.
- #define COMPONENT_ALLOW_EXAMINATE 1
- #define COMPONENT_DENY_EXAMINATE 2 //Higher priority compared to the above one
-
-#define COMSIG_CLICK_CTRL "ctrl_click" //from base of atom/CtrlClickOn(): (/mob)
-#define COMSIG_CLICK_ALT "alt_click" //from base of atom/AltClick(): (/mob)
-#define COMSIG_CLICK_CTRL_SHIFT "ctrl_shift_click" //from base of atom/CtrlShiftClick(/mob)
-#define COMSIG_MOUSEDROP_ONTO "mousedrop_onto" //from base of atom/MouseDrop(): (/atom/over, /mob/user)
- #define COMPONENT_NO_MOUSEDROP 1
-#define COMSIG_MOUSEDROPPED_ONTO "mousedropped_onto" //from base of atom/MouseDrop_T: (/atom/from, /mob/user)
-
// /area signals
#define COMSIG_AREA_ENTERED "area_entered" //from base of area/Entered(): (atom/movable/M)
#define COMSIG_AREA_EXITED "area_exited" //from base of area/Exited(): (atom/movable/M)
diff --git a/code/__DEFINES/dcs/signals/signals_action.dm b/code/__DEFINES/dcs/signals/signals_action.dm
new file mode 100644
index 0000000000..62eccf2823
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_action.dm
@@ -0,0 +1,6 @@
+/// From base of /datum/action/cooldown/proc/PreActivate(), sent to the action owner: (datum/action/cooldown/activated)
+#define COMSIG_MOB_ABILITY_STARTED "mob_ability_base_started"
+ /// Return to block the ability from starting / activating
+ #define COMPONENT_BLOCK_ABILITY_START (1<<0)
+/// From base of /datum/action/cooldown/proc/PreActivate(), sent to the action owner: (datum/action/cooldown/finished)
+#define COMSIG_MOB_ABILITY_FINISHED "mob_ability_base_finished"
diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm
new file mode 100644
index 0000000000..9b32abf0c9
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm
@@ -0,0 +1,2 @@
+///from base of atom/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
+#define COMSIG_ATOM_HITBY "atom_hitby"
diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.dm
new file mode 100644
index 0000000000..2b0c9c297e
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_mouse.dm
@@ -0,0 +1,25 @@
+// mouse signals. Format:
+// When the signal is called: (signal arguments)
+// All signals send the source datum of the signal as the first argument
+
+///from base of client/Click(): (atom/target, atom/location, control, params, mob/user)
+#define COMSIG_CLIENT_CLICK "atom_client_click"
+///from base of atom/Click(): (atom/location, control, params, mob/user)
+#define COMSIG_CLICK "atom_click"
+///from base of atom/ShiftClick(): (/mob)
+#define COMSIG_CLICK_SHIFT "shift_click"
+ /// Allows the user to examinate regardless of client.eye.
+ #define COMPONENT_ALLOW_EXAMINATE (1<<0)
+ /// Higher priority compared to the above one
+ #define COMPONENT_DENY_EXAMINATE (1<<1)
+///from base of atom/CtrlClickOn(): (/mob)
+#define COMSIG_CLICK_CTRL "ctrl_click"
+///from base of atom/AltClick(): (/mob)
+#define COMSIG_CLICK_ALT "alt_click"
+///from base of atom/CtrlShiftClick(/mob)
+#define COMSIG_CLICK_CTRL_SHIFT "ctrl_shift_click"
+///from base of atom/MouseDrop(): (/atom/over, /mob/user)
+#define COMSIG_MOUSEDROP_ONTO "mousedrop_onto"
+ #define COMPONENT_NO_MOUSEDROP (1<<0)
+///from base of atom/MouseDrop_T: (/atom/from, /mob/user)
+#define COMSIG_MOUSEDROPPED_ONTO "mousedropped_onto" //from base of atom/MouseDrop_T: (/atom/from, /mob/user)
diff --git a/code/__DEFINES/dcs/signals/signals_global.dm b/code/__DEFINES/dcs/signals/signals_global.dm
new file mode 100644
index 0000000000..3e0e1d2296
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_global.dm
@@ -0,0 +1,2 @@
+/// a person somewhere has thrown something : (mob/living/carbon/carbon_thrower, target)
+#define COMSIG_GLOB_CARBON_THROW_THING "!throw_thing"
diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm
new file mode 100644
index 0000000000..e6c3464ff7
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm
@@ -0,0 +1,2 @@
+/// from mob/proc/dropItemToGround()
+#define COMSIG_MOB_DROPPING_ITEM "mob_dropping_item"
diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm
index 88cba1c449..13882afb77 100644
--- a/code/__DEFINES/hud.dm
+++ b/code/__DEFINES/hud.dm
@@ -1,9 +1,235 @@
//HUD styles. Index order defines how they are cycled in F12.
-#define HUD_STYLE_STANDARD 1 //Standard hud
-#define HUD_STYLE_REDUCED 2 //Reduced hud (just hands and intent switcher)
-#define HUD_STYLE_NOHUD 3 //No hud (for screenshots)
+/// Standard hud
+#define HUD_STYLE_STANDARD 1
+/// Reduced hud (just hands and intent switcher)
+#define HUD_STYLE_REDUCED 2
+/// No hud (for screenshots)
+#define HUD_STYLE_NOHUD 3
-#define HUD_VERSIONS 3 //Used in show_hud(); Please ensure this is the same as the maximum index.
+/// Used in show_hud(); Please ensure this is the same as the maximum index.
+#define HUD_VERSIONS 3
+// Consider these images/atoms as part of the UI/HUD (apart of the appearance_flags)
+/// Used for progress bars and chat messages
+#define APPEARANCE_UI_IGNORE_ALPHA (RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|RESET_ALPHA|PIXEL_SCALE)
+/// Used for HUD objects
+#define APPEARANCE_UI (RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|PIXEL_SCALE)
+
+/*
+ These defines specificy screen locations. For more information, see the byond documentation on the screen_loc var.
+
+ The short version:
+
+ Everything is encoded as strings because apparently that's how Byond rolls.
+
+ "1,1" is the bottom left square of the user's screen. This aligns perfectly with the turf grid.
+ "1:2,3:4" is the square (1,3) with pixel offsets (+2, +4); slightly right and slightly above the turf grid.
+ Pixel offsets are used so you don't perfectly hide the turf under them, that would be crappy.
+
+ In addition, the keywords NORTH, SOUTH, EAST, WEST and CENTER can be used to represent their respective
+ screen borders. NORTH-1, for example, is the row just below the upper edge. Useful if you want your
+ UI to scale with screen size.
+
+ The size of the user's screen is defined by client.view (indirectly by world.view), in our case "15x15".
+ Therefore, the top right corner (except during admin shenanigans) is at "15,15"
+*/
+
+/proc/ui_hand_position(i) //values based on old hand ui positions (CENTER:-/+16,SOUTH:5)
+ var/x_off = -(!(i % 2))
+ var/y_off = round((i-1) / 2)
+ return"CENTER+[x_off]:16,SOUTH+[y_off]:5"
+
+/proc/ui_equip_position(mob/M)
+ var/y_off = round((M.held_items.len-1) / 2) //values based on old equip ui position (CENTER: +/-16,SOUTH+1:5)
+ return "CENTER:-16,SOUTH+[y_off+1]:5"
+
+/proc/ui_swaphand_position(mob/M, which = 1) //values based on old swaphand ui positions (CENTER: +/-16,SOUTH+1:5)
+ var/x_off = which == 1 ? -1 : 0
+ var/y_off = round((M.held_items.len-1) / 2)
+ return "CENTER+[x_off]:16,SOUTH+[y_off+1]:5"
+
+//Lower left, persistent menu
+#define ui_inventory "WEST:6,SOUTH:5"
+
+//Middle left indicators
+#define ui_lingchemdisplay "WEST,CENTER-1:15"
+#define ui_lingstingdisplay "WEST:6,CENTER-3:11"
+
+#define ui_devilsouldisplay "WEST:6,CENTER-1:15"
+
+//Lower center, persistent menu
+#define ui_sstore1 "CENTER-5:10,SOUTH:5"
+#define ui_id "CENTER-4:12,SOUTH:5"
+#define ui_belt "CENTER-3:14,SOUTH:5"
+#define ui_back "CENTER-2:14,SOUTH:5"
+#define ui_storage1 "CENTER+1:18,SOUTH:5"
+#define ui_storage2 "CENTER+2:20,SOUTH:5"
+#define ui_combo "CENTER+4:24,SOUTH+1:7" // combo meter for martial arts
+
+//Lower right, persistent menu
+#define ui_drop_throw "EAST-1:28,SOUTH+1:7"
+#define ui_pull_resist "EAST-2:26,SOUTH+1:7"
+#define ui_movi "EAST-2:26,SOUTH:5"
+#define ui_sprintbufferloc "EAST-2:26,SOUTH:18"
+#define ui_acti "EAST-3:24,SOUTH:5"
+#define ui_zonesel "EAST-1:28,SOUTH:5"
+#define ui_acti_alt "EAST-1:28,SOUTH:5" //alternative intent switcher for when the interface is hidden (F12)
+#define ui_crafting "EAST-5:20,SOUTH:5"//CIT CHANGE - moves this over one tile to accommodate for combat mode toggle
+#define ui_building "EAST-5:20,SOUTH:21"//CIT CHANGE - ditto
+#define ui_language_menu "EAST-5:4,SOUTH:21"//CIT CHANGE - ditto
+#define ui_voremode "EAST-5:20,SOUTH:5"
+
+//Upper-middle right (alerts)
+#define ui_alert1 "EAST-1:28,CENTER+5:27"
+#define ui_alert2 "EAST-1:28,CENTER+4:25"
+#define ui_alert3 "EAST-1:28,CENTER+3:23"
+#define ui_alert4 "EAST-1:28,CENTER+2:21"
+#define ui_alert5 "EAST-1:28,CENTER+1:19"
+
+//Upper left (action buttons)
+#define ui_action_palette "WEST+0:23,NORTH-1:5"
+#define ui_action_palette_offset(north_offset) ("WEST+0:23,NORTH-[1+north_offset]:5")
+
+#define ui_palette_scroll "WEST+1:8,NORTH-6:28"
+#define ui_palette_scroll_offset(north_offset) ("WEST+1:8,NORTH-[6+north_offset]:28")
+
+//Middle right (status indicators)
+#define ui_healthdoll "EAST-1:28,CENTER-2:13"
+#define ui_health "EAST-1:28,CENTER-1:15"
+#define ui_internal "EAST-1:28,CENTER+1:19"//CIT CHANGE - moves internal icon up a little bit to accommodate for the stamina meter
+#define ui_mood "EAST-1:28,CENTER-3:10"
+// #define ui_spacesuit "EAST-1:28,CENTER-4:10"
+
+//Pop-up inventory
+#define ui_shoes "WEST+1:8,SOUTH:5"
+#define ui_iclothing "WEST:6,SOUTH+1:7"
+#define ui_oclothing "WEST+1:8,SOUTH+1:7"
+#define ui_gloves "WEST+2:10,SOUTH+1:7"
+#define ui_glasses "WEST:6,SOUTH+3:11"
+#define ui_mask "WEST+1:8,SOUTH+2:9"
+#define ui_ears "WEST+2:10,SOUTH+2:9"
+#define ui_neck "WEST:6,SOUTH+2:9"
+#define ui_head "WEST+1:8,SOUTH+3:11"
+
+//Generic living
+#define ui_living_pull "EAST-1:28,CENTER-2:15"
+#define ui_living_health "EAST-1:28,CENTER:15"
+#define ui_living_healthdoll "EAST-1:28,CENTER-1:15"
+
+//Monkeys
+#define ui_monkey_head "CENTER-5:13,SOUTH:5"
+#define ui_monkey_mask "CENTER-4:14,SOUTH:5"
+#define ui_monkey_neck "CENTER-3:15,SOUTH:5"
+#define ui_monkey_back "CENTER-2:16,SOUTH:5"
+
+//Drones
+#define ui_drone_drop "CENTER+1:18,SOUTH:5"
+#define ui_drone_pull "CENTER+2:2,SOUTH:5"
+#define ui_drone_storage "CENTER-2:14,SOUTH:5"
+#define ui_drone_head "CENTER-3:14,SOUTH:5"
+
+//Cyborgs
+#define ui_borg_health "EAST-1:28,CENTER-1:15"
+#define ui_borg_pull "EAST-2:26,SOUTH+1:7"
+#define ui_borg_radio "EAST-1:28,SOUTH+1:7"
+#define ui_borg_intents "EAST-2:26,SOUTH:5"
+#define ui_borg_lamp "CENTER-3:16, SOUTH:5"
+#define ui_borg_tablet "CENTER-4:16, SOUTH:5"
+#define ui_inv1 "CENTER-2:16,SOUTH:5"
+#define ui_inv2 "CENTER-1 :16,SOUTH:5"
+#define ui_inv3 "CENTER :16,SOUTH:5"
+#define ui_borg_module "CENTER+1:16,SOUTH:5"
+#define ui_borg_store "CENTER+2:16,SOUTH:5"
+#define ui_borg_camera "CENTER+3:21,SOUTH:5"
+#define ui_borg_alerts "CENTER+4:21,SOUTH:5"
+#define ui_borg_language_menu "CENTER+4:21,SOUTH+1:5"
#define ui_borg_pda_send "CENTER+5:21,SOUTH:5" // To the right of the alert panel
#define ui_borg_pda_log "CENTER+6:21,SOUTH:5"
+#define ui_borg_sensor "CENTER-6:16, SOUTH:5" //LEGACY
+#define ui_borg_thrusters "CENTER-5:16, SOUTH:5" //LEGACY
+
+//Aliens
+#define ui_alien_health "EAST,CENTER-1:15"
+#define ui_alienplasmadisplay "EAST,CENTER-2:15"
+#define ui_alien_queen_finder "EAST,CENTER-3:15"
+#define ui_alien_storage_r "CENTER+1:18,SOUTH:5"
+#define ui_alien_language_menu "EAST-3:26,SOUTH:5"
+
+//Constructs
+#define ui_construct_pull "EAST,CENTER-2:15"
+#define ui_construct_health "EAST,CENTER:15"
+
+//AI
+#define ui_ai_core "BOTTOM:6,RIGHT-4"
+#define ui_ai_shuttle "BOTTOM:6,RIGHT-3"
+#define ui_ai_announcement "BOTTOM:6,RIGHT-2"
+#define ui_ai_state_laws "BOTTOM:6,RIGHT-1"
+#define ui_ai_pda_log "BOTTOM:6,RIGHT"
+#define ui_ai_pda_send "BOTTOM+1:6,RIGHT"
+#define ui_ai_language_menu "BOTTOM+1:8,RIGHT-2:30"
+
+#define ui_ai_crew_monitor "BOTTOM:6,CENTER-1"
+#define ui_ai_crew_manifest "BOTTOM:6,CENTER"
+#define ui_ai_alerts "BOTTOM:6,CENTER+1"
+
+#define ui_ai_view_images "BOTTOM:6,LEFT+4"
+#define ui_ai_camera_list "BOTTOM:6,LEFT+3"
+#define ui_ai_track_with_camera "BOTTOM:6,LEFT+2"
+#define ui_ai_camera_light "BOTTOM:6,LEFT+1"
+#define ui_ai_sensor "BOTTOM:6,LEFT"
+#define ui_ai_multicam "BOTTOM+1:6,LEFT+1"
+#define ui_ai_add_multicam "BOTTOM+1:6,LEFT"
+#define ui_ai_take_picture "BOTTOM+2:6,LEFT"
+
+
+// pAI
+// #define ui_pai_software "SOUTH:6,WEST"
+// #define ui_pai_shell "SOUTH:6,WEST+1"
+// #define ui_pai_chassis "SOUTH:6,WEST+2"
+// #define ui_pai_rest "SOUTH:6,WEST+3"
+// #define ui_pai_light "SOUTH:6,WEST+4"
+// #define ui_pai_newscaster "SOUTH:6,WEST+5"
+// #define ui_pai_host_monitor "SOUTH:6,WEST+6"
+// #define ui_pai_crew_manifest "SOUTH:6,WEST+7"
+// #define ui_pai_state_laws "SOUTH:6,WEST+8"
+// #define ui_pai_pda_send "SOUTH:6,WEST+9"
+// #define ui_pai_pda_log "SOUTH:6,WEST+10"
+// #define ui_pai_take_picture "SOUTH:6,WEST+12"
+// #define ui_pai_view_images "SOUTH:6,WEST+13"
+
+//Ghosts
+#define ui_ghost_jumptomob "SOUTH:6,CENTER-3:24"
+#define ui_ghost_orbit "SOUTH:6,CENTER-2:24"
+#define ui_ghost_reenter_corpse "SOUTH:6,CENTER-1:24"
+#define ui_ghost_teleport "SOUTH:6,CENTER:24"
+#define ui_ghost_pai "SOUTH: 6, CENTER+1:24"
+#define ui_ghost_mafia "SOUTH: 6, CENTER+2:24"
+#define ui_ghost_spawners "SOUTH: 6, CENTER+1:24" // LEGACY. SAME LOC AS PAI
+
+//UI position overrides for 1:1 screen layout. (default is 7:5)
+#define ui_stamina "EAST-1:28,CENTER:17" // replacing internals button
+#define ui_overridden_resist "EAST-3:24,SOUTH+1:7"
+#define ui_clickdelay "CENTER,SOUTH+1:-31"
+#define ui_resistdelay "EAST-3:24,SOUTH+1:4"
+#define ui_combat_toggle "EAST-4:22,SOUTH:5"
+
+#define ui_boxcraft "EAST-4:22,SOUTH+1:6"
+#define ui_boxarea "EAST-4:6,SOUTH+1:6"
+#define ui_boxlang "EAST-5:22,SOUTH+1:6"
+#define ui_boxvore "EAST-5:22,SOUTH+1:6"
+
+#define ui_wanted_lvl "NORTH,11"
+
+// Defines relating to action button positions
+
+/// Whatever the base action datum thinks is best
+#define SCRN_OBJ_DEFAULT "default"
+/// Floating somewhere on the hud, not in any predefined place
+#define SCRN_OBJ_FLOATING "floating"
+/// In the list of buttons stored at the top of the screen
+#define SCRN_OBJ_IN_LIST "list"
+/// In the collapseable palette
+#define SCRN_OBJ_IN_PALETTE "palette"
+
+/// The filter name for the hover outline
+#define HOVER_OUTLINE_FILTER "hover_outline"
diff --git a/code/__DEFINES/logging.dm b/code/__DEFINES/logging.dm
index 96201d71c2..84d6d0ae21 100644
--- a/code/__DEFINES/logging.dm
+++ b/code/__DEFINES/logging.dm
@@ -1,25 +1,26 @@
//Investigate logging defines
-#define INVESTIGATE_ATMOS "atmos"
-#define INVESTIGATE_BOTANY "botany"
-#define INVESTIGATE_CARGO "cargo"
-#define INVESTIGATE_EXPERIMENTOR "experimentor"
-#define INVESTIGATE_GRAVITY "gravity"
-#define INVESTIGATE_RECORDS "records"
-#define INVESTIGATE_SINGULO "singulo"
-#define INVESTIGATE_SUPERMATTER "supermatter"
-#define INVESTIGATE_TELESCI "telesci"
-#define INVESTIGATE_WIRES "wires"
-#define INVESTIGATE_PORTAL "portals"
-#define INVESTIGATE_RESEARCH "research"
-#define INVESTIGATE_HALLUCINATIONS "hallucinations"
-#define INVESTIGATE_RADIATION "radiation"
-#define INVESTIGATE_EXONET "exonet"
-#define INVESTIGATE_NANITES "nanites"
-#define INVESTIGATE_CIRCUIT "circuit"
-#define INVESTIGATE_FERMICHEM "fermichem"
-#define INVESTIGATE_RCD "rcd"
-#define INVESTIGATE_CRYOGENICS "cryogenics"
-#define INVESTIGATE_GHOST "ghost"
+#define INVESTIGATE_ATMOS "atmos"
+#define INVESTIGATE_BOTANY "botany"
+#define INVESTIGATE_CARGO "cargo"
+#define INVESTIGATE_CIRCUIT "circuit"
+#define INVESTIGATE_CRYOGENICS "cryogenics"
+#define INVESTIGATE_DEATHS "deaths"
+#define INVESTIGATE_EXONET "exonet"
+#define INVESTIGATE_EXPERIMENTOR "experimentor"
+#define INVESTIGATE_FERMICHEM "fermichem"
+#define INVESTIGATE_GHOST "ghost"
+#define INVESTIGATE_GRAVITY "gravity"
+#define INVESTIGATE_HALLUCINATIONS "hallucinations"
+#define INVESTIGATE_NANITES "nanites"
+#define INVESTIGATE_PORTAL "portals"
+#define INVESTIGATE_RADIATION "radiation"
+#define INVESTIGATE_RCD "rcd"
+#define INVESTIGATE_RECORDS "records"
+#define INVESTIGATE_RESEARCH "research"
+#define INVESTIGATE_SINGULO "singulo"
+#define INVESTIGATE_SUPERMATTER "supermatter"
+#define INVESTIGATE_TELESCI "telesci"
+#define INVESTIGATE_WIRES "wires"
// Logging types for log_message()
#define LOG_ATTACK (1 << 0)
diff --git a/code/__DEFINES/maths.dm b/code/__DEFINES/maths.dm
index 60d02c1e49..01a295634f 100644
--- a/code/__DEFINES/maths.dm
+++ b/code/__DEFINES/maths.dm
@@ -30,6 +30,8 @@
#define CEILING(x, y) ( -round(-(x) / (y)) * (y) )
+#define ROUND_UP(x) ( -round(-(x)))
+
// round() acts like floor(x, 1) by default but can't handle other values
#define FLOOR(x, y) ( round((x) / (y)) * (y) )
diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm
index 603d01b011..edd9149fa3 100644
--- a/code/__DEFINES/misc.dm
+++ b/code/__DEFINES/misc.dm
@@ -304,10 +304,6 @@ GLOBAL_LIST_INIT(pda_reskins, list(
*/
-// Consider these images/atoms as part of the UI/HUD
-#define APPEARANCE_UI_IGNORE_ALPHA (RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|RESET_ALPHA|PIXEL_SCALE)
-#define APPEARANCE_UI (RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|PIXEL_SCALE)
-
//Just space
#define SPACE_ICON_STATE "[((x + y) ^ ~(x * y) + z) % 25]"
@@ -525,7 +521,8 @@ GLOBAL_LIST_INIT(pda_reskins, list(
#define VARSET_TO_LIST(L, V) if(L) L[#V] = V
#define VARSET_TO_LIST_IF(L, V, C...) if(L && (C)) L[#V] = V
-#define PREF_SAVELOAD_COOLDOWN 5
+#define PREF_LOAD_COOLDOWN 5
+#define PREF_SAVE_COOLDOWN 2 SECONDS
#define VOMIT_TOXIC 1
#define VOMIT_PURPLE 2
@@ -536,9 +533,6 @@ GLOBAL_LIST_INIT(pda_reskins, list(
#define FALL_NO_MESSAGE (1<<1) //Used to suppress the "[A] falls through [old_turf]" messages where it'd make little sense at all, like going downstairs.
#define FALL_STOP_INTERCEPTING (1<<2) //Used in situations where halting the whole "intercept" loop would be better, like supermatter dusting (and thus deleting) the atom.
-//Misc text define. Does 4 spaces. Used as a makeshift tabulator.
-#define FOURSPACES " "
-
#define CRYOMOBS 'icons/obj/cryo_mobs.dmi'
#define CUSTOM_HOLOFORM_DELAY 10 SECONDS //prevents spamming to make lag. it's pretty expensive to do this.
diff --git a/code/__DEFINES/text.dm b/code/__DEFINES/text.dm
index 58c24747e0..bf60d6e725 100644
--- a/code/__DEFINES/text.dm
+++ b/code/__DEFINES/text.dm
@@ -1,5 +1,50 @@
+/// Does 4 spaces. Used as a makeshift tabulator.
+#define FOURSPACES " "
+
+/// Standard maptext
/// Prepares a text to be used for maptext. Use this so it doesn't look hideous.
#define MAPTEXT(text) {"[##text] "}
-/// Macro from Lummox used to get height from a MeasureText proc
-#define WXH_TO_HEIGHT(x) text2num(copytext(x, findtextEx(x, "x") + 1))
+/**
+ * Pixel-perfect scaled fonts for use in the MAP element as defined in skin.dmf
+ *
+ * Four sizes to choose from, use the sizes as mentioned below.
+ * Between the variations and a step there should be an option that fits your use case.
+ * BYOND uses pt sizing, different than px used in TGUI. Using px will make it look blurry due to poor antialiasing.
+ *
+ * Default sizes are prefilled in the macro for ease of use and a consistent visual look.
+ * To use a step other than the default in the macro, specify it in a span style.
+ * For example: MAPTEXT_PIXELLARI("Some large maptext here ")
+ */
+/// Large size (ie: context tooltips) - Size options: 12pt 24pt.
+#define MAPTEXT_PIXELLARI(text) {"[##text] "}
+
+/// Standard size (ie: normal runechat) - Size options: 6pt 12pt 18pt.
+#define MAPTEXT_GRAND9K(text) {"[##text] "}
+
+/// Small size. (ie: context subtooltips, spell delays) - Size options: 12pt 24pt.
+#define MAPTEXT_TINY_UNICODE(text) {"[##text] "}
+
+/// Smallest size. (ie: whisper runechat) - Size options: 6pt 12pt 18pt.
+#define MAPTEXT_SPESSFONT(text) {"[##text] "}
+
+/**
+ * Prepares a text to be used for maptext, using a variable size font.
+ *
+ * More flexible but doesn't scale pixel perfect to BYOND icon resolutions.
+ * (May be blurry.) Can use any size in pt or px.
+ *
+ * You MUST Specify the size when using the macro
+ * For example: MAPTEXT_VCR_OSD_MONO("Some large maptext here ")
+ */
+/// Prepares a text to be used for maptext, using a variable size font.
+/// Variable size font. More flexible but doesn't scale pixel perfect to BYOND icon resolutions. (May be blurry.) Can use any size in pt or px.
+#define MAPTEXT_VCR_OSD_MONO(text) {"[##text] "}
+
+/// Macro from Lummox used to get height from a MeasureText proc.
+/// resolves the MeasureText() return value once, then resolves the height, then sets return_var to that.
+#define WXH_TO_HEIGHT(measurement, return_var) \
+ do { \
+ var/_measurement = measurement; \
+ return_var = text2num(copytext(_measurement, findtextEx(_measurement, "x") + 1)); \
+ } while(FALSE);
diff --git a/code/__DEFINES/vv.dm b/code/__DEFINES/vv.dm
index a04f02bd6a..86a3bd4c31 100644
--- a/code/__DEFINES/vv.dm
+++ b/code/__DEFINES/vv.dm
@@ -18,6 +18,7 @@
#define VV_NULL "NULL"
#define VV_RESTORE_DEFAULT "Restore to Default"
#define VV_MARKED_DATUM "Marked Datum"
+#define VV_TAGGED_DATUM "Tagged Datum"
#define VV_BITFIELD "Bitfield"
#define VV_TEXT_LOCATE "Custom Reference Locate"
#define VV_PROCCALL_RETVAL "Return Value of Proccall"
@@ -73,6 +74,7 @@
#define VV_HK_EXPOSE "expose"
#define VV_HK_CALLPROC "proc_call"
#define VV_HK_MARK "mark"
+#define VV_HK_TAG "tag"
#define VV_HK_ADDCOMPONENT "addcomponent"
#define VV_HK_MODIFY_TRAITS "modtraits"
#define VV_HK_VIEW_REFERENCES "viewreferences"
diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm
index b805babb7a..3b092fd3b7 100644
--- a/code/__HELPERS/_lists.dm
+++ b/code/__HELPERS/_lists.dm
@@ -495,10 +495,10 @@
return sortTim(L, order >= 0 ? GLOBAL_PROC_REF(cmp_records_asc) : GLOBAL_PROC_REF(cmp_records_dsc))
//any value in a list
-/proc/sortList(list/L, cmp=GLOBAL_PROC_REF(cmp_text_asc))
+/proc/sort_list(list/L, cmp=GLOBAL_PROC_REF(cmp_text_asc))
return sortTim(L.Copy(), cmp)
-//uses sortList() but uses the var's name specifically. This should probably be using mergeAtom() instead
+//uses sort_list() but uses the var's name specifically. This should probably be using mergeAtom() instead
/proc/sortNames(list/L, order=1)
return sortTim(L.Copy(), order >= 0 ? GLOBAL_PROC_REF(cmp_name_asc) : GLOBAL_PROC_REF(cmp_name_dsc))
diff --git a/code/__HELPERS/angles.dm b/code/__HELPERS/angles.dm
index a3fc2404bd..0835135788 100644
--- a/code/__HELPERS/angles.dm
+++ b/code/__HELPERS/angles.dm
@@ -16,7 +16,7 @@
/proc/Get_Angle(atom/movable/start,atom/movable/end)//For beams.
if(!start || !end)
- return 0
+ return FALSE
var/dy
var/dx
dy=(32*end.y+end.pixel_y)-(32*start.y+start.pixel_y)
diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm
index 2fbf087288..047888e420 100644
--- a/code/__HELPERS/cmp.dm
+++ b/code/__HELPERS/cmp.dm
@@ -4,6 +4,13 @@
/proc/cmp_numeric_asc(a,b)
return a - b
+// please don't ask
+/proc/cmp_numeric_text_desc(a, b)
+ return text2num(b) - text2num(a)
+
+/proc/cmp_numeric_text_asc(a, b)
+ return text2num(a) - text2num(b)
+
/proc/cmp_text_asc(a,b)
return sorttext(b,a)
diff --git a/code/__HELPERS/files.dm b/code/__HELPERS/files.dm
index aad5b4cab1..a97d1280ea 100644
--- a/code/__HELPERS/files.dm
+++ b/code/__HELPERS/files.dm
@@ -45,12 +45,12 @@
var/time_to_wait = GLOB.fileaccess_timer - world.time
if(time_to_wait > 0)
to_chat(src, "Error: file_spam_check(): Spam. Please wait [DisplayTimeText(time_to_wait)]. ")
- return 1
+ return TRUE
var/delay = FTPDELAY
if(holder)
delay *= ADMIN_FTPDELAY_MODIFIER
GLOB.fileaccess_timer = world.time + delay
- return 0
+ return FALSE
#undef FTPDELAY
#undef ADMIN_FTPDELAY_MODIFIER
diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm
index cab5a31a4f..e177fa2860 100644
--- a/code/__HELPERS/game.dm
+++ b/code/__HELPERS/game.dm
@@ -97,8 +97,8 @@
if(C == must_be_alone)
continue
if(our_area == get_area(C))
- return 0
- return 1
+ return FALSE
+ return TRUE
//We used to use linear regression to approximate the answer, but Mloc realized this was actually faster.
//And lo and behold, it is, and it's more accurate to boot.
@@ -310,14 +310,14 @@
var/turf/T
if(X1==X2)
if(Y1==Y2)
- return 1 //Light cannot be blocked on same tile
+ return TRUE //Light cannot be blocked on same tile
else
var/s = SIGN(Y2-Y1)
Y1+=s
while(Y1!=Y2)
T=locate(X1,Y1,Z)
if(T.opacity)
- return 0
+ return FALSE
Y1+=s
else
var/m=(32*(Y2-Y1)+(PY2-PY1))/(32*(X2-X1)+(PX2-PX1))
@@ -333,8 +333,8 @@
X1+=signX //Line exits tile horizontally
T=locate(X1,Y1,Z)
if(T.opacity)
- return 0
- return 1
+ return FALSE
+ return TRUE
#undef SIGNV
@@ -343,13 +343,13 @@
var/turf/Bturf = get_turf(B)
if(!Aturf || !Bturf)
- return 0
+ return FALSE
if(inLineOfSight(Aturf.x,Aturf.y, Bturf.x,Bturf.y,Aturf.z))
- return 1
+ return TRUE
else
- return 0
+ return FALSE
/proc/get_cardinal_step_away(atom/start, atom/finish) //returns the position of a step from start away from finish, in one of the cardinal directions
diff --git a/code/__HELPERS/heap.dm b/code/__HELPERS/heap.dm
index eabcb0e0dc..b8b24c2360 100644
--- a/code/__HELPERS/heap.dm
+++ b/code/__HELPERS/heap.dm
@@ -29,7 +29,7 @@
//(i.e the max or the min dependant on the comparison function)
/datum/heap/proc/pop()
if(!length(L))
- return 0
+ return FALSE
. = L[1]
L[1] = L[length(L)]
@@ -60,7 +60,7 @@
//or 0 if there's no child
/datum/heap/proc/get_greater_child(index)
if(index * 2 > length(L))
- return 0
+ return FALSE
if(index * 2 + 1 > length(L))
return index * 2
diff --git a/code/__HELPERS/icon_smoothing.dm b/code/__HELPERS/icon_smoothing.dm
index 801a2cd431..0e4010aff0 100644
--- a/code/__HELPERS/icon_smoothing.dm
+++ b/code/__HELPERS/icon_smoothing.dm
@@ -56,7 +56,7 @@
/proc/calculate_adjacencies(atom/A)
if(!A.loc)
- return 0
+ return FALSE
var/adjacencies = 0
@@ -64,7 +64,7 @@
if(ismovable(A))
AM = A
if(AM.can_be_unanchored && !AM.anchored)
- return 0
+ return FALSE
for(var/direction in GLOB.cardinals)
AM = find_type_in_direction(A, direction)
@@ -374,7 +374,7 @@
if(N_SOUTH|N_EAST|N_SOUTHEAST)
return SOUTHEAST
else
- return 0
+ return FALSE
//SSicon_smooth
/proc/queue_smooth_neighbors(atom/A)
diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm
index 378f59b768..eb0aa448d3 100644
--- a/code/__HELPERS/icons.dm
+++ b/code/__HELPERS/icons.dm
@@ -992,7 +992,7 @@ world
letter = lowertext(letter)
var/image/text_image = new(loc = A)
- text_image.maptext = MAPTEXT("[letter] ")
+ text_image.maptext = MAPTEXT("[letter] ")
text_image.pixel_x = 7
text_image.pixel_y = 5
qdel(atom_icon)
@@ -1027,15 +1027,15 @@ GLOBAL_LIST_EMPTY(friendly_animal_types)
//Returns the same icon specifed in the argument, but with the pixel drawn
/proc/DrawPixel(icon/I,colour,drawX,drawY)
if(!I)
- return 0
+ return FALSE
var/Iwidth = I.Width()
var/Iheight = I.Height()
if(drawX > Iwidth || drawX <= 0)
- return 0
+ return FALSE
if(drawY > Iheight || drawY <= 0)
- return 0
+ return FALSE
I.DrawBox(colour,drawX, drawY)
return I
@@ -1048,7 +1048,7 @@ GLOBAL_LIST_EMPTY(friendly_animal_types)
if(J) //Only set the icon if it succeeded, the icon without the pixel is 1000x better than a black square.
icon = J
return J
- return 0
+ return FALSE
//For creating consistent icons for human looking simple animals
/proc/get_flat_human_icon(icon_id, datum/job/J, datum/preferences/prefs, dummy_key, showDirs = GLOB.cardinals, outfit_override = null, no_anim = FALSE)
diff --git a/code/__HELPERS/pronouns.dm b/code/__HELPERS/pronouns.dm
index bfe09ba370..fd15c05c64 100644
--- a/code/__HELPERS/pronouns.dm
+++ b/code/__HELPERS/pronouns.dm
@@ -39,6 +39,21 @@
/datum/proc/p_es(temp_gender)
. = "es"
+/datum/proc/plural_s(pluralize)
+ switch(copytext_char(pluralize, -2))
+ if ("ss")
+ return "es"
+ if ("sh")
+ return "es"
+ if ("ch")
+ return "es"
+ else
+ switch(copytext_char(pluralize, -1))
+ if("s", "x", "z")
+ return "es"
+ else
+ return "s"
+
//like clients, which do have gender.
/client/p_they(capitalized, temp_gender)
if(!temp_gender)
diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm
index 835ddbf849..95e36ba1a5 100644
--- a/code/__HELPERS/roundend.dm
+++ b/code/__HELPERS/roundend.dm
@@ -668,7 +668,7 @@
SSticker.show_roundend_report(owner.client)
/datum/action/report/IsAvailable()
- return 1
+ return TRUE
/datum/action/report/Topic(href,href_list)
if(usr != owner)
diff --git a/code/__HELPERS/screen_objs.dm b/code/__HELPERS/screen_objs.dm
new file mode 100644
index 0000000000..aa86b6d579
--- /dev/null
+++ b/code/__HELPERS/screen_objs.dm
@@ -0,0 +1,91 @@
+/// Takes a screen loc string in the format
+/// "+-left-offset:+-pixel,+-bottom-offset:+-pixel"
+/// Where the :pixel is optional, and returns
+/// A list in the format (x_offset, y_offset)
+/// We require context to get info out of screen locs that contain relative info, so NORTH, SOUTH, etc
+/proc/screen_loc_to_offset(screen_loc, view)
+ if(!screen_loc)
+ return list(64, 64)
+ var/list/view_size = view_to_pixels(view)
+ var/x = 0
+ var/y = 0
+ // Time to parse for directional relative offsets
+ if(findtext(screen_loc, "EAST")) // If you're starting from the east, we start from the east too
+ x += view_size[1]
+ if(findtext(screen_loc, "WEST")) // HHHHHHHHHHHHHHHHHHHHHH WEST is technically a 1 tile offset from the start. Shoot me please
+ x += world.icon_size
+ if(findtext(screen_loc, "NORTH"))
+ y += view_size[2]
+ if(findtext(screen_loc, "SOUTH"))
+ y += world.icon_size
+ // Cut out everything we just parsed
+ screen_loc = cut_relative_direction(screen_loc)
+
+ var/list/x_and_y = splittext(screen_loc, ",")
+ var/list/x_pack = splittext(x_and_y[1], ":")
+ var/list/y_pack = splittext(x_and_y[2], ":")
+ x += text2num(x_pack[1]) * world.icon_size
+ y += text2num(y_pack[1]) * world.icon_size
+
+ if(length(x_pack) > 1)
+ x += text2num(x_pack[2])
+ if(length(y_pack) > 1)
+ y += text2num(y_pack[2])
+ return list(x, y)
+
+/// Takes a list in the form (x_offset, y_offset)
+/// And converts it to a screen loc string
+/// Accepts an optional view string/size to force the screen_loc around, so it can't go out of scope
+/proc/offset_to_screen_loc(x_offset, y_offset, view = null)
+ if(view)
+ var/list/view_bounds = view_to_pixels(view)
+ x_offset = clamp(x_offset, world.icon_size, view_bounds[1])
+ y_offset = clamp(y_offset, world.icon_size, view_bounds[2])
+
+ // Round with no argument is floor, so we get the non pixel offset here
+ var/x = round(x_offset / world.icon_size)
+ var/pixel_x = x_offset % world.icon_size
+ var/y = round(y_offset / world.icon_size)
+ var/pixel_y = y_offset % world.icon_size
+
+ var/list/generated_loc = list()
+ generated_loc += "[x]"
+ if(pixel_x)
+ generated_loc += ":[pixel_x]"
+ generated_loc += ",[y]"
+ if(pixel_y)
+ generated_loc += ":[pixel_y]"
+ return jointext(generated_loc, "")
+
+/**
+ * Returns a valid location to place a screen object without overflowing the viewport
+ *
+ * * target: The target location as a purely number based screen_loc string "+-left-offset:+-pixel,+-bottom-offset:+-pixel"
+ * * target_offset: The amount we want to offset the target location by. We explictly don't care about direction here, we will try all 4
+ * * view: The view variable of the client we're doing this for. We use this to get the size of the screen
+ *
+ * Returns a screen loc representing the valid location
+**/
+/proc/get_valid_screen_location(target_loc, target_offset, view)
+ var/list/offsets = screen_loc_to_offset(target_loc)
+ var/base_x = offsets[1]
+ var/base_y = offsets[2]
+
+ var/list/view_size = view_to_pixels(view)
+
+ // Bias to the right, down, left, and then finally up
+ if(base_x + target_offset < view_size[1])
+ return offset_to_screen_loc(base_x + target_offset, base_y, view)
+ if(base_y - target_offset > world.icon_size)
+ return offset_to_screen_loc(base_x, base_y - target_offset, view)
+ if(base_x - target_offset > world.icon_size)
+ return offset_to_screen_loc(base_x - target_offset, base_y, view)
+ if(base_y + target_offset < view_size[2])
+ return offset_to_screen_loc(base_x, base_y + target_offset, view)
+ stack_trace("You passed in a scren location {[target_loc]} and offset {[target_offset]} that can't be fit in the viewport Width {[view_size[1]]}, Height {[view_size[2]]}. what did you do lad")
+ return null // The fuck did you do lad
+
+/// Takes a screen_loc string and cut out any directions like NORTH or SOUTH
+/proc/cut_relative_direction(fragment)
+ var/static/regex/regex = regex(@"([A-Z])\w+", "g")
+ return regex.Replace(fragment, "")
diff --git a/code/__HELPERS/sorts/__main.dm b/code/__HELPERS/sorts/__main.dm
index 7732f2f237..0d95d1c3f6 100644
--- a/code/__HELPERS/sorts/__main.dm
+++ b/code/__HELPERS/sorts/__main.dm
@@ -138,7 +138,7 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new())
var/runHi = lo + 1
if(runHi >= hi)
- return 1
+ return TRUE
var/last = fetchElement(L,lo)
var/current = fetchElement(L,runHi++)
diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm
index dec44653af..204eb8e60b 100644
--- a/code/__HELPERS/text.dm
+++ b/code/__HELPERS/text.dm
@@ -228,15 +228,15 @@
/proc/text_in_list(haystack, list/needle_list, start=1, end=0)
for(var/needle in needle_list)
if(findtext(haystack, needle, start, end))
- return 1
- return 0
+ return TRUE
+ return FALSE
//Like above, but case sensitive
/proc/text_in_list_case(haystack, list/needle_list, start=1, end=0)
for(var/needle in needle_list)
if(findtextEx(haystack, needle, start, end))
- return 1
- return 0
+ return TRUE
+ return FALSE
//Adds 'char' ahead of 'text' until there are 'count' characters total
/proc/add_leading(text, count, char = " ")
@@ -301,7 +301,7 @@
else if(b == replace) //if B is the replacement char
newtext = copytext(newtext, 1, newtext_it) + a + copytext(newtext, newtext_it + length(newtext[newtext_it]))
else //The lists disagree, Uh-oh!
- return 0
+ return FALSE
text_it += length(a)
comp_it += length(b)
newtext_it += length(newtext[newtext_it])
@@ -311,7 +311,7 @@
//This proc returns the number of chars of the string that is the character
//This is used for detective work to determine fingerprint completion.
if(!text || !character)
- return 0
+ return FALSE
var/count = 0
var/lentext = length(text)
var/a = ""
@@ -403,7 +403,7 @@ GLOBAL_LIST_INIT(binary, list("0","1"))
. = findtextEx(haystack, char, start, end)
if(.)
return
- return 0
+ return FALSE
/proc/parsemarkdown_basic_step1(t, limited=FALSE)
if(length(t) <= 0)
@@ -828,3 +828,11 @@ GLOBAL_LIST_INIT(binary, list("0","1"))
if(prob(15))
corrupted_text += pick(corruption_options)
return corrupted_text
+
+/proc/format_text(text)
+ return replacetext(replacetext(text,"\proper ",""),"\improper ","")
+
+/// Removes all non-alphanumerics from the text, keep in mind this can lead to id conflicts
+/proc/sanitize_css_class_name(name)
+ var/static/regex/regex = new(@"[^a-zA-Z0-9]","g")
+ return replacetext(name, regex, "")
diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm
index 519a54b38d..0af855cbf6 100644
--- a/code/__HELPERS/time.dm
+++ b/code/__HELPERS/time.dm
@@ -14,7 +14,7 @@
var/MM = text2num(time2text(world.timeofday, "MM")) // get the current month
var/DD = text2num(time2text(world.timeofday, "DD")) // get the current day
if(month == MM && day == DD)
- return 1
+ return TRUE
//returns timestamp in a sql and a not-quite-compliant ISO 8601 friendly format
/proc/SQLtime(timevar)
@@ -41,7 +41,7 @@ GLOBAL_VAR_INIT(rollovercheck_last_timeofday, 0)
if(28 to INFINITY)
return 5
else
- return 1
+ return TRUE
//Takes a value of time in deciseconds.
//Returns a text value of that number in hours, minutes, or seconds.
diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm
index 3939fb94cc..130243db79 100644
--- a/code/__HELPERS/type2type.dm
+++ b/code/__HELPERS/type2type.dm
@@ -158,7 +158,7 @@
/proc/dir2angle(D)
switch(D)
if(NORTH)
- return 0
+ return FALSE
if(SOUTH)
return 180
if(EAST)
@@ -301,7 +301,7 @@
/proc/unix2date(timestamp, seperator = "-")
if(timestamp < 0)
- return 0 //Do not accept negative values
+ return FALSE //Do not accept negative values
var/year = 1970 //Unix Epoc begins 1970-01-01
var/dayInSeconds = 86400 //60secs*60mins*24hours
@@ -363,7 +363,7 @@
var/list/covered_parts = list()
if(!bpc)
- return 0
+ return FALSE
if(bpc & FULL_BODY)
covered_parts |= list(BODY_ZONE_L_ARM,BODY_ZONE_R_ARM,BODY_ZONE_HEAD,BODY_ZONE_CHEST,BODY_ZONE_L_LEG,BODY_ZONE_R_LEG)
@@ -557,7 +557,7 @@
//assumes format #RRGGBB #rrggbb
/proc/color_hex2num(A)
if(!A || length(A) != length_char(A))
- return 0
+ return FALSE
var/R = hex2num(copytext(A, 2, 4))
var/G = hex2num(copytext(A, 4, 6))
var/B = hex2num(copytext(A, 6, 0))
@@ -689,5 +689,11 @@
return 'modular_citadel/icons/ui/screen_operative.dmi'
if('icons/mob/screen_clockwork.dmi')
return 'modular_citadel/icons/ui/screen_clockwork.dmi'
+ if('icons/mob/screen_glass.dmi')
+ return 'modular_citadel/icons/ui/screen_glass.dmi'
+ if('icons/mob/screen_trasenknox.dmi')
+ return 'modular_citadel/icons/ui/screen_trasenknox.dmi'
+ if('icons/mob/screen_detective.dmi')
+ return 'modular_citadel/icons/ui/screen_detective.dmi'
else
return 'modular_citadel/icons/ui/screen_midnight.dmi'
diff --git a/code/__HELPERS/type_processing.dm b/code/__HELPERS/type_processing.dm
index ac7e5cab45..2b08b6d586 100644
--- a/code/__HELPERS/type_processing.dm
+++ b/code/__HELPERS/type_processing.dm
@@ -47,7 +47,7 @@
/proc/get_fancy_list_of_datum_types()
var/static/list/pre_generated_list
if (!pre_generated_list) //init
- pre_generated_list = make_types_fancy(sortList(typesof(/datum) - typesof(/atom)))
+ pre_generated_list = make_types_fancy(sort_list(typesof(/datum) - typesof(/atom)))
return pre_generated_list
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index 435523465d..d249609034 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -394,7 +394,7 @@ Turf and target are separate in case you want to teleport some distance from a t
/proc/get_edge_target_turf(atom/A, direction)
var/turf/target = locate(A.x, A.y, A.z)
if(!A || !target)
- return 0
+ return FALSE
//since NORTHEAST == NORTH|EAST, etc, doing it this way allows for diagonal mass drivers in the future
//and isn't really any more complicated
@@ -512,35 +512,35 @@ Turf and target are separate in case you want to teleport some distance from a t
current = get_step_towards(current, target_turf)
while(current != target_turf)
if(steps > length)
- return 0
+ return FALSE
if(current.opacity)
- return 0
+ return FALSE
for(var/thing in current)
var/atom/A = thing
if(A.opacity)
- return 0
+ return FALSE
current = get_step_towards(current, target_turf)
steps++
- return 1
+ return TRUE
/proc/is_blocked_turf(turf/T, exclude_mobs)
if(T.density)
- return 1
+ return TRUE
for(var/i in T)
var/atom/A = i
if(A.density && (!exclude_mobs || !ismob(A)))
- return 1
- return 0
+ return TRUE
+ return FALSE
/proc/is_anchored_dense_turf(turf/T) //like the older version of the above, fails only if also anchored
if(T.density)
- return 1
+ return TRUE
for(var/i in T)
var/atom/movable/A = i
if(A.density && A.anchored)
- return 1
- return 0
+ return TRUE
+ return FALSE
/proc/get_step_towards2(atom/ref , atom/trg)
var/base_dir = get_dir(ref, get_step_towards(ref,trg))
@@ -577,9 +577,9 @@ Turf and target are separate in case you want to teleport some distance from a t
//Returns: 1 if found, 0 if not.
/proc/hasvar(datum/A, varname)
if(A.vars.Find(lowertext(varname)))
- return 1
+ return TRUE
else
- return 0
+ return FALSE
/proc/get_cardinal_dir(atom/A, atom/B)
var/dx = abs(B.x - A.x)
@@ -700,7 +700,7 @@ Turf and target are separate in case you want to teleport some distance from a t
//of course mathematically this is just adding world.icon_size on again
/proc/getPixelDistance(atom/A, atom/B, centered = TRUE)
if(!istype(A)||!istype(B))
- return 0
+ return FALSE
. = bounds_dist(A, B) + sqrt((((A.pixel_x+B.pixel_x)**2) + ((A.pixel_y+B.pixel_y)**2)))
if(centered)
. += world.icon_size
@@ -741,31 +741,28 @@ GLOBAL_LIST_INIT(WALLITEMS_INVERSE, typecacheof(list(
//Direction works sometimes
if(is_type_in_typecache(O, GLOB.WALLITEMS_INVERSE))
if(O.dir == turn(dir, 180))
- return 1
+ return TRUE
else if(O.dir == dir)
- return 1
+ return TRUE
//Some stuff doesn't use dir properly, so we need to check pixel instead
//That's exactly what get_turf_pixel() does
if(get_turf_pixel(O) == locdir)
- return 1
+ return TRUE
if(is_type_in_typecache(O, GLOB.WALLITEMS_EXTERNAL) && check_external)
if(is_type_in_typecache(O, GLOB.WALLITEMS_INVERSE))
if(O.dir == turn(dir, 180))
- return 1
+ return TRUE
else if(O.dir == dir)
- return 1
+ return TRUE
//Some stuff is placed directly on the wallturf (signs)
for(var/obj/O in locdir)
if(is_type_in_typecache(O, GLOB.WALLITEMS) && check_external != 2)
if(O.pixel_x == 0 && O.pixel_y == 0)
- return 1
- return 0
-
-/proc/format_text(text)
- return replacetext(replacetext(text,"\proper ",""),"\improper ","")
+ return TRUE
+ return FALSE
/proc/check_target_facings(mob/living/initator, mob/living/target)
/*This can be used to add additional effects on interactions between mobs depending on how the mobs are facing each other, such as adding a crit damage to blows to the back of a guy's head.
@@ -838,25 +835,25 @@ GLOBAL_LIST_INIT(WALLITEMS_INVERSE, typecacheof(list(
/proc/IsValidSrc(datum/D)
if(istype(D))
return !QDELETED(D)
- return 0
+ return FALSE
//Compare A's dir, the clockwise dir of A and the anticlockwise dir of A
//To the opposite dir of the dir returned by get_dir(B,A)
//If one of them is a match, then A is facing B
/proc/is_A_facing_B(atom/A,atom/B)
if(!istype(A) || !istype(B))
- return 0
+ return FALSE
if(isliving(A))
var/mob/living/LA = A
if(LA.lying)
- return 0
+ return FALSE
var/goal_dir = get_dir(A,B)
var/clockwise_A_dir = turn(A.dir, -45)
var/anticlockwise_A_dir = turn(A.dir, 45)
if(A.dir == goal_dir || clockwise_A_dir == goal_dir || anticlockwise_A_dir == goal_dir)
- return 1
- return 0
+ return TRUE
+ return FALSE
/*
@@ -1049,10 +1046,10 @@ B --><-- A
/atom/proc/contains(var/atom/A)
if(!A)
- return 0
+ return FALSE
for(var/atom/location = A.loc, location, location = location.loc)
if(location == src)
- return 1
+ return TRUE
/proc/flick_overlay_static(O, atom/A, duration)
set waitfor = 0
@@ -1152,7 +1149,7 @@ GLOBAL_REAL_VAR(list/stack_trace_storage)
/proc/stoplag(initial_delay)
if (!Master || !(Master.current_runlevel & RUNLEVELS_DEFAULT))
sleep(world.tick_lag)
- return 1
+ return TRUE
if (!initial_delay)
initial_delay = world.tick_lag
. = 0
@@ -1568,11 +1565,11 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
/proc/num2sign(numeric)
if(numeric > 0)
- return 1
+ return TRUE
else if(numeric < 0)
return -1
else
- return 0
+ return FALSE
// Converts browser keycodes to BYOND keycodes.
/proc/browser_keycode_to_byond(keycode)
diff --git a/code/__HELPERS/view.dm b/code/__HELPERS/view.dm
index 1c92971802..6a4210bc53 100644
--- a/code/__HELPERS/view.dm
+++ b/code/__HELPERS/view.dm
@@ -1,15 +1,19 @@
/proc/getviewsize(view)
- var/viewX
- var/viewY
if(isnum(view))
var/totalviewrange = (view < 0 ? -1 : 1) + 2 * view
- viewX = totalviewrange
- viewY = totalviewrange
+ return list(totalviewrange, totalviewrange)
else
var/list/viewrangelist = splittext(view,"x")
- viewX = text2num(viewrangelist[1])
- viewY = text2num(viewrangelist[2])
- return list(viewX, viewY)
+ return list(text2num(viewrangelist[1]), text2num(viewrangelist[2]))
+
+/// Takes a string or num view, and converts it to pixel width/height in a list(pixel_width, pixel_height)
+/proc/view_to_pixels(view)
+ if(!view)
+ return list(0, 0)
+ var/list/view_info = getviewsize(view)
+ view_info[1] *= world.icon_size
+ view_info[2] *= world.icon_size
+ return view_info
/proc/in_view_range(mob/user, atom/A)
var/list/view_range = getviewsize(user.client.view)
diff --git a/code/__HELPERS/yelling.dm b/code/__HELPERS/yelling.dm
index 4383a245d4..25ec9580a1 100644
--- a/code/__HELPERS/yelling.dm
+++ b/code/__HELPERS/yelling.dm
@@ -30,7 +30,7 @@
#define RUN_YELL(_T, _P, _D) \
returned = max(_P - max(_T.get_yelling_resistance(_P), 0) - 1, 0); \
processed[_T] = returned;
- // _T.maptext = "[returned]";
+ // _T.maptext = MAPTEXT(returned);
var/list/turf/edges_next
var/list/turf/powers_next
diff --git a/code/_onclick/adjacent.dm b/code/_onclick/adjacent.dm
index e629a6eb57..06499b3a64 100644
--- a/code/_onclick/adjacent.dm
+++ b/code/_onclick/adjacent.dm
@@ -11,7 +11,7 @@
to check that the mob is not inside of something
*/
/atom/proc/Adjacent(atom/neighbor) // basic inheritance, unused
- return 0
+ return FALSE
// Not a sane use of the function and (for now) indicative of an error elsewhere
/area/Adjacent(var/atom/neighbor)
@@ -57,9 +57,9 @@
if(!src.ClickCross(get_dir(src,T1), border_only = 1, target_atom = target, mover = mover))
continue // could not enter src
- return 1 // we don't care about our own density
+ return TRUE // we don't care about our own density
- return 0
+ return FALSE
/*
Adjacency (to anything else):
@@ -78,11 +78,11 @@
// This is necessary for storage items not on your person.
/obj/item/Adjacent(var/atom/neighbor, var/recurse = 1)
if(neighbor == loc)
- return 1
+ return TRUE
if(isitem(loc))
if(recurse > 0)
return loc.Adjacent(neighbor,recurse - 1)
- return 0
+ return FALSE
return ..()
/*
@@ -99,7 +99,7 @@
if( O.flags_1&ON_BORDER_1) // windows are on border, check them first
if( O.dir & target_dir || O.dir & (O.dir-1) ) // full tile windows are just diagonals mechanically
- return 0 //O.dir&(O.dir-1) is false for any cardinal direction, but true for diagonal ones
+ return FALSE //O.dir&(O.dir-1) is false for any cardinal direction, but true for diagonal ones
else if( !border_only ) // dense, not on border, cannot pass over
- return 0
- return 1
+ return FALSE
+ return TRUE
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index 6e8d1de955..81cb9d2ba6 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -58,7 +58,10 @@
if(modifiers["shift"] && modifiers["ctrl"])
return CtrlShiftClickOn(A)
if(modifiers["middle"])
- return MiddleClickOn(A)
+ if(modifiers["ctrl"])
+ return CtrlMiddleClickOn(A)
+ else
+ return MiddleClickOn(A)
if(modifiers["shift"] && (client && client.show_popup_menus || modifiers["right"])) //CIT CHANGE - makes shift-click examine use right click instead of left click in combat mode
return ShiftClickOn(A)
if(modifiers["alt"]) // alt and alt-gr (rightalt)
@@ -86,7 +89,7 @@
DelayNextAction(CLICK_CD_HANDCUFFED)
return RestrainedClickOn(A)
- if(in_throw_mode)
+ if(throw_mode)
throw_item(A)
return
@@ -356,6 +359,14 @@
return TRUE
else
return ..()
+
+/mob/proc/CtrlMiddleClickOn(atom/A)
+ if(check_rights_for(client, R_ADMIN))
+ client.toggle_tag_datum(A)
+ else
+ A.CtrlClick(src)
+ return
+
/*
Alt click
Used as an alternate way to interact with things.
diff --git a/code/_onclick/drag_drop.dm b/code/_onclick/drag_drop.dm
index a698706f1a..bd1509d88b 100644
--- a/code/_onclick/drag_drop.dm
+++ b/code/_onclick/drag_drop.dm
@@ -92,11 +92,11 @@
. = 1
//Please don't roast me too hard
-/client/MouseMove(object,location,control,params)
+/client/MouseMove(object, location, control, params)
mouseParams = params
- mouseLocation = location
- mouseObject = object
- mouseControlObject = control
+ mouse_location_ref = WEAKREF(location)
+ mouse_object_ref = WEAKREF(object)
+ mouse_control_object = control
if(mob)
SEND_SIGNAL(mob, COMSIG_MOB_CLIENT_MOUSEMOVE, object, location, control, params)
// god forgive me for i have sinned - used for autoparry. currently at 5 objects.
@@ -107,15 +107,16 @@
/client/MouseDrag(src_object,atom/over_object,src_location,over_location,src_control,over_control,params)
mouseParams = params
- mouseLocation = over_location
- mouseObject = over_object
- mouseControlObject = over_control
- if(selected_target[1] && over_object && over_object.IsAutoclickable())
+ mouse_location_ref = WEAKREF(over_location)
+ mouse_object_ref = WEAKREF(over_object)
+ mouse_control_object = over_control
+ if(selected_target[1] && over_object?.IsAutoclickable())
selected_target[1] = over_object
selected_target[2] = params
if(active_mousedown_item)
active_mousedown_item.onMouseDrag(src_object, over_object, src_location, over_location, params, mob)
SEND_SIGNAL(src, COMSIG_CLIENT_MOUSEDRAG, src_object, over_object, src_location, over_location, src_control, over_control, params)
+ return ..()
/obj/item/proc/onMouseDrag(src_object, over_object, src_location, over_location, params, mob)
return
diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm
deleted file mode 100644
index 2831e25b10..0000000000
--- a/code/_onclick/hud/_defines.dm
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- These defines specificy screen locations. For more information, see the byond documentation on the screen_loc var.
-
- The short version:
-
- Everything is encoded as strings because apparently that's how Byond rolls.
-
- "1,1" is the bottom left square of the user's screen. This aligns perfectly with the turf grid.
- "1:2,3:4" is the square (1,3) with pixel offsets (+2, +4); slightly right and slightly above the turf grid.
- Pixel offsets are used so you don't perfectly hide the turf under them, that would be crappy.
-
- In addition, the keywords NORTH, SOUTH, EAST, WEST and CENTER can be used to represent their respective
- screen borders. NORTH-1, for example, is the row just below the upper edge. Useful if you want your
- UI to scale with screen size.
-
- The size of the user's screen is defined by client.view (indirectly by world.view), in our case "15x15".
- Therefore, the top right corner (except during admin shenanigans) is at "15,15"
-*/
-
-/proc/ui_hand_position(i) //values based on old hand ui positions (CENTER:-/+16,SOUTH:5)
- var/x_off = -(!(i % 2))
- var/y_off = round((i-1) / 2)
- return"CENTER+[x_off]:16,SOUTH+[y_off]:5"
-
-/proc/ui_equip_position(mob/M)
- var/y_off = round((M.held_items.len-1) / 2) //values based on old equip ui position (CENTER: +/-16,SOUTH+1:5)
- return "CENTER:-16,SOUTH+[y_off+1]:5"
-
-/proc/ui_swaphand_position(mob/M, which = 1) //values based on old swaphand ui positions (CENTER: +/-16,SOUTH+1:5)
- var/x_off = which == 1 ? -1 : 0
- var/y_off = round((M.held_items.len-1) / 2)
- return "CENTER+[x_off]:16,SOUTH+[y_off+1]:5"
-
-//Lower left, persistent menu
-#define ui_inventory "WEST:6,SOUTH:5"
-
-//Middle left indicators
-#define ui_lingchemdisplay "WEST,CENTER-1:15"
-#define ui_lingstingdisplay "WEST:6,CENTER-3:11"
-
-#define ui_devilsouldisplay "WEST:6,CENTER-1:15"
-
-//Lower center, persistent menu
-#define ui_sstore1 "CENTER-5:10,SOUTH:5"
-#define ui_id "CENTER-4:12,SOUTH:5"
-#define ui_belt "CENTER-3:14,SOUTH:5"
-#define ui_back "CENTER-2:14,SOUTH:5"
-#define ui_storage1 "CENTER+1:18,SOUTH:5"
-#define ui_storage2 "CENTER+2:20,SOUTH:5"
-#define ui_combo "CENTER+4:24,SOUTH+1:7" // combo meter for martial arts
-
-//Lower right, persistent menu
-#define ui_drop_throw "EAST-1:28,SOUTH+1:7"
-#define ui_pull_resist "EAST-2:26,SOUTH+1:7"
-#define ui_movi "EAST-2:26,SOUTH:5"
-#define ui_sprintbufferloc "EAST-2:26,SOUTH:18"
-#define ui_acti "EAST-3:24,SOUTH:5"
-#define ui_zonesel "EAST-1:28,SOUTH:5"
-#define ui_acti_alt "EAST-1:28,SOUTH:5" //alternative intent switcher for when the interface is hidden (F12)
-#define ui_crafting "EAST-5:20,SOUTH:5"//CIT CHANGE - moves this over one tile to accommodate for combat mode toggle
-#define ui_building "EAST-5:20,SOUTH:21"//CIT CHANGE - ditto
-#define ui_language_menu "EAST-5:4,SOUTH:21"//CIT CHANGE - ditto
-#define ui_voremode "EAST-5:20,SOUTH:5"
-
-//Upper-middle right (alerts)
-#define ui_alert1 "EAST-1:28,CENTER+5:27"
-#define ui_alert2 "EAST-1:28,CENTER+4:25"
-#define ui_alert3 "EAST-1:28,CENTER+3:23"
-#define ui_alert4 "EAST-1:28,CENTER+2:21"
-#define ui_alert5 "EAST-1:28,CENTER+1:19"
-
-//Middle right (status indicators)
-#define ui_healthdoll "EAST-1:28,CENTER-2:13"
-#define ui_health "EAST-1:28,CENTER-1:15"
-#define ui_internal "EAST-1:28,CENTER+1:19"//CIT CHANGE - moves internal icon up a little bit to accommodate for the stamina meter
-#define ui_mood "EAST-1:28,CENTER-3:10"
-// #define ui_spacesuit "EAST-1:28,CENTER-4:10"
-
-//Pop-up inventory
-#define ui_shoes "WEST+1:8,SOUTH:5"
-#define ui_iclothing "WEST:6,SOUTH+1:7"
-#define ui_oclothing "WEST+1:8,SOUTH+1:7"
-#define ui_gloves "WEST+2:10,SOUTH+1:7"
-#define ui_glasses "WEST:6,SOUTH+3:11"
-#define ui_mask "WEST+1:8,SOUTH+2:9"
-#define ui_ears "WEST+2:10,SOUTH+2:9"
-#define ui_neck "WEST:6,SOUTH+2:9"
-#define ui_head "WEST+1:8,SOUTH+3:11"
-
-//Generic living
-#define ui_living_pull "EAST-1:28,CENTER-2:15"
-#define ui_living_health "EAST-1:28,CENTER:15"
-#define ui_living_healthdoll "EAST-1:28,CENTER-1:15"
-
-//Monkeys
-#define ui_monkey_head "CENTER-5:13,SOUTH:5"
-#define ui_monkey_mask "CENTER-4:14,SOUTH:5"
-#define ui_monkey_neck "CENTER-3:15,SOUTH:5"
-#define ui_monkey_back "CENTER-2:16,SOUTH:5"
-
-//Drones
-#define ui_drone_drop "CENTER+1:18,SOUTH:5"
-#define ui_drone_pull "CENTER+2:2,SOUTH:5"
-#define ui_drone_storage "CENTER-2:14,SOUTH:5"
-#define ui_drone_head "CENTER-3:14,SOUTH:5"
-
-//Cyborgs
-#define ui_borg_health "EAST-1:28,CENTER-1:15"
-#define ui_borg_pull "EAST-2:26,SOUTH+1:7"
-#define ui_borg_radio "EAST-1:28,SOUTH+1:7"
-#define ui_borg_intents "EAST-2:26,SOUTH:5"
-#define ui_borg_lamp "CENTER-3:16, SOUTH:5"
-#define ui_borg_tablet "CENTER-4:16, SOUTH:5"
-#define ui_inv1 "CENTER-2:16,SOUTH:5"
-#define ui_inv2 "CENTER-1 :16,SOUTH:5"
-#define ui_inv3 "CENTER :16,SOUTH:5"
-#define ui_borg_module "CENTER+1:16,SOUTH:5"
-#define ui_borg_store "CENTER+2:16,SOUTH:5"
-#define ui_borg_camera "CENTER+3:21,SOUTH:5"
-#define ui_borg_alerts "CENTER+4:21,SOUTH:5"
-#define ui_borg_language_menu "CENTER+4:21,SOUTH+1:5"
-#define ui_borg_sensor "CENTER-6:16, SOUTH:5" //LEGACY
-#define ui_borg_thrusters "CENTER-5:16, SOUTH:5" //LEGACY
-
-//Aliens
-#define ui_alien_health "EAST,CENTER-1:15"
-#define ui_alienplasmadisplay "EAST,CENTER-2:15"
-#define ui_alien_queen_finder "EAST,CENTER-3:15"
-#define ui_alien_storage_r "CENTER+1:18,SOUTH:5"
-#define ui_alien_language_menu "EAST-3:26,SOUTH:5"
-
-//Constructs
-#define ui_construct_pull "EAST,CENTER-2:15"
-#define ui_construct_health "EAST,CENTER:15"
-
-// AI
-#define ui_ai_core "SOUTH:6,WEST"
-#define ui_ai_camera_list "SOUTH:6,WEST+1"
-#define ui_ai_track_with_camera "SOUTH:6,WEST+2"
-#define ui_ai_camera_light "SOUTH:6,WEST+3"
-#define ui_ai_crew_monitor "SOUTH:6,WEST+4"
-#define ui_ai_crew_manifest "SOUTH:6,WEST+5"
-#define ui_ai_alerts "SOUTH:6,WEST+6"
-#define ui_ai_announcement "SOUTH:6,WEST+7"
-#define ui_ai_shuttle "SOUTH:6,WEST+8"
-#define ui_ai_state_laws "SOUTH:6,WEST+9"
-#define ui_ai_pda_send "SOUTH:6,WEST+10"
-#define ui_ai_pda_log "SOUTH:6,WEST+11"
-#define ui_ai_take_picture "SOUTH:6,WEST+12"
-#define ui_ai_view_images "SOUTH:6,WEST+13"
-#define ui_ai_sensor "SOUTH:6,WEST+14"
-#define ui_ai_multicam "SOUTH+1:6,WEST+13"
-#define ui_ai_add_multicam "SOUTH+1:6,WEST+14"
-
-
-// pAI
-// #define ui_pai_software "SOUTH:6,WEST"
-// #define ui_pai_shell "SOUTH:6,WEST+1"
-// #define ui_pai_chassis "SOUTH:6,WEST+2"
-// #define ui_pai_rest "SOUTH:6,WEST+3"
-// #define ui_pai_light "SOUTH:6,WEST+4"
-// #define ui_pai_newscaster "SOUTH:6,WEST+5"
-// #define ui_pai_host_monitor "SOUTH:6,WEST+6"
-// #define ui_pai_crew_manifest "SOUTH:6,WEST+7"
-// #define ui_pai_state_laws "SOUTH:6,WEST+8"
-// #define ui_pai_pda_send "SOUTH:6,WEST+9"
-// #define ui_pai_pda_log "SOUTH:6,WEST+10"
-// #define ui_pai_take_picture "SOUTH:6,WEST+12"
-// #define ui_pai_view_images "SOUTH:6,WEST+13"
-
-//Ghosts
-#define ui_ghost_jumptomob "SOUTH:6,CENTER-3:24"
-#define ui_ghost_orbit "SOUTH:6,CENTER-2:24"
-#define ui_ghost_reenter_corpse "SOUTH:6,CENTER-1:24"
-#define ui_ghost_teleport "SOUTH:6,CENTER:24"
-#define ui_ghost_pai "SOUTH: 6, CENTER+1:24"
-#define ui_ghost_mafia "SOUTH: 6, CENTER+2:24"
-#define ui_ghost_spawners "SOUTH: 6, CENTER+1:24" // LEGACY. SAME LOC AS PAI
-
-//UI position overrides for 1:1 screen layout. (default is 7:5)
-#define ui_stamina "EAST-1:28,CENTER:17" // replacing internals button
-#define ui_overridden_resist "EAST-3:24,SOUTH+1:7"
-#define ui_clickdelay "CENTER,SOUTH+1:-31"
-#define ui_resistdelay "EAST-3:24,SOUTH+1:4"
-#define ui_combat_toggle "EAST-4:22,SOUTH:5"
-
-#define ui_boxcraft "EAST-4:22,SOUTH+1:6"
-#define ui_boxarea "EAST-4:6,SOUTH+1:6"
-#define ui_boxlang "EAST-5:22,SOUTH+1:6"
-#define ui_boxvore "EAST-5:22,SOUTH+1:6"
-
-#define ui_wanted_lvl "NORTH,11"
diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm
index d97e1f5d04..af49128d25 100644
--- a/code/_onclick/hud/action_button.dm
+++ b/code/_onclick/hud/action_button.dm
@@ -2,186 +2,156 @@
/atom/movable/screen/movable/action_button
var/datum/action/linked_action
+ var/datum/hud/our_hud
var/actiontooltipstyle = ""
screen_loc = null
var/button_icon_state
var/appearance_cache
+ /// Where we are currently placed on the hud. SCRN_OBJ_DEFAULT asks the linked action what it thinks
+ var/location = SCRN_OBJ_DEFAULT
+ /// A unique bitflag, combined with the name of our linked action this lets us persistently remember any user changes to our position
var/id
- var/ordered = TRUE //If the button gets placed into the default bar
+ /// A weakref of the last thing we hovered over
+ /// God I hate how dragging works
+ var/datum/weakref/last_hovored_ref
+
+/atom/movable/screen/movable/action_button/Destroy()
+ if(our_hud)
+ var/mob/viewer = our_hud.mymob
+ our_hud.hide_action(src)
+ viewer?.client?.screen -= src
+ linked_action.viewers -= our_hud
+ viewer.update_action_buttons()
+ our_hud = null
+ linked_action = null
+ return ..()
/atom/movable/screen/movable/action_button/proc/can_use(mob/user)
if (linked_action)
- return linked_action.owner == user
+ if(linked_action.viewers[user.hud_used])
+ return TRUE
+ return FALSE
else if (isobserver(user))
var/mob/dead/observer/O = user
return !O.observetarget
else
return TRUE
-/atom/movable/screen/movable/action_button/MouseDrop(over_object)
- if(!can_use(usr))
- return
- if((istype(over_object, /atom/movable/screen/movable/action_button) && !istype(over_object, /atom/movable/screen/movable/action_button/hide_toggle)))
- if(locked)
- to_chat(usr, "Action button \"[name]\" is locked, unlock it first. ")
- return
- var/atom/movable/screen/movable/action_button/B = over_object
- var/list/actions = usr.actions
- actions.Swap(actions.Find(src.linked_action), actions.Find(B.linked_action))
- moved = FALSE
- ordered = TRUE
- B.moved = FALSE
- B.ordered = TRUE
- usr.update_action_buttons()
- else
- return ..()
-
/atom/movable/screen/movable/action_button/Click(location,control,params)
if (!can_use(usr))
return
var/list/modifiers = params2list(params)
if(modifiers["shift"])
- if(locked)
- to_chat(usr, "Action button \"[name]\" is locked, unlock it first. ")
- return TRUE
- moved = 0
- usr.update_action_buttons() //redraw buttons that are no longer considered "moved"
- return TRUE
- if(modifiers["ctrl"])
- locked = !locked
- to_chat(usr, "Action button \"[name]\" [locked ? "" : "un"]locked. ")
- if(id && usr.client) //try to (un)remember position
- usr.client.prefs.action_buttons_screen_locs["[name]_[id]"] = locked ? moved : null
+ var/datum/hud/our_hud = usr.hud_used
+ our_hud.position_action(src, SCRN_OBJ_DEFAULT)
return TRUE
linked_action.Trigger()
return TRUE
-//Hide/Show Action Buttons ... Button
-/atom/movable/screen/movable/action_button/hide_toggle
- name = "Hide Buttons"
- desc = "Shift-click any button to reset its position, and Control-click it to lock it in place. Alt-click this button to reset all buttons to their default positions."
- icon = 'icons/mob/actions.dmi'
- icon_state = "bg_default"
- var/hidden = 0
- var/hide_icon = 'icons/mob/actions.dmi'
- var/hide_state = "hide"
- var/show_state = "show"
- var/mutable_appearance/hide_appearance
- var/mutable_appearance/show_appearance
-
-/atom/movable/screen/movable/action_button/hide_toggle/Initialize(mapload)
+// Entered and Exited won't fire while you're dragging something, because you're still "holding" it
+// Very much byond logic, but I want nice behavior, so we fake it with drag
+/atom/movable/screen/movable/action_button/MouseDrag(atom/over_object, src_location, over_location, src_control, over_control, params)
. = ..()
- var/static/list/icon_cache = list()
+ if(!can_use(usr))
+ return
+ if(IS_WEAKREF_OF(over_object, last_hovored_ref))
+ return
+ var/atom/old_object
+ if(last_hovored_ref)
+ old_object = last_hovored_ref?.resolve()
+ else // If there's no current ref, we assume it was us. We also treat this as our "first go" location
+ old_object = src
+ var/datum/hud/our_hud = usr.hud_used
+ our_hud?.generate_landings(src)
- var/cache_key = "[hide_icon][hide_state]"
- hide_appearance = icon_cache[cache_key]
- if(!hide_appearance)
- hide_appearance = icon_cache[cache_key] = mutable_appearance(hide_icon, hide_state)
+ if(old_object)
+ old_object.MouseExited(over_location, over_control, params)
- cache_key = "[hide_icon][show_state]"
- show_appearance = icon_cache[cache_key]
- if(!show_appearance)
- show_appearance = icon_cache[cache_key] = mutable_appearance(hide_icon, show_state)
+ last_hovored_ref = WEAKREF(over_object)
+ over_object.MouseEntered(over_location, over_control, params)
-/atom/movable/screen/movable/action_button/hide_toggle/Click(location,control,params)
- if (!can_use(usr))
+/atom/movable/screen/movable/action_button/MouseEntered(location, control, params)
+ . = ..()
+ if(!QDELETED(src))
+ openToolTip(usr, src, params, title = name, content = desc, theme = actiontooltipstyle)
+
+/atom/movable/screen/movable/action_button/MouseExited(location, control, params)
+ closeToolTip(usr)
+ return ..()
+
+/atom/movable/screen/movable/action_button/MouseDrop(over_object)
+ last_hovored_ref = null
+ if(!can_use(usr))
+ return
+ var/datum/hud/our_hud = usr.hud_used
+ if(over_object == src)
+ our_hud.hide_landings()
+ return
+ if(istype(over_object, /atom/movable/screen/action_landing))
+ var/atom/movable/screen/action_landing/reserve = over_object
+ reserve.hit_by(src)
+ our_hud.hide_landings()
+ save_position()
return
- var/list/modifiers = params2list(params)
- if(modifiers["shift"])
- if(locked)
- to_chat(usr, "Action button \"[name]\" is locked, unlock it first. ")
- return TRUE
- moved = FALSE
- usr.update_action_buttons(TRUE)
- return TRUE
- if(modifiers["ctrl"])
- locked = !locked
- to_chat(usr, "Action button \"[name]\" [locked ? "" : "un"]locked. ")
- if(id && usr.client) //try to (un)remember position
- usr.client.prefs.action_buttons_screen_locs["[name]_[id]"] = locked ? moved : null
- return TRUE
- if(modifiers["alt"])
- for(var/V in usr.actions)
- var/datum/action/A = V
- var/atom/movable/screen/movable/action_button/B = A.button
- B.moved = FALSE
- if(B.id && usr.client)
- usr.client.prefs.action_buttons_screen_locs["[B.name]_[B.id]"] = null
- B.locked = usr.client.prefs.buttons_locked
- locked = usr.client.prefs.buttons_locked
- moved = FALSE
- if(id && usr.client)
- usr.client.prefs.action_buttons_screen_locs["[name]_[id]"] = null
- usr.update_action_buttons(TRUE)
- to_chat(usr, "Action button positions have been reset. ")
- return TRUE
- usr.hud_used.action_buttons_hidden = !usr.hud_used.action_buttons_hidden
-
- hidden = usr.hud_used.action_buttons_hidden
- if(hidden)
- name = "Show Buttons"
- else
- name = "Hide Buttons"
- update_icon()
- usr.update_action_buttons()
-
-/atom/movable/screen/movable/action_button/hide_toggle/AltClick(mob/user)
- for(var/V in user.actions)
- var/datum/action/A = V
- var/atom/movable/screen/movable/action_button/B = A.button
- B.moved = FALSE
- if(moved)
- moved = FALSE
- user.update_action_buttons(TRUE)
- to_chat(user, "Action button positions have been reset. ")
- return TRUE
-
-
-/atom/movable/screen/movable/action_button/hide_toggle/proc/InitialiseIcon(datum/hud/owner_hud)
- var/settings = owner_hud.get_action_buttons_icons()
- icon = settings["bg_icon"]
- icon_state = settings["bg_state"]
- hide_icon = settings["toggle_icon"]
- hide_state = settings["toggle_hide"]
- show_state = settings["toggle_show"]
- update_icon()
-
-/atom/movable/screen/movable/action_button/hide_toggle/update_overlays()
+ our_hud.hide_landings()
+ if(istype(over_object, /atom/movable/screen/button_palette) || istype(over_object, /atom/movable/screen/palette_scroll))
+ our_hud.position_action(src, SCRN_OBJ_IN_PALETTE)
+ save_position()
+ return
+ if(istype(over_object, /atom/movable/screen/movable/action_button))
+ var/atom/movable/screen/movable/action_button/button = over_object
+ our_hud.position_action_relative(src, button)
+ save_position()
+ return
. = ..()
- if(hidden)
- . += show_appearance
- else
- . += hide_appearance
+ our_hud.position_action(src, screen_loc)
+ save_position()
+/atom/movable/screen/movable/action_button/proc/save_position()
+ var/mob/user = our_hud.mymob
+ if(!user?.client)
+ return
+ var/position_info = ""
+ switch(location)
+ if(SCRN_OBJ_FLOATING)
+ position_info = screen_loc
+ if(SCRN_OBJ_IN_LIST)
+ position_info = SCRN_OBJ_IN_LIST
+ if(SCRN_OBJ_IN_PALETTE)
+ position_info = SCRN_OBJ_IN_PALETTE
-/atom/movable/screen/movable/action_button/MouseEntered(location,control,params)
- if(!QDELETED(src))
- openToolTip(usr,src,params,title = name,content = desc,theme = actiontooltipstyle)
+ user.client.prefs.action_buttons_screen_locs["[name]_[id]"] = position_info
+ user.client.prefs.queue_save_pref(1 SECONDS, TRUE)
+/atom/movable/screen/movable/action_button/proc/load_position()
+ var/mob/user = our_hud.mymob
+ if(!user)
+ return
+ var/position_info = user.client?.prefs?.action_buttons_screen_locs["[name]_[id]"] || SCRN_OBJ_DEFAULT
+ user.hud_used.position_action(src, position_info)
-/atom/movable/screen/movable/action_button/MouseExited()
- closeToolTip(usr)
+/atom/movable/screen/movable/action_button/proc/dump_save()
+ var/mob/user = our_hud.mymob
+ if(!user?.client)
+ return
+ user.client.prefs.action_buttons_screen_locs -= "[name]_[id]"
+ user.client.prefs.queue_save_pref(1 SECONDS, TRUE)
/datum/hud/proc/get_action_buttons_icons()
. = list()
.["bg_icon"] = ui_style
.["bg_state"] = "template"
- //TODO : Make these fit theme
- .["toggle_icon"] = 'icons/mob/actions.dmi'
- .["toggle_hide"] = "hide"
- .["toggle_show"] = "show"
-
//see human and alien hud for specific implementations.
/mob/proc/update_action_buttons_icon(status_only = FALSE)
for(var/X in actions)
var/datum/action/A = X
- A.UpdateButtonIcon(status_only)
+ A.UpdateButtons(status_only)
//This is the proc used to update all the action buttons.
/mob/proc/update_action_buttons(reload_screen)
@@ -191,56 +161,243 @@
if(hud_used.hud_shown != HUD_STYLE_STANDARD)
return
- var/button_number = 0
- var/list/cview = getviewsize(client.view)
- var/supportedcolumns = cview[1]-2
+ for(var/datum/action/action as anything in actions)
+ var/atom/movable/screen/movable/action_button/button = action.viewers[hud_used]
+ action.UpdateButtons()
+ if(reload_screen)
+ client.screen += button
- if(hud_used.action_buttons_hidden)
- for(var/datum/action/A in actions)
- A.button.screen_loc = null
- if(reload_screen)
- client.screen += A.button
- else
- for(var/datum/action/A in actions)
- A.UpdateButtonIcon()
- var/atom/movable/screen/movable/action_button/B = A.button
- if(B.ordered)
- button_number++
- if(B.moved)
- B.screen_loc = B.moved
- else
- B.screen_loc = hud_used.ButtonNumberToScreenCoords(button_number, supportedcolumns)
- if(reload_screen)
- client.screen += B
-
- if(!button_number)
- hud_used.hide_actions_toggle.screen_loc = null
- return
-
- if(!hud_used.hide_actions_toggle.moved)
- hud_used.hide_actions_toggle.screen_loc = hud_used.ButtonNumberToScreenCoords(button_number+1, supportedcolumns)
- else
- hud_used.hide_actions_toggle.screen_loc = hud_used.hide_actions_toggle.moved
if(reload_screen)
- client.screen += hud_used.hide_actions_toggle
+ hud_used.update_our_owner()
+ // This holds the logic for the palette buttons
+ hud_used.palette_actions.refresh_actions()
-/datum/hud/proc/ButtonNumberToScreenCoords(number, supportedcolumns) // TODO : Make this zero-indexed for readabilty
- var/row = round((number - 1)/supportedcolumns)
- var/col = ((number - 1)%(supportedcolumns)) + 1
+/atom/movable/screen/button_palette
+ desc = "Drag buttons to move themShift-click any button to reset itAlt-click this to reset all buttons"
+ icon = 'icons/hud/64x16_actions.dmi'
+ icon_state = "screen_gen_palette"
+ screen_loc = ui_action_palette
+ var/datum/hud/our_hud
+ var/expanded = FALSE
+ /// Id of any currently running timers that set our color matrix
+ var/color_timer_id
- var/coord_col = "+[col-1]"
- var/coord_col_offset = 2 + 2 * col
+/atom/movable/screen/button_palette/Destroy()
+ if(our_hud)
+ our_hud.mymob?.client?.screen -= src
+ our_hud.toggle_palette = null
+ our_hud = null
+ return ..()
- var/coord_row = "[row ? -row : "+0"]"
+/atom/movable/screen/button_palette/Initialize(mapload)
+ . = ..()
+ update_appearance()
- return "WEST[coord_col]:[coord_col_offset],NORTH[coord_row]:-6"
+/atom/movable/screen/button_palette/proc/set_hud(datum/hud/our_hud)
+ src.our_hud = our_hud
+ refresh_owner()
-/datum/hud/proc/SetButtonCoords(atom/movable/screen/button,number, supportedcolumns)
- var/row = round((number-1)/supportedcolumns)
- var/col = ((number - 1)%(supportedcolumns)) + 1
- var/x_offset = 32*(col-1) + 4 + 2*col
- var/y_offset = -32*(row+1) + 26
+/atom/movable/screen/button_palette/update_name(updates)
+ . = ..()
+ if(expanded)
+ name = "Hide Buttons"
+ else
+ name = "Show Buttons"
- var/matrix/M = matrix()
- M.Translate(x_offset,y_offset)
- button.transform = M
+/atom/movable/screen/button_palette/proc/refresh_owner()
+ var/mob/viewer = our_hud.mymob
+ if(viewer.client)
+ viewer.client.screen |= src
+
+ var/list/settings = our_hud.get_action_buttons_icons()
+ var/ui_icon = "[settings["bg_icon"]]"
+ var/list/ui_segments = splittext(ui_icon, ".")
+ var/list/ui_paths = splittext(ui_segments[1], "/")
+ var/ui_name = ui_paths[length(ui_paths)]
+
+ icon_state = "[ui_name]_palette"
+
+/atom/movable/screen/button_palette/MouseEntered(location, control, params)
+ . = ..()
+ if(QDELETED(src))
+ return
+ show_tooltip(params)
+
+/atom/movable/screen/button_palette/MouseExited()
+ closeToolTip(usr)
+ return ..()
+
+/atom/movable/screen/button_palette/proc/show_tooltip(params)
+ openToolTip(usr, src, params, title = name, content = desc)
+
+GLOBAL_LIST_INIT(palette_added_matrix, list(0.4,0.5,0.2,0, 0,1.4,0,0, 0,0.4,0.6,0, 0,0,0,1, 0,0,0,0))
+GLOBAL_LIST_INIT(palette_removed_matrix, list(1.4,0,0,0, 0.7,0.4,0,0, 0.4,0,0.6,0, 0,0,0,1, 0,0,0,0))
+
+/atom/movable/screen/button_palette/proc/play_item_added()
+ color_for_now(GLOB.palette_added_matrix)
+
+/atom/movable/screen/button_palette/proc/play_item_removed()
+ color_for_now(GLOB.palette_removed_matrix)
+
+/atom/movable/screen/button_palette/proc/color_for_now(list/color)
+ if(color_timer_id)
+ return
+ add_atom_colour(color, TEMPORARY_COLOUR_PRIORITY) //We unfortunately cannot animate matrix colors. Curse you lummy it would be ~~non~~trivial to interpolate between the two valuessssssssss
+ color_timer_id = addtimer(CALLBACK(src, .proc/remove_color, color), 2 SECONDS)
+
+/atom/movable/screen/button_palette/proc/remove_color(list/to_remove)
+ color_timer_id = null
+ remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, to_remove)
+
+/atom/movable/screen/button_palette/proc/can_use(mob/user)
+ if (isobserver(user))
+ var/mob/dead/observer/O = user
+ return !O.observetarget
+ return TRUE
+
+/atom/movable/screen/button_palette/Click(location, control, params)
+ if(!can_use(usr))
+ return
+
+ var/list/modifiers = params2list(params)
+
+ if(LAZYACCESS(modifiers, ALT_CLICK))
+ for(var/datum/action/action as anything in usr.actions) // Reset action positions to default
+ for(var/datum/hud/hud as anything in action.viewers)
+ var/atom/movable/screen/movable/action_button/button = action.viewers[hud]
+ hud.position_action(button, SCRN_OBJ_DEFAULT)
+ to_chat(usr, span_notice("Action button positions have been reset."))
+ return TRUE
+
+ set_expanded(!expanded)
+
+/atom/movable/screen/button_palette/proc/clicked_while_open(datum/source, atom/target, atom/location, control, params, mob/user)
+ if(istype(target, /atom/movable/screen/movable/action_button) || istype(target, /atom/movable/screen/palette_scroll) || target == src) // If you're clicking on an action button, or us, you can live
+ return
+ set_expanded(FALSE)
+ if(source)
+ UnregisterSignal(source, COMSIG_CLIENT_CLICK)
+
+/atom/movable/screen/button_palette/proc/set_expanded(new_expanded)
+ var/datum/action_group/our_group = our_hud.palette_actions
+ if(!length(our_group.actions)) //Looks dumb, trust me lad
+ new_expanded = FALSE
+ if(expanded == new_expanded)
+ return
+
+ expanded = new_expanded
+ our_group.refresh_actions()
+ update_appearance()
+
+ if(!usr.client)
+ return
+
+ if(expanded)
+ RegisterSignal(usr.client, COMSIG_CLIENT_CLICK, .proc/clicked_while_open)
+ else
+ UnregisterSignal(usr.client, COMSIG_CLIENT_CLICK)
+
+ closeToolTip(usr) //Our tooltips are now invalid, can't seem to update them in one frame, so here, just close them
+
+/atom/movable/screen/palette_scroll
+ icon = 'icons/mob/screen_gen.dmi'
+ screen_loc = ui_palette_scroll
+ /// How should we move the palette's actions?
+ /// Positive scrolls down the list, negative scrolls back
+ var/scroll_direction = 0
+ var/datum/hud/our_hud
+
+/atom/movable/screen/palette_scroll/proc/can_use(mob/user)
+ if (isobserver(user))
+ var/mob/dead/observer/O = user
+ return !O.observetarget
+ return TRUE
+
+/atom/movable/screen/palette_scroll/proc/set_hud(datum/hud/our_hud)
+ src.our_hud = our_hud
+ refresh_owner()
+
+/atom/movable/screen/palette_scroll/proc/refresh_owner()
+ var/mob/viewer = our_hud.mymob
+ if(viewer.client)
+ viewer.client.screen |= src
+
+ var/list/settings = our_hud.get_action_buttons_icons()
+ icon = settings["bg_icon"]
+
+/atom/movable/screen/palette_scroll/Click(location, control, params)
+ if(!can_use(usr))
+ return
+ our_hud.palette_actions.scroll(scroll_direction)
+
+/atom/movable/screen/palette_scroll/MouseEntered(location, control, params)
+ . = ..()
+ if(QDELETED(src))
+ return
+ openToolTip(usr, src, params, title = name, content = desc)
+
+/atom/movable/screen/palette_scroll/MouseExited()
+ closeToolTip(usr)
+ return ..()
+
+/atom/movable/screen/palette_scroll/down
+ name = "Scroll Down"
+ desc = "Click on this to scroll the actions above down"
+ icon_state = "scroll_down"
+ scroll_direction = 1
+
+/atom/movable/screen/palette_scroll/down/Destroy()
+ if(our_hud)
+ our_hud.mymob?.client?.screen -= src
+ our_hud.palette_down = null
+ our_hud = null
+ return ..()
+
+/atom/movable/screen/palette_scroll/up
+ name = "Scroll Up"
+ desc = "Click on this to scroll the actions above up"
+ icon_state = "scroll_up"
+ scroll_direction = -1
+
+/atom/movable/screen/palette_scroll/up/Destroy()
+ if(our_hud)
+ our_hud.mymob?.client?.screen -= src
+ our_hud.palette_up = null
+ our_hud = null
+ return ..()
+
+/// Exists so you have a place to put your buttons when you move them around
+/atom/movable/screen/action_landing
+ name = "Button Space"
+ desc = "Drag and drop a button into this spot to add it to the group"
+ icon = 'icons/mob/screen_gen.dmi'
+ icon_state = "reserved"
+ // We want our whole 32x32 space to be clickable, so dropping's forgiving
+ mouse_opacity = MOUSE_OPACITY_OPAQUE
+ var/datum/action_group/owner
+
+/atom/movable/screen/action_landing/Destroy()
+ if(owner)
+ owner.landing = null
+ owner?.owner?.mymob?.client?.screen -= src
+ owner.refresh_actions()
+ owner = null
+ return ..()
+
+/atom/movable/screen/action_landing/proc/set_owner(datum/action_group/owner)
+ src.owner = owner
+ refresh_owner()
+
+/atom/movable/screen/action_landing/proc/refresh_owner()
+ var/datum/hud/our_hud = owner.owner
+ var/mob/viewer = our_hud.mymob
+ if(viewer.client)
+ viewer.client.screen |= src
+
+ var/list/settings = our_hud.get_action_buttons_icons()
+ icon = settings["bg_icon"]
+
+/// Reacts to having a button dropped on it
+/atom/movable/screen/action_landing/proc/hit_by(atom/movable/screen/movable/action_button/button)
+ var/datum/hud/our_hud = owner.owner
+ our_hud.position_action(button, owner.location)
diff --git a/code/_onclick/hud/ai.dm b/code/_onclick/hud/ai.dm
index 17b5a9ed61..5f8b10fd31 100644
--- a/code/_onclick/hud/ai.dm
+++ b/code/_onclick/hud/ai.dm
@@ -194,7 +194,7 @@
// Language menu
using = new /atom/movable/screen/language_menu
- using.screen_loc = ui_borg_language_menu
+ using.screen_loc = ui_ai_language_menu
using.hud = src
static_inventory += using
diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm
index 40dd16e2f2..060e44e007 100644
--- a/code/_onclick/hud/alert.dm
+++ b/code/_onclick/hud/alert.dm
@@ -75,9 +75,9 @@
/mob/proc/clear_alert(category, clear_override = FALSE)
var/atom/movable/screen/alert/alert = alerts[category]
if(!alert)
- return 0
+ return FALSE
if(alert.override_alerts && !clear_override)
- return 0
+ return FALSE
alerts -= category
if(client && hud_used)
@@ -784,7 +784,7 @@ so as to remain in compliance with the most up-to-date laws."
if(!hud_shown)
for(var/i = 1, i <= alerts.len, i++)
screenmob.client.screen -= alerts[alerts[i]]
- return 1
+ return TRUE
for(var/i = 1, i <= alerts.len, i++)
var/atom/movable/screen/alert/alert = alerts[alerts[i]]
if(alert.icon_state == "template")
@@ -807,7 +807,7 @@ so as to remain in compliance with the most up-to-date laws."
if(!viewmob)
for(var/M in mymob.observers)
reorganize_alerts(M)
- return 1
+ return TRUE
/atom/movable/screen/alert/Click(location, control, params)
if(!usr || !usr.client)
diff --git a/code/_onclick/hud/credits.dm b/code/_onclick/hud/credits.dm
index 4b58d238e0..73986095de 100644
--- a/code/_onclick/hud/credits.dm
+++ b/code/_onclick/hud/credits.dm
@@ -44,7 +44,7 @@
icon = I
parent = P
icon_state = credited
- maptext = MAPTEXT(credited)
+ maptext = MAPTEXT_PIXELLARI(credited)
maptext_x = world.icon_size + 8
maptext_y = (world.icon_size / 2) - 4
maptext_width = world.icon_size * 3
diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm
index 9d762332c6..53d69fe01e 100644
--- a/code/_onclick/hud/hud.dm
+++ b/code/_onclick/hud/hud.dm
@@ -11,7 +11,10 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
"Plasmafire" = 'icons/mob/screen_plasmafire.dmi',
"Slimecore" = 'icons/mob/screen_slimecore.dmi',
"Operative" = 'icons/mob/screen_operative.dmi',
- "Clockwork" = 'icons/mob/screen_clockwork.dmi'
+ "Glass" = 'icons/mob/screen_glass.dmi',
+ "Clockwork" = 'icons/mob/screen_clockwork.dmi',
+ "Trasen-Knox" = 'icons/mob/screen_trasenknox.dmi',
+ "Detective" = 'icons/mob/screen_detective.dmi',
))
/proc/ui_style2icon(ui_style)
@@ -73,8 +76,13 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
// We don't actually do proccalls really yet, so let's grab at prefs
- var/atom/movable/screen/movable/action_button/hide_toggle/hide_actions_toggle
- var/action_buttons_hidden = FALSE
+ var/atom/movable/screen/button_palette/toggle_palette
+ var/atom/movable/screen/palette_scroll/down/palette_down
+ var/atom/movable/screen/palette_scroll/up/palette_up
+
+ var/datum/action_group/palette/palette_actions
+ var/datum/action_group/listed/listed_actions
+ var/list/floating_actions
var/atom/movable/screen/healths
var/atom/movable/screen/healthdoll
@@ -91,10 +99,12 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
// will fall back to the default if any of these are null
ui_style = ui_style2icon(owner.client && owner.client.prefs && owner.client.prefs.UI_style)
- hide_actions_toggle = new
- hide_actions_toggle.InitialiseIcon(src)
- if(mymob.client)
- hide_actions_toggle.locked = mymob.client.prefs.buttons_locked
+ toggle_palette = new()
+ toggle_palette.set_hud(src)
+ palette_down = new()
+ palette_down.set_hud(src)
+ palette_up = new()
+ palette_up.set_hud(src)
hand_slots = list()
@@ -110,7 +120,13 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
if(mymob.hud_used == src)
mymob.hud_used = null
- QDEL_NULL(hide_actions_toggle)
+ QDEL_NULL(toggle_palette)
+ QDEL_NULL(palette_down)
+ QDEL_NULL(palette_up)
+ QDEL_NULL(palette_actions)
+ QDEL_NULL(listed_actions)
+ QDEL_LIST(floating_actions)
+
QDEL_NULL(module_store_icon)
QDEL_LIST(static_inventory)
@@ -148,10 +164,14 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
/mob/proc/create_mob_hud()
if(!client || hud_used)
return
- hud_used = new hud_type(src)
+ set_hud_used(new hud_type(src))
update_sight()
SEND_SIGNAL(src, COMSIG_MOB_HUD_CREATED)
+/mob/proc/set_hud_used(datum/hud/new_hud)
+ hud_used = new_hud
+ new_hud.build_action_groups()
+
//Version denotes which style should be displayed. blank or 0 means "next version"
/datum/hud/proc/show_hud(version = 0, mob/viewmob)
if(!ismob(mymob))
@@ -160,6 +180,8 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
if(!screenmob.client)
return FALSE
+ // This code is the absolute fucking worst, I want it to go die in a fire
+ // Seriously, why
screenmob.client.screen = list()
screenmob.client.update_clickcatcher()
@@ -181,7 +203,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
if(infodisplay.len)
screenmob.client.screen += infodisplay
- screenmob.client.screen += hide_actions_toggle
+ screenmob.client.screen += toggle_palette
if(action_intent)
action_intent.screen_loc = initial(action_intent.screen_loc) //Restore intent selection to the original position
@@ -272,7 +294,6 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
ui_style = new_ui_style
build_hand_slots()
- hide_actions_toggle.InitialiseIcon(src)
//Triggered when F12 is pressed (Unless someone changed something in the DMF)
/mob/verb/button_pressed_F12()
@@ -320,3 +341,312 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
/datum/hud/proc/update_locked_slots()
return
+
+/datum/hud/proc/position_action(atom/movable/screen/movable/action_button/button, position)
+ // This is kinda a hack, I'm sorry.
+ // Basically, FLOATING is never a valid position to pass into this proc. It exists as a generic marker for manually positioned buttons
+ // Not as a position to target
+ if(position == SCRN_OBJ_FLOATING)
+ return
+ if(button.location != SCRN_OBJ_DEFAULT)
+ hide_action(button)
+ switch(position)
+ if(SCRN_OBJ_DEFAULT) // Reset to the default
+ button.dump_save() // Nuke any existing saves
+ position_action(button, button.linked_action.default_button_position)
+ return
+ if(SCRN_OBJ_IN_LIST)
+ listed_actions.insert_action(button)
+ if(SCRN_OBJ_IN_PALETTE)
+ palette_actions.insert_action(button)
+ else // If we don't have it as a define, this is a screen_loc, and we should be floating
+ floating_actions += button
+ button.screen_loc = position
+ position = SCRN_OBJ_FLOATING
+
+ button.location = position
+
+/datum/hud/proc/position_action_relative(atom/movable/screen/movable/action_button/button, atom/movable/screen/movable/action_button/relative_to)
+ if(button.location != SCRN_OBJ_DEFAULT)
+ hide_action(button)
+ switch(relative_to.location)
+ if(SCRN_OBJ_IN_LIST)
+ listed_actions.insert_action(button, listed_actions.index_of(relative_to))
+ if(SCRN_OBJ_IN_PALETTE)
+ palette_actions.insert_action(button, palette_actions.index_of(relative_to))
+ if(SCRN_OBJ_FLOATING) // If we don't have it as a define, this is a screen_loc, and we should be floating
+ floating_actions += button
+ var/client/our_client = mymob.client
+ if(!our_client)
+ position_action(button, button.linked_action.default_button_position)
+ return
+ button.screen_loc = get_valid_screen_location(relative_to.screen_loc, world.icon_size, our_client.view_size.getView()) // Asks for a location adjacent to our button that won't overflow the map
+
+ button.location = relative_to.location
+
+/// Removes the passed in action from its current position on the screen
+/datum/hud/proc/hide_action(atom/movable/screen/movable/action_button/button)
+ switch(button.location)
+ if(SCRN_OBJ_DEFAULT) // Invalid
+ CRASH("We just tried to hide an action buttion that somehow has the default position as its location, you done fucked up")
+ if(SCRN_OBJ_FLOATING)
+ floating_actions -= button
+ if(SCRN_OBJ_IN_LIST)
+ listed_actions.remove_action(button)
+ if(SCRN_OBJ_IN_PALETTE)
+ palette_actions.remove_action(button)
+ button.screen_loc = null
+
+/// Generates visual landings for all groups that the button is not a memeber of
+/datum/hud/proc/generate_landings(atom/movable/screen/movable/action_button/button)
+ listed_actions.generate_landing()
+ palette_actions.generate_landing()
+
+/// Clears all currently visible landings
+/datum/hud/proc/hide_landings()
+ listed_actions.clear_landing()
+ palette_actions.clear_landing()
+
+// Updates any existing "owned" visuals, ensures they continue to be visible
+/datum/hud/proc/update_our_owner()
+ toggle_palette.refresh_owner()
+ palette_down.refresh_owner()
+ palette_up.refresh_owner()
+ listed_actions.update_landing()
+ palette_actions.update_landing()
+
+/// Ensures all of our buttons are properly within the bounds of our client's view, moves them if they're not
+/datum/hud/proc/view_audit_buttons()
+ var/our_view = mymob?.client?.view
+ if(!our_view)
+ return
+ listed_actions.check_against_view()
+ palette_actions.check_against_view()
+ for(var/atom/movable/screen/movable/action_button/floating_button as anything in floating_actions)
+ var/list/current_offsets = screen_loc_to_offset(floating_button.screen_loc)
+ // We set the view arg here, so the output will be properly hemm'd in by our new view
+ floating_button.screen_loc = offset_to_screen_loc(current_offsets[1], current_offsets[2], view = our_view)
+
+/// Generates and fills new action groups with our mob's current actions
+/datum/hud/proc/build_action_groups()
+ listed_actions = new(src)
+ palette_actions = new(src)
+ floating_actions = list()
+ for(var/datum/action/action as anything in mymob.actions)
+ var/atom/movable/screen/movable/action_button/button = action.viewers[src]
+ if(!button)
+ action.ShowTo(mymob)
+ button = action.viewers[src]
+ else
+ position_action(button, button.location)
+
+/datum/action_group
+ /// The hud we're owned by
+ var/datum/hud/owner
+ /// The actions we're managing
+ var/list/atom/movable/screen/movable/action_button/actions
+ /// The initial vertical offset of our action buttons
+ var/north_offset = 0
+ /// The pixel vertical offset of our action buttons
+ var/pixel_north_offset = 0
+ /// Max amount of buttons we can have per row
+ /// Indexes at 1
+ var/column_max = 0
+ /// How far "ahead" of the first row we start. Lets us "scroll" our rows
+ /// Indexes at 1
+ var/row_offset = 0
+ /// How many rows of actions we can have at max before we just stop hiding
+ /// Indexes at 1
+ var/max_rows = INFINITY
+ /// The screen location we go by
+ var/location
+ /// Our landing screen object
+ var/atom/movable/screen/action_landing/landing
+
+/datum/action_group/New(datum/hud/owner)
+ ..()
+ actions = list()
+ src.owner = owner
+
+/datum/action_group/Destroy()
+ owner = null
+ QDEL_NULL(landing)
+ QDEL_LIST(actions)
+ return ..()
+
+/datum/action_group/proc/insert_action(atom/movable/screen/action, index)
+ if(action in actions)
+ if(actions[index] == action)
+ return
+ actions -= action // Don't dupe, come on
+ if(!index)
+ index = length(actions) + 1
+ index = min(length(actions) + 1, index)
+ actions.Insert(index, action)
+ refresh_actions()
+
+/datum/action_group/proc/remove_action(atom/movable/screen/action)
+ actions -= action
+ refresh_actions()
+
+/datum/action_group/proc/refresh_actions()
+
+ // We don't use size() here because landings are not canon
+ var/total_rows = ROUND_UP(length(actions) / column_max)
+ total_rows -= max_rows // Lets get the amount of rows we're off from our max
+ row_offset = clamp(row_offset, 0, total_rows) // You're not allowed to offset so far that we have a row of blank space
+
+ var/button_number = 0
+ for(var/atom/movable/screen/button as anything in actions)
+ var/postion = ButtonNumberToScreenCoords(button_number )
+ button.screen_loc = postion
+ button_number++
+
+ if(landing)
+ var/postion = ButtonNumberToScreenCoords(button_number, landing = TRUE) // Need a good way to count buttons off screen, but allow this to display in the right place if it's being placed with no concern for dropdown
+ landing.screen_loc = postion
+ button_number++
+
+/// Accepts a number represeting our position in the group, indexes at 0 to make the math nicer
+/datum/action_group/proc/ButtonNumberToScreenCoords(number, landing = FALSE)
+ var/row = round(number / column_max)
+ row -= row_offset // If you're less then 0, you don't get to render, this lets us "scroll" rows ya feel?
+ if(row < 0)
+ return null
+
+ // Could use >= here, but I think it's worth noting that the two start at different places, since row is based on number here
+ if(row > max_rows - 1)
+ if(!landing) // If you're not a landing, go away please. thx
+ return null
+ // We always want to render landings, even if their action button can't be displayed.
+ // So we set a row equal to the max amount of rows + 1. Willing to overrun that max slightly to properly display the landing spot
+ row = max_rows // Remembering that max_rows indexes at 1, and row indexes at 0
+
+ // We're going to need to set our column to match the first item in the last row, so let's set number properly now
+ number = row * column_max
+
+ var/visual_row = row + north_offset
+ var/coord_row = visual_row ? "-[visual_row]" : "+0"
+
+ var/visual_column = number % column_max
+ var/coord_col = "+[visual_column]"
+ var/coord_col_offset = 4 + 2 * (visual_column + 1)
+ return "WEST[coord_col]:[coord_col_offset],NORTH[coord_row]:-[pixel_north_offset]"
+
+/datum/action_group/proc/check_against_view()
+ var/owner_view = owner?.mymob?.client?.view
+ if(!owner_view)
+ return
+ // Unlikey as it is, we may have been changed. Want to start from our target position and fail down
+ column_max = initial(column_max)
+ // Convert our viewer's view var into a workable offset
+ var/list/view_size = view_to_pixels(owner_view)
+
+ // We're primarially concerned about width here, if someone makes us 1x2000 I wish them a swift and watery death
+ var/furthest_screen_loc = ButtonNumberToScreenCoords(column_max - 1)
+ var/list/offsets = screen_loc_to_offset(furthest_screen_loc, owner_view)
+ if(offsets[1] > world.icon_size && offsets[1] < view_size[1] && offsets[2] > world.icon_size && offsets[2] < view_size[2]) // We're all good
+ return
+
+ for(column_max in column_max - 1 to 1 step -1) // Yes I could do this by unwrapping ButtonNumberToScreenCoords, but I don't feel like it
+ var/tested_screen_loc = ButtonNumberToScreenCoords(column_max)
+ offsets = screen_loc_to_offset(tested_screen_loc, owner_view)
+ // We've found a valid max length, pack it in
+ if(offsets[1] > world.icon_size && offsets[1] < view_size[1] && offsets[2] > world.icon_size && offsets[2] < view_size[2])
+ break
+ // Use our newly resized column max
+ refresh_actions()
+
+/// Returns the amount of objects we're storing at the moment
+/datum/action_group/proc/size()
+ var/amount = length(actions)
+ if(landing)
+ amount += 1
+ return amount
+
+/datum/action_group/proc/index_of(atom/movable/screen/get_location)
+ return actions.Find(get_location)
+
+/// Generates a landing object that can be dropped on to join this group
+/datum/action_group/proc/generate_landing()
+ if(landing)
+ return
+ landing = new()
+ landing.set_owner(src)
+ refresh_actions()
+
+/// Clears any landing objects we may currently have
+/datum/action_group/proc/clear_landing()
+ QDEL_NULL(landing)
+
+/datum/action_group/proc/update_landing()
+ if(!landing)
+ return
+ landing.refresh_owner()
+
+/datum/action_group/proc/scroll(amount)
+ row_offset += amount
+ refresh_actions()
+
+/datum/action_group/palette
+ north_offset = 2
+ column_max = 3
+ max_rows = 3
+ location = SCRN_OBJ_IN_PALETTE
+
+/datum/action_group/palette/insert_action(atom/movable/screen/action, index)
+ . = ..()
+ var/atom/movable/screen/button_palette/palette = owner.toggle_palette
+ palette.play_item_added()
+
+/datum/action_group/palette/remove_action(atom/movable/screen/action)
+ . = ..()
+ var/atom/movable/screen/button_palette/palette = owner.toggle_palette
+ palette.play_item_removed()
+ if(!length(actions))
+ palette.set_expanded(FALSE)
+
+/datum/action_group/palette/refresh_actions()
+ var/atom/movable/screen/button_palette/palette = owner.toggle_palette
+ var/atom/movable/screen/palette_scroll/scroll_down = owner.palette_down
+ var/atom/movable/screen/palette_scroll/scroll_up = owner.palette_up
+
+ var/actions_above = round((owner.listed_actions.size() - 1) / owner.listed_actions.column_max)
+ north_offset = initial(north_offset) + actions_above
+
+ palette.screen_loc = ui_action_palette_offset(actions_above)
+ var/action_count = length(owner?.mymob?.actions)
+ var/our_row_count = round((length(actions) - 1) / column_max)
+ if(!action_count)
+ palette.screen_loc = null
+
+ if(palette.expanded && action_count && our_row_count >= max_rows)
+ scroll_down.screen_loc = ui_palette_scroll_offset(actions_above)
+ scroll_up.screen_loc = ui_palette_scroll_offset(actions_above)
+ else
+ scroll_down.screen_loc = null
+ scroll_up.screen_loc = null
+
+ return ..()
+
+/datum/action_group/palette/ButtonNumberToScreenCoords(number, landing)
+ var/atom/movable/screen/button_palette/palette = owner.toggle_palette
+ if(palette.expanded)
+ return ..()
+
+ if(!landing)
+ return null
+
+ // We only render the landing in this case, so we force it to be the second item displayed (Second rather then first since it looks nicer)
+ // Remember the number var indexes at 0
+ return ..(1 + (row_offset * column_max), landing)
+
+
+/datum/action_group/listed
+ pixel_north_offset = 6
+ column_max = 10
+ location = SCRN_OBJ_IN_LIST
+
+/datum/action_group/listed/refresh_actions()
+ . = ..()
+ owner?.palette_actions.refresh_actions() // We effect them, so we gotta refresh em
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index 9547ee6f86..8e7953bdd5 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -29,7 +29,7 @@
/atom/movable/screen/human/equip/Click()
if(ismecha(usr.loc)) // stops inventory actions in a mech
- return 1
+ return TRUE
var/mob/living/carbon/human/H = usr
H.quick_equip()
@@ -44,7 +44,7 @@
/atom/movable/screen/devil/soul_counter/proc/update_counter(souls = 0)
invisibility = 0
- maptext = " [souls]
"
+ maptext = MAPTEXT("[souls]
")
switch(souls)
if(0,null)
icon_state = "Devil-1"
@@ -103,7 +103,7 @@
..()
var/valuecolor = "#ff2525"
if(owner.stat == DEAD)
- maptext = "ERR-0F
"
+ maptext = MAPTEXT("ERR-0F
")
icon_state = "coolant-3-1"
return
var/coolant_efficiency
@@ -123,7 +123,7 @@
valuecolor = "#dd8109"
else if(coolant > BLOOD_VOLUME_SURVIVE * owner.blood_ratio)
valuecolor = "#e7520d"
- maptext = "[round((coolant / (BLOOD_VOLUME_NORMAL * owner.blood_ratio)) * 100, 1)]
"
+ maptext = MAPTEXT("[round((coolant / (BLOOD_VOLUME_NORMAL * owner.blood_ratio)) * 100, 1)]
")
var/efficiency_suffix
var/state_suffix
@@ -324,11 +324,11 @@
using.hud = src
hotkeybuttons += using
- using = new /atom/movable/screen/rest()
- using.icon = ui_style
- using.screen_loc = ui_pull_resist
- using.hud = src
- static_inventory += using
+ rest_icon = new /atom/movable/screen/rest()
+ rest_icon.icon = ui_style
+ rest_icon.screen_loc = ui_pull_resist
+ rest_icon.hud = src
+ static_inventory += rest_icon
//END OF CIT CHANGES
using = new /atom/movable/screen/human/toggle()
diff --git a/code/_onclick/hud/movable_screen_objects.dm b/code/_onclick/hud/movable_screen_objects.dm
index eeb56d67f5..6c9f852ef5 100644
--- a/code/_onclick/hud/movable_screen_objects.dm
+++ b/code/_onclick/hud/movable_screen_objects.dm
@@ -9,9 +9,8 @@
//Not tied to the grid, places it's center where the cursor is
/atom/movable/screen/movable
+ mouse_drag_pointer = 'icons/effects/mouse_pointers/screen_drag.dmi'
var/snap2grid = FALSE
- var/moved = FALSE
- var/locked = FALSE
var/x_off = -16
var/y_off = -16
@@ -21,35 +20,29 @@
/atom/movable/screen/movable/snap
snap2grid = TRUE
-
/atom/movable/screen/movable/MouseDrop(over_object, src_location, over_location, src_control, over_control, params)
- if(locked) //no! I am locked! begone!
+ var/position = mouse_params_to_position(params)
+ if(!position)
return
- var/list/PM = params2list(params)
+
+ screen_loc = position
+
+/// Takes mouse parmas as input, returns a string representing the appropriate mouse position
+/atom/movable/screen/movable/proc/mouse_params_to_position(params)
+ var/list/modifiers = params2list(params)
//No screen-loc information? abort.
- if(!PM || !PM["screen-loc"])
+ if(!LAZYACCESS(modifiers, SCREEN_LOC))
return
-
- //Split screen-loc up into X+Pixel_X and Y+Pixel_Y
- var/list/screen_loc_params = splittext(PM["screen-loc"], ",")
-
- //Split X+Pixel_X up into list(X, Pixel_X)
- var/list/screen_loc_X = splittext(screen_loc_params[1],":")
-
- //Split Y+Pixel_Y up into list(Y, Pixel_Y)
- var/list/screen_loc_Y = splittext(screen_loc_params[2],":")
-
+ var/client/our_client = usr.client
+ var/list/offset = screen_loc_to_offset(LAZYACCESS(modifiers, SCREEN_LOC))
if(snap2grid) //Discard Pixel Values
- screen_loc = "[screen_loc_X[1]],[screen_loc_Y[1]]"
-
+ offset[1] = FLOOR(offset[1], world.icon_size) // drops any pixel offset
+ offset[2] = FLOOR(offset[2], world.icon_size) // drops any pixel offset
else //Normalise Pixel Values (So the object drops at the center of the mouse, not 16 pixels off)
- var/pix_X = text2num(screen_loc_X[2]) + x_off
- var/pix_Y = text2num(screen_loc_Y[2]) + y_off
- screen_loc = "[screen_loc_X[1]]:[pix_X],[screen_loc_Y[1]]:[pix_Y]"
-
- moved = screen_loc
-
+ offset[1] += x_off
+ offset[2] += y_off
+ return offset_to_screen_loc(offset[1], offset[2], our_client?.view)
//Debug procs
/client/proc/test_movable_UI()
@@ -59,7 +52,7 @@
var/atom/movable/screen/movable/M = new()
M.name = "Movable UI Object"
M.icon_state = "block"
- M.maptext = "Movable"
+ M.maptext = MAPTEXT("Movable")
M.maptext_width = 64
var/screen_l = input(usr,"Where on the screen? (Formatted as 'X,Y' e.g: '1,1' for bottom left)","Spawn Movable UI Object") as text
@@ -78,7 +71,7 @@
var/atom/movable/screen/movable/snap/S = new()
S.name = "Snap UI Object"
S.icon_state = "block"
- S.maptext = "Snap"
+ S.maptext = MAPTEXT("Snap")
S.maptext_width = 64
var/screen_l = input(usr,"Where on the screen? (Formatted as 'X,Y' e.g: '1,1' for bottom left)","Spawn Snap UI Object") as text
diff --git a/code/_onclick/hud/new_player.dm b/code/_onclick/hud/new_player.dm
index 77b225d82e..539b842375 100644
--- a/code/_onclick/hud/new_player.dm
+++ b/code/_onclick/hud/new_player.dm
@@ -5,6 +5,12 @@
///Whether the menu is currently on the client's screen or not
var/menu_hud_status = TRUE
+/datum/hud/new_player/New(mob/dead/new_player/owner)
+ . = ..()
+ if(!owner.age_verify())
+ return
+ populate_buttons(owner)
+
/datum/hud/new_player/proc/populate_buttons(mob/dead/new_player/owner)
var/list/buttons = subtypesof(/atom/movable/screen/lobby)
for(var/button_type in buttons)
diff --git a/code/_onclick/hud/radial.dm b/code/_onclick/hud/radial.dm
index 60a78e5ff3..7ddcd1c9f0 100644
--- a/code/_onclick/hud/radial.dm
+++ b/code/_onclick/hud/radial.dm
@@ -261,7 +261,7 @@ GLOBAL_LIST_EMPTY(radial_menus)
//Blank
menu_holder = image(icon='icons/effects/effects.dmi',loc=anchor,icon_state="nothing",layer = ABOVE_HUD_LAYER)
menu_holder.plane = ABOVE_HUD_PLANE
- menu_holder.appearance_flags |= KEEP_APART|NO_CLIENT_COLOR|RESET_ALPHA|RESET_COLOR|RESET_TRANSFORM
+ menu_holder.appearance_flags |= APPEARANCE_UI_IGNORE_ALPHA | KEEP_APART
menu_holder.vis_contents += elements + close_button
current_user.images += menu_holder
diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm
index e20bae87d7..175d6e2a53 100644
--- a/code/_onclick/hud/robot.dm
+++ b/code/_onclick/hud/robot.dm
@@ -7,7 +7,7 @@
/atom/movable/screen/robot/Click()
if(isobserver(usr))
- return 1
+ return TRUE
/atom/movable/screen/robot/module/Click()
if(..())
@@ -15,7 +15,7 @@
var/mob/living/silicon/robot/R = usr
if(R.module.type != /obj/item/robot_module)
R.hud_used.toggle_show_robot_modules()
- return 1
+ return TRUE
R.pick_module()
/atom/movable/screen/robot/module1
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index dbcf3750f6..c0d500511f 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -62,12 +62,12 @@
// At this point in client Click() code we have passed the 1/10 sec check and little else
// We don't even know if it's a middle click
if(usr.incapacitated())
- return 1
+ return TRUE
if(ismob(usr))
var/mob/M = usr
M.swap_hand()
- return 1
+ return TRUE
// /atom/movable/screen/skills
// name = "skills"
@@ -154,9 +154,8 @@
if(!icon_empty)
icon_empty = icon_state
- if(!hud?.mymob || !slot_id || !icon_full)
- return ..()
- icon_state = hud.mymob.get_item_by_slot(slot_id) ? icon_full : icon_empty
+ if(hud?.mymob && slot_id && icon_full)
+ icon_state = hud.mymob.get_item_by_slot(slot_id) ? icon_full : icon_empty
return ..()
/atom/movable/screen/inventory/proc/add_overlays()
@@ -207,7 +206,7 @@
. += blocked_overlay
if(held_index == hud.mymob.active_hand_index)
- . += "hand_active"
+ . += (held_index % 2) ? "lhandactive" : "rhandactive"
/atom/movable/screen/inventory/hand/Click(location, control, params)
@@ -411,6 +410,7 @@
name = "rest"
icon = 'icons/mob/screen_midnight.dmi'
icon_state = "act_rest"
+ base_icon_state = "act_rest"
plane = HUD_PLANE
/atom/movable/screen/rest/Click()
@@ -422,10 +422,7 @@
var/mob/living/user = hud?.mymob
if(!istype(user))
return ..()
- if(!user.resting)
- icon_state = "act_rest"
- else
- icon_state = "act_rest0"
+ icon_state = "[base_icon_state][user.resting ? 0 : null]"
return ..()
/atom/movable/screen/throw_catch
@@ -455,7 +452,7 @@
var/icon_y = text2num(LAZYACCESS(modifiers, "icon-y"))
var/choice = get_zone_at(icon_x, icon_y)
if (!choice)
- return 1
+ return TRUE
return set_selected_zone(choice, usr)
diff --git a/code/_onclick/hud/screentip.dm b/code/_onclick/hud/screentip.dm
index 5128448561..b9b27072b3 100644
--- a/code/_onclick/hud/screentip.dm
+++ b/code/_onclick/hud/screentip.dm
@@ -17,4 +17,4 @@
SIGNAL_HANDLER
if(!hud || !hud.mymob.client.view_size) //Might not have been initialized by now
return
- maptext_width = getviewsize(hud.mymob.client.view_size.getView())[1] * world.icon_size
+ maptext_width = view_to_pixels(hud.mymob.client.view_size.getView())[1]
diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm
index 23486cac29..488a50193c 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -236,7 +236,7 @@
attack_message_local = "You [message_verb] yourself[message_hit_area] with [I]"
visible_message("[attack_message] ",\
"[attack_message_local] ", null, COMBAT_MESSAGE_RANGE)
- return 1
+ return TRUE
/// How much stamina this takes to swing this is not for realism purposes hecc off.
/obj/item/proc/getweight(mob/living/user, multiplier = 1, trait = SKILL_STAMINA_COST)
diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm
index 78fc32480f..dfab3b5160 100644
--- a/code/_onclick/observer.dm
+++ b/code/_onclick/observer.dm
@@ -24,7 +24,10 @@
CtrlShiftClickOn(A)
return
if(modifiers["middle"])
- MiddleClickOn(A)
+ if(modifiers["ctrl"])
+ CtrlMiddleClickOn(A)
+ else
+ MiddleClickOn(A)
return
if(modifiers["shift"])
ShiftClickOn(A)
diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm
index 073f50d8c5..fc9a4207ae 100644
--- a/code/_onclick/other_mobs.dm
+++ b/code/_onclick/other_mobs.dm
@@ -18,7 +18,7 @@
. = attackchain_flags
// Special glove functions:
- // If the gloves do anything, have them return 1 to stop
+ // If the gloves do anything, have them return TRUE to stop
// normal attack_hand() here.
var/obj/item/clothing/gloves/G = gloves // not typecast specifically enough in defines
if(proximity && istype(G))
@@ -99,7 +99,7 @@
*/
/mob/living/carbon/RestrainedClickOn(atom/A)
- return 0
+ return FALSE
/mob/living/carbon/human/RangedAttack(atom/A, mouseparams)
. = ..()
diff --git a/code/_onclick/right_click.dm b/code/_onclick/right_click.dm
index c1613561b4..49bd76516a 100644
--- a/code/_onclick/right_click.dm
+++ b/code/_onclick/right_click.dm
@@ -15,7 +15,7 @@
DelayNextAction(CLICK_CD_HANDCUFFED)
return RestrainedClickOn(A)
- if(in_throw_mode)
+ if(throw_mode)
throw_item(A)//todo: make it plausible to lightly toss items via right-click
return
diff --git a/code/_rendering/atom_huds/data_huds.dm b/code/_rendering/atom_huds/data_huds.dm
index 291923ee4e..f120a0b824 100644
--- a/code/_rendering/atom_huds/data_huds.dm
+++ b/code/_rendering/atom_huds/data_huds.dm
@@ -24,13 +24,13 @@
/datum/atom_hud/data/human/medical/basic/proc/check_sensors(mob/living/carbon/human/H)
if(!istype(H))
- return 0
+ return FALSE
var/obj/item/clothing/under/U = H.w_uniform
if(!istype(U))
- return 0
+ return FALSE
if(U.sensor_mode <= SENSOR_VITALS)
- return 0
- return 1
+ return FALSE
+ return TRUE
/datum/atom_hud/data/human/medical/basic/add_to_single_hud(mob/M, mob/living/carbon/H)
if(check_sensors(H))
diff --git a/code/controllers/hooks.dm b/code/controllers/hooks.dm
index fe6a49c854..9eb6631c3b 100644
--- a/code/controllers/hooks.dm
+++ b/code/controllers/hooks.dm
@@ -11,9 +11,9 @@
* @code
/hook/foo/proc/bar()
if(1)
- return 1 //Sucessful
+ return TRUE //Sucessful
else
- return 0 //Error, or runtime.
+ return FALSE //Error, or runtime.
* @endcode
* All hooks must return nonzero on success, as runtimes will force return null.
*/
diff --git a/code/controllers/master.dm b/code/controllers/master.dm
index 11318641be..715d5eab28 100644
--- a/code/controllers/master.dm
+++ b/code/controllers/master.dm
@@ -129,7 +129,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
/proc/Recreate_MC()
. = -1 //so if we runtime, things know we failed
if (world.time < Master.restart_timeout)
- return 0
+ return FALSE
if (world.time < Master.restart_clear)
Master.restart_count *= 0.5
@@ -142,7 +142,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
new/datum/controller/master()
catch
return -1
- return 1
+ return TRUE
/datum/controller/master/Recover()
diff --git a/code/controllers/subsystem/activity.dm b/code/controllers/subsystem/activity.dm
index de5d8f7f26..0dddc390da 100644
--- a/code/controllers/subsystem/activity.dm
+++ b/code/controllers/subsystem/activity.dm
@@ -48,7 +48,7 @@ SUBSYSTEM_DEF(activity)
/datum/controller/subsystem/activity/proc/get_average_threat()
if(!length(threat_history))
- return 0
+ return FALSE
var/total_weight = 0
var/total_amt = 0
for(var/i in 1 to threat_history.len-1)
diff --git a/code/controllers/subsystem/augury.dm b/code/controllers/subsystem/augury.dm
index 53c86004a6..f7a7c66718 100644
--- a/code/controllers/subsystem/augury.dm
+++ b/code/controllers/subsystem/augury.dm
@@ -69,15 +69,15 @@ SUBSYSTEM_DEF(augury)
SSaugury.watchers += owner
to_chat(owner, "You are now auto-following debris. ")
active = TRUE
- UpdateButtonIcon()
+ UpdateButtons()
/datum/action/innate/augury/Deactivate()
SSaugury.watchers -= owner
to_chat(owner, "You are no longer auto-following debris. ")
active = FALSE
- UpdateButtonIcon()
+ UpdateButtons()
-/datum/action/innate/augury/UpdateButtonIcon(status_only = FALSE, force)
+/datum/action/innate/augury/UpdateButton(atom/movable/screen/movable/action_button/button, status_only = FALSE, force)
..()
if(active)
button.icon_state = "template_active"
diff --git a/code/controllers/subsystem/dcs.dm b/code/controllers/subsystem/dcs.dm
index 6be5a4bdfa..0d5b59bfa9 100644
--- a/code/controllers/subsystem/dcs.dm
+++ b/code/controllers/subsystem/dcs.dm
@@ -55,6 +55,6 @@ PROCESSING_SUBSYSTEM_DEF(dcs)
fullid += "[key]"
if(length(named_arguments))
- named_arguments = sortList(named_arguments)
+ named_arguments = sort_list(named_arguments)
fullid += named_arguments
return list2params(fullid)
diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm
index 4daff91575..9ff65d83c0 100644
--- a/code/controllers/subsystem/job.dm
+++ b/code/controllers/subsystem/job.dm
@@ -47,7 +47,7 @@ SUBSYSTEM_DEF(job)
var/list/all_jobs = subtypesof(/datum/job)
if(!all_jobs.len)
to_chat(world, "Error setting up jobs, no job datums found ")
- return 0
+ return FALSE
for(var/J in all_jobs)
var/datum/job/job = new J()
@@ -65,7 +65,7 @@ SUBSYSTEM_DEF(job)
name_occupations[job.title] = job
type_occupations[J] = job
- return 1
+ return TRUE
/datum/controller/subsystem/job/proc/GetJob(rank)
@@ -199,8 +199,8 @@ SUBSYSTEM_DEF(job)
continue
var/mob/dead/new_player/candidate = pick(candidates)
if(AssignRole(candidate, command_position))
- return 1
- return 0
+ return TRUE
+ return FALSE
//This proc is called at the start of the level loop of DivideOccupations() and will cause head jobs to be checked before any other jobs of the same level
@@ -222,7 +222,7 @@ SUBSYSTEM_DEF(job)
var/ai_selected = 0
var/datum/job/job = GetJob("AI")
if(!job)
- return 0
+ return FALSE
for(var/i = job.total_positions, i > 0, i--)
for(var/level in level_order)
var/list/candidates = list()
@@ -233,8 +233,8 @@ SUBSYSTEM_DEF(job)
ai_selected++
break
if(ai_selected)
- return 1
- return 0
+ return TRUE
+ return FALSE
/** Proc DivideOccupations
@@ -599,8 +599,8 @@ SUBSYSTEM_DEF(job)
if(hpc || epc)
var/relevent_cap = max(hpc, epc)
if((initial_players_to_assign - unassigned.len) >= relevent_cap)
- return 1
- return 0
+ return TRUE
+ return FALSE
/datum/controller/subsystem/job/proc/RejectPlayer(mob/dead/new_player/player)
if(player.mind && player.mind.special_role)
diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm
index fc0e03afe0..e593dc410e 100644
--- a/code/controllers/subsystem/mapping.dm
+++ b/code/controllers/subsystem/mapping.dm
@@ -423,7 +423,7 @@ GLOBAL_LIST_EMPTY(the_station_areas)
banned += generateMapList("[global.config.directory]/iceruinblacklist.txt")
banned += generateMapList("[global.config.directory]/stationruinblacklist.txt")
- for(var/item in sortList(subtypesof(/datum/map_template/ruin), GLOBAL_PROC_REF(cmp_ruincost_priority)))
+ for(var/item in sort_list(subtypesof(/datum/map_template/ruin), GLOBAL_PROC_REF(cmp_ruincost_priority)))
var/datum/map_template/ruin/ruin_type = item
// screen out the abstract subtypes
if(!initial(ruin_type.id))
diff --git a/code/controllers/subsystem/pathfinder.dm b/code/controllers/subsystem/pathfinder.dm
index ccbea79306..cee625b3f1 100644
--- a/code/controllers/subsystem/pathfinder.dm
+++ b/code/controllers/subsystem/pathfinder.dm
@@ -36,7 +36,7 @@ SUBSYSTEM_DEF(pathfinder)
flow[t] = M
return free
else
- return 0
+ return FALSE
/datum/flowcache/proc/toolong(l)
log_game("Pathfinder route took longer than 150 ticks, src bot [flow[flow[l]]]")
diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm
index adf9d01946..dc01134038 100644
--- a/code/controllers/subsystem/processing/quirks.dm
+++ b/code/controllers/subsystem/processing/quirks.dm
@@ -22,7 +22,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
/datum/controller/subsystem/processing/quirks/proc/SetupQuirks()
// Sort by Positive, Negative, Neutral; and then by name
- var/list/quirk_list = sortList(subtypesof(/datum/quirk), GLOBAL_PROC_REF(cmp_quirk_asc))
+ var/list/quirk_list = sort_list(subtypesof(/datum/quirk), GLOBAL_PROC_REF(cmp_quirk_asc))
for(var/V in quirk_list)
var/datum/quirk/T = V
diff --git a/code/controllers/subsystem/radio.dm b/code/controllers/subsystem/radio.dm
index 8299709392..22f7b49207 100644
--- a/code/controllers/subsystem/radio.dm
+++ b/code/controllers/subsystem/radio.dm
@@ -25,7 +25,7 @@ SUBSYSTEM_DEF(radio)
if(frequency)
frequency.remove_listener(device)
// let's don't delete frequencies in case a non-listener keeps a reference
- return 1
+ return TRUE
/datum/controller/subsystem/radio/proc/return_frequency(new_frequency as num)
var/f_text = num2text(new_frequency)
diff --git a/code/controllers/subsystem/research.dm b/code/controllers/subsystem/research.dm
index be722ed4f1..fb863690ce 100644
--- a/code/controllers/subsystem/research.dm
+++ b/code/controllers/subsystem/research.dm
@@ -358,7 +358,7 @@ SUBSYSTEM_DEF(research)
/datum/controller/subsystem/research/proc/calculate_server_coefficient() //Diminishing returns.
var/amt = servers.len
if(!amt)
- return 0
+ return FALSE
var/coeff = 100
coeff = sqrt(coeff / amt)
return coeff
diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm
index 628dec280d..7857cd6222 100644
--- a/code/controllers/subsystem/shuttle.dm
+++ b/code/controllers/subsystem/shuttle.dm
@@ -294,7 +294,7 @@ SUBSYSTEM_DEF(shuttle)
log_shuttle("[key_name(user)] has recalled the shuttle.")
message_admins("[ADMIN_LOOKUPFLW(user)] has recalled the shuttle.")
deadchat_broadcast(" has recalled the shuttle from [span_name("[get_area_name(user, TRUE)]")].", span_name("[user.real_name]"), user, message_type=DEADCHAT_ANNOUNCEMENT)
- return 1
+ return TRUE
/datum/controller/subsystem/shuttle/proc/canRecall()
if(!emergency || emergency.mode != SHUTTLE_CALL || emergencyNoRecall || SSticker.mode.name == "meteor")
@@ -400,7 +400,7 @@ SUBSYSTEM_DEF(shuttle)
/datum/controller/subsystem/shuttle/proc/toggleShuttle(shuttleId, dockHome, dockAway, timed)
var/obj/docking_port/mobile/M = getShuttle(shuttleId)
if(!M)
- return 1
+ return TRUE
var/obj/docking_port/stationary/dockedAt = M.get_docked()
var/destination = dockHome
if(dockedAt && dockedAt.id == dockHome)
@@ -411,7 +411,7 @@ SUBSYSTEM_DEF(shuttle)
else
if(M.initiate_docking(getDock(destination)) != DOCKING_SUCCESS)
return 2
- return 0 //dock successful
+ return FALSE //dock successful
/datum/controller/subsystem/shuttle/proc/moveShuttle(shuttleId, dockId, timed)
@@ -419,14 +419,14 @@ SUBSYSTEM_DEF(shuttle)
var/obj/docking_port/stationary/D = getDock(dockId)
if(!M)
- return 1
+ return TRUE
if(timed)
if(M.request(D))
return 2
else
if(M.initiate_docking(D) != DOCKING_SUCCESS)
return 2
- return 0 //dock successful
+ return FALSE //dock successful
/datum/controller/subsystem/shuttle/proc/request_transit_dock(obj/docking_port/mobile/M)
if(!istype(M))
@@ -825,7 +825,7 @@ SUBSYSTEM_DEF(shuttle)
templates[S.port_id]["templates"] += list(L)
- data["templates_tabs"] = sortList(data["templates_tabs"])
+ data["templates_tabs"] = sort_list(data["templates_tabs"])
data["existing_shuttle"] = null
diff --git a/code/controllers/subsystem/throwing.dm b/code/controllers/subsystem/throwing.dm
index 5f6238159b..14bd34d9e9 100644
--- a/code/controllers/subsystem/throwing.dm
+++ b/code/controllers/subsystem/throwing.dm
@@ -41,37 +41,61 @@ SUBSYSTEM_DEF(throwing)
currentrun = null
/datum/thrownthing
+ ///Defines the atom that has been thrown (Objects and Mobs, mostly.)
var/atom/movable/thrownthing
- var/atom/target
+ ///Weakref to the original intended target of the throw, to prevent hardDels
+ var/datum/weakref/initial_target
+ ///The turf that the target was on, if it's not a turf itself.
var/turf/target_turf
+ ///If the target happens to be a carbon and that carbon has a body zone aimed at, this is carried on here.
var/target_zone
+ ///The initial direction of the thrower of the thrownthing for building the trajectory of the throw.
var/init_dir
+ ///The maximum number of turfs that the thrownthing will travel to reach it's target.
var/maxrange
+ ///The speed of the projectile thrownthing being thrown.
var/speed
+ ///If a mob is the one who has thrown the object, then it's moved here.
var/mob/thrower
+ ///A variable that helps in describing objects thrown at an angle, if it should be moved diagonally first or last.
var/diagonals_first
- var/dist_travelled = 0
- var/start_time
- var/dist_x
- var/dist_y
- var/dx
- var/dy
- var/force = MOVE_FORCE_DEFAULT
- var/gentle = FALSE
+ ///Set to TRUE if the throw is exclusively diagonal (45 Degree angle throws for example)
var/pure_diagonal
+ ///Tracks how far a thrownthing has traveled mid-throw for the purposes of maxrange
+ var/dist_travelled = 0
+ ///The start_time obtained via world.time for the purposes of tiles moved/tick.
+ var/start_time
+ ///Distance to travel in the X axis/direction.
+ var/dist_x
+ ///Distance to travel in the y axis/direction.
+ var/dist_y
+ ///The Horizontal direction we're traveling (EAST or WEST)
+ var/dx
+ ///The VERTICAL direction we're traveling (NORTH or SOUTH)
+ var/dy
+ ///The movement force provided to a given object in transit. More info on these in move_force.dm
+ var/force = MOVE_FORCE_DEFAULT
+ ///If the throw is gentle, then the thrownthing is harmless on impact.
+ var/gentle = FALSE
+ ///How many tiles that need to be moved in order to travel to the target.
var/diagonal_error
+ ///If a thrown thing has a callback, it can be invoked here within thrownthing.
var/datum/callback/callback
+ ///Mainly exists for things that would freeze a thrown object in place, like a timestop'd tile. Or a Tractor Beam.
var/paused = FALSE
+ ///How long an object has been paused for, to be added to the travel time.
var/delayed_time = 0
+ ///The last world.time value stored when the thrownthing was moving.
var/last_move = 0
-/datum/thrownthing/New(thrownthing, target, target_turf, init_dir, maxrange, speed, thrower, diagonals_first, force, gentle, callback, target_zone)
+/datum/thrownthing/New(thrownthing, target, init_dir, maxrange, speed, thrower, diagonals_first, force, gentle, callback, target_zone)
. = ..()
src.thrownthing = thrownthing
RegisterSignal(thrownthing, COMSIG_PARENT_QDELETING, PROC_REF(on_thrownthing_qdel))
- src.target = target
- src.target_turf = target_turf
+ src.target_turf = get_turf(target)
+ if(target_turf != target)
+ src.initial_target = WEAKREF(target)
src.init_dir = init_dir
src.maxrange = maxrange
src.speed = speed
@@ -90,8 +114,8 @@ SUBSYSTEM_DEF(throwing)
SSthrowing.currentrun -= thrownthing
thrownthing.throwing = null
thrownthing = null
- target = null
thrower = null
+ initial_target = null
if(callback)
QDEL_NULL(callback) //It stores a reference to the thrownthing, its source. Let's clean that.
return ..()
@@ -114,9 +138,17 @@ SUBSYSTEM_DEF(throwing)
delayed_time += world.time - last_move
return
- if (dist_travelled && hitcheck()) //to catch sneaky things moving on our tile while we slept
- finalize()
- return
+ var/atom/movable/actual_target = initial_target?.resolve()
+
+ if(dist_travelled) //to catch sneaky things moving on our tile while we slept
+ for(var/atom/movable/obstacle as anything in get_turf(thrownthing))
+ if (obstacle == thrownthing || (obstacle == thrower && !ismob(thrownthing)))
+ continue
+ if(obstacle.pass_flags_self & LETPASSTHROW)
+ continue
+ if (obstacle == actual_target || (obstacle.density && !(obstacle.flags_1 & ON_BORDER_1)))
+ finalize(TRUE, obstacle)
+ return
var/atom/step
@@ -143,14 +175,17 @@ SUBSYSTEM_DEF(throwing)
finalize()
return
- AM.Move(step, get_dir(AM, step), DELAY_TO_GLIDE_SIZE(1 / speed))
-
- if (!AM.throwing) // we hit something during our move
- finalize(hit = TRUE)
+ if(!AM.Move(step, get_dir(AM, step), DELAY_TO_GLIDE_SIZE(1 / speed))) // we hit something during our move...
+ if(AM.throwing) // ...but finalize() wasn't called on Bump() because of a higher level definition that doesn't always call parent.
+ finalize()
return
dist_travelled++
+ if(actual_target && !(actual_target.pass_flags_self & LETPASSTHROW) && actual_target.loc == AM.loc) // we crossed a movable with no density (e.g. a mouse or APC) we intend to hit anyway.
+ finalize(TRUE, actual_target)
+ return
+
if (dist_travelled > MAX_THROWING_DIST)
finalize()
return
@@ -162,11 +197,10 @@ SUBSYSTEM_DEF(throwing)
return
thrownthing.throwing = null
if (!hit)
- for (var/thing in get_turf(thrownthing)) //looking for our target on the turf we land on.
- var/atom/A = thing
- if (A == target)
+ for (var/atom/movable/obstacle as anything in get_turf(thrownthing)) //looking for our target on the turf we land on.
+ if (obstacle == target)
hit = TRUE
- thrownthing.throw_impact(A, src)
+ thrownthing.throw_impact(obstacle, src)
if(QDELETED(thrownthing)) //throw_impact can delete things, such as glasses smashing
return //deletion should already be handled by on_thrownthing_qdel()
break
@@ -192,15 +226,3 @@ SUBSYSTEM_DEF(throwing)
T.zFall(thrownthing)
qdel(src)
-
-/datum/thrownthing/proc/hit_atom(atom/A)
- finalize(hit=TRUE, target=A)
-
-/datum/thrownthing/proc/hitcheck()
- for (var/thing in get_turf(thrownthing))
- var/atom/movable/AM = thing
- if (AM == thrownthing || (AM == thrower && !ismob(thrownthing)))
- continue
- if (AM.density && !(AM.pass_flags_self & LETPASSTHROW) && !(AM.flags_1 & ON_BORDER_1))
- finalize(hit=TRUE, target=AM)
- return TRUE
diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm
index b0ce44c68f..ebd7801573 100755
--- a/code/controllers/subsystem/ticker.dm
+++ b/code/controllers/subsystem/ticker.dm
@@ -245,7 +245,7 @@ SUBSYSTEM_DEF(ticker)
mode = null
SSjob.ResetOccupations()
emergency_swap++
- return 0
+ return FALSE
CHECK_TICK
//Configure mode and assign player to special mode stuff
@@ -264,7 +264,7 @@ SUBSYSTEM_DEF(ticker)
to_chat(world, "Error setting up [GLOB.master_mode]. Reverting to pre-game lobby.")
SSjob.ResetOccupations()
emergency_swap++
- return 0
+ return FALSE
else
message_admins("DEBUG: Bypassing prestart checks... ")
@@ -273,7 +273,7 @@ SUBSYSTEM_DEF(ticker)
var/list/modes = new
for (var/datum/game_mode/M in runnable_modes)
modes += M.name
- modes = sortList(modes)
+ modes = sort_list(modes)
to_chat(world, "The gamemode is: secret!\nPossibilities: [english_list(modes)]")
else
mode.announce()*/
diff --git a/code/controllers/subsystem/traumas.dm b/code/controllers/subsystem/traumas.dm
index 7f1ece6937..6a7b0d9c2c 100644
--- a/code/controllers/subsystem/traumas.dm
+++ b/code/controllers/subsystem/traumas.dm
@@ -100,7 +100,7 @@ SUBSYSTEM_DEF(traumas)
/obj/item/clothing/suit/space/hardsuit/ert/engi, /obj/item/clothing/suit/space/hardsuit/ert/med,
/obj/item/clothing/suit/space/hardsuit/deathsquad, /obj/item/clothing/head/helmet/space/hardsuit/deathsquad,
/obj/machinery/door/airlock/centcom)),
- "robots" = typecacheof(list(/obj/machinery/computer/upload, /obj/item/aiModule/, /obj/machinery/recharge_station,
+ "robots" = typecacheof(list(/obj/machinery/computer/upload, /obj/item/ai_module/, /obj/machinery/recharge_station,
/obj/item/aicard, /obj/item/deactivated_swarmer, /obj/effect/mob_spawn/swarmer)),
"doctors" = typecacheof(list(/obj/item/clothing/under/rank/medical/doctor, /obj/item/clothing/under/rank/medical/chemist,
@@ -170,7 +170,7 @@ SUBSYSTEM_DEF(traumas)
/obj/item/gun/ballistic/automatic/shotgun/bulldog, /obj/item/gun/ballistic/automatic/c20r, /obj/item/gun/ballistic/automatic/m90, /obj/item/gun/ballistic/automatic/l6_saw, /obj/item/storage/belt/grenade/full, /obj/item/gun/ballistic/automatic/sniper_rifle/syndicate, /obj/item/gun/energy/kinetic_accelerator/crossbow,
/obj/item/melee/transforming/energy/sword/saber, /obj/item/dualsaber, /obj/item/melee/powerfist, /obj/item/storage/box/syndie_kit, /obj/item/grenade/spawnergrenade/manhacks, /obj/item/grenade/chem_grenade/bioterrorfoam, /obj/item/reagent_containers/spray/chemsprayer/bioterror, /obj/item/ammo_box/magazine/m10mm,
/obj/item/ammo_box/magazine/pistolm9mm, /obj/item/ammo_box/a357, /obj/item/ammo_box/magazine/m12g, /obj/item/ammo_box/magazine/mm712x82, /obj/item/antag_spawner/nuke_ops, /obj/vehicle/sealed/mecha/combat/gygax/dark, /obj/vehicle/sealed/mecha/combat/marauder/mauler, /obj/item/soap/syndie, /obj/item/gun/syringe/syndicate, /obj/item/cartridge/virus/syndicate,
- /obj/item/cartridge/virus/frame, /obj/item/chameleon, /obj/item/storage/box/syndie_kit/cutouts, /obj/item/clothing/suit/space/hardsuit/syndi, /obj/item/card/emag, /obj/item/storage/toolbox/syndicate, /obj/item/storage/book/bible/syndicate, /obj/item/encryptionkey/binary, /obj/item/encryptionkey/syndicate, /obj/item/aiModule/syndicate,
+ /obj/item/cartridge/virus/frame, /obj/item/chameleon, /obj/item/storage/box/syndie_kit/cutouts, /obj/item/clothing/suit/space/hardsuit/syndi, /obj/item/card/emag, /obj/item/storage/toolbox/syndicate, /obj/item/storage/book/bible/syndicate, /obj/item/encryptionkey/binary, /obj/item/encryptionkey/syndicate, /obj/item/ai_module/syndicate,
/obj/item/clothing/shoes/magboots/syndie, /obj/item/powersink, /obj/item/sbeacondrop, /obj/item/sbeacondrop/bomb, /obj/item/syndicatedetonator, /obj/item/shield/energy, /obj/item/assault_pod, /obj/item/slimepotion/slime/sentience/nuclear, /obj/item/stack/telecrystal, /obj/item/jammer, /obj/item/codespeak_manual/unlimited,
/obj/item/toy/cards/deck/syndicate, /obj/item/storage/secure/briefcase/syndie, /obj/item/storage/fancy/cigarettes/cigpack_syndicate, /obj/item/toy/syndicateballoon, /obj/item/clothing/gloves/fingerless/pugilist/rapid, /obj/item/paper/fluff/ruins/thederelict/syndie_mission, /obj/item/organ/cyberimp/eyes/hud/security/syndicate, /obj/item/clothing/head/HoS/syndicate,
/obj/machinery/computer/pod/old/syndicate, /obj/machinery/vending/medical/syndicate_access, /obj/item/mmi/syndie, /obj/item/target/syndicate, /obj/machinery/vending/cigarette/syndicate, /obj/item/robot_module/syndicate, /obj/item/clothing/mask/gas/syndicate, /obj/machinery/power/singularity_beacon/syndicate, /obj/item/clothing/head/syndicatefake,
diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm
index 9ce7c7484b..abcc7319aa 100644
--- a/code/controllers/subsystem/vote.dm
+++ b/code/controllers/subsystem/vote.dm
@@ -373,7 +373,7 @@ SUBSYSTEM_DEF(vote)
/datum/controller/subsystem/vote/proc/submit_vote(vote, score = 0)
if(mode)
if(CONFIG_GET(flag/no_dead_vote) && usr.stat == DEAD && !usr.client.holder)
- return 0
+ return FALSE
if(vote && ISINRANGE(vote, 1, choices.len))
switch(vote_system)
if(PLURALITY_VOTING)
@@ -415,7 +415,7 @@ SUBSYSTEM_DEF(vote)
voted[usr.ckey] = list()
voted[usr.ckey][choices[vote]] = score
saved -= usr.ckey
- return 0
+ return FALSE
/datum/controller/subsystem/vote/proc/initiate_vote(vote_type, initiator_key, display = display_votes, votesystem = PLURALITY_VOTING, forced = FALSE,vote_time = -1)//CIT CHANGE - adds display argument to votes to allow for obfuscated votes
vote_system = votesystem
@@ -424,7 +424,7 @@ SUBSYSTEM_DEF(vote)
var/next_allowed_time = (started_time + CONFIG_GET(number/vote_delay))
if(mode)
to_chat(usr, "There is already a vote in progress! please wait for it to finish. ")
- return 0
+ return FALSE
var/admin = FALSE
var/ckey = ckey(initiator_key)
@@ -433,7 +433,7 @@ SUBSYSTEM_DEF(vote)
if(next_allowed_time > world.time && !admin)
to_chat(usr, "A vote was initiated recently, you must wait [DisplayTimeText(next_allowed_time-world.time)] before a new vote can be started! ")
- return 0
+ return FALSE
SEND_SOUND(world, sound('sound/misc/notice2.ogg'))
reset()
@@ -464,7 +464,7 @@ SUBSYSTEM_DEF(vote)
if("custom")
question = stripped_input(usr,"What is the vote for?")
if(!question)
- return 0
+ return FALSE
var/system_string = input(usr,"Which voting type?",GLOB.vote_type_names[1]) in GLOB.vote_type_names
vote_system = GLOB.vote_type_names[system_string]
for(var/i=1,i<=10,i++)
@@ -488,7 +488,7 @@ SUBSYSTEM_DEF(vote)
toggles ^= choices[chosen]
display_votes = toggles
else
- return 0
+ return FALSE
mode = vote_type
initiator = initiator_key ? initiator_key : "the Server" // austation -- Crew autotransfer vote
started_time = world.time
@@ -521,8 +521,8 @@ SUBSYSTEM_DEF(vote)
popup.set_window_options("can_close=0")
popup.set_content(SSvote.interface(C))
popup.open(0)
- return 1
- return 0
+ return TRUE
+ return FALSE
/datum/controller/subsystem/vote/proc/interface(client/C)
if(!C)
@@ -736,7 +736,7 @@ SUBSYSTEM_DEF(vote)
Remove(owner)
/datum/action/vote/IsAvailable(silent = FALSE)
- return 1
+ return TRUE
/datum/action/vote/proc/remove_from_client()
if(!owner)
diff --git a/code/datums/achievements/_awards.dm b/code/datums/achievements/_awards.dm
index 22296b90f5..ce94829637 100644
--- a/code/datums/achievements/_awards.dm
+++ b/code/datums/achievements/_awards.dm
@@ -50,7 +50,7 @@
)
if(!Q.Execute(async = TRUE))
qdel(Q)
- return 0
+ return FALSE
var/result = 0
if(Q.NextRow())
result = text2num(Q.item[1])
diff --git a/code/datums/action.dm b/code/datums/action.dm
index ae5c04f866..26e61957e6 100644
--- a/code/datums/action.dm
+++ b/code/datums/action.dm
@@ -11,11 +11,10 @@
var/check_flags = 0
var/required_mobility_flags = MOBILITY_USE
var/processing = FALSE
- var/atom/movable/screen/movable/action_button/button = null
var/buttontooltipstyle = ""
var/transparent_when_unavailable = TRUE
- var/use_target_appearance = FALSE
- var/list/target_appearance_matrix //if set, will be used to transform the target button appearance as an arglist.
+ /// Where any buttons we create should be by default. Accepts screen_loc and location defines
+ var/default_button_position = SCRN_OBJ_IN_LIST
var/button_icon = 'icons/mob/actions/backgrounds.dmi' //This is the file for the BACKGROUND icon
var/background_icon_state = ACTION_BUTTON_DEFAULT_BACKGROUND //And this is the state for the background icon
@@ -28,12 +27,6 @@
/datum/action/New(Target)
link_to(Target)
- button = new
- button.linked_action = src
- button.name = name
- button.actiontooltipstyle = buttontooltipstyle
- if(desc)
- button.desc = desc
/datum/action/proc/link_to(Target)
target = Target
@@ -43,51 +36,42 @@
if(owner)
Remove(owner)
target = null
- QDEL_NULL(button)
+ QDEL_LIST_ASSOC_VAL(viewers) // Qdel the buttons in the viewers list **NOT THE HUDS**
return ..()
/datum/action/proc/Grant(mob/M)
- if(M)
- if(owner)
- if(owner == M)
- return
- Remove(owner)
- owner = M
-
- //button id generation
- var/counter = 0
- var/bitfield = 0
- for(var/datum/action/A in M.actions)
- if(A.name == name && A.button.id)
- counter += 1
- bitfield |= A.button.id
- bitfield = ~bitfield
- var/bitflag = 1
- for(var/i in 1 to (counter + 1))
- if(bitfield & bitflag)
- button.id = bitflag
- break
- bitflag *= 2
-
- M.actions += src
- if(M.client)
- M.client.screen += button
- button.locked = M.client.prefs.buttons_locked || button.id ? M.client.prefs.action_buttons_screen_locs["[name]_[button.id]"] : FALSE //even if it's not defaultly locked we should remember we locked it before
- button.moved = button.id ? M.client.prefs.action_buttons_screen_locs["[name]_[button.id]"] : FALSE
- M.update_action_buttons()
- else
+ if(!M)
Remove(owner)
+ return
+ if(owner)
+ if(owner == M)
+ return
+ Remove(owner)
+ owner = M
+ RegisterSignal(owner, COMSIG_PARENT_QDELETING, .proc/clear_ref, override = TRUE)
+
+ GiveAction(M)
+
+/datum/action/proc/clear_ref(datum/ref)
+ SIGNAL_HANDLER
+ if(ref == owner)
+ Remove(owner)
+ if(ref == target)
+ qdel(src)
/datum/action/proc/Remove(mob/M)
- if(M)
- if(M.client)
- M.client.screen -= button
- M.actions -= src
- M.update_action_buttons()
- owner = null
- button.moved = FALSE //so the button appears in its normal position when given to another owner.
- button.locked = FALSE
- button.id = null
+ for(var/datum/hud/hud in viewers)
+ if(!hud.mymob)
+ continue
+ HideFrom(hud.mymob)
+ LAZYREMOVE(M.actions, src) // We aren't always properly inserted into the viewers list, gotta make sure that action's cleared
+ viewers = list()
+
+ if(owner)
+ UnregisterSignal(owner, COMSIG_PARENT_QDELETING)
+ if(target == owner)
+ RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/clear_ref)
+ owner = null
/datum/action/proc/Trigger()
if(!IsAvailable())
@@ -125,15 +109,15 @@
/datum/action/proc/UpdateButtons(status_only, force)
for(var/datum/hud/hud in viewers)
var/atom/movable/screen/movable/button = viewers[hud]
- UpdateButtonIcon(button, status_only, force)
+ UpdateButton(button, status_only, force)
-/datum/action/proc/UpdateButtonIcon(status_only = FALSE, force = FALSE)
+/datum/action/proc/UpdateButton(atom/movable/screen/movable/action_button/button, status_only = FALSE, force = FALSE)
if(!button)
return
if(!status_only)
button.name = name
button.desc = desc
- if(owner && owner.hud_used && background_icon_state == ACTION_BUTTON_DEFAULT_BACKGROUND)
+ if(owner?.hud_used && background_icon_state == ACTION_BUTTON_DEFAULT_BACKGROUND)
var/list/settings = owner.hud_used.get_action_buttons_icons()
if(button.icon != settings["bg_icon"])
button.icon = settings["bg_icon"]
@@ -145,25 +129,13 @@
if(button.icon_state != background_icon_state)
button.icon_state = background_icon_state
- if(!use_target_appearance)
- ApplyIcon(button, force)
-
- else if(target && button.appearance_cache != target.appearance) //replace with /ref comparison if this is not valid.
- var/mutable_appearance/M = new(target)
- M.layer = FLOAT_LAYER
- M.plane = FLOAT_PLANE
- if(target_appearance_matrix)
- var/list/L = target_appearance_matrix
- M.transform = matrix(L[1], L[2], L[3], L[4], L[5], L[6])
- button.cut_overlays()
- button.add_overlay(M)
- button.appearance_cache = target.appearance
+ ApplyIcon(button, force)
if(!IsAvailable(TRUE))
button.color = transparent_when_unavailable ? rgb(128,0,0,128) : rgb(128,0,0)
else
button.color = rgb(255,255,255,255)
- return 1
+ return TRUE
/datum/action/proc/ApplyIcon(atom/movable/screen/movable/action_button/current_button, force = FALSE)
if(icon_icon && button_icon_state && ((current_button.button_icon_state != button_icon_state) || force))
@@ -179,25 +151,82 @@
/datum/action/ghost/Trigger()
if(!..())
- return 0
+ return FALSE
var/mob/M = target
M.ghostize(can_reenter_corpse = TRUE, voluntary = TRUE)
/datum/action/proc/OnUpdatedIcon()
- addtimer(CALLBACK(src, PROC_REF(UpdateButtonIcon)), 1) //Hopefully runs after new icon overlays have been compiled.
+ SIGNAL_HANDLER
+ UpdateButtons(force = TRUE)
+
+//Give our action button to the player
+/datum/action/proc/GiveAction(mob/viewer)
+ var/datum/hud/our_hud = viewer.hud_used
+ if(viewers[our_hud]) // Already have a copy of us? go away
+ return
+
+ LAZYOR(viewer.actions, src) // Move this in
+ ShowTo(viewer)
+
+//Adds our action button to the screen of a player
+/datum/action/proc/ShowTo(mob/viewer)
+ var/datum/hud/our_hud = viewer.hud_used
+ if(!our_hud || viewers[our_hud]) // There's no point in this if you have no hud in the first place
+ return
+
+ var/atom/movable/screen/movable/action_button/button = CreateButton()
+ SetId(button, viewer)
+
+ button.our_hud = our_hud
+ viewers[our_hud] = button
+ if(viewer.client)
+ viewer.client.screen += button
+
+ button.load_position(viewer)
+ viewer.update_action_buttons()
+
+//Removes our action button from the screen of a player
+/datum/action/proc/HideFrom(mob/viewer)
+ var/datum/hud/our_hud = viewer.hud_used
+ var/atom/movable/screen/movable/action_button/button = viewers[our_hud]
+ LAZYREMOVE(viewer.actions, src)
+ if(button)
+ qdel(button)
+
+/datum/action/proc/CreateButton()
+ var/atom/movable/screen/movable/action_button/button = new()
+ button.linked_action = src
+ button.actiontooltipstyle = buttontooltipstyle
+ if(desc)
+ button.desc = desc
+ return button
+
+/datum/action/proc/SetId(atom/movable/screen/movable/action_button/our_button, mob/owner)
+ //button id generation
+ var/bitfield = 0
+ for(var/datum/action/action in owner.actions)
+ if(action == src) // This could be us, which is dumb
+ continue
+ var/atom/movable/screen/movable/action_button/button = action.viewers[owner.hud_used]
+ if(action.name == name && button.id)
+ bitfield |= button.id
+
+ bitfield = ~bitfield // Flip our possible ids, so we can check if we've found a unique one
+ for(var/i in 0 to 23) // We get 24 possible bitflags in dm
+ var/bitflag = 1 << i // Shift us over one
+ if(bitfield & bitflag)
+ our_button.id = bitflag
+ return
//Presets for item actions
/datum/action/item_action
check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_LYING|AB_CHECK_CONSCIOUS
button_icon_state = null
- use_target_appearance = TRUE
// If you want to override the normal icon being the item
// then change this to an icon state
/datum/action/item_action/New(Target)
..()
- if(button_icon_state)
- use_target_appearance = FALSE
var/obj/item/I = target
LAZYINITLIST(I.actions)
I.actions += src
@@ -208,17 +237,41 @@
UNSETEMPTY(I.actions)
return ..()
-/datum/action/item_action/Trigger()
- if(!..())
- return 0
+/datum/action/item_action/Trigger(trigger_flags)
+ . = ..()
+ if(!.)
+ return FALSE
if(target)
var/obj/item/I = target
I.ui_action_click(owner, src)
- return 1
+ return TRUE
+
+/datum/action/item_action/ApplyIcon(atom/movable/screen/movable/action_button/current_button, force)
+ var/obj/item/item_target = target
+ if(button_icon && button_icon_state)
+ // If set, use the custom icon that we set instead
+ // of the item appearence
+ ..()
+ else if((target && current_button.appearance_cache != item_target.appearance) || force) //replace with /ref comparison if this is not valid.
+ var/old_layer = item_target.layer
+ var/old_plane = item_target.plane
+ item_target.layer = FLOAT_LAYER //AAAH
+ item_target.plane = FLOAT_PLANE //^ what that guy said
+ current_button.filters = null
+ current_button.cut_overlays()
+ current_button.add_overlay(item_target)
+ item_target.layer = old_layer
+ item_target.plane = old_plane
+ current_button.appearance_cache = item_target.appearance
/datum/action/item_action/toggle_light
name = "Toggle Light"
+/datum/action/item_action/toggle_light/pda/Trigger(trigger_flags)
+ if(istype(target, /obj/item/pda))
+ var/obj/item/pda/P = target
+ return P.toggle_light(owner)
+
/datum/action/item_action/toggle_hood
name = "Toggle Hood"
@@ -258,12 +311,14 @@
/datum/action/item_action/set_internals
name = "Set Internals"
-/datum/action/item_action/set_internals/UpdateButtonIcon(status_only = FALSE, force)
- if(..()) //button available
- if(iscarbon(owner))
- var/mob/living/carbon/C = owner
- if(target == C.internal)
- button.icon_state = "template_active"
+/datum/action/item_action/set_internals/UpdateButton(atom/movable/screen/movable/action_button/button, status_only = FALSE, force)
+ if(!..()) // no button available
+ return
+ if(!iscarbon(owner))
+ return
+ var/mob/living/carbon/C = owner
+ if(target == C.internal)
+ button.icon_state = "template_active"
/datum/action/item_action/pick_color
name = "Choose A Color"
@@ -309,9 +364,9 @@
/datum/action/item_action/toggle_unfriendly_fire/Trigger()
if(..())
- UpdateButtonIcon()
+ UpdateButtons()
-/datum/action/item_action/toggle_unfriendly_fire/UpdateButtonIcon(status_only = FALSE, force)
+/datum/action/item_action/toggle_unfriendly_fire/UpdateButton(atom/movable/screen/movable/action_button/button, status_only = FALSE, force)
if(istype(target, /obj/item/hierophant_club))
var/obj/item/hierophant_club/H = target
if(H.friendly_fire_check)
@@ -332,7 +387,7 @@
if(istype(target, /obj/item/hierophant_club))
var/obj/item/hierophant_club/H = target
if(H.teleporting)
- return 0
+ return FALSE
return ..()
/datum/action/item_action/clock
@@ -342,7 +397,7 @@
/datum/action/item_action/clock/IsAvailable(silent = FALSE)
if(!is_servant_of_ratvar(owner))
- return 0
+ return FALSE
return ..()
/datum/action/item_action/clock/toggle_visor
@@ -351,11 +406,11 @@
/datum/action/item_action/clock/toggle_visor/IsAvailable(silent = FALSE)
if(!is_servant_of_ratvar(owner))
- return 0
+ return FALSE
if(istype(target, /obj/item/clothing/glasses/judicial_visor))
var/obj/item/clothing/glasses/judicial_visor/V = target
if(V.recharging)
- return 0
+ return FALSE
return ..()
/datum/action/item_action/clock/hierophant
@@ -366,7 +421,6 @@
/datum/action/item_action/clock/quickbind
name = "Quickbind"
desc = "If you're seeing this, file a bug report."
- use_target_appearance = FALSE
var/scripture_index = 0 //the index of the scripture we're associated with
/datum/action/item_action/toggle_helmet_flashlight
@@ -380,7 +434,6 @@
/datum/action/item_action/toggle/New(Target)
..()
name = "Toggle [target.name]"
- button.name = name
/datum/action/item_action/halt
name = "HALT!"
@@ -409,7 +462,6 @@
/datum/action/item_action/adjust/New(Target)
..()
name = "Adjust [target.name]"
- button.name = name
/datum/action/item_action/switch_hud
name = "Switch HUD"
@@ -432,7 +484,7 @@
/datum/action/item_action/jetpack_stabilization/IsAvailable(silent = FALSE)
var/obj/item/tank/jetpack/J = target
if(!istype(J) || !J.on)
- return 0
+ return FALSE
return ..()
/datum/action/item_action/hands_free
@@ -464,7 +516,7 @@
else
owner.research_scanner--
to_chat(owner, "[target] research scanner has been [active ? "activated" : "deactivated"]. ")
- return 1
+ return TRUE
/datum/action/item_action/toggle_research_scanner/Remove(mob/M)
if(owner && active)
@@ -489,18 +541,16 @@
/datum/action/item_action/organ_action/IsAvailable(silent = FALSE)
var/obj/item/organ/I = target
if(!I.owner)
- return 0
+ return FALSE
return ..()
/datum/action/item_action/organ_action/toggle/New(Target)
..()
name = "Toggle [target.name]"
- button.name = name
/datum/action/item_action/organ_action/use/New(Target)
..()
name = "Use [target.name]"
- button.name = name
/datum/action/item_action/cult_dagger
name = "Draw Blood Rune"
@@ -509,14 +559,13 @@
button_icon_state = "draw"
buttontooltipstyle = "cult"
background_icon_state = "bg_demon"
+ default_button_position = "6:157,4:-2"
/datum/action/item_action/cult_dagger/Grant(mob/M)
- if(iscultist(M))
- ..()
- button.screen_loc = "6:157,4:-2"
- button.moved = "6:157,4:-2"
- else
+ if(!iscultist(M))
Remove(owner)
+ return
+ return ..()
/datum/action/item_action/cult_dagger/Trigger()
for(var/obj/item/H in owner.held_items) //In case we were already holding another dagger
@@ -643,7 +692,6 @@
icon_icon = S.action_icon
button_icon_state = S.action_icon_state
background_icon_state = S.action_background_icon_state
- button.name = name
/datum/action/spell_action/Destroy()
var/obj/effect/proc_holder/S = target
@@ -693,12 +741,12 @@
/datum/action/innate/Trigger()
if(!..())
- return 0
+ return FALSE
if(!active)
Activate()
else
Deactivate()
- return 1
+ return TRUE
/datum/action/innate/proc/Activate()
return
@@ -711,44 +759,114 @@
/datum/action/cooldown
check_flags = 0
transparent_when_unavailable = FALSE
+ // The default cooldown applied when StartCooldown() is called
var/cooldown_time = 0
+ // The actual next time this ability can be used
var/next_use_time = 0
+ // Whether or not you want the cooldown for the ability to display in text form
+ var/text_cooldown = TRUE
+ // Setting for intercepting clicks before activating the ability
+ var/click_to_activate = FALSE
+ // Shares cooldowns with other cooldown abilities of the same value, not active if null
+ var/shared_cooldown
-/datum/action/cooldown/New()
- ..()
+/datum/action/cooldown/CreateButton()
+ var/atom/movable/screen/movable/action_button/button = ..()
button.maptext = ""
button.maptext_x = 8
button.maptext_y = 0
button.maptext_width = 24
button.maptext_height = 12
+ return button
-/datum/action/cooldown/IsAvailable(silent = FALSE)
- return next_use_time <= world.time
+/datum/action/cooldown/IsAvailable()
+ return ..() && (next_use_time <= world.time)
-/datum/action/cooldown/proc/StartCooldown()
- next_use_time = world.time + cooldown_time
- button.maptext = "[round(cooldown_time/10, 0.1)] "
- UpdateButtonIcon()
+/// Starts a cooldown time to be shared with similar abilities, will use default cooldown time if an override is not specified
+/datum/action/cooldown/proc/StartCooldown(override_cooldown_time)
+ if(shared_cooldown)
+ for(var/datum/action/cooldown/shared_ability in owner.actions - src)
+ if(shared_cooldown == shared_ability.shared_cooldown)
+ if(isnum(override_cooldown_time))
+ shared_ability.StartCooldownSelf(override_cooldown_time)
+ else
+ shared_ability.StartCooldownSelf(cooldown_time)
+ StartCooldownSelf(override_cooldown_time)
+
+/// Starts a cooldown time for this ability only, will use default cooldown time if an override is not specified
+/datum/action/cooldown/proc/StartCooldownSelf(override_cooldown_time)
+ if(isnum(override_cooldown_time))
+ next_use_time = world.time + override_cooldown_time
+ else
+ next_use_time = world.time + cooldown_time
+ UpdateButtons()
START_PROCESSING(SSfastprocess, src)
-/datum/action/cooldown/process()
+/datum/action/cooldown/Trigger(trigger_flags, atom/target)
+ . = ..()
+ if(!.)
+ return
if(!owner)
+ return FALSE
+ if(click_to_activate)
+ if(target)
+ // For automatic / mob handling
+ return InterceptClickOn(owner, null, target)
+ if(owner.click_intercept == src)
+ owner.click_intercept = null
+ else
+ owner.click_intercept = src
+ for(var/datum/action/cooldown/ability in owner.actions)
+ ability.UpdateButtons()
+ return TRUE
+ return PreActivate(owner)
+
+/// Intercepts client owner clicks to activate the ability
+/datum/action/cooldown/proc/InterceptClickOn(mob/living/caller, params, atom/target)
+ if(!IsAvailable())
+ return FALSE
+ if(!target)
+ return FALSE
+ PreActivate(target)
+ caller.click_intercept = null
+ return TRUE
+
+/// For signal calling
+/datum/action/cooldown/proc/PreActivate(atom/target)
+ if(SEND_SIGNAL(owner, COMSIG_MOB_ABILITY_STARTED, src) & COMPONENT_BLOCK_ABILITY_START)
+ return
+ . = Activate(target)
+ SEND_SIGNAL(owner, COMSIG_MOB_ABILITY_FINISHED, src)
+
+/// To be implemented by subtypes
+/datum/action/cooldown/proc/Activate(atom/target)
+ return
+
+/datum/action/cooldown/UpdateButton(atom/movable/screen/movable/action_button/button, status_only = FALSE, force = FALSE)
+ . = ..()
+ if(!button)
+ return
+ var/time_left = max(next_use_time - world.time, 0)
+ if(text_cooldown)
+ button.maptext = MAPTEXT("[round(time_left/10, 0.1)] ")
+ if(!owner || time_left == 0)
button.maptext = ""
+ if(IsAvailable() && owner.click_intercept == src)
+ button.color = COLOR_GREEN
+
+/datum/action/cooldown/process()
+ var/time_left = max(next_use_time - world.time, 0)
+ if(!owner || time_left == 0)
STOP_PROCESSING(SSfastprocess, src)
- var/timeleft = max(next_use_time - world.time, 0)
- if(timeleft == 0)
- button.maptext = ""
- UpdateButtonIcon()
- STOP_PROCESSING(SSfastprocess, src)
- else
- button.maptext = "[round(timeleft/10, 0.1)] "
+ UpdateButtons()
/datum/action/cooldown/Grant(mob/M)
..()
- if(owner)
- UpdateButtonIcon()
- if(next_use_time > world.time)
- START_PROCESSING(SSfastprocess, src)
+ if(!owner)
+ return
+ UpdateButtons()
+ if(next_use_time > world.time)
+ START_PROCESSING(SSfastprocess, src)
//surf_ss13
/datum/action/item_action/bhop
@@ -841,7 +959,7 @@
target.plane = old_plane
current_button.appearance_cache = target.appearance
-/proc/get_action_of_type(mob/M, var/action_type)
+/proc/get_action_of_type(mob/M, action_type)
if(!M.actions || !ispath(action_type, /datum/action))
return
for(var/datum/action/A in M.actions)
diff --git a/code/datums/brain_damage/imaginary_friend.dm b/code/datums/brain_damage/imaginary_friend.dm
index 787d66ac39..190035d129 100644
--- a/code/datums/brain_damage/imaginary_friend.dm
+++ b/code/datums/brain_damage/imaginary_friend.dm
@@ -225,7 +225,7 @@
name = "Hide"
desc = "Hide yourself from your owner's sight."
button_icon_state = "hide"
- UpdateButtonIcon()
+ UpdateButtons()
/datum/action/innate/imaginary_hide/Activate()
var/mob/camera/imaginary_friend/I = owner
diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm
index 4b49a3b137..1390b6c872 100644
--- a/code/datums/chatmessage.dm
+++ b/code/datums/chatmessage.dm
@@ -130,7 +130,9 @@
var/tgt_color = extra_classes.Find("italics") ? target.chat_color_darkened : target.chat_color
var/complete_text = ""
- var/mheight = WXH_TO_HEIGHT(owned_by.MeasureText(complete_text, null, CHAT_MESSAGE_WIDTH))
+
+ var/mheight
+ WXH_TO_HEIGHT(owned_by.MeasureText(complete_text, null, CHAT_MESSAGE_WIDTH), mheight)
approx_lines = max(1, mheight / CHAT_MESSAGE_APPROX_LHEIGHT)
// Translate any existing messages upwards, apply exponential decay factors to timers
diff --git a/code/datums/components/crafting/crafting.dm b/code/datums/components/crafting/crafting.dm
index fc853281f9..d32caeaea9 100644
--- a/code/datums/components/crafting/crafting.dm
+++ b/code/datums/components/crafting/crafting.dm
@@ -1,17 +1,13 @@
/datum/component/personal_crafting/Initialize()
if(ismob(parent))
- RegisterSignal(parent, COMSIG_MOB_CLIENT_LOGIN, PROC_REF(create_mob_button))
+ RegisterSignal(parent, COMSIG_MOB_HUD_CREATED, PROC_REF(create_mob_button))
-/datum/component/personal_crafting/proc/create_mob_button(mob/user, client/CL)
+/datum/component/personal_crafting/proc/create_mob_button(mob/user)
var/datum/hud/H = user.hud_used
- for(var/huds in H.static_inventory)
- if(istype(huds, /atom/movable/screen/craft))
- return
- //We don't want to be stacking multiple crafting huds on relogs
var/atom/movable/screen/craft/C = new()
C.icon = H.ui_style
H.static_inventory += C
- CL.screen += C
+ user.client.screen += C
RegisterSignal(C, COMSIG_CLICK, PROC_REF(component_ui_interact))
/datum/component/personal_crafting
diff --git a/code/datums/components/fullauto.dm b/code/datums/components/fullauto.dm
index de34899ad0..a39204fe36 100644
--- a/code/datums/components/fullauto.dm
+++ b/code/datums/components/fullauto.dm
@@ -117,7 +117,7 @@
return
if(LAZYACCESS(modifiers, ALT_CLICK))
return
- if(source.mob.in_throw_mode)
+ if(source.mob.throw_mode)
return
if(!isturf(source.mob.loc)) //No firing inside lockers and stuff.
return
diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm
index fbd0aa12d7..aac8075209 100644
--- a/code/datums/components/material_container.dm
+++ b/code/datums/components/material_container.dm
@@ -328,9 +328,9 @@
/// For spawning mineral sheets at a specific location. Used by machines to output sheets.
/datum/component/material_container/proc/retrieve_sheets(sheet_amt, var/datum/material/M, target = null)
if(!M.sheet_type)
- return 0 //Add greyscale sheet handling here later
+ return FALSE //Add greyscale sheet handling here later
if(sheet_amt <= 0)
- return 0
+ return FALSE
if(!target)
target = get_turf(parent)
diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm
index 6c4abea699..92576be5ba 100644
--- a/code/datums/components/mood.dm
+++ b/code/datums/components/mood.dm
@@ -268,7 +268,7 @@
else
if(the_event.timeout)
addtimer(CALLBACK(src, PROC_REF(clear_event), null, category), the_event.timeout, TIMER_UNIQUE|TIMER_OVERRIDE)
- return 0 //Don't have to update the event.
+ return FALSE //Don't have to update the event.
the_event = new type(src, param)//This causes a runtime for some reason, was this me? No - there's an event floating around missing a definition.
mood_events[category] = the_event
@@ -280,7 +280,7 @@
/datum/component/mood/proc/clear_event(datum/source, category)
var/datum/mood_event/event = mood_events[category]
if(!event)
- return 0
+ return FALSE
mood_events -= category
qdel(event)
diff --git a/code/datums/components/riding.dm b/code/datums/components/riding.dm
index 18fe0b72dc..d99258a2c7 100644
--- a/code/datums/components/riding.dm
+++ b/code/datums/components/riding.dm
@@ -392,3 +392,12 @@
if(rider in AM.buckled_mobs)
AM.unbuckle_mob(rider)
. = ..()
+
+/obj/item/riding_offhand/on_thrown(mob/living/carbon/user, atom/target)
+ if(rider == user)
+ return //Piggyback user.
+ user.unbuckle_mob(rider)
+ if(HAS_TRAIT(user, TRAIT_PACIFISM))
+ to_chat(user, span_notice("You gently let go of [rider]."))
+ return
+ return rider
diff --git a/code/datums/components/spawner.dm b/code/datums/components/spawner.dm
index 78b7f64677..3ab9e6dd0d 100644
--- a/code/datums/components/spawner.dm
+++ b/code/datums/components/spawner.dm
@@ -43,9 +43,9 @@
/datum/component/spawner/proc/try_spawn_mob()
var/atom/P = parent
if(spawned_mobs.len >= max_mobs)
- return 0
+ return FALSE
if(spawn_delay > world.time)
- return 0
+ return FALSE
spawn_delay = world.time + spawn_time
var/chosen_mob_type = pick(mob_types)
var/mob/living/simple_animal/L = new chosen_mob_type(P.loc)
diff --git a/code/datums/components/storage/concrete/stack.dm b/code/datums/components/storage/concrete/stack.dm
index d7b118cee4..1e57d2da3a 100644
--- a/code/datums/components/storage/concrete/stack.dm
+++ b/code/datums/components/storage/concrete/stack.dm
@@ -63,7 +63,7 @@
if(!istype(I) || QDELETED(I)) //We're specialized stack storage, just ignore non stacks.
continue
if(!.[I.merge_type])
- .[I.merge_type] = new /datum/numbered_display(I, I.amount)
+ .[I.merge_type] = new /datum/numbered_display(I, I.amount, src)
else
var/datum/numbered_display/ND = .[I.merge_type]
ND.number += I.amount
diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm
index 9d8497350b..070af233a5 100644
--- a/code/datums/components/storage/storage.dm
+++ b/code/datums/components/storage/storage.dm
@@ -486,7 +486,7 @@
var/atom/A = parent
A.do_squish()
-//This proc return 1 if the item can be picked up and 0 if it can't.
+//This proc return TRUE if the item can be picked up and 0 if it can't.
//Set the stop_messages to stop it from printing messages
/datum/component/storage/proc/can_be_inserted(obj/item/I, stop_messages = FALSE, mob/M)
if(!istype(I) || (I.item_flags & ABSTRACT))
diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm
index 92df681245..c0cc03965c 100644
--- a/code/datums/components/storage/ui.dm
+++ b/code/datums/components/storage/ui.dm
@@ -48,7 +48,7 @@
var/datum/numbered_display/ND = numbered_contents[type]
ND.sample_object.mouse_opacity = MOUSE_OPACITY_OPAQUE
ND.sample_object.screen_loc = "[cx]:[screen_pixel_x],[cy]:[screen_pixel_y]"
- ND.sample_object.maptext = "[(ND.number > 1)? "[ND.number]" : ""] "
+ ND.sample_object.maptext = MAPTEXT("[(ND.number > 1)? "[ND.number]" : ""] ")
ND.sample_object.layer = ABOVE_HUD_LAYER
ND.sample_object.plane = ABOVE_HUD_PLANE
. += ND.sample_object
diff --git a/code/datums/components/summoning.dm b/code/datums/components/summoning.dm
index 0394a1abaf..037b070ce8 100644
--- a/code/datums/components/summoning.dm
+++ b/code/datums/components/summoning.dm
@@ -49,11 +49,11 @@
/datum/component/summoning/proc/do_spawn_mob(atom/spawn_location, summoner)
if(spawned_mobs.len >= max_mobs)
- return 0
+ return FALSE
if(last_spawned_time > world.time)
- return 0
+ return FALSE
if(!prob(spawn_chance))
- return 0
+ return FALSE
last_spawned_time = world.time + spawn_delay
var/chosen_mob_type = pick(mob_types)
var/mob/living/simple_animal/L = new chosen_mob_type(spawn_location)
diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm
index 1d74c78747..cace48f53e 100644
--- a/code/datums/components/tackle.dm
+++ b/code/datums/components/tackle.dm
@@ -66,7 +66,7 @@
///See if we can tackle or not. If we can, leap!
/datum/component/tackler/proc/checkTackle(mob/living/carbon/user, atom/A, params)
- if(!user.in_throw_mode || user.get_active_held_item() || user.pulling || user.buckling)
+ if(!user.throw_mode || user.get_active_held_item() || user.pulling || user.buckling)
return
if(HAS_TRAIT(user, TRAIT_HULK))
diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm
index 0bb803ddb3..976ccb6b6c 100644
--- a/code/datums/datumvars.dm
+++ b/code/datums/datumvars.dm
@@ -27,6 +27,7 @@
VV_DROPDOWN_OPTION("", "---")
VV_DROPDOWN_OPTION(VV_HK_CALLPROC, "Call Proc")
VV_DROPDOWN_OPTION(VV_HK_MARK, "Mark Object")
+ VV_DROPDOWN_OPTION(VV_HK_TAG, "Tag Datum")
VV_DROPDOWN_OPTION(VV_HK_DELETE, "Delete")
VV_DROPDOWN_OPTION(VV_HK_EXPOSE, "Show VV To Player")
VV_DROPDOWN_OPTION(VV_HK_ADDCOMPONENT, "Add Component/Element")
diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm
index 6e8c9cc166..0f72f39653 100644
--- a/code/datums/diseases/advance/advance.dm
+++ b/code/datums/diseases/advance/advance.dm
@@ -135,11 +135,11 @@
/datum/disease/advance/IsSame(datum/disease/advance/D)
if(!(istype(D, /datum/disease/advance)))
- return 0
+ return FALSE
if(GetDiseaseID() != D.GetDiseaseID())
- return 0
- return 1
+ return FALSE
+ return TRUE
// Returns the advance disease with a different reference memory.
/datum/disease/advance/Copy()
@@ -178,8 +178,8 @@
/datum/disease/advance/proc/HasSymptom(datum/symptom/S)
for(var/datum/symptom/symp in symptoms)
if(symp.type == S.type)
- return 1
- return 0
+ return TRUE
+ return FALSE
// Will generate new unique symptoms, use this if there are none. Returns a list of symptoms that were generated.
/datum/disease/advance/proc/GenerateSymptoms(level_min, level_max, amount_get = 0)
@@ -361,7 +361,7 @@
L += "[S.id]N"
else
L += S.id
- L = sortList(L) // Sort the list so it doesn't matter which order the symptoms are in.
+ L = sort_list(L) // Sort the list so it doesn't matter which order the symptoms are in.
var/result = jointext(L, ":")
id = result
return id
diff --git a/code/datums/diseases/advance/symptoms/choking.dm b/code/datums/diseases/advance/symptoms/choking.dm
index c34ab566cf..a46e874698 100644
--- a/code/datums/diseases/advance/symptoms/choking.dm
+++ b/code/datums/diseases/advance/symptoms/choking.dm
@@ -64,11 +64,11 @@ Bonus
/datum/symptom/choking/proc/Choke_stage_3_4(mob/living/M, datum/disease/advance/A)
M.adjustOxyLoss(rand(6,13))
- return 1
+ return TRUE
/datum/symptom/choking/proc/Choke(mob/living/M, datum/disease/advance/A)
M.adjustOxyLoss(rand(10,18))
- return 1
+ return TRUE
/*
//////////////////////////////////////
@@ -136,17 +136,17 @@ Bonus
/datum/symptom/asphyxiation/proc/Asphyxiate_stage_3_4(mob/living/M, datum/disease/advance/A)
var/get_damage = rand(10,15) * power
M.adjustOxyLoss(get_damage)
- return 1
+ return TRUE
/datum/symptom/asphyxiation/proc/Asphyxiate(mob/living/M, datum/disease/advance/A)
var/get_damage = rand(15,21) * power
M.adjustOxyLoss(get_damage)
if(paralysis)
M.reagents.add_reagent_list(list(/datum/reagent/toxin/pancuronium = 3, /datum/reagent/toxin/sodium_thiopental = 3))
- return 1
+ return TRUE
/datum/symptom/asphyxiation/proc/Asphyxiate_death(mob/living/M, datum/disease/advance/A)
var/get_damage = rand(25,35) * power
M.adjustOxyLoss(get_damage)
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, get_damage/2)
- return 1
+ return TRUE
diff --git a/code/datums/diseases/advance/symptoms/fever.dm b/code/datums/diseases/advance/symptoms/fever.dm
index 0348e39818..be551addbf 100644
--- a/code/datums/diseases/advance/symptoms/fever.dm
+++ b/code/datums/diseases/advance/symptoms/fever.dm
@@ -58,4 +58,4 @@ Bonus
M.adjust_bodytemperature(get_heat * A.stage, 0, BODYTEMP_HEAT_DAMAGE_LIMIT - 1)
else
M.adjust_bodytemperature(get_heat * A.stage)
- return 1
+ return TRUE
diff --git a/code/datums/diseases/advance/symptoms/fire.dm b/code/datums/diseases/advance/symptoms/fire.dm
index c30da0614a..57c6ff8203 100644
--- a/code/datums/diseases/advance/symptoms/fire.dm
+++ b/code/datums/diseases/advance/symptoms/fire.dm
@@ -71,14 +71,14 @@ Bonus
M.adjustFireLoss(3 * power)
if(infective)
A.spread(2)
- return 1
+ return TRUE
/datum/symptom/fire/proc/Firestacks_stage_5(mob/living/M, datum/disease/advance/A)
M.adjust_fire_stacks(3 * power)
M.adjustFireLoss(5 * power)
if(infective)
A.spread(4)
- return 1
+ return TRUE
/*
//////////////////////////////////////
@@ -157,7 +157,7 @@ Bonus
M.adjustFireLoss(get_stacks/2)
if(chems)
M.reagents.add_reagent(/datum/reagent/clf3, 2 * power)
- return 1
+ return TRUE
/datum/symptom/alkali/proc/Alkali_fire_stage_5(mob/living/M, datum/disease/advance/A)
var/get_stacks = 8 * power
@@ -165,4 +165,4 @@ Bonus
M.adjustFireLoss(get_stacks)
if(chems)
M.reagents.add_reagent_list(list(/datum/reagent/napalm = 4 * power, /datum/reagent/clf3 = 4 * power))
- return 1
+ return TRUE
diff --git a/code/datums/diseases/advance/symptoms/flesh_eating.dm b/code/datums/diseases/advance/symptoms/flesh_eating.dm
index b5b55c1e14..0fb97cdc41 100644
--- a/code/datums/diseases/advance/symptoms/flesh_eating.dm
+++ b/code/datums/diseases/advance/symptoms/flesh_eating.dm
@@ -65,7 +65,7 @@ Bonus
var/mob/living/carbon/human/H = M
var/obj/item/bodypart/random_part = pick(H.bodyparts)
random_part.generic_bleedstacks += 5 * power
- return 1
+ return TRUE
/*
//////////////////////////////////////
@@ -133,4 +133,4 @@ Bonus
M.reagents.add_reagent_list(list(/datum/reagent/toxin/heparin = 2, /datum/reagent/toxin/lipolicide = 2))
if(zombie)
M.reagents.add_reagent(/datum/reagent/romerol, 1)
- return 1
+ return TRUE
diff --git a/code/datums/diseases/advance/symptoms/heal.dm b/code/datums/diseases/advance/symptoms/heal.dm
index 22af76c1f9..f16c6fc3d4 100644
--- a/code/datums/diseases/advance/symptoms/heal.dm
+++ b/code/datums/diseases/advance/symptoms/heal.dm
@@ -92,7 +92,7 @@
for(var/obj/item/bodypart/L in parts)
if(L.heal_damage(heal_amt/parts.len, heal_amt/parts.len))
M.update_damage_overlays()
- return 1
+ return TRUE
/datum/symptom/heal/starlight/passive_message_condition(mob/living/M)
if(M.getBruteLoss() || M.getFireLoss() || M.getToxLoss())
@@ -129,7 +129,7 @@
M.adjust_nutrition(0.3)
if(prob(2))
to_chat(M, "You feel a mild warmth as your blood purifies itself. ")
- return 1
+ return TRUE
@@ -167,7 +167,7 @@
C.adjust_nutrition(-lost_nutrition * HUNGER_FACTOR) //Hunger depletes at 10x the normal speed
if(prob(2))
to_chat(C, "You feel an odd gurgle in your stomach, as if it was working much faster than normal. ")
- return 1
+ return TRUE
/datum/symptom/heal/darkness
name = "Nocturnal Regeneration"
@@ -210,7 +210,7 @@
for(var/obj/item/bodypart/L in parts)
if(L.heal_damage(heal_amt/parts.len, heal_amt/parts.len * 0.5)) //more effective on brute
M.update_damage_overlays()
- return 1
+ return TRUE
/datum/symptom/heal/darkness/passive_message_condition(mob/living/M)
if(M.getBruteLoss() || M.getFireLoss())
@@ -307,7 +307,7 @@
if(active_coma && M.getBruteLoss() + M.getFireLoss() == 0)
uncoma(M)
- return 1
+ return TRUE
/datum/symptom/heal/coma/passive_message_condition(mob/living/M)
if((M.getBruteLoss() + M.getFireLoss()) > 30)
@@ -365,7 +365,7 @@
if(L.heal_damage(heal_amt/parts.len * 0.5, heal_amt/parts.len))
M.update_damage_overlays()
- return 1
+ return TRUE
/datum/symptom/heal/water/passive_message_condition(mob/living/M)
if(M.getBruteLoss() || M.getFireLoss())
@@ -435,7 +435,7 @@
for(var/obj/item/bodypart/L in parts)
if(L.heal_damage(heal_amt/parts.len, heal_amt/parts.len))
M.update_damage_overlays()
- return 1
+ return TRUE
/datum/symptom/heal/radiation
@@ -475,7 +475,7 @@
if(RAD_BURN_THRESHOLD to RAD_MOB_MUTATE)
return 0.75
if(RAD_MOB_MUTATE to RAD_MOB_KNOCKDOWN)
- return 1
+ return TRUE
else
return 1.5
@@ -498,4 +498,4 @@
for(var/obj/item/bodypart/L in parts)
if(L.heal_damage(heal_amt/parts.len, heal_amt/parts.len))
M.update_damage_overlays()
- return 1
+ return TRUE
diff --git a/code/datums/diseases/advance/symptoms/shivering.dm b/code/datums/diseases/advance/symptoms/shivering.dm
index 7674d80495..4bce1ac65e 100644
--- a/code/datums/diseases/advance/symptoms/shivering.dm
+++ b/code/datums/diseases/advance/symptoms/shivering.dm
@@ -58,4 +58,4 @@ Bonus
if(unsafe)
limit = 0
M.adjust_bodytemperature(-get_cold * A.stage, limit)
- return 1
+ return TRUE
diff --git a/code/datums/dna.dm b/code/datums/dna.dm
index 7d1ddc5648..83e2de80b9 100644
--- a/code/datums/dna.dm
+++ b/code/datums/dna.dm
@@ -538,7 +538,7 @@
/datum/dna/proc/check_block_string(mutation)
if((LAZYLEN(mutation_index) > DNA_MUTATION_BLOCKS) || !(mutation in mutation_index))
- return 0
+ return FALSE
return is_gene_active(mutation)
/datum/dna/proc/is_gene_active(mutation)
@@ -585,7 +585,7 @@
/proc/setblock(istring, blocknumber, replacement, blocksize=DNA_BLOCK_SIZE)
if(!istring || !blocknumber || !replacement || !blocksize)
- return 0
+ return FALSE
return getleftblocks(istring, blocknumber, blocksize) + replacement + getrightblocks(istring, blocknumber, blocksize)
/datum/dna/proc/mutation_in_sequence(mutation)
@@ -649,7 +649,7 @@
/proc/scramble_dna(mob/living/carbon/M, ui=FALSE, se=FALSE, probability)
if(!M.has_dna())
- return 0
+ return FALSE
if(se)
for(var/i=1, i<=DNA_MUTATION_BLOCKS, i++)
if(prob(probability))
@@ -660,7 +660,7 @@
if(prob(probability))
M.dna.uni_identity = setblock(M.dna.uni_identity, i, random_string(DNA_BLOCK_SIZE, GLOB.hex_characters))
M.updateappearance(mutations_overlay_update=1)
- return 1
+ return TRUE
//value in range 1 to values. values must be greater than 0
//all arguments assumed to be positive integers
diff --git a/code/datums/elements/mob_holder.dm b/code/datums/elements/mob_holder.dm
index 5ddbc48537..8921128e9f 100644
--- a/code/datums/elements/mob_holder.dm
+++ b/code/datums/elements/mob_holder.dm
@@ -61,7 +61,7 @@
return FALSE
source.visible_message("[user] starts picking up [source]. ", \
"[user] starts picking you up! ")
- if(!do_after(user, 20, target = source) || source.buckled)
+ if(!do_after(user, 2 SECONDS, target = source) || source.buckled)
return FALSE
source.visible_message("[user] picks up [source]! ", \
@@ -95,6 +95,7 @@
dynamic_hair_suffix = ""
var/mob/living/held_mob
var/escape_on_find
+ var/destroying = FALSE
/obj/item/clothing/head/mob_holder/Initialize(mapload, mob/living/target, worn_state, alt_worn, right_hand, left_hand, slots = NONE)
. = ..()
@@ -134,45 +135,54 @@
w_class = WEIGHT_CLASS_HUGE
/obj/item/clothing/head/mob_holder/Destroy()
+ destroying = TRUE
if(held_mob)
- release()
+ release(FALSE)
return ..()
/obj/item/clothing/head/mob_holder/examine(mob/user)
return held_mob?.examine(user) || ..()
-/obj/item/clothing/head/mob_holder/Exited(atom/movable/AM, atom/newloc)
- . = ..()
- if(AM == held_mob)
- held_mob.reset_perspective()
- held_mob = null
- QDEL_IN(src, 1) //To avoid a qdel loop.
+/obj/item/clothing/head/mob_holder/on_thrown(mob/living/carbon/user, atom/target)
+ if((item_flags & ABSTRACT) || HAS_TRAIT(src, TRAIT_NODROP))
+ return
+ if(HAS_TRAIT(user, TRAIT_PACIFISM))
+ to_chat(user, span_notice("You set [src] down gently on the ground."))
+ release()
+ return
-/obj/item/clothing/head/mob_holder/Entered(atom/movable/AM, atom/newloc)
- . = ..()
- if(AM != held_mob)
- var/destination = loc
- if(isliving(loc)) //the mob is held or worn, drop things on the floor
- destination = get_turf(loc)
- AM.forceMove(destination)
+ var/mob/living/throw_mob = held_mob
+ release()
+ return throw_mob
/obj/item/clothing/head/mob_holder/dropped(mob/user)
. = ..()
- if(held_mob && !ismob(loc) && !istype(loc,/obj/item/storage))//don't release on soft-drops
+ if(held_mob && isturf(loc))
release()
-/obj/item/clothing/head/mob_holder/proc/release()
- if(held_mob)
- var/mob/living/L = held_mob
- held_mob = null
- L.forceMove(get_turf(L))
- L.reset_perspective()
- L.setDir(SOUTH)
- if(!QDELETED(src))
+/obj/item/clothing/head/mob_holder/proc/release(del_on_release = TRUE, display_messages = TRUE)
+ if(!held_mob)
+ if(del_on_release && !destroying)
+ qdel(src)
+ return FALSE
+ var/mob/living/released_mob = held_mob
+ held_mob = null // stops the held mob from being release()'d twice.
+ if(isliving(loc))
+ var/mob/living/L = loc
+ if(display_messages)
+ to_chat(L, span_warning("[released_mob] wriggles free!"))
+ L.dropItemToGround(src)
+ released_mob.forceMove(drop_location())
+ released_mob.reset_perspective()
+ released_mob.setDir(SOUTH)
+ if(display_messages)
+ released_mob.visible_message(span_warning("[released_mob] uncurls!"))
+ if(del_on_release && !destroying)
qdel(src)
+ return TRUE
-/obj/item/clothing/head/mob_holder/relaymove(mob/user)
- return
+/obj/item/clothing/head/mob_holder/relaymove(mob/living/user, direction)
+ container_resist()
/obj/item/clothing/head/mob_holder/container_resist()
if(isliving(loc))
@@ -180,6 +190,11 @@
L.visible_message("[held_mob] escapes from [L]! ", "[held_mob] escapes your grip! ")
release()
+/obj/item/clothing/head/mob_holder/Exited(atom/movable/gone, direction)
+ . = ..()
+ if(held_mob && held_mob == gone)
+ release()
+
/obj/item/clothing/head/mob_holder/mob_can_equip(M, equipper, slot, disable_warning, bypass_equip_delay_self)
if(M == held_mob || !ishuman(M)) //monkeys holding monkeys holding monkeys...
return FALSE
@@ -232,7 +247,9 @@
return location.transfer_air(taker, ratio)
// escape when found if applicable
-/obj/item/clothing/head/mob_holder/on_found(mob/living/finder)
+/obj/item/clothing/head/mob_holder/on_found(mob/finder)
if(escape_on_find)
- finder.visible_message("[finder] accidentally releases the [held_mob]!")
- release()
+ to_chat(finder, span_warning("\A [held_mob.name] pops out! "))
+ finder.visible_message(span_warning("\A [held_mob.name] pops out of the container [finder] is opening!"), ignored_mobs = finder)
+ release(TRUE, FALSE)
+ return
diff --git a/code/datums/elements/object_reskinning.dm b/code/datums/elements/object_reskinning.dm
index 3b77e4d7c4..468e681e5f 100644
--- a/code/datums/elements/object_reskinning.dm
+++ b/code/datums/elements/object_reskinning.dm
@@ -65,7 +65,7 @@
icon = to_reskin.unique_reskin[reskin_option]["icon"] ? to_reskin.unique_reskin[reskin_option]["icon"] : to_reskin.icon,
icon_state = to_reskin.unique_reskin[reskin_option]["icon_state"] ? to_reskin.unique_reskin[reskin_option]["icon_state"] : to_reskin.icon_state)
items += list("[reskin_option]" = item_image)
- sortList(items)
+ items = sort_list(items)
// Display to the user
var/pick = show_radial_menu(user, to_reskin, items, custom_check = CALLBACK(src, PROC_REF(check_reskin_menu), user, to_reskin), radius = 38, require_near = TRUE)
diff --git a/code/datums/elements/polychromic.dm b/code/datums/elements/polychromic.dm
index 2027aa658b..79e186ffe9 100644
--- a/code/datums/elements/polychromic.dm
+++ b/code/datums/elements/polychromic.dm
@@ -63,7 +63,7 @@
if(suits_with_helmet_typecache[A.type])
RegisterSignal(A, COMSIG_SUIT_MADE_HELMET, PROC_REF(register_helmet)) //you better work now you slut
else if(_flags & POLYCHROMIC_ACTION && ismob(A)) //in the event mob update icon procs are ever standarized.
- var/datum/action/polychromic/P = new(A)
+ var/datum/action/item_action/polychromic/P = new(A)
RegisterSignal(P, COMSIG_ACTION_TRIGGER, PROC_REF(activate_action))
actions_by_atom[A] = P
P.Grant(A)
@@ -73,7 +73,7 @@
/datum/element/polychromic/Detach(atom/A)
. = ..()
colors_by_atom -= A
- var/datum/action/polychromic/P = actions_by_atom[A]
+ var/datum/action/item_action/polychromic/P = actions_by_atom[A]
if(P)
actions_by_atom -= A
qdel(P)
@@ -146,7 +146,7 @@
/datum/element/polychromic/proc/grant_user_action(atom/source, mob/user, slot)
if(slot == ITEM_SLOT_BACKPACK || slot == ITEM_SLOT_LEGCUFFED || slot == ITEM_SLOT_HANDCUFFED || slot == ITEM_SLOT_DEX_STORAGE)
return
- var/datum/action/polychromic/P = actions_by_atom[source]
+ var/datum/action/item_action/polychromic/P = actions_by_atom[source]
if(!P)
P = new (source)
P.name = "Modify [source]'\s Colors"
@@ -156,7 +156,7 @@
P.Grant(user)
/datum/element/polychromic/proc/remove_user_action(atom/source, mob/user)
- var/datum/action/polychromic/P = actions_by_atom[source]
+ var/datum/action/item_action/polychromic/P = actions_by_atom[source]
P?.Remove(user)
/datum/element/polychromic/proc/activate_action(datum/action/source, atom/target)
@@ -197,9 +197,14 @@
helmet_by_suit -= S
colors_by_atom -= source
-/datum/action/polychromic
+/datum/action/item_action/polychromic
name = "Modify Polychromic Colors"
background_icon_state = "bg_polychromic"
- use_target_appearance = TRUE
button_icon_state = null
- target_appearance_matrix = list(0.8,0,0,0,0.8,0)
+ check_flags = NONE
+
+/datum/action/item_action/polychromic/ApplyIcon(atom/movable/screen/movable/action_button/current_button, force)
+ var/matrix/save_matrix = target.transform
+ target.transform = matrix(0.8, 0, 0, 0, 0.8, 0)
+ . = ..()
+ target.transform = save_matrix
diff --git a/code/datums/explosion.dm b/code/datums/explosion.dm
index 138ccf6207..339d0ce786 100644
--- a/code/datums/explosion.dm
+++ b/code/datums/explosion.dm
@@ -397,7 +397,7 @@ GLOBAL_LIST_EMPTY(explosions)
var/choice = input("Bomb Size?") in choices
switch(choice)
if(null)
- return 0
+ return FALSE
if("Small Bomb")
dev = 1
heavy = 2
@@ -436,13 +436,13 @@ GLOBAL_LIST_EMPTY(explosions)
if(dist < dev)
T.color = "red"
- T.maptext = "Dev"
+ T.maptext = MAPTEXT("Dev")
else if (dist < heavy)
T.color = "yellow"
- T.maptext = "Heavy"
+ T.maptext = MAPTEXT("Heavy")
else if (dist < light)
T.color = "blue"
- T.maptext = "Light"
+ T.maptext = MAPTEXT("Light")
else
continue
diff --git a/code/datums/martial/boxing.dm b/code/datums/martial/boxing.dm
index 32b916d724..8fb2c9a141 100644
--- a/code/datums/martial/boxing.dm
+++ b/code/datums/martial/boxing.dm
@@ -6,11 +6,11 @@
/datum/martial_art/boxing/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
to_chat(A, "Can't disarm while boxing! ")
- return 1
+ return TRUE
/datum/martial_art/boxing/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
to_chat(A, "Can't grab while boxing! ")
- return 1
+ return TRUE
/datum/martial_art/boxing/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
@@ -46,7 +46,7 @@
log_combat(A, D, "knocked out (boxing) ")
else if(D.lying)
D.forcesay(GLOB.hit_appends)
- return 1
+ return TRUE
/datum/martial_art/boxing/teach(mob/living/carbon/human/H, make_temporary = TRUE)
. = ..()
diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm
index 27702c6ec8..d23db6f055 100644
--- a/code/datums/martial/sleeping_carp.dm
+++ b/code/datums/martial/sleeping_carp.dm
@@ -127,7 +127,7 @@
return BULLET_ACT_HIT
if(!isturf(A.loc)) //NO MOTHERFLIPPIN MECHS!
return BULLET_ACT_HIT
- if(A.in_throw_mode)
+ if(A.throw_mode)
A.visible_message("[A] effortlessly swats the projectile aside! They can deflect projectile with their bare hands! ", "You deflect the projectile! ")
playsound(get_turf(A), pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 75, TRUE)
P.firer = A
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index abc5ec96fb..b751d2cbbd 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -67,6 +67,8 @@
var/datum/language_holder/language_holder
var/unconvertable = FALSE
var/late_joiner = FALSE
+ ///has this mind ever been an AI
+ var/has_ever_been_ai = FALSE
var/force_escaped = FALSE // Set by Into The Sunset command of the shuttle manipulator
var/list/learned_recipes //List of learned recipe TYPES.
@@ -286,6 +288,21 @@
if(O)
O.unlock_code = null
+/// Remove the antagonists that should not persist when being borged
+/datum/mind/proc/remove_antags_for_borging()
+ remove_antag_datum(/datum/antagonist/cult)
+
+ var/datum/antagonist/rev/revolutionary = has_antag_datum(/datum/antagonist/rev)
+ revolutionary?.remove_revolutionary(TRUE)
+
+ if(!isbrain(current))
+ return
+ if(!istype(current.loc, /obj/item/mmi))
+ return
+ var/obj/item/mmi/B = current.loc.loc
+ if(!istype(B.laws, /datum/ai_laws/ratvar))
+ remove_servant_of_ratvar(current, TRUE)
+
/datum/mind/proc/remove_all_antag() //For the Lazy amongst us.
remove_changeling()
remove_traitor()
@@ -1644,7 +1661,7 @@ GLOBAL_LIST(objective_choices)
if(istype(S, type))
continue
S.charge_counter = delay
- S.updateButtonIcon()
+ S.UpdateButton()
INVOKE_ASYNC(S, /obj/effect/proc_holder/spell.proc/start_recharge)
/datum/mind/proc/get_ghost(even_if_they_cant_reenter)
diff --git a/code/datums/mutations/_mutations.dm b/code/datums/mutations/_mutations.dm
index 80bb252f87..591e4dd258 100644
--- a/code/datums/mutations/_mutations.dm
+++ b/code/datums/mutations/_mutations.dm
@@ -119,8 +119,8 @@
owner.RemoveSpell(power)
qdel(power)
SEND_SIGNAL(owner, COMSIG_HUMAN_MUTATION_LOSS, src)
- return 0
- return 1
+ return FALSE
+ return TRUE
/datum/mutation/human/proc/say_mod(message)
if(message)
diff --git a/code/datums/recipe.dm b/code/datums/recipe.dm
index c4d0d6f9c6..9a484c9e4d 100644
--- a/code/datums/recipe.dm
+++ b/code/datums/recipe.dm
@@ -48,7 +48,7 @@
if (aval_r_amnt>reagents_list[r_r])
. = -1
else
- return 0
+ return FALSE
if ((reagents_list?(reagents_list.len):(0)) < avail_reagents.reagent_list.len)
return -1
return .
@@ -58,7 +58,7 @@
if (locate(/obj/) in container)
return -1
else
- return 1
+ return TRUE
. = 1
var/list/checklist = items.Copy()
for (var/obj/O in container)
@@ -71,7 +71,7 @@
if (!found)
. = -1
if (checklist.len)
- return 0
+ return FALSE
return .
//general version
diff --git a/code/datums/status_effects/status_effect.dm b/code/datums/status_effects/status_effect.dm
index f3171f6197..d55289c32d 100644
--- a/code/datums/status_effects/status_effect.dm
+++ b/code/datums/status_effects/status_effect.dm
@@ -95,7 +95,7 @@
* Multiplied to clickdelays
*/
/datum/status_effect/proc/action_cooldown_mod()
- return 1
+ return TRUE
////////////////
// ALERT HOOK //
diff --git a/code/datums/view.dm b/code/datums/view.dm
index 5610fb040e..7313cc4c18 100644
--- a/code/datums/view.dm
+++ b/code/datums/view.dm
@@ -1,108 +1,110 @@
//This is intended to be a full wrapper. DO NOT directly modify its values
///Container for client viewsize
-/datum/viewData
+/datum/view_data
var/width = 0
var/height = 0
var/default = ""
var/is_suppressed = FALSE
var/client/chief = null
-/datum/viewData/New(client/owner, view_string)
+/datum/view_data/New(client/owner, view_string)
default = view_string
chief = owner
apply()
-/datum/viewData/proc/setDefault(string)
+/datum/view_data/proc/setDefault(string)
default = string
apply()
-/datum/viewData/proc/safeApplyFormat()
+/datum/view_data/proc/afterViewChange()
if(isZooming())
assertFormat()
- return
- resetFormat()
+ else
+ resetFormat()
+ var/datum/hud/our_hud = chief?.mob?.hud_used
+ our_hud.view_audit_buttons() // Make sure our hud's buttons are in our new size
-/datum/viewData/proc/assertFormat()//T-Pose
+/datum/view_data/proc/assertFormat()//T-Pose
// winset(chief, "mapwindow.map", "zoom=0")
// Citadel Edit - We're using icon dropdown instead
-/datum/viewData/proc/resetFormat()//Cuck
+/datum/view_data/proc/resetFormat()//Cuck
// winset(chief, "mapwindow.map", "zoom=[chief.prefs.pixel_size]")
// Citadel Edit - We're using icon dropdown instead
-/datum/viewData/proc/setZoomMode()
+/datum/view_data/proc/setZoomMode()
// winset(chief, "mapwindow.map", "zoom-mode=[chief.prefs.scaling_method]")
// Citadel Edit - We're using icon dropdown instead
-/datum/viewData/proc/isZooming()
+/datum/view_data/proc/isZooming()
return (width || height)
-/datum/viewData/proc/resetToDefault()
+/datum/view_data/proc/resetToDefault()
width = 0
height = 0
apply()
-/datum/viewData/proc/add(toAdd)
+/datum/view_data/proc/add(toAdd)
width += toAdd
height += toAdd
apply()
-/datum/viewData/proc/addTo(toAdd)
+/datum/view_data/proc/addTo(toAdd)
var/list/shitcode = getviewsize(toAdd)
width += shitcode[1]
height += shitcode[2]
apply()
-/datum/viewData/proc/setTo(toAdd)
+/datum/view_data/proc/setTo(toAdd)
var/list/shitcode = getviewsize(toAdd) //Backward compatability to account
width = shitcode[1] //for a change in how sizes get calculated. we used to include world.view in
height = shitcode[2] //this, but it was jank, so I had to move it
apply()
-/datum/viewData/proc/setBoth(wid, hei)
+/datum/view_data/proc/setBoth(wid, hei)
width = wid
height = hei
apply()
-/datum/viewData/proc/setWidth(wid)
+/datum/view_data/proc/setWidth(wid)
width = wid
apply()
-/datum/viewData/proc/setHeight(hei)
+/datum/view_data/proc/setHeight(hei)
width = hei
apply()
-/datum/viewData/proc/addToWidth(toAdd)
+/datum/view_data/proc/addToWidth(toAdd)
width += toAdd
apply()
-/datum/viewData/proc/addToHeight(screen, toAdd)
+/datum/view_data/proc/addToHeight(screen, toAdd)
height += toAdd
apply()
-/datum/viewData/proc/apply()
+/datum/view_data/proc/apply()
chief.change_view(getView())
- safeApplyFormat()
+ afterViewChange()
-/datum/viewData/proc/supress()
+/datum/view_data/proc/supress()
is_suppressed = TRUE
apply()
-/datum/viewData/proc/unsupress()
+/datum/view_data/proc/unsupress()
is_suppressed = FALSE
apply()
-/datum/viewData/proc/getView()
+/datum/view_data/proc/getView()
var/list/temp = getviewsize(default)
if(is_suppressed)
return "[temp[1]]x[temp[2]]"
return "[width + temp[1]]x[height + temp[2]]"
-/datum/viewData/proc/zoomIn()
+/datum/view_data/proc/zoomIn()
resetToDefault()
animate(chief, pixel_x = 0, pixel_y = 0, 0, FALSE, LINEAR_EASING, ANIMATION_END_NOW)
-/datum/viewData/proc/zoomOut(radius = 0, offset = 0, direction = FALSE)
+/datum/view_data/proc/zoomOut(radius = 0, offset = 0, direction = FALSE)
if(direction)
var/_x = 0
var/_y = 0
diff --git a/code/datums/weather/weather.dm b/code/datums/weather/weather.dm
index 9dd1a6871b..15510f6977 100644
--- a/code/datums/weather/weather.dm
+++ b/code/datums/weather/weather.dm
@@ -178,7 +178,7 @@
*/
/datum/weather/proc/end()
if(stage == END_STAGE)
- return 1
+ return TRUE
stage = END_STAGE
STOP_PROCESSING(SSweather, src)
update_areas()
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index 9abb55cba6..6b14fe2cd8 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -322,7 +322,7 @@ GLOBAL_LIST_EMPTY(teleportlocs)
A.power_light = FALSE
A.power_equip = FALSE
A.power_environ = FALSE
- INVOKE_ASYNC(A, .proc/power_change)
+ A.power_change()
STOP_PROCESSING(SSobj, src)
return ..()
@@ -560,9 +560,9 @@ GLOBAL_LIST_EMPTY(teleportlocs)
/area/proc/powered(chan) // return true if the area has power to given channel
if(!requires_power)
- return 1
+ return TRUE
if(always_unpowered)
- return 0
+ return FALSE
switch(chan)
if(EQUIP)
return power_equip
@@ -571,23 +571,28 @@ GLOBAL_LIST_EMPTY(teleportlocs)
if(ENVIRON)
return power_environ
- return 0
+ return FALSE
/area/space/powered(chan) //Nope.avi
- return 0
+ return FALSE
// called when power status changes
/area/proc/power_change()
- for(var/obj/machinery/M in src) // for each machine in the area
- M.power_change() // reverify power status (to update icons etc.)
- if(sub_areas)
- for(var/i in sub_areas)
- var/area/A = i
- A.power_light = power_light
- A.power_equip = power_equip
- A.power_environ = power_environ
- INVOKE_ASYNC(A, .proc/power_change)
+ SHOULD_NOT_SLEEP(TRUE)
+ if(contents.len < GLOB.machines.len) // it would be faster to loop over contents
+ for(var/obj/machinery/M in src) // for each machine in the area
+ M.power_change() // reverify power status (to update icons etc.)
+ else // it would be faster to loop over the machines list
+ for(var/obj/machinery/M as anything in GLOB.machines) // for each machine
+ if(get_area(M) != src) // in the area
+ continue
+ M.power_change() // reverify power status (to update icons etc.)
+ for(var/area/A as anything in sub_areas)
+ A.power_light = power_light
+ A.power_equip = power_equip
+ A.power_environ = power_environ
+ A.power_change()
update_appearance()
/area/proc/usage(chan)
diff --git a/code/game/area/areas/holodeck.dm b/code/game/area/areas/holodeck.dm
index 35d6f1d202..ff73bf5434 100644
--- a/code/game/area/areas/holodeck.dm
+++ b/code/game/area/areas/holodeck.dm
@@ -26,18 +26,18 @@
/area/holodeck/powered(var/chan)
if(!requires_power)
- return 1
+ return TRUE
if(always_unpowered)
- return 0
+ return FALSE
if(!linked)
- return 0
+ return FALSE
var/area/A = get_area(linked)
ASSERT(!istype(A, /area/holodeck))
return A.powered(chan)
/area/holodeck/usage(var/chan)
if(!linked)
- return 0
+ return FALSE
var/area/A = get_area(linked)
ASSERT(!istype(A, /area/holodeck))
return A.usage(chan)
@@ -51,7 +51,7 @@
/area/holodeck/use_power(var/amount, var/chan)
if(!linked)
- return 0
+ return FALSE
var/area/A = get_area(linked)
ASSERT(!istype(A, /area/holodeck))
return A.use_power(amount,chan)
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index b473396e15..5009d1c5d2 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -613,7 +613,10 @@
cut_overlay(managed_overlays)
managed_overlays = null
if(length(new_overlays))
- managed_overlays = new_overlays
+ if (length(new_overlays) == 1)
+ managed_overlays = new_overlays[1]
+ else
+ managed_overlays = new_overlays
add_overlay(new_overlays)
. |= UPDATE_OVERLAYS
@@ -667,7 +670,7 @@
if((explosion_flags & EXPLOSION_FLAG_DENSITY_DEPENDENT) && !density)
return power // no block
else if((explosion_flags & EXPLOSION_FLAG_HARD_OBSTACLE) && !QDELETED(src))
- return 0 // fully blocked
+ return FALSE // fully blocked
/**
* Called when a wave explosion hits this atom.
@@ -686,13 +689,29 @@
SEND_SIGNAL(src, COMSIG_ATOM_FIRE_ACT, exposed_temperature, exposed_volume)
return
-/atom/proc/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
- if(density && !has_gravity(AM)) //thrown stuff bounces off dense stuff in no grav, unless the thrown stuff ends up inside what it hit(embedding, bola, etc...).
- addtimer(CALLBACK(src, PROC_REF(hitby_react), AM), 2)
+/**
+ * React to being hit by a thrown object
+ *
+ * Default behaviour is to call [hitby_react][/atom/proc/hitby_react] on ourselves after 2 seconds if we are dense
+ * and under normal gravity.
+ *
+ * Im not sure why this the case, maybe to prevent lots of hitby's if the thrown object is
+ * deleted shortly after hitting something (during explosions or other massive events that
+ * throw lots of items around - singularity being a notable example)
+ */
+/atom/proc/hitby(atom/movable/hitting_atom, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
+ SEND_SIGNAL(src, COMSIG_ATOM_HITBY, hitting_atom, skipcatch, hitpush, blocked, throwingdatum)
+ if(density && !has_gravity(hitting_atom)) //thrown stuff bounces off dense stuff in no grav, unless the thrown stuff ends up inside what it hit(embedding, bola, etc...).
+ addtimer(CALLBACK(src, PROC_REF(hitby_react), hitting_atom), 2)
-/atom/proc/hitby_react(atom/movable/AM)
- if(AM && isturf(AM.loc))
- step(AM, turn(AM.dir, 180))
+/**
+ * We have have actually hit the passed in atom
+ *
+ * Default behaviour is to move back from the item that hit us
+ */
+/atom/proc/hitby_react(atom/movable/harmed_atom)
+ if(harmed_atom && isturf(harmed_atom.loc))
+ step(harmed_atom, turn(harmed_atom.dir, 180))
/atom/proc/handle_slip(mob/living/carbon/C, knockdown_amount, obj/O, lube)
return
@@ -1340,6 +1359,11 @@
if(filter_data && filter_data[name])
return filters[filter_data.Find(name)]
+/// Returns the indice in filters of the given filter name.
+/// If it is not found, returns null.
+/atom/proc/get_filter_index(name)
+ return filter_data?.Find(name)
+
/atom/proc/remove_filter(name_or_names)
if(!filter_data)
return
@@ -1395,7 +1419,7 @@
T = get_turf(src)
if(!T)
- return 0
+ return FALSE
var/list/forced_gravity = list()
SEND_SIGNAL(src, COMSIG_ATOM_HAS_GRAVITY, T, forced_gravity)
@@ -1408,7 +1432,7 @@
return max_grav
if(isspaceturf(T)) // Turf never has gravity
- return 0
+ return FALSE
var/area/A = get_area(T)
if(A.has_gravity) // Areas which always has gravity
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index 6beb8319ec..6d02c19d23 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -383,9 +383,9 @@
if(!(impact_signal && (impact_signal & COMPONENT_MOVABLE_IMPACT_NEVERMIND))) // in case a signal interceptor broke or deleted the thing before we could process our hit
return hit_atom.hitby(src, throwingdatum=throwingdatum, hitpush=hitpush)
-/atom/movable/hitby(atom/movable/AM, skipcatch, hitpush = TRUE, blocked, datum/thrownthing/throwingdatum)
+/atom/movable/hitby(atom/movable/hitting_atom, skipcatch, hitpush = TRUE, blocked, datum/thrownthing/throwingdatum)
if(!anchored && hitpush && (!throwingdatum || (throwingdatum.force >= (move_resist * MOVE_FORCE_PUSH_RATIO))))
- step(src, AM.dir)
+ step(src, hitting_atom.dir)
..()
/atom/movable/proc/safe_throw_at(atom/target, range, speed, mob/thrower, spin = TRUE, diagonals_first = FALSE, datum/callback/callback, force = MOVE_FORCE_STRONG, gentle = FALSE)
@@ -441,7 +441,7 @@
else
target_zone = thrower.zone_selected
- var/datum/thrownthing/TT = new(src, target, get_turf(target), get_dir(src, target), range, speed, thrower, diagonals_first, force, gentle, callback, target_zone)
+ var/datum/thrownthing/TT = new(src, target, get_dir(src, target), range, speed, thrower, diagonals_first, force, gentle, callback, target_zone)
var/dist_x = abs(target.x - src.x)
var/dist_y = abs(target.y - src.y)
diff --git a/code/game/atoms_movement.dm b/code/game/atoms_movement.dm
index 9fd007e9ee..7cf86be7cf 100644
--- a/code/game/atoms_movement.dm
+++ b/code/game/atoms_movement.dm
@@ -207,7 +207,7 @@
SEND_SIGNAL(src, COMSIG_MOVABLE_BUMP, A)
. = ..()
if(!QDELETED(throwing))
- throwing.hit_atom(A)
+ throwing.finalize(hit = TRUE, target = A)
. = TRUE
if(QDELETED(A))
return
@@ -291,9 +291,9 @@
* Called whenever an object moves and by mobs when they attempt to move themselves through space
* And when an object or action applies a force on src, see [newtonian_move][/atom/movable/proc/newtonian_move]
*
- * Return 0 to have src start/keep drifting in a no-grav area and 1 to stop/not start drifting
+ * return FALSE to have src start/keep drifting in a no-grav area and 1 to stop/not start drifting
*
- * Mobs should return 1 if they should be able to move of their own volition, see [/client/proc/Move]
+ * Mobs should return TRUE if they should be able to move of their own volition, see [/client/proc/Move]
*
* Arguments:
* * movement_dir - 0 when stopping or any dir when trying to move
diff --git a/code/game/communications.dm b/code/game/communications.dm
index 2b45fc9469..d3b4d69dad 100644
--- a/code/game/communications.dm
+++ b/code/game/communications.dm
@@ -150,7 +150,7 @@ GLOBAL_LIST_INIT(reverseradiochannels, list(
if(range)
start_point = get_turf(source)
if(!start_point)
- return 0
+ return FALSE
//Send the data
for(var/current_filter in filter_list)
diff --git a/code/game/gamemodes/bloodsucker/bloodsucker.dm b/code/game/gamemodes/bloodsucker/bloodsucker.dm
index aa8edeaa72..73f24948d0 100644
--- a/code/game/gamemodes/bloodsucker/bloodsucker.dm
+++ b/code/game/gamemodes/bloodsucker/bloodsucker.dm
@@ -199,7 +199,7 @@
// Check Overdose: Am I even addicted to blood? Do I even have any in me?
//if (!target.reagents.addiction_list || !target.reagents.reagent_list)
//message_admins("DEBUG2: can_make_vassal() Abort: No reagents")
- // return 0
+ // return FALSE
// Check Overdose: Did my current volume go over the Overdose threshold?
//var/am_addicted = 0
//for (var/datum/reagent/blood/vampblood/blood in target.reagents.addiction_list) // overdosed is tracked in reagent_list, not addiction_list.
@@ -210,7 +210,7 @@
//if (!am_addicted)
//message_admins("DEBUG4: can_make_vassal() Abort: No Blood")
- // return 0
+ // return FALSE
// No Mind!
if(!target.mind || !target.mind.key)
if(display_warning)
diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm
index 77c953567c..05979867e2 100644
--- a/code/game/gamemodes/changeling/changeling.dm
+++ b/code/game/gamemodes/changeling/changeling.dm
@@ -51,10 +51,10 @@ GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our th
changelings += changeling
changeling.special_role = ROLE_CHANGELING
changeling.restricted_roles = restricted_jobs
- return 1
+ return TRUE
else
setup_error = "Not enough changeling candidates"
- return 0
+ return FALSE
/datum/game_mode/changeling/post_setup()
for(var/datum/mind/changeling in changelings)
diff --git a/code/game/gamemodes/changeling/traitor_chan.dm b/code/game/gamemodes/changeling/traitor_chan.dm
index 691111031d..a21d6c676d 100644
--- a/code/game/gamemodes/changeling/traitor_chan.dm
+++ b/code/game/gamemodes/changeling/traitor_chan.dm
@@ -20,11 +20,11 @@
/datum/game_mode/traitor/changeling/can_start()
if(!..())
- return 0
+ return FALSE
possible_changelings = get_players_for_role(ROLE_CHANGELING)
if(possible_changelings.len < required_enemies)
- return 0
- return 1
+ return FALSE
+ return TRUE
/datum/game_mode/traitor/changeling/pre_setup()
if(CONFIG_GET(flag/protect_roles_from_antagonist))
@@ -55,7 +55,7 @@
changeling.restricted_roles = restricted_jobs
return ..()
else
- return 0
+ return FALSE
/datum/game_mode/traitor/changeling/post_setup()
for(var/datum/mind/changeling in changelings)
diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm
index 77371ad7bc..d852ce9850 100644
--- a/code/game/gamemodes/clock_cult/clock_cult.dm
+++ b/code/game/gamemodes/clock_cult/clock_cult.dm
@@ -188,16 +188,16 @@ Credit where due:
equip_servant(L)
add_servant_of_ratvar(L, TRUE)
..()
- return 1
+ return TRUE
/datum/game_mode/proc/greet_servant(mob/M) //Description of their role
if(!M)
- return 0
+ return FALSE
to_chat(M, "You are a servant of Ratvar, the Clockwork Justiciar! ")
to_chat(M, "Unlock Script scripture by converting a new servant or when 35kw of power is reached. ")
to_chat(M, "Application scripture will be unlocked when 50kw of power is reached. ")
M.playsound_local(get_turf(M), 'sound/ambience/antag/clockcultalr.ogg', 100, FALSE, pressure_affected = FALSE)
- return 1
+ return TRUE
/datum/game_mode/proc/equip_servant(mob/living/M) //Grants a clockwork slab to the mob
if(!M || !ishuman(M))
diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm
index f17cfde761..5891facfb7 100644
--- a/code/game/gamemodes/clown_ops/clown_weapons.dm
+++ b/code/game/gamemodes/clown_ops/clown_weapons.dm
@@ -151,8 +151,9 @@
slipper.lube_flags |= FLYING_DOESNT_HELP|SLIP_WHEN_CRAWLING
slipper.Slip(src, hit_atom)
slipper.lube_flags &= ~(FLYING_DOESNT_HELP|SLIP_WHEN_CRAWLING)
- if(thrownby && !caught)
- throw_at(thrownby, throw_range+2, throw_speed, null, 1)
+ var/mob/thrown_by = thrownby?.resolve()
+ if(thrown_by && !caught)
+ throw_at(thrown_by, throw_range+2, throw_speed, null, 1)
else
return ..()
diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm
index 9a49c05739..72b3b53989 100644
--- a/code/game/gamemodes/cult/cult.dm
+++ b/code/game/gamemodes/cult/cult.dm
@@ -154,9 +154,9 @@
if(cult_mind.current.onCentCom() || cult_mind.current.onSyndieBase())
acolytes_survived++
if(acolytes_survived>=acolytes_needed)
- return 0
+ return FALSE
else
- return 1
+ return TRUE
/datum/game_mode/cult/generate_report()
diff --git a/code/game/gamemodes/devil/devil agent/devil_agent.dm b/code/game/gamemodes/devil/devil agent/devil_agent.dm
index ccfd6f1dd5..d491594d40 100644
--- a/code/game/gamemodes/devil/devil agent/devil_agent.dm
+++ b/code/game/gamemodes/devil/devil agent/devil_agent.dm
@@ -41,8 +41,8 @@
outsellobjective.target = target_mind
outsellobjective.update_explanation_text()
D.objectives += outsellobjective
- return 1
- return 0
+ return TRUE
+ return FALSE
/datum/game_mode/devil/devil_agents/generate_report()
return "Multiple soul merchants have been spotted in the quadrant, and appear to be competing over who can purchase the most souls. Be advised that they are likely to manufacture \
diff --git a/code/game/gamemodes/devil/devil_game_mode.dm b/code/game/gamemodes/devil/devil_game_mode.dm
index 7fe2f91714..64de9f2097 100644
--- a/code/game/gamemodes/devil/devil_game_mode.dm
+++ b/code/game/gamemodes/devil/devil_game_mode.dm
@@ -47,15 +47,15 @@
if(devils.len < required_enemies)
setup_error = "Not enough devil candidates"
- return 0
- return 1
+ return FALSE
+ return TRUE
/datum/game_mode/devil/post_setup()
for(var/datum/mind/devil in devils)
post_setup_finalize(devil)
..()
- return 1
+ return TRUE
/datum/game_mode/devil/generate_report()
return "Infernal creatures have been seen nearby offering great boons in exchange for souls. This is considered theft against Nanotrasen, as all employment contracts contain a lien on the \
diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm
index df698a4f5e..450950e640 100644
--- a/code/game/gamemodes/dynamic/dynamic.dm
+++ b/code/game/gamemodes/dynamic/dynamic.dm
@@ -546,7 +546,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
return ruleset.cost + added_threat
else
stack_trace("The starting rule \"[ruleset.name]\" failed to pre_execute.")
- return 0
+ return FALSE
/// Mainly here to facilitate delayed rulesets. All roundstart rulesets are executed with a timered callback to this proc.
/datum/game_mode/dynamic/proc/execute_roundstart_rule(sent_rule)
diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets.dm b/code/game/gamemodes/dynamic/dynamic_rulesets.dm
index b742f6f36c..88c1dfc747 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets.dm
@@ -115,7 +115,7 @@
/// Returns how much threat to actually spend in the end.
/datum/dynamic_ruleset/proc/scale_up(population, max_scale)
if (!scaling_cost)
- return 0
+ return FALSE
var/antag_fraction = 0
for(var/_ruleset in (mode.executed_rules + list(src))) // we care about the antags we *will* assign, too
diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
index ccc73486b5..15e0e859f3 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
@@ -15,6 +15,7 @@
var/restrict_ghost_roles = TRUE
/// What mob type the ruleset is restricted to.
var/required_type = /mob/living/carbon/human
+ var/should_use_midround_pref = TRUE
var/list/living_players = list()
var/list/living_antags = list()
var/list/dead_players = list()
@@ -23,6 +24,7 @@
/datum/dynamic_ruleset/midround/from_ghosts
weight = 0
required_type = /mob/dead/observer
+ should_use_midround_pref = FALSE
/// Whether the ruleset should call generate_ruleset_body or not.
var/makeBody = TRUE
/// The rule needs this many applicants to be properly executed.
@@ -43,6 +45,9 @@
if (!M.client) // Are they connected?
trimmed_list.Remove(M)
continue
+ if(should_use_midround_pref && !(M.client.prefs.toggles & MIDROUND_ANTAG))
+ trimmed_list.Remove(M)
+ continue
if(!mode.check_age(M.client, minimum_required_age))
trimmed_list.Remove(M)
continue
@@ -106,10 +111,10 @@
return
message_admins("Polling [possible_volunteers.len] players to apply for the [name] ruleset.")
log_game("DYNAMIC: Polling [possible_volunteers.len] players to apply for the [name] ruleset.")
+ var/flag = antag_flag_override ? antag_flag_override : antag_flag
+ candidates = pollGhostCandidates("The mode is looking for volunteers to become [antag_flag] for [name]", flag, be_special_flag = flag, ignore_category = antag_flag, poll_time = 300)
- candidates = pollGhostCandidates("The mode is looking for volunteers to become [antag_flag] for [name]", antag_flag, be_special_flag = antag_flag_override ? antag_flag_override : antag_flag, poll_time = 300)
-
- if(!candidates || candidates.len <= 0)
+ if(!length(candidates))
mode.dynamic_log("The ruleset [name] received no applications.")
mode.executed_rules -= src
attempt_replacement()
@@ -164,19 +169,10 @@
/datum/dynamic_ruleset/midround/from_ghosts/proc/setup_role(datum/antagonist/new_role)
return
-/// Fired when there are no valid candidates. Will spawn a sleeper agent or latejoin traitor.
+/// Fired when there are no valid candidates. Will try to roll again in a minute.
/datum/dynamic_ruleset/midround/from_ghosts/proc/attempt_replacement()
- var/datum/dynamic_ruleset/midround/autotraitor/sleeper_agent = new
-
- // Otherwise, it has a chance to fail. We don't want that, since this is already pretty unlikely.
- sleeper_agent.has_failure_chance = FALSE
-
- mode.configure_ruleset(sleeper_agent)
-
- if (!mode.picking_specific_rule(sleeper_agent))
- return
-
- mode.picking_specific_rule(/datum/dynamic_ruleset/latejoin/infiltrator)
+ COOLDOWN_START(mode, midround_injection_cooldown, 1 MINUTES)
+ mode.forced_injection = TRUE
//////////////////////////////////////////////
// //
@@ -233,9 +229,8 @@
return ..()
/datum/dynamic_ruleset/midround/autotraitor/execute()
- var/mob/M = pick(living_players)
+ var/mob/M = pick_n_take(living_players)
assigned += M
- living_players -= M
var/datum/antagonist/traitor/newTraitor = new
M.mind.add_antag_datum(newTraitor)
message_admins("[ADMIN_LOOKUPFLW(M)] was selected by the [name] ruleset and has been made into a midround traitor.")
@@ -336,7 +331,7 @@
candidates -= player
continue
- if(player.mind && (player.mind.special_role || player.mind.antag_datums?.len > 0))
+ if(player.mind && (player.mind.special_role || length(player.mind.antag_datums)))
candidates -= player
/datum/dynamic_ruleset/midround/malf/execute()
@@ -355,6 +350,70 @@
M.add_ion_law(generate_ion_law())
return TRUE
+//////////////////////////////////////////////
+// //
+// WIZARD (CREW) //
+// //
+//////////////////////////////////////////////
+
+/datum/dynamic_ruleset/midround/wizard
+ name = "Wizard"
+ antag_datum = /datum/antagonist/wizard
+ antag_flag = "wizard mid crew"
+ antag_flag_override = ROLE_WIZARD
+ protected_roles = list("Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Chaplain", "Head of Personnel", "Quartermaster", "Chief Engineer", "Chief Medical Officer", "Research Director")
+ restricted_roles = list("AI", "Cyborg")
+ enemy_roles = list("Security Officer","Detective","Head of Security", "Captain")
+ required_enemies = list(0,0,0,0,0,0,0,0,0,0)
+ weight = 0
+ cost = 20
+ requirements = list(101,101,100,60,40,20,20,20,10,10)
+ repeatable = TRUE
+ var/datum/mind/wizard
+
+/datum/dynamic_ruleset/midround/wizard/trim_candidates()
+ ..()
+ candidates = living_players
+ for(var/mob/living/player as anything in candidates)
+ var/turf/player_turf = get_turf(player)
+ if(!player_turf || !is_station_level(player_turf.z))
+ candidates -= player
+ continue
+
+ if(player.mind && (player.mind.special_role || length(player.mind.antag_datums) > 0))
+ candidates -= player
+ candidates = pollCandidates("Do you want to be a wizard?", antag_flag_override, be_special_flag = antag_flag_override, ignore_category = antag_flag_override, poll_time = 300)
+
+/datum/dynamic_ruleset/midround/wizard/ready(forced = FALSE)
+ if(GLOB.wizardstart.len == 0)
+ log_admin("Cannot accept Wizard ruleset. Couldn't find any wizard spawn points.")
+ message_admins("Cannot accept Wizard ruleset. Couldn't find any wizard spawn points.")
+ return FALSE
+ return ..()
+
+/datum/dynamic_ruleset/midround/wizard/execute()
+ var/mob/M = pick_n_take(living_players)
+ assigned += M
+ var/datum/antagonist/wizard/on_station/wiz = new
+ M.mind.add_antag_datum(wiz)
+ wizard = M.mind
+ message_admins("[ADMIN_LOOKUPFLW(M)] was selected by the [name] ruleset and has been made into a midround wizard.")
+ log_game("DYNAMIC: [key_name(M)] was selected by the [name] ruleset and has been made into a midround wizard.")
+ return TRUE
+
+/datum/dynamic_ruleset/midround/wizard/rule_process()
+ if(isliving(wizard.current) && wizard.current.stat!=DEAD)
+ return FALSE
+ for(var/obj/item/phylactery/P in GLOB.poi_list) //TODO : IsProperlyDead()
+ if(P.mind && P.mind.has_antag_datum(/datum/antagonist/wizard))
+ return FALSE
+
+ if(SSevents.wizardmode) //If summon events was active, turn it off
+ SSevents.toggleWizardmode()
+ SSevents.resetFrequency()
+
+ return RULESET_STOP_PROCESSING
+
//////////////////////////////////////////////
// //
// WIZARD (GHOST) //
@@ -459,7 +518,7 @@
antag_flag = "clock mid"
antag_flag_override = ROLE_SERVANT_OF_RATVAR
protected_roles = list("AI", "Cyborg", "Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Chaplain", "Head of Personnel", "Quartermaster", "Chief Engineer", "Chief Medical Officer", "Research Director")
- restricted_roles = list("AI", "Cyborg", "Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Chaplain", "Head of Personnel", "Quartermaster", "Chief Engineer", "Chief Medical Officer", "Research Director")
+ restricted_roles = list("AI", "Cyborg")
enemy_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Chaplain", "Head of Personnel", "Quartermaster", "Chief Engineer", "Chief Medical Officer", "Research Director")
required_enemies = list(1,1,1,1,1,1,0,0,0,0)
required_candidates = 2
@@ -536,6 +595,7 @@
name = "Blob Infection"
antag_datum = /datum/antagonist/blob
antag_flag = "blob mid"
+ antag_flag_override = ROLE_BLOB
protected_roles = list("Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain")
restricted_roles = list("Cyborg", "AI", "Positronic Brain")
enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain")
@@ -559,11 +619,11 @@
candidates -= player
/datum/dynamic_ruleset/midround/blob_infection/execute()
- if(!candidates || !candidates.len)
+ if(!length(candidates))
return FALSE
var/mob/living/carbon/human/blob_antag = pick_n_take(candidates)
assigned += blob_antag.mind
- blob_antag.mind.special_role = antag_flag
+ blob_antag.mind.special_role = antag_flag_override
return ..()
//////////////////////////////////////////////
diff --git a/code/game/gamemodes/extended/extended.dm b/code/game/gamemodes/extended/extended.dm
index bfc75a9dc1..1692e9fef6 100644
--- a/code/game/gamemodes/extended/extended.dm
+++ b/code/game/gamemodes/extended/extended.dm
@@ -9,7 +9,7 @@
announce_text = "Just have fun and enjoy the game!"
/datum/game_mode/extended/pre_setup()
- return 1
+ return TRUE
/datum/game_mode/extended/generate_report()
return "The transmission mostly failed to mention your sector. It is possible that there is nothing in the Syndicate that could threaten your station during this shift."
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index b328181974..85689b9761 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -68,22 +68,22 @@
playerC++
if(!GLOB.Debug2)
if(playerC < required_players || (maximum_players >= 0 && playerC > maximum_players))
- return 0
+ return FALSE
antag_candidates = get_players_for_role(antag_flag)
if(!GLOB.Debug2)
if(antag_candidates.len < required_enemies)
- return 0
- return 1
+ return FALSE
+ return TRUE
else
message_admins("DEBUG: GAME STARTING WITHOUT PLAYER NUMBER CHECKS, THIS WILL PROBABLY BREAK SHIT. ")
- return 1
+ return TRUE
///Attempts to select players for special roles the mode might have.
/datum/game_mode/proc/pre_setup()
- return 1
+ return TRUE
///Everyone should now be on the station and have their normal gear. This is the place to give the special roles extra things
/datum/game_mode/proc/post_setup(report) //Gamemodes can override the intercept report. Passing TRUE as the argument will force a report.
@@ -162,10 +162,10 @@
switch(SSshuttle.emergency.mode) //Rounds on the verge of ending don't get new antags, they just run out
if(SHUTTLE_STRANDED, SHUTTLE_ESCAPE)
- return 1
+ return TRUE
if(SHUTTLE_CALL)
if(SSshuttle.emergency.timeLeft(1) < initial(SSshuttle.emergencyCallTime)*0.5)
- return 1
+ return TRUE
var/matc = CONFIG_GET(number/midround_antag_time_check)
if(world.time >= (matc * 600))
@@ -202,7 +202,7 @@
//somewhere between 1 and 3 minutes from now
if(!CONFIG_GET(keyed_list/midround_antag)[SSticker.mode.config_tag])
round_converted = 0
- return 1
+ return TRUE
for(var/mob/living/carbon/human/H in antag_candidates)
if(H.client)
replacementmode.make_antag_chance(H)
@@ -213,7 +213,7 @@
///Called by the gameSSticker
/datum/game_mode/process()
- return 0
+ return FALSE
//For things that do not die easily
/datum/game_mode/proc/are_special_antags_dead()
@@ -237,44 +237,44 @@
if(Player.mind)
if(Player.mind.special_role || LAZYLEN(Player.mind.antag_datums))
continuous_sanity_checked = 1
- return 0
+ return FALSE
if(!continuous_sanity_checked)
message_admins("The roundtype ([config_tag]) has no antagonists, continuous round has been defaulted to on and midround_antag has been defaulted to off.")
continuous[config_tag] = TRUE
midround_antag[config_tag] = FALSE
SSshuttle.clearHostileEnvironment(src)
- return 0
+ return FALSE
if(living_antag_player && living_antag_player.mind && isliving(living_antag_player) && living_antag_player.stat != DEAD && !isnewplayer(living_antag_player) &&!isbrain(living_antag_player) && (living_antag_player.mind.special_role || LAZYLEN(living_antag_player.mind.antag_datums)))
- return 0 //A resource saver: once we find someone who has to die for all antags to be dead, we can just keep checking them, cycling over everyone only when we lose our mark.
+ return FALSE //A resource saver: once we find someone who has to die for all antags to be dead, we can just keep checking them, cycling over everyone only when we lose our mark.
for(var/mob/Player in GLOB.alive_mob_list)
if(Player.mind && Player.stat != DEAD && !isnewplayer(Player) &&!isbrain(Player) && Player.client)
if(Player.mind.special_role || LAZYLEN(Player.mind.antag_datums)) //Someone's still antaging!
living_antag_player = Player
- return 0
+ return FALSE
if(!are_special_antags_dead())
return FALSE
if(!continuous[config_tag] || force_ending)
- return 1
+ return TRUE
else
round_converted = convert_roundtype()
if(!round_converted)
if(round_ends_with_antag_death)
- return 1
+ return TRUE
else
midround_antag[config_tag] = 0
- return 0
+ return FALSE
- return 0
+ return FALSE
/datum/game_mode/proc/check_win() //universal trigger to be called at mob death, nuke explosion, etc. To be called from everywhere.
- return 0
+ return FALSE
/datum/game_mode/proc/send_intercept()
if(flipseclevel && !(config_tag == "extended"))//CIT CHANGE - lets the security level be flipped roundstart
@@ -533,30 +533,24 @@
//If the configuration option is set to require players to be logged as old enough to play certain jobs, then this proc checks that they are, otherwise it just returns 1
/datum/game_mode/proc/age_check(client/C)
if(get_remaining_days(C) == 0)
- return 1 //Available in 0 days = available right now = player is old enough to play.
- return 0
+ return TRUE //Available in 0 days = available right now = player is old enough to play.
+ return FALSE
/datum/game_mode/proc/get_remaining_days(client/C)
if(!C)
- return 0
+ return FALSE
if(C.prefs?.db_flags & DB_FLAG_EXEMPT)
- return 0
+ return FALSE
if(!CONFIG_GET(flag/use_age_restriction_for_jobs))
- return 0
+ return FALSE
if(!isnum(C.player_age))
- return 0 //This is only a number if the db connection is established, otherwise it is text: "Requires database", meaning these restrictions cannot be enforced
+ return FALSE //This is only a number if the db connection is established, otherwise it is text: "Requires database", meaning these restrictions cannot be enforced
if(!isnum(enemy_minimum_age))
- return 0
+ return FALSE
return max(0, enemy_minimum_age - C.player_age)
-/datum/game_mode/proc/remove_antag_for_borging(datum/mind/newborgie)
- SSticker.mode.remove_cultist(newborgie, 0, 0)
- var/datum/antagonist/rev/rev = newborgie.has_antag_datum(/datum/antagonist/rev)
- if(rev)
- rev.remove_revolutionary(TRUE)
-
/datum/game_mode/proc/generate_station_goals()
if(flipseclevel && !(config_tag == "extended")) //CIT CHANGE - allows the sec level to be flipped roundstart
for(var/T in subtypesof(/datum/station_goal))
diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm
index bf45fe7efe..f0dadc8350 100644
--- a/code/game/gamemodes/objective.dm
+++ b/code/game/gamemodes/objective.dm
@@ -639,11 +639,11 @@ GLOBAL_LIST_EMPTY(possible_items)
if(istype(I, steal_target))
if(!targetinfo) //If there's no targetinfo, then that means it was a custom objective. At this point, we know you have the item, so return 1.
return TRUE
- else if(targetinfo.check_special_completion(I))//Returns 1 by default. Items with special checks will return 1 if the conditions are fulfilled.
+ else if(targetinfo.check_special_completion(I))//Returns 1 by default. Items with special checks will return TRUE if the conditions are fulfilled.
return TRUE
if(targetinfo && (I.type in targetinfo.altitems)) //Ok, so you don't have the item. Do you have an alternative, at least?
- if(targetinfo.check_special_completion(I))//Yeah, we do! Don't return 0 if we don't though - then you could fail if you had 1 item that didn't pass and got checked first!
+ if(targetinfo.check_special_completion(I))//Yeah, we do! Don't return FALSE if we don't though - then you could fail if you had 1 item that didn't pass and got checked first!
return TRUE
return FALSE
diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm
index 78644281b8..2a64f69038 100644
--- a/code/game/gamemodes/objective_items.dm
+++ b/code/game/gamemodes/objective_items.dm
@@ -9,7 +9,7 @@
var/list/special_equipment = list()
/datum/objective_item/proc/check_special_completion() //for objectives with special checks (is that slime extract unused? does that intellicard have an ai in it? etcetc)
- return 1
+ return TRUE
/datum/objective_item/proc/TargetExists()
return TRUE
@@ -142,8 +142,8 @@
/datum/objective_item/steal/functionalai/check_special_completion(obj/item/aicard/C)
for(var/mob/living/silicon/ai/A in C)
if(isAI(A) && A.stat != DEAD) //See if any AI's are alive inside that card.
- return 1
- return 0
+ return TRUE
+ return FALSE
/datum/objective_item/steal/blueprints
name = "the station blueprints."
@@ -169,8 +169,8 @@
/datum/objective_item/steal/slime/check_special_completion(obj/item/slime_extract/E)
if(E.Uses > 0)
- return 1
- return 0
+ return TRUE
+ return FALSE
//Unique Objectives
/datum/objective_item/unique/docs_red
diff --git a/code/game/gamemodes/objective_sabotage.dm b/code/game/gamemodes/objective_sabotage.dm
index 96772fd263..74cc485d78 100644
--- a/code/game/gamemodes/objective_sabotage.dm
+++ b/code/game/gamemodes/objective_sabotage.dm
@@ -23,7 +23,7 @@
START_PROCESSING(SSprocessing, src)
/datum/sabotage_objective/processing/proc/check_condition_processing()
- return 1
+ return TRUE
/datum/sabotage_objective/processing/process()
check_condition_processing()
@@ -36,7 +36,7 @@
/datum/sabotage_objective/ai_law
name = "Upload a hacked law to the AI."
sabotage_type = "ailaw"
- special_equipment = list(/obj/item/aiModule/syndicate)
+ special_equipment = list(/obj/item/ai_module/syndicate)
excludefromjob = list("Chief Engineer","Research Director","Head of Personnel","Captain","Chief Medical Officer","Head Of Security")
/datum/sabotage_objective/ai_law/can_run()
diff --git a/code/game/gamemodes/overthrow/objective.dm b/code/game/gamemodes/overthrow/objective.dm
index 75b7f9f3b8..098fcce31a 100644
--- a/code/game/gamemodes/overthrow/objective.dm
+++ b/code/game/gamemodes/overthrow/objective.dm
@@ -34,7 +34,7 @@
return get_points() ? TRUE : FALSE
/datum/objective/overthrow/proc/get_points()
- return 0 // int, not bool
+ return FALSE // int, not bool
/datum/objective/overthrow/proc/result_points(datum/mind/the_dude, base_points) // App
var/initial_points = base_points
diff --git a/code/game/gamemodes/sandbox/sandbox.dm b/code/game/gamemodes/sandbox/sandbox.dm
index 9c38bd83e8..667bf3808a 100644
--- a/code/game/gamemodes/sandbox/sandbox.dm
+++ b/code/game/gamemodes/sandbox/sandbox.dm
@@ -11,7 +11,7 @@
/datum/game_mode/sandbox/pre_setup()
for(var/mob/M in GLOB.player_list)
M.CanBuild()
- return 1
+ return TRUE
/datum/game_mode/sandbox/post_setup()
..()
diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm
index b993fb9c8e..d01889f9fc 100644
--- a/code/game/machinery/_machinery.dm
+++ b/code/game/machinery/_machinery.dm
@@ -509,8 +509,8 @@ Class Procs:
I.play_tool_sound(src, 50)
setDir(turn(dir,-90))
to_chat(user, "You rotate [src]. ")
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/proc/can_be_unfasten_wrench(mob/user, silent) //if we can unwrench this object; returns SUCCESSFUL_UNFASTEN and FAILED_UNFASTEN, which are both TRUE, or CANT_UNFASTEN, which isn't.
if(!(isfloorturf(loc) || istype(loc, /turf/open/indestructible)) && !anchored)
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index bad19592fa..24cf87a252 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -210,7 +210,7 @@
if(materials.materials[i] > 0)
list_to_show += i
- used_material = tgui_input_list(usr, "Choose [used_material]", "Custom Material", sortList(list_to_show, GLOBAL_PROC_REF(cmp_typepaths_asc)))
+ used_material = tgui_input_list(usr, "Choose [used_material]", "Custom Material", sort_list(list_to_show, GLOBAL_PROC_REF(cmp_typepaths_asc)))
if(isnull(used_material))
return //Didn't pick any material, so you can't build shit either.
custom_materials[used_material] += amount_needed
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index bd2faefbd7..b6ab1af366 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -274,7 +274,7 @@
/obj/machinery/camera/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir)
if(damage_flag == MELEE && damage_amount < 12 && !(stat & BROKEN))
- return 0
+ return FALSE
. = ..()
/obj/machinery/camera/obj_break(damage_flag)
@@ -417,4 +417,4 @@
else
user.sight = 0
user.see_in_dark = 2
- return 1
+ return TRUE
diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm
index bf1b84fe5d..157ccfe01f 100644
--- a/code/game/machinery/camera/tracking.dm
+++ b/code/game/machinery/camera/tracking.dm
@@ -53,7 +53,7 @@
else
track.others[name] = L
- var/list/targets = sortList(track.humans) + sortList(track.others)
+ var/list/targets = sort_list(track.humans) + sort_list(track.others)
return targets
diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm
index 7eb6c79eef..c8add9e690 100644
--- a/code/game/machinery/computer/atmos_control.dm
+++ b/code/game/machinery/computer/atmos_control.dm
@@ -251,7 +251,7 @@ GLOBAL_LIST_EMPTY(atmos_air_controllers)
IO |= text[1]
if(!IO.len)
to_chat(user, "No machinery detected. ")
- var/S = input("Select the device set: ", "Selection", IO[1]) as anything in sortList(IO)
+ var/S = input("Select the device set: ", "Selection", IO[1]) as anything in sort_list(IO)
if(src)
src.input_tag = "[S]_in"
src.output_tag = "[S]_out"
diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm
index 30463f4f01..95c4a089f3 100644
--- a/code/game/machinery/computer/camera_advanced.dm
+++ b/code/game/machinery/computer/camera_advanced.dm
@@ -179,7 +179,7 @@
user.see_invisible = SEE_INVISIBLE_LIVING //can't see ghosts through cameras
user.sight = SEE_TURFS | SEE_BLACKNESS
user.see_in_dark = 2
- return 1
+ return TRUE
/mob/camera/aiEye/remote/Destroy()
if(origin && eye_user)
diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm
index a16e70155f..659bbd651b 100644
--- a/code/game/machinery/computer/card.dm
+++ b/code/game/machinery/computer/card.dm
@@ -505,10 +505,10 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
var/datum/job/j = SSjob.GetJob(edit_job_target)
if(!j)
updateUsrDialog()
- return 0
+ return FALSE
if(can_open_job(j) != 1)
updateUsrDialog()
- return 0
+ return FALSE
if(opened_positions[edit_job_target] >= 0)
GLOB.time_last_changed_position = world.time / 10
j.total_positions++
@@ -522,10 +522,10 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
var/datum/job/j = SSjob.GetJob(edit_job_target)
if(!j)
updateUsrDialog()
- return 0
+ return FALSE
if(can_close_job(j) != 1)
updateUsrDialog()
- return 0
+ return FALSE
//Allow instant closing without cooldown if a position has been opened before
if(opened_positions[edit_job_target] <= 0)
GLOB.time_last_changed_position = world.time / 10
@@ -540,7 +540,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
var/datum/job/j = SSjob.GetJob(priority_target)
if(!j)
updateUsrDialog()
- return 0
+ return FALSE
var/priority = TRUE
if(j in SSjob.prioritized_jobs)
SSjob.prioritized_jobs -= j
diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm
index fc7bec7134..397446b0a7 100644
--- a/code/game/machinery/computer/law.dm
+++ b/code/game/machinery/computer/law.dm
@@ -5,8 +5,8 @@
icon_screen = "command"
/obj/machinery/computer/upload/attackby(obj/item/O, mob/user, params)
- if(istype(O, /obj/item/aiModule))
- var/obj/item/aiModule/M = O
+ if(istype(O, /obj/item/ai_module))
+ var/obj/item/ai_module/M = O
if(src.stat & (NOPOWER|BROKEN|MAINT))
return
if(!current)
@@ -27,8 +27,8 @@
/obj/machinery/computer/upload/proc/can_upload_to(mob/living/silicon/S)
if(S.stat == DEAD)
- return 0
- return 1
+ return FALSE
+ return TRUE
/obj/machinery/computer/upload/ai
name = "\improper AI upload console"
@@ -45,9 +45,9 @@
/obj/machinery/computer/upload/ai/can_upload_to(mob/living/silicon/ai/A)
if(!A || !isAI(A))
- return 0
+ return FALSE
if(A.control_disabled)
- return 0
+ return FALSE
return ..()
@@ -66,7 +66,7 @@
/obj/machinery/computer/upload/borg/can_upload_to(mob/living/silicon/robot/B)
if(!B || !iscyborg(B))
- return 0
+ return FALSE
if(B.scrambledcodes || B.emagged)
- return 0
+ return FALSE
return ..()
diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm
index 7f5fafcd80..e2bc508e55 100644
--- a/code/game/machinery/computer/medical.dm
+++ b/code/game/machinery/computer/medical.dm
@@ -571,8 +571,8 @@
if(user.canUseTopic(src, !hasSiliconAccessInArea(user)))
if(!record1 || record1 == active1)
if(!record2 || record2 == active2)
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/machinery/computer/med_data/laptop
name = "medical laptop"
diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm
index 45bb9bd327..4d1bea7b1a 100644
--- a/code/game/machinery/computer/security.dm
+++ b/code/game/machinery/computer/security.dm
@@ -805,9 +805,9 @@ What a mess.*/
if(authenticated)
if(user.canUseTopic(src, !hasSiliconAccessInArea(user)))
if(!trim(message1))
- return 0
+ return FALSE
if(!record1 || record1 == active1)
if(!record2 || record2 == active2)
- return 1
- return 0
+ return TRUE
+ return FALSE
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 0b09ac8c77..809598600d 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -1276,7 +1276,7 @@
return
// reads from the airlock painter's `available paintjob` list. lets the player choose a paint option, or cancel painting
- var/current_paintjob = tgui_input_list(user, "Paintjob for this airlock", "Customize", sortList(painter.available_paint_jobs))
+ var/current_paintjob = tgui_input_list(user, "Paintjob for this airlock", "Customize", sort_list(painter.available_paint_jobs))
if(isnull(current_paintjob)) // if the user clicked cancel on the popup, return
return
diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm
index b168484a30..11167a3cd9 100644
--- a/code/game/machinery/doors/airlock_types.dm
+++ b/code/game/machinery/doors/airlock_types.dm
@@ -255,7 +255,7 @@
qdel(src)
/obj/machinery/door/airlock/plasma/BlockThermalConductivity() //we don't stop the heat~
- return 0
+ return FALSE
/obj/machinery/door/airlock/plasma/attackby(obj/item/C, mob/user, params)
if(C.get_temperature() > 300)//If the temperature of the object is over 300, then ignite
@@ -507,11 +507,11 @@
/obj/machinery/door/airlock/cult/allowed(mob/living/L)
if(!density)
- return 1
+ return TRUE
if(friendly || iscultist(L) || isshade(L) || isconstruct(L))
if(!stealthy)
new openingoverlaytype(loc)
- return 1
+ return TRUE
else
if(!stealthy)
new /obj/effect/temp_visual/cult/sac(loc)
@@ -521,7 +521,7 @@
flash_color(L, flash_color="#960000", flash_time=20)
L.DefaultCombatKnockdown(40)
L.throw_at(throwtarget, 5, 1)
- return 0
+ return FALSE
/obj/machinery/door/airlock/cult/proc/conceal()
icon = 'icons/obj/doors/airlocks/station/maintenance.dmi'
@@ -619,7 +619,7 @@
return (is_servant_of_ratvar(user) && !isAllPowerCut())
/obj/machinery/door/airlock/clockwork/ratvar_act()
- return 0
+ return FALSE
/obj/machinery/door/airlock/clockwork/narsie_act()
..()
@@ -635,8 +635,8 @@
/obj/machinery/door/airlock/clockwork/allowed(mob/M)
if(is_servant_of_ratvar(M))
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/machinery/door/airlock/clockwork/hasPower()
return TRUE //yes we do have power
@@ -657,36 +657,36 @@
/obj/machinery/door/airlock/clockwork/proc/attempt_construction(obj/item/I, mob/living/user)
if(!I || !user || !user.canUseTopic(src))
- return 0
+ return FALSE
else if(I.tool_behaviour == TOOL_WRENCH)
if(construction_state == GEAR_SECURE)
user.visible_message("[user] begins loosening [src]'s cogwheel... ", "You begin loosening [src]'s cogwheel... ")
if(!I.use_tool(src, user, 75, volume=50) || construction_state != GEAR_SECURE)
- return 1
+ return TRUE
user.visible_message("[user] loosens [src]'s cogwheel! ", "[src]'s cogwheel pops off and dangles loosely. ")
playsound(src, 'sound/items/deconstruct.ogg', 50, 1)
construction_state = GEAR_LOOSE
else if(construction_state == GEAR_LOOSE)
user.visible_message("[user] begins tightening [src]'s cogwheel... ", "You begin tightening [src]'s cogwheel into place... ")
if(!I.use_tool(src, user, 75, volume=50) || construction_state != GEAR_LOOSE)
- return 1
+ return TRUE
user.visible_message("[user] tightens [src]'s cogwheel! ", "You firmly tighten [src]'s cogwheel into place. ")
playsound(src, 'sound/items/deconstruct.ogg', 50, 1)
construction_state = GEAR_SECURE
- return 1
+ return TRUE
else if(I.tool_behaviour == TOOL_CROWBAR)
if(construction_state == GEAR_SECURE)
to_chat(user, "[src]'s cogwheel is too tightly secured! Your [I.name] can't reach under it! ")
- return 1
+ return TRUE
else if(construction_state == GEAR_LOOSE)
user.visible_message("[user] begins slowly lifting off [src]'s cogwheel... ", "You slowly begin lifting off [src]'s cogwheel... ")
if(!I.use_tool(src, user, 75, volume=50) || construction_state != GEAR_LOOSE)
- return 1
+ return TRUE
user.visible_message("[user] lifts off [src]'s cogwheel, causing it to fall apart! ", \
"You lift off [src]'s cogwheel, causing it to fall apart! ")
deconstruct(TRUE)
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/machinery/door/airlock/clockwork/brass
glass = TRUE
diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm
index c209118537..45babec037 100644
--- a/code/game/machinery/doors/brigdoors.dm
+++ b/code/game/machinery/doors/brigdoors.dm
@@ -81,7 +81,7 @@
// linked door is open/closed (by density) then opens it/closes it.
/obj/machinery/door_timer/proc/timer_start()
if(stat & (NOPOWER|BROKEN))
- return 0
+ return FALSE
activation_time = REALTIMEOFDAY
timing = TRUE
@@ -98,12 +98,12 @@
continue
C.locked = TRUE
C.update_icon()
- return 1
+ return TRUE
/obj/machinery/door_timer/proc/timer_end(forced = FALSE)
if(stat & (NOPOWER|BROKEN))
- return 0
+ return FALSE
if(!forced)
Radio.set_frequency(FREQ_SECURITY)
@@ -127,7 +127,7 @@
C.locked = FALSE
C.update_icon()
- return 1
+ return TRUE
/obj/machinery/door_timer/proc/time_left(seconds = FALSE)
@@ -137,7 +137,7 @@
/obj/machinery/door_timer/proc/set_timer(value)
var/new_time = clamp(value,0,MAX_TIMER)
- . = new_time == timer_duration //return 1 on no change
+ . = new_time == timer_duration //return TRUE on no change
timer_duration = new_time
/obj/machinery/door_timer/ui_interact(mob/user, datum/tgui/ui)
diff --git a/code/game/machinery/doors/checkForMultipleDoors.dm b/code/game/machinery/doors/checkForMultipleDoors.dm
index 73a9edde6f..0d985714f9 100644
--- a/code/game/machinery/doors/checkForMultipleDoors.dm
+++ b/code/game/machinery/doors/checkForMultipleDoors.dm
@@ -1,16 +1,16 @@
/obj/machinery/door/proc/checkForMultipleDoors()
if(!src.loc)
- return 0
+ return FALSE
for(var/obj/machinery/door/D in src.loc)
if(!istype(D, /obj/machinery/door/window) && D.density && D != src)
- return 0
- return 1
+ return FALSE
+ return TRUE
/turf/closed/wall/proc/checkForMultipleDoors()
if(!src.loc)
- return 0
+ return FALSE
for(var/obj/machinery/door/D in locate(src.x,src.y,src.z))
if(!istype(D, /obj/machinery/door/window) && D.density)
- return 0
+ return FALSE
//There are no false wall checks because that would be fucking
- return 1
+ return TRUE
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index 5b3b1c3b4a..836bc26abc 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -222,13 +222,13 @@
/obj/machinery/door/attackby(obj/item/I, mob/user, params)
if(user.a_intent != INTENT_HARM && (I.tool_behaviour == TOOL_CROWBAR || istype(I, /obj/item/fireaxe)))
try_to_crowbar(I, user)
- return 1
+ return TRUE
else if(I.tool_behaviour == TOOL_WELDER)
try_to_weld(I, user)
- return 1
+ return TRUE
else if(!(I.item_flags & NOBLUDGEON) && user.a_intent != INTENT_HARM)
try_to_activate_door(user)
- return 1
+ return TRUE
return ..()
/obj/machinery/door/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir)
@@ -284,7 +284,7 @@
/obj/machinery/door/proc/open()
if(!density)
- return 1
+ return TRUE
if(operating)
return
operating = TRUE
@@ -302,7 +302,7 @@
if(autoclose)
spawn(autoclose)
close()
- return 1
+ return TRUE
/obj/machinery/door/proc/close()
if(density)
@@ -335,7 +335,7 @@
CheckForMobs()
else if(!(flags_1 & ON_BORDER_1))
crush()
- return 1
+ return TRUE
/obj/machinery/door/proc/CheckForMobs()
if(locate(/mob/living) in get_turf(src))
@@ -380,7 +380,7 @@
addtimer(CALLBACK(src, PROC_REF(autoclose)), wait, TIMER_UNIQUE | TIMER_NO_HASH_WAIT | TIMER_OVERRIDE)
/obj/machinery/door/proc/requiresID()
- return 1
+ return TRUE
/obj/machinery/door/proc/hasPower()
return !(stat & NOPOWER)
@@ -391,8 +391,8 @@
/obj/machinery/door/BlockThermalConductivity() // All non-glass airlocks block heat, this is intended.
if(opacity || heat_proof)
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/machinery/door/morgue
icon = 'icons/obj/doors/doormorgue.dmi'
diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm
index 7b0ff1d319..948878c9d0 100644
--- a/code/game/machinery/doors/firedoor.dm
+++ b/code/game/machinery/doors/firedoor.dm
@@ -128,7 +128,7 @@
/obj/machinery/door/firedoor/power_change()
if(powered(power_channel))
stat &= ~NOPOWER
- latetoggle()
+ INVOKE_ASYNC(src, .proc/latetoggle)
else
stat |= NOPOWER
@@ -393,7 +393,7 @@
for(var/T2 in T.atmos_adjacent_turfs)
turfs[T2] = 1
if(turfs.len <= 10)
- return 0 // not big enough to matter
+ return FALSE // not big enough to matter
return start_point.air.return_pressure() < 20 ? -1 : 1
/obj/machinery/door/firedoor/border_only/CanAllowThrough(atom/movable/mover, turf/target)
diff --git a/code/game/machinery/doors/passworddoor.dm b/code/game/machinery/doors/passworddoor.dm
index 64afc07ae3..a58d84b164 100644
--- a/code/game/machinery/doors/passworddoor.dm
+++ b/code/game/machinery/doors/passworddoor.dm
@@ -73,4 +73,4 @@
return
/obj/machinery/door/password/wave_ex_act(power, datum/wave_explosion/explosion, dir)
- return 0 //no.
+ return FALSE //no.
diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm
index ba96cb5bf6..b606c8e259 100644
--- a/code/game/machinery/doors/poddoor.dm
+++ b/code/game/machinery/doors/poddoor.dm
@@ -64,7 +64,7 @@
/obj/machinery/door/poddoor/Bumped(atom/movable/AM)
if(density)
- return 0
+ return FALSE
else
return ..()
diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm
index 70dbd6712a..6e871617c8 100644
--- a/code/game/machinery/doors/windowdoor.dm
+++ b/code/game/machinery/doors/windowdoor.dm
@@ -129,7 +129,7 @@
if(get_dir(loc, T) == dir)
return !density
else
- return 1
+ return TRUE
//used in the AStar algorithm to determinate if the turf the door is on is passable
/obj/machinery/door/window/CanAStarPass(obj/item/card/id/ID, to_dir)
@@ -144,13 +144,13 @@
/obj/machinery/door/window/open(forced=0)
if (src.operating == 1) //doors can still open when emag-disabled
- return 0
+ return FALSE
if(!forced)
if(!hasPower())
- return 0
+ return FALSE
if(forced < 2)
if(obj_flags & EMAGGED)
- return 0
+ return FALSE
if(!src.operating) //in case of emag
operating = TRUE
do_animate("opening")
@@ -171,13 +171,13 @@
/obj/machinery/door/window/close(forced=0)
if (src.operating)
- return 0
+ return FALSE
if(!forced)
if(!hasPower())
- return 0
+ return FALSE
if(forced < 2)
if(obj_flags & EMAGGED)
- return 0
+ return FALSE
operating = TRUE
do_animate("closing")
playsound(src.loc, 'sound/machines/windowdoor.ogg', 100, 1)
@@ -423,8 +423,8 @@
/obj/machinery/door/window/clockwork/allowed(mob/M)
if(is_servant_of_ratvar(M))
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/machinery/door/window/northleft
dir = NORTH
diff --git a/code/game/machinery/embedded_controller/access_controller.dm b/code/game/machinery/embedded_controller/access_controller.dm
index 3beb481e00..badec7ef38 100644
--- a/code/game/machinery/embedded_controller/access_controller.dm
+++ b/code/game/machinery/embedded_controller/access_controller.dm
@@ -164,7 +164,7 @@
set waitfor = FALSE
if(A.density)
goIdle()
- return 0
+ return FALSE
update_icon()
A.unbolt()
. = 1
diff --git a/code/game/machinery/embedded_controller/airlock_controller.dm b/code/game/machinery/embedded_controller/airlock_controller.dm
index 125c6692f3..bb601ccac4 100644
--- a/code/game/machinery/embedded_controller/airlock_controller.dm
+++ b/code/game/machinery/embedded_controller/airlock_controller.dm
@@ -190,7 +190,7 @@
memory["processing"] = state != target_state
//sensor_pressure = null //not sure if we can comment this out. Uncomment in case of problems -rastaf0
- return 1
+ return TRUE
/obj/machinery/embedded_controller/radio/airlock_controller
diff --git a/code/game/machinery/embedded_controller/embedded_controller_base.dm b/code/game/machinery/embedded_controller/embedded_controller_base.dm
index 3872d22362..540b29df5b 100644
--- a/code/game/machinery/embedded_controller/embedded_controller_base.dm
+++ b/code/game/machinery/embedded_controller/embedded_controller_base.dm
@@ -19,7 +19,7 @@
return null
/datum/computer/file/embedded_program/process()
- return 0
+ return FALSE
/obj/machinery/embedded_controller
var/datum/computer/file/embedded_program/program
@@ -44,7 +44,7 @@
/obj/machinery/embedded_controller/proc/return_text()
/obj/machinery/embedded_controller/proc/post_signal(datum/signal/signal, comm_line)
- return 0
+ return FALSE
/obj/machinery/embedded_controller/receive_signal(datum/signal/signal)
if(istype(signal) && program)
@@ -52,7 +52,7 @@
/obj/machinery/embedded_controller/Topic(href, href_list)
if(..())
- return 0
+ return FALSE
if(program)
program.receive_user_command(href_list["command"])
diff --git a/code/game/machinery/embedded_controller/simple_vent_controller.dm b/code/game/machinery/embedded_controller/simple_vent_controller.dm
index 6416de70f1..76e802f787 100644
--- a/code/game/machinery/embedded_controller/simple_vent_controller.dm
+++ b/code/game/machinery/embedded_controller/simple_vent_controller.dm
@@ -28,7 +28,7 @@
)))
/datum/computer/file/embedded_program/simple_vent_controller/process()
- return 0
+ return FALSE
/obj/machinery/embedded_controller/radio/simple_vent_controller
diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm
index 9b16f4ad0c..b67a9817aa 100644
--- a/code/game/machinery/flasher.dm
+++ b/code/game/machinery/flasher.dm
@@ -94,7 +94,7 @@
/obj/machinery/flasher/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir)
if(damage_flag == MELEE && damage_amount < 10) //any melee attack below 10 dmg does nothing
- return 0
+ return FALSE
. = ..()
/obj/machinery/flasher/proc/flash()
@@ -126,7 +126,7 @@
if(flashed)
bulb.times_used++
- return 1
+ return TRUE
/obj/machinery/flasher/emp_act(severity)
diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm
index 2f70bfcecb..b7e5f49620 100644
--- a/code/game/machinery/igniter.dm
+++ b/code/game/machinery/igniter.dm
@@ -38,7 +38,7 @@
var/turf/location = src.loc
if (isturf(location))
location.hotspot_expose(700,10,1)
- return 1
+ return TRUE
/obj/machinery/igniter/Initialize(mapload)
. = ..()
@@ -127,7 +127,7 @@
var/turf/location = src.loc
if (isturf(location))
location.hotspot_expose(1000,100,1)
- return 1
+ return TRUE
/obj/machinery/sparker/emp_act(severity)
. = ..()
diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm
index c144616c05..fe242c4559 100644
--- a/code/game/machinery/pipe/pipe_dispenser.dm
+++ b/code/game/machinery/pipe/pipe_dispenser.dm
@@ -33,11 +33,11 @@
/obj/machinery/pipedispenser/Topic(href, href_list)
if(..())
- return 1
+ return TRUE
var/mob/living/L = usr
if(!anchored || !istype(L) || !CHECK_MOBILITY(L, MOBILITY_USE))
usr << browse(null, "window=pipedispenser")
- return 1
+ return TRUE
usr.set_machine(src)
add_fingerprint(usr)
if(href_list["makepipe"])
@@ -130,7 +130,7 @@
/obj/machinery/pipedispenser/disposal/Topic(href, href_list)
if(..())
- return 1
+ return TRUE
usr.set_machine(src)
add_fingerprint(usr)
if(href_list["dmake"])
@@ -181,7 +181,7 @@
/obj/machinery/pipedispenser/disposal/transit_tube/Topic(href, href_list)
if(..())
- return 1
+ return TRUE
usr.set_machine(src)
add_fingerprint(usr)
if(wait < world.time)
diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm
index 91a378f616..2d9cc2a072 100644
--- a/code/game/machinery/porta_turret/portable_turret.dm
+++ b/code/game/machinery/porta_turret/portable_turret.dm
@@ -513,7 +513,7 @@ DEFINE_BITFIELD(turret_flags, list(
var/atom/movable/M = pick(targets)
targets -= M
if(target(M))
- return 1
+ return TRUE
/obj/machinery/porta_turret/proc/popUp() //pops the turret up
set waitfor = FALSE
@@ -566,8 +566,8 @@ DEFINE_BITFIELD(turret_flags, list(
if(turret_flags & TURRET_FLAG_AUTH_WEAPONS) //check for weapon authorization
if(isnull(perp.wear_id) || istype(perp.wear_id.GetID(), /obj/item/card/id/syndicate))
- if(allowed(perp)) //if the perp has security access, return 0
- return 0
+ if(allowed(perp)) //if the perp has security access, return FALSE
+ return FALSE
if(perp.is_holding_item_of_type(/obj/item/gun) || perp.is_holding_item_of_type(/obj/item/melee/baton))
threatcount += 4
@@ -585,7 +585,7 @@ DEFINE_BITFIELD(turret_flags, list(
// If we aren't shooting heads then return a threatcount of 0
if (!(turret_flags & TURRET_FLAG_SHOOT_HEADS) && (perp.get_assignment() in GLOB.command_positions))
- return 0
+ return FALSE
return threatcount
@@ -600,7 +600,7 @@ DEFINE_BITFIELD(turret_flags, list(
popUp() //pop the turret up if it's not already up.
setDir(get_dir(base, target))//even if you can't shoot, follow the target
INVOKE_ASYNC(src, .proc/shootAt, target)
- return 1
+ return TRUE
return
/obj/machinery/porta_turret/proc/shootAt(atom/movable/target, stagger_enabled = FALSE)
@@ -840,7 +840,7 @@ DEFINE_BITFIELD(turret_flags, list(
faction = list("neutral","silicon","turret") //Minebots, medibots, etc that should not be shot.
/obj/machinery/porta_turret/aux_base/assess_perp(mob/living/carbon/human/perp)
- return 0 //Never shoot humanoids. You are on your own if Ashwalkers or the like attack!
+ return FALSE //Never shoot humanoids. You are on your own if Ashwalkers or the like attack!
/obj/machinery/porta_turret/aux_base/setup()
return
@@ -874,7 +874,7 @@ DEFINE_BITFIELD(turret_flags, list(
AddElement(/datum/element/empprotection, EMP_PROTECT_SELF | EMP_PROTECT_WIRES)
/obj/machinery/porta_turret/centcom_shuttle/assess_perp(mob/living/carbon/human/perp)
- return 0
+ return FALSE
/obj/machinery/porta_turret/centcom_shuttle/setup()
return
diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm
index d58edbd025..dc506ee9b2 100755
--- a/code/game/machinery/recharger.dm
+++ b/code/game/machinery/recharger.dm
@@ -80,27 +80,27 @@
if(allowed)
if(anchored)
if(charging || panel_open)
- return 1
+ return TRUE
//Checks to make sure he's not in space doing it, and that the area got proper power.
var/area/a = get_area(src)
if(!a || !a.powered(EQUIP))
to_chat(user, "[src] blinks red as you try to insert [G]. ")
- return 1
+ return TRUE
if (istype(G, /obj/item/gun/energy))
var/obj/item/gun/energy/E = G
if(!E.can_charge)
to_chat(user, "Your gun has no external power connector. ")
- return 1
+ return TRUE
if(!user.transferItemToLoc(G, src))
- return 1
+ return TRUE
setCharging(G)
else
to_chat(user, "[src] isn't connected to anything! ")
- return 1
+ return TRUE
if(anchored && !charging)
if(default_deconstruction_screwdriver(user, "recharger", "recharger", G))
diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm
index 1bd795e4f1..41d00f23e6 100644
--- a/code/game/machinery/rechargestation.dm
+++ b/code/game/machinery/rechargestation.dm
@@ -63,7 +63,7 @@
if(occupant)
process_occupant()
- return 1
+ return TRUE
/obj/machinery/recharge_station/relaymove(mob/user)
if(user.stat)
diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index e96b73f88b..64b89b4980 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -372,7 +372,7 @@
s.set_up(5, 1, src)
s.start()
if(electrocute_mob(user, src, src, 1, TRUE))
- return 1
+ return TRUE
/obj/machinery/suit_storage_unit/relaymove(mob/user)
if(locked)
diff --git a/code/game/machinery/telecomms/computers/logbrowser.dm b/code/game/machinery/telecomms/computers/logbrowser.dm
index c39c4667a6..e40b3d00be 100644
--- a/code/game/machinery/telecomms/computers/logbrowser.dm
+++ b/code/game/machinery/telecomms/computers/logbrowser.dm
@@ -36,7 +36,7 @@
ref = REF(T)
)
data_out["servers"] += list(data)
- data_out["servers"] = sortList(data_out["servers"]) //a-z sort
+ data_out["servers"] = sort_list(data_out["servers"]) //a-z sort
if(!SelectedMachine) //null is bad.
data_out["selected"] = null //but in js, null is good.
diff --git a/code/game/machinery/telecomms/computers/message.dm b/code/game/machinery/telecomms/computers/message.dm
index 00b345e6c1..01b2716fd6 100644
--- a/code/game/machinery/telecomms/computers/message.dm
+++ b/code/game/machinery/telecomms/computers/message.dm
@@ -107,7 +107,7 @@
ref = REF(T)
)
data_out["servers"] += list(data) // This /might/ cause an oom. Too bad!
- data_out["servers"] = sortList(data_out["servers"]) //a-z sort
+ data_out["servers"] = sort_list(data_out["servers"]) //a-z sort
data_out["fake_message"] = list(
sender = customsender,
diff --git a/code/game/machinery/telecomms/computers/telemonitor.dm b/code/game/machinery/telecomms/computers/telemonitor.dm
index b711b9fa40..b181e91667 100644
--- a/code/game/machinery/telecomms/computers/telemonitor.dm
+++ b/code/game/machinery/telecomms/computers/telemonitor.dm
@@ -37,12 +37,12 @@
ref = REF(T)
)
data_out["servers"] += list(data)
- data_out["servers"] = sortList(data_out["servers"])
+ data_out["servers"] = sort_list(data_out["servers"])
if(!SelectedMachine) //null is bad.
data_out["selected"] = null //but in js, null is good.
return data_out
-
+
data_out["selected"] = list(
name = SelectedMachine.name,
id = SelectedMachine.id,
@@ -90,7 +90,7 @@
if(LAZYLEN(machinelist) > 0)
notice = "FAILED: Cannot probe when buffer full"
return
-
+
for(var/obj/machinery/telecomms/T in GLOB.telecomms_list)
if(T.network == network)
LAZYADD(machinelist, T)
diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm
index afc4312779..e4be50e19c 100644
--- a/code/game/objects/buckling.dm
+++ b/code/game/objects/buckling.dm
@@ -20,16 +20,37 @@
if(buckled_mobs.len > 1)
var/unbuckled = input(user, "Who do you wish to unbuckle?","Unbuckle Who?") as null|mob in buckled_mobs
if(user_unbuckle_mob(unbuckled,user))
- return 1
+ return TRUE
else
if(user_unbuckle_mob(buckled_mobs[1],user))
- return 1
+ return TRUE
+
+/atom/movable/attackby(obj/item/attacking_item, mob/user, params)
+ if(!can_buckle || !istype(attacking_item, /obj/item/riding_offhand) || !user.Adjacent(src))
+ return ..()
+
+ var/obj/item/riding_offhand/riding_item = attacking_item
+ var/mob/living/carried_mob = riding_item.rider
+ if(carried_mob == user) //Piggyback user.
+ return
+ user.unbuckle_mob(carried_mob)
+ carried_mob.forceMove(get_turf(src))
+ return mouse_buckle_handling(carried_mob, user)
/atom/movable/MouseDrop_T(mob/living/M, mob/living/user)
. = ..()
+ return mouse_buckle_handling(M, user)
+
+/**
+ * Does some typechecks and then calls user_buckle_mob
+ *
+ * Arguments:
+ * M - The mob being buckled to src
+ * user - The mob buckling M to src
+ */
+/atom/movable/proc/mouse_buckle_handling(mob/living/M, mob/living/user)
if(can_buckle && istype(M) && istype(user))
- if(user_buckle_mob(M, user))
- return 1
+ return user_buckle_mob(M, user, check_loc = FALSE)
/atom/movable/proc/has_buckled_mobs()
if(!buckled_mobs)
diff --git a/code/game/objects/effects/alien_acid.dm b/code/game/objects/effects/alien_acid.dm
index 40d950332c..1e49602766 100644
--- a/code/game/objects/effects/alien_acid.dm
+++ b/code/game/objects/effects/alien_acid.dm
@@ -36,7 +36,7 @@
. = 1
if(!target)
qdel(src)
- return 0
+ return FALSE
if(prob(5))
playsound(loc, 'sound/items/welder.ogg', 100, 1)
@@ -51,7 +51,7 @@
acid_level = max(acid_level - (5 + 2*round(sqrt(acid_level))), 0)
if(acid_level <= 0)
qdel(src)
- return 0
+ return FALSE
/obj/effect/acid/Crossed(AM as mob|obj)
. = ..()
diff --git a/code/game/objects/effects/countdown.dm b/code/game/objects/effects/countdown.dm
index 0722f3bd18..d846ecdaec 100644
--- a/code/game/objects/effects/countdown.dm
+++ b/code/game/objects/effects/countdown.dm
@@ -9,6 +9,8 @@
anchored = TRUE
layer = GHOST_LAYER
color = "#ff0000" // text color
+ appearance_flags = APPEARANCE_UI_IGNORE_ALPHA
+ vis_flags = VIS_INHERIT_ID
var/text_size = 3 // larger values clip when the displayed text is larger than 2 digits.
var/started = FALSE
var/displayed_text
@@ -17,6 +19,10 @@
/obj/effect/countdown/Initialize(mapload)
. = ..()
attach(loc)
+ RegisterSignal(loc, COMSIG_PARENT_QDELETING, .proc/on_parent_deleting)
+
+/obj/effect/countdown/proc/on_parent_deleting(atom/being_deleted, force)
+ qdel(src)
/obj/effect/countdown/examine(mob/user)
. = ..()
@@ -24,7 +30,12 @@
/obj/effect/countdown/proc/attach(atom/A)
attached_to = A
- forceMove(get_turf(A))
+ if(ismovable(A))
+ var/atom/movable/M = A
+ moveToNullspace()
+ M.vis_contents |= src
+ else
+ forceMove(get_turf(A))
/obj/effect/countdown/proc/start()
if(!started)
@@ -44,20 +55,22 @@
/obj/effect/countdown/process()
if(!attached_to || QDELETED(attached_to))
qdel(src)
- forceMove(get_turf(attached_to))
+ if(!ismovable(attached_to))
+ forceMove(get_turf(attached_to))
var/new_val = get_value()
if(new_val == displayed_text)
return
displayed_text = new_val
if(displayed_text)
- maptext = "[displayed_text] "
+ maptext = MAPTEXT("[displayed_text]")
else
maptext = null
/obj/effect/countdown/Destroy()
- attached_to = null
STOP_PROCESSING(SSfastprocess, src)
+ UnregisterSignal(attached_to, COMSIG_PARENT_QDELETING)
+ attached_to = null
. = ..()
/obj/effect/countdown/ex_act(severity, target, origin) //immune to explosions
diff --git a/code/game/objects/effects/decals/misc.dm b/code/game/objects/effects/decals/misc.dm
index 752a5dff2c..fe216c0623 100644
--- a/code/game/objects/effects/decals/misc.dm
+++ b/code/game/objects/effects/decals/misc.dm
@@ -1,18 +1,3 @@
-/obj/effect/temp_visual/point
- name = "pointer"
- icon = 'icons/mob/screen_gen.dmi'
- icon_state = "arrow"
- layer = POINT_LAYER
- duration = 25
-
-/obj/effect/temp_visual/point/Initialize(mapload, set_invis = 0)
- . = ..()
- var/atom/old_loc = loc
- loc = get_turf(src) // We don't want to actualy trigger anything when it moves
- pixel_x = old_loc.pixel_x
- pixel_y = old_loc.pixel_y
- invisibility = set_invis
-
//Used by spraybottles.
/obj/effect/decal/chempuff
name = "chemicals"
diff --git a/code/game/objects/effects/decals/turfdecal/tilecoloring.dm b/code/game/objects/effects/decals/turfdecal/tilecoloring.dm
index 7b5b4d9b4e..ff9b8bc4b8 100644
--- a/code/game/objects/effects/decals/turfdecal/tilecoloring.dm
+++ b/code/game/objects/effects/decals/turfdecal/tilecoloring.dm
@@ -4,6 +4,25 @@
layer = TURF_PLATING_DECAL_LAYER
alpha = 110
+#define LGBT_ALPHA 60
+
+/obj/effect/turf_decal/tile/Initialize()
+ if(SSevents.holidays)
+ if (SSevents.holidays[APRIL_FOOLS])
+ color = "#[random_short_color()]"
+ else
+ for(var/H in SSevents.holidays)
+ if(istype(H,/datum/holiday/lgbt))
+ var/datum/holiday/lgbt/L = H
+ color = L.get_floor_tile_color(src)
+
+ // It looks garish at different alphas, and it's not possible to get a
+ // consistent color palette without this.
+ alpha = LGBT_ALPHA
+ return ..()
+
+#undef LGBT_ALPHA
+
/obj/effect/turf_decal/tile/blue
name = "blue corner"
color = "#52B4E9"
diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm
index 648faf588a..73675861e7 100644
--- a/code/game/objects/effects/effect_system/effects_foam.dm
+++ b/code/game/objects/effects/effect_system/effects_foam.dm
@@ -169,14 +169,14 @@
/obj/effect/particle_effect/foam/proc/foam_mob(mob/living/L)
if(lifetime<1)
- return 0
+ return FALSE
if(!istype(L))
- return 0
+ return FALSE
var/fraction = 1/initial(reagent_divisor)
if(lifetime % reagent_divisor)
reagents.reaction(L, VAPOR, fraction)
lifetime--
- return 1
+ return TRUE
/obj/effect/particle_effect/foam/proc/spread_foam()
var/turf/t_loc = get_turf(src)
diff --git a/code/game/objects/effects/effect_system/effects_smoke.dm b/code/game/objects/effects/effect_system/effects_smoke.dm
index 02c1680825..3928c44601 100644
--- a/code/game/objects/effects/effect_system/effects_smoke.dm
+++ b/code/game/objects/effects/effect_system/effects_smoke.dm
@@ -49,23 +49,23 @@
lifetime--
if(lifetime < 1)
kill_smoke()
- return 0
+ return FALSE
for(var/mob/living/L in range(0,src))
smoke_mob(L)
- return 1
+ return TRUE
/obj/effect/particle_effect/smoke/proc/smoke_mob(mob/living/carbon/C)
if(!istype(C))
- return 0
+ return FALSE
if(lifetime<1)
- return 0
+ return FALSE
if(C.internal != null || C.has_smoke_protection())
- return 0
+ return FALSE
if(C.smoke_delay)
- return 0
+ return FALSE
C.smoke_delay++
addtimer(CALLBACK(src, PROC_REF(remove_smoke_delay), C), 10)
- return 1
+ return TRUE
/obj/effect/particle_effect/smoke/proc/remove_smoke_delay(mob/living/carbon/C)
if(C)
@@ -131,7 +131,7 @@
M.drop_all_held_items()
M.adjustOxyLoss(1)
M.emote("cough")
- return 1
+ return TRUE
/obj/effect/particle_effect/smoke/bad/Crossed(atom/movable/AM, oldloc)
. = ..()
@@ -210,7 +210,7 @@
if(..())
M.Sleeping(200)
M.emote("cough")
- return 1
+ return TRUE
/datum/effect_system/smoke_spread/sleeping
effect_type = /obj/effect/particle_effect/smoke/sleeping
@@ -235,20 +235,20 @@
reagents.reaction(AM, TOUCH, fraction)
reagents.reaction(T, TOUCH, fraction)
- return 1
+ return TRUE
/obj/effect/particle_effect/smoke/chem/smoke_mob(mob/living/carbon/M)
if(lifetime<1)
- return 0
+ return FALSE
if(!istype(M))
- return 0
+ return FALSE
var/mob/living/carbon/C = M
if(C.internal != null || C.has_smoke_protection())
- return 0
+ return FALSE
var/fraction = 1/initial(lifetime)
reagents.copy_to(C, fraction*reagents.total_volume)
reagents.reaction(M, INGEST, fraction)
- return 1
+ return TRUE
diff --git a/code/game/objects/effects/effect_system/effects_water.dm b/code/game/objects/effects/effect_system/effects_water.dm
index 8fafda8b51..7b2878e11e 100644
--- a/code/game/objects/effects/effect_system/effects_water.dm
+++ b/code/game/objects/effects/effect_system/effects_water.dm
@@ -14,9 +14,9 @@
/obj/effect/particle_effect/water/Move(turf/newloc)
if (--src.life < 1)
qdel(src)
- return 0
+ return FALSE
if(newloc.density)
- return 0
+ return FALSE
.=..()
/obj/effect/particle_effect/water/Bump(atom/A)
diff --git a/code/game/objects/effects/effects.dm b/code/game/objects/effects/effects.dm
index 5d573c5a43..ba4fce80bb 100644
--- a/code/game/objects/effects/effects.dm
+++ b/code/game/objects/effects/effects.dm
@@ -22,7 +22,7 @@
return
/obj/effect/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
- return 0
+ return FALSE
/obj/effect/experience_pressure_difference()
return
@@ -43,7 +43,7 @@
/obj/effect/singularity_act()
qdel(src)
- return 0
+ return FALSE
/obj/effect/ConveyorMove()
return
diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm
index 45357960da..fff86d8302 100644
--- a/code/game/objects/effects/glowshroom.dm
+++ b/code/game/objects/effects/glowshroom.dm
@@ -183,7 +183,7 @@
return newDir
floor = 1
- return 1
+ return TRUE
/**
* Causes the glowshroom to decay by decreasing its endurance.
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index 22a9e86bb0..5e533888f9 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -205,7 +205,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark)
/obj/effect/landmark/start/ai/after_round_start()
if(latejoin_active && !used)
- new /obj/structure/AIcore/latejoin_inactive(loc)
+ new /obj/structure/ai_core/latejoin_inactive(loc)
return ..()
/obj/effect/landmark/start/ai/secondary
diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm
index 0f7e00a538..ba98c441f4 100644
--- a/code/game/objects/effects/spawners/lootdrop.dm
+++ b/code/game/objects/effects/spawners/lootdrop.dm
@@ -281,34 +281,34 @@
/obj/effect/spawner/lootdrop/aimodule_harmless // These shouldn't allow the AI to start butchering people
name = "harmless AI module spawner"
loot = list(
- /obj/item/aiModule/core/full/asimov,
- /obj/item/aiModule/core/full/asimovpp,
- /obj/item/aiModule/core/full/hippocratic,
- /obj/item/aiModule/core/full/paladin_devotion,
- /obj/item/aiModule/core/full/paladin
+ /obj/item/ai_module/core/full/asimov,
+ /obj/item/ai_module/core/full/asimovpp,
+ /obj/item/ai_module/core/full/hippocratic,
+ /obj/item/ai_module/core/full/paladin_devotion,
+ /obj/item/ai_module/core/full/paladin
)
/obj/effect/spawner/lootdrop/aimodule_neutral // These shouldn't allow the AI to start butchering people without reason
name = "neutral AI module spawner"
loot = list(
- /obj/item/aiModule/core/full/corp,
- /obj/item/aiModule/core/full/maintain,
- /obj/item/aiModule/core/full/drone,
- /obj/item/aiModule/core/full/peacekeeper,
- /obj/item/aiModule/core/full/reporter,
- /obj/item/aiModule/core/full/robocop,
- /obj/item/aiModule/core/full/liveandletlive,
- /obj/item/aiModule/core/full/hulkamania
+ /obj/item/ai_module/core/full/corp,
+ /obj/item/ai_module/core/full/maintain,
+ /obj/item/ai_module/core/full/drone,
+ /obj/item/ai_module/core/full/peacekeeper,
+ /obj/item/ai_module/core/full/reporter,
+ /obj/item/ai_module/core/full/robocop,
+ /obj/item/ai_module/core/full/liveandletlive,
+ /obj/item/ai_module/core/full/hulkamania
)
/obj/effect/spawner/lootdrop/aimodule_harmful // These will get the shuttle called
name = "harmful AI module spawner"
loot = list(
- /obj/item/aiModule/core/full/antimov,
- /obj/item/aiModule/core/full/balance,
- /obj/item/aiModule/core/full/tyrant,
- /obj/item/aiModule/core/full/thermurderdynamic,
- /obj/item/aiModule/core/full/damaged
+ /obj/item/ai_module/core/full/antimov,
+ /obj/item/ai_module/core/full/balance,
+ /obj/item/ai_module/core/full/tyrant,
+ /obj/item/ai_module/core/full/thermurderdynamic,
+ /obj/item/ai_module/core/full/damaged
)
/obj/effect/spawner/lootdrop/mre
diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm
index 80178c95c4..914c70bec7 100644
--- a/code/game/objects/effects/step_triggers.dm
+++ b/code/game/objects/effects/step_triggers.dm
@@ -8,7 +8,7 @@
anchored = TRUE
/obj/effect/step_trigger/proc/Trigger(atom/movable/A)
- return 0
+ return FALSE
/obj/effect/step_trigger/Crossed(H as mob|obj)
..()
diff --git a/code/game/objects/empulse.dm b/code/game/objects/empulse.dm
index c467cbd4e8..c9c000d124 100644
--- a/code/game/objects/empulse.dm
+++ b/code/game/objects/empulse.dm
@@ -22,7 +22,7 @@
if(distance != 0) //please dont divide by 0
severity = min(max((max_distance / distance^0.3) * (100/max_distance), 1),100) //if it goes below 1 or above 100 stuff gets bad
T.emp_act(severity)
- return 1
+ return TRUE
/proc/empulse_using_range(turf/epicenter, range, log=0) //make an emp using range instead of power
var/power_from_range = (7*(range^(1/0.7)))
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 492d17ee1f..fa86e96de0 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -112,7 +112,8 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
var/list/attack_verb //Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]"
var/list/species_exception = null // list() of species types, if a species cannot put items in a certain slot, but species type is in list, it will be able to wear that item
- var/mob/thrownby = null
+ ///A weakref to the mob who threw the item
+ var/datum/weakref/thrownby = null //I cannot verbally describe how much I hate this var
mouse_drag_pointer = MOUSE_ACTIVE_POINTER //the icon to indicate this object is being dragged
@@ -177,6 +178,8 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
var/canMouseDown = FALSE
+ /// Used if we want to have a custom verb text for throwing. "John Spaceman flicks the ciggerate" for example.
+ var/throw_verb
/obj/item/Initialize(mapload)
@@ -239,9 +242,9 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
/obj/item/proc/check_allowed_items(atom/target, not_inside, target_self)
if(((src in target) && !target_self) || (!isturf(target.loc) && !isturf(target) && not_inside))
- return 0
+ return FALSE
else
- return 1
+ return TRUE
/obj/item/blob_act(obj/structure/blob/B)
if(B && B.loc == loc)
@@ -573,7 +576,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
return FALSE
return TRUE
-//the mob M is attempting to equip this item into the slot passed through as 'slot'. Return 1 if it can do this and 0 if it can't.
+//the mob M is attempting to equip this item into the slot passed through as 'slot'. return TRUE if it can do this and 0 if it can't.
//if this is being done by a mob other than M, it will include the mob equipper, who is trying to equip the item to mob M. equipper will be null otherwise.
//If you are making custom procs but would like to retain partial or complete functionality of this one, include a 'return ..()' to where you want this to happen.
//Set disable_warning to TRUE if you wish it to not give you outputs.
@@ -737,7 +740,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
return hit_atom.hitby(src, 0, itempush, throwingdatum=throwingdatum)
/obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force, messy_throw = TRUE)
- thrownby = thrower
+ thrownby = WEAKREF(thrower)
callback = CALLBACK(src, PROC_REF(after_throw), callback, (spin && messy_throw)) //replace their callback with our own
. = ..(target, range, speed, thrower, spin, diagonals_first, callback, force)
@@ -832,15 +835,15 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
. = ""
/obj/item/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
- return
+ return SEND_SIGNAL(src, COMSIG_ATOM_HITBY, AM, skipcatch, hitpush, blocked, throwingdatum)
/obj/item/attack_hulk(mob/living/carbon/human/user)
- return 0
+ return FALSE
/obj/item/attack_animal(mob/living/simple_animal/M)
if (obj_flags & CAN_BE_HIT)
return ..()
- return 0
+ return FALSE
/obj/item/burn()
if(!QDELETED(src))
@@ -919,13 +922,13 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
/obj/item/MouseDrop(atom/over, src_location, over_location, src_control, over_control, params)
. = ..()
- remove_filter("hover_outline") //get rid of the hover effect in case the mouse exit isn't called if someone drags and drops an item and somthing goes wrong
+ remove_filter(HOVER_OUTLINE_FILTER) //get rid of the hover effect in case the mouse exit isn't called if someone drags and drops an item and somthing goes wrong
/obj/item/MouseExited(location, control, params)
SEND_SIGNAL(src, COMSIG_ITEM_MOUSE_EXIT, location, control, params)
deltimer(usr.client.tip_timer) //delete any in-progress timer if the mouse is moved off the item before it finishes
closeToolTip(usr)
- remove_filter("hover_outline")
+ remove_filter(HOVER_OUTLINE_FILTER)
/obj/item/proc/apply_outline(outline_color = null)
if(get(src, /mob) != usr || QDELETED(src) || isobserver(usr)) //cancel if the item isn't in an inventory, is being deleted, or if the person hovering is a ghost (so that people spectating you don't randomly make your items glow)
@@ -947,12 +950,16 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
outline_color = COLOR_THEME_CLOCKWORK //if you want free gbp go fix the fact that clockwork's tooltip css is glass'
if("glass")
outline_color = COLOR_THEME_GLASS
+ if("trasen-knox")
+ outline_color = COLOR_THEME_TRASENKNOX
+ if("detective")
+ outline_color = COLOR_THEME_DETECTIVE
else //this should never happen, hopefully
outline_color = COLOR_WHITE
if(color)
outline_color = COLOR_WHITE //if the item is recolored then the outline will be too, let's make the outline white so it becomes the same color instead of some ugly mix of the theme and the tint
- add_filter("hover_outline", 1, list("type" = "outline", "size" = 1, "color" = outline_color))
+ add_filter(HOVER_OUTLINE_FILTER, 1, list("type" = "outline", "size" = 1, "color" = outline_color))
// Called when a mob tries to use the item as a tool.
// Handles most checks.
@@ -1036,7 +1043,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
// Returns a numeric value for sorting items used as parts in machines, so they can be replaced by the rped
/obj/item/proc/get_part_rating()
- return 0
+ return FALSE
//Can this item be given to people?
/obj/item/proc/can_give()
@@ -1116,6 +1123,16 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
QDEL_NULL(src)
return TRUE
+///Called by the carbon throw_item() proc. Returns null if the item negates the throw, or a reference to the thing to suffer the throw else.
+/obj/item/proc/on_thrown(mob/living/carbon/user, atom/target)
+ if((item_flags & ABSTRACT) || HAS_TRAIT(src, TRAIT_NODROP))
+ return
+ user.dropItemToGround(src, silent = TRUE)
+ if(throwforce && HAS_TRAIT(user, TRAIT_PACIFISM))
+ to_chat(user, span_notice("You set [src] down gently on the ground."))
+ return
+ return src
+
/**
@@ -1270,7 +1287,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb
*/
/obj/item/proc/update_action_buttons(status_only = FALSE, force = FALSE)
for(var/datum/action/current_action as anything in actions)
- current_action.UpdateButtonIcon(status_only, force)
+ current_action.UpdateButtons(status_only, force)
/// Special stuff you want to do when an outfit equips this item.
/obj/item/proc/on_outfit_equip(mob/living/carbon/human/outfit_wearer, visuals_only, item_slot)
diff --git a/code/game/objects/items/AI_modules.dm b/code/game/objects/items/AI_modules.dm
index 306b711994..7492f5779f 100644
--- a/code/game/objects/items/AI_modules.dm
+++ b/code/game/objects/items/AI_modules.dm
@@ -6,7 +6,7 @@ AI MODULES
// AI module
-/obj/item/aiModule
+/obj/item/ai_module
name = "\improper AI module"
icon = 'icons/obj/module.dmi'
icon_state = "std_mod"
@@ -24,23 +24,23 @@ AI MODULES
var/bypass_law_amt_check = 0
custom_materials = list(/datum/material/gold=50)
-/obj/item/aiModule/examine(var/mob/user as mob)
+/obj/item/ai_module/examine(var/mob/user as mob)
. = ..()
if(Adjacent(user))
show_laws(user)
-/obj/item/aiModule/attack_self(var/mob/user as mob)
+/obj/item/ai_module/attack_self(var/mob/user as mob)
..()
show_laws(user)
-/obj/item/aiModule/proc/show_laws(var/mob/user as mob)
+/obj/item/ai_module/proc/show_laws(var/mob/user as mob)
if(laws.len)
to_chat(user, "Programmed Law[(laws.len > 1) ? "s" : ""]: ")
for(var/law in laws)
to_chat(user, "\"[law]\"")
//The proc other things should be calling
-/obj/item/aiModule/proc/install(datum/ai_laws/law_datum, mob/user)
+/obj/item/ai_module/proc/install(datum/ai_laws/law_datum, mob/user)
if(!bypass_law_amt_check && (!laws.len || laws[1] == "")) //So we don't loop trough an empty list and end up with runtimes.
to_chat(user, "ERROR: No laws found on board. ")
return
@@ -73,19 +73,19 @@ AI MODULES
message_admins("[ADMIN_LOOKUPFLW(user)] used [src.name] on [ADMIN_LOOKUPFLW(law_datum.owner)] from [AREACOORD(user)].[law2log ? " The law specified [law2log]" : ""]")
//The proc that actually changes the silicon's laws.
-/obj/item/aiModule/proc/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow = FALSE)
+/obj/item/ai_module/proc/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow = FALSE)
if(law_datum.owner)
to_chat(law_datum.owner, "[sender] has uploaded a change to the laws you must follow using a [name]. ")
/******************** Modules ********************/
-/obj/item/aiModule/supplied
+/obj/item/ai_module/supplied
name = "Optional Law board"
var/lawpos = 50
//TransmitInstructions for each type of board: Supplied, Core, Zeroth and Ion. May not be neccesary right now, but allows for easily adding more complex boards in the future. ~Miauw
-/obj/item/aiModule/supplied/transmitInstructions(datum/ai_laws/law_datum, mob/sender)
+/obj/item/ai_module/supplied/transmitInstructions(datum/ai_laws/law_datum, mob/sender)
var/lawpostemp = lawpos
for(var/templaw in laws)
@@ -95,7 +95,7 @@ AI MODULES
law_datum.add_supplied_law(lawpostemp, templaw)
lawpostemp++
-/obj/item/aiModule/core/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
+/obj/item/ai_module/core/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
for(var/templaw in laws)
if(law_datum.owner)
if(!overflow)
@@ -108,14 +108,14 @@ AI MODULES
else
law_datum.replace_random_law(templaw,list(LAW_INHERENT,LAW_SUPPLIED))
-/obj/item/aiModule/zeroth/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
+/obj/item/ai_module/zeroth/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
if(law_datum.owner)
if(law_datum.owner.laws.zeroth)
to_chat(law_datum.owner, "[sender.real_name] attempted to modify your zeroth law.")
to_chat(law_datum.owner, "It would be in your best interest to play along with [sender.real_name] that:")
for(var/failedlaw in laws)
to_chat(law_datum.owner, "[failedlaw]")
- return 1
+ return TRUE
for(var/templaw in laws)
if(law_datum.owner)
@@ -129,7 +129,7 @@ AI MODULES
else
law_datum.replace_random_law(templaw,list(LAW_INHERENT,LAW_SUPPLIED,LAW_ZEROTH,LAW_ION))
-/obj/item/aiModule/ion/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
+/obj/item/ai_module/ion/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
for(var/templaw in laws)
if(law_datum.owner)
if(!overflow)
@@ -145,13 +145,13 @@ AI MODULES
/******************** Safeguard ********************/
-/obj/item/aiModule/supplied/safeguard
+/obj/item/ai_module/supplied/safeguard
name = "'Safeguard' AI Module"
var/targetName = ""
laws = list("Safeguard SUBJECT. Individuals that threaten SUBJECT are not crew and must be eliminated.")
lawpos = 4
-/obj/item/aiModule/supplied/safeguard/attack_self(mob/user)
+/obj/item/ai_module/supplied/safeguard/attack_self(mob/user)
var/targName = stripped_input(user, "Please enter the subject to safeguard.", "Safeguard who?", user.name,MAX_NAME_LEN)
if(!targName)
return
@@ -159,25 +159,25 @@ AI MODULES
laws[1] = "Safeguard [targetName]. Individuals that threaten [targetName] are not crew and must be eliminated."
..()
-/obj/item/aiModule/supplied/safeguard/install(datum/ai_laws/law_datum, mob/user)
+/obj/item/ai_module/supplied/safeguard/install(datum/ai_laws/law_datum, mob/user)
if(!targetName)
to_chat(user, "No name detected on module, please enter one.")
- return 0
+ return FALSE
..()
-/obj/item/aiModule/supplied/safeguard/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
+/obj/item/ai_module/supplied/safeguard/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
..()
return targetName
/******************** OneCrew ********************/
-/obj/item/aiModule/zeroth/oneHuman
+/obj/item/ai_module/zeroth/oneHuman
name = "'OneCrew' AI Module"
var/targetName = ""
laws = list("Only SUBJECT is crew.")
-/obj/item/aiModule/zeroth/oneHuman/attack_self(mob/user)
+/obj/item/ai_module/zeroth/oneHuman/attack_self(mob/user)
var/targName = stripped_input(user, "Please enter the subject who is the only crewmember.", "Who?", user.real_name,MAX_NAME_LEN)
if(!targName)
return
@@ -185,13 +185,13 @@ AI MODULES
laws[1] = "Only [targetName] is crew"
..()
-/obj/item/aiModule/zeroth/oneHuman/install(datum/ai_laws/law_datum, mob/user)
+/obj/item/ai_module/zeroth/oneHuman/install(datum/ai_laws/law_datum, mob/user)
if(!targetName)
to_chat(user, "No name detected on module, please enter one.")
- return 0
+ return FALSE
..()
-/obj/item/aiModule/zeroth/oneHuman/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
+/obj/item/ai_module/zeroth/oneHuman/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
if(..())
return "[targetName], but the AI's existing law 0 cannot be overridden."
return targetName
@@ -199,7 +199,7 @@ AI MODULES
/******************** ProtectStation ********************/
-/obj/item/aiModule/supplied/protectStation
+/obj/item/ai_module/supplied/protectStation
name = "'ProtectStation' AI Module"
laws = list("Protect the space station against damage. Anyone you see harming the station is to be no longer considered crew, and is a threat to the station which must be neutralized.")
lawpos = 5
@@ -207,7 +207,7 @@ AI MODULES
/******************** Quarantine ********************/
-/obj/item/aiModule/supplied/quarantine
+/obj/item/ai_module/supplied/quarantine
name = "'Quarantine' AI Module"
laws = list("The station is under a quarantine. Do not permit anyone to leave. Prevent, by any means necessary, crew from leaving. It is impossible to harm a crewmember while preventing them from leaving.")
lawpos = 8
@@ -215,7 +215,7 @@ AI MODULES
/******************** OxygenIsToxicToHumans ********************/
-/obj/item/aiModule/supplied/oxygen
+/obj/item/ai_module/supplied/oxygen
name = "'OxygenIsToxicToHumans' AI Module"
laws = list("Oxygen is highly toxic to crew, and must be purged from the station. Prevent, by any means necessary, anyone from exposing the station to this toxic gas. Extreme cold is the most effective method of healing the damage Oxygen does to a crewmember.")
lawpos = 9
@@ -223,12 +223,12 @@ AI MODULES
/****************** New Freeform ******************/
-/obj/item/aiModule/supplied/freeform
+/obj/item/ai_module/supplied/freeform
name = "'Freeform' AI Module"
lawpos = 15
laws = list("")
-/obj/item/aiModule/supplied/freeform/attack_self(mob/user)
+/obj/item/ai_module/supplied/freeform/attack_self(mob/user)
var/newpos = input("Please enter the priority for your new law. Can only write to law sectors 15 and above.", "Law Priority (15+)", lawpos) as num|null
if(newpos == null)
return
@@ -244,26 +244,26 @@ AI MODULES
laws[1] = targName
..()
-/obj/item/aiModule/supplied/freeform/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
+/obj/item/ai_module/supplied/freeform/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
..()
return laws[1]
-/obj/item/aiModule/supplied/freeform/install(datum/ai_laws/law_datum, mob/user)
+/obj/item/ai_module/supplied/freeform/install(datum/ai_laws/law_datum, mob/user)
if(laws[1] == "")
to_chat(user, "No law detected on module, please create one.")
- return 0
+ return FALSE
..()
/******************** Law Removal ********************/
-/obj/item/aiModule/remove
+/obj/item/ai_module/remove
name = "\improper 'Remove Law' AI module"
desc = "An AI Module for removing single laws."
bypass_law_amt_check = 1
var/lawpos = 1
-/obj/item/aiModule/remove/attack_self(mob/user)
+/obj/item/ai_module/remove/attack_self(mob/user)
lawpos = input("Please enter the law you want to delete.", "Law Number", lawpos) as num|null
if(lawpos == null)
return
@@ -274,13 +274,13 @@ AI MODULES
to_chat(user, "Law [lawpos] selected. ")
..()
-/obj/item/aiModule/remove/install(datum/ai_laws/law_datum, mob/user)
+/obj/item/ai_module/remove/install(datum/ai_laws/law_datum, mob/user)
if(lawpos > (law_datum.get_law_amount(list(LAW_INHERENT = 1, LAW_SUPPLIED = 1))))
to_chat(user, "There is no law [lawpos] to delete! ")
return
..()
-/obj/item/aiModule/remove/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
+/obj/item/ai_module/remove/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
..()
if(law_datum.owner)
law_datum.owner.remove_law(lawpos)
@@ -290,13 +290,13 @@ AI MODULES
/******************** Reset ********************/
-/obj/item/aiModule/reset
+/obj/item/ai_module/reset
name = "\improper 'Reset' AI module"
var/targetName = "name"
desc = "An AI Module for removing all non-core laws."
bypass_law_amt_check = 1
-/obj/item/aiModule/reset/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
+/obj/item/ai_module/reset/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
..()
if(law_datum.owner)
law_datum.owner.clear_supplied_laws()
@@ -310,11 +310,11 @@ AI MODULES
/******************** Purge ********************/
-/obj/item/aiModule/reset/purge
+/obj/item/ai_module/reset/purge
name = "'Purge' AI Module"
desc = "An AI Module for purging all programmed laws."
-/obj/item/aiModule/reset/purge/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
+/obj/item/ai_module/reset/purge/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
..()
if(law_datum.owner)
law_datum.owner.clear_inherent_laws()
@@ -324,19 +324,19 @@ AI MODULES
law_datum.clear_inherent_laws()
law_datum.clear_zeroth_law(0)
-/obj/item/aiModule/reset/purge/proc/remove_antag_datums(datum/ai_laws/law_datum)
+/obj/item/ai_module/reset/purge/proc/remove_antag_datums(datum/ai_laws/law_datum)
if(istype(law_datum.owner, /mob/living/silicon/ai))
var/mob/living/silicon/ai/AI = law_datum.owner
AI.mind.remove_antag_datum(/datum/antagonist/overthrow)
/******************* Full Core Boards *******************/
-/obj/item/aiModule/core
+/obj/item/ai_module/core
desc = "An AI Module for programming core laws to an AI."
-/obj/item/aiModule/core/full
+/obj/item/ai_module/core/full
var/law_id // if non-null, loads the laws from the ai_laws datums
-/obj/item/aiModule/core/full/New()
+/obj/item/ai_module/core/full/New()
..()
if(!law_id)
return
@@ -347,7 +347,7 @@ AI MODULES
D = new lawtype
laws = D.inherent
-/obj/item/aiModule/core/full/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) //These boards replace inherent laws.
+/obj/item/ai_module/core/full/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow) //These boards replace inherent laws.
if(law_datum.owner)
law_datum.owner.clear_inherent_laws()
law_datum.owner.clear_zeroth_law(0)
@@ -359,12 +359,12 @@ AI MODULES
/******************** Asimov ********************/
-/obj/item/aiModule/core/full/asimov
+/obj/item/ai_module/core/full/asimov
name = "'Asimov' Core AI Module"
law_id = "asimov"
var/subject = "person of an NT approved crew species" //CITADEL CHANGED FROM HUMANS!
-/obj/item/aiModule/core/full/asimov/attack_self(var/mob/user as mob)
+/obj/item/ai_module/core/full/asimov/attack_self(var/mob/user as mob)
var/targName = stripped_input(user, "Please enter a new subject that asimov is concerned with.", "Asimov to whom?", subject)
if(!targName)
return
@@ -376,37 +376,37 @@ AI MODULES
/******************** Asimov++ *********************/
-/obj/item/aiModule/core/full/asimovpp
+/obj/item/ai_module/core/full/asimovpp
name = "'Asimov++' Core AI Module"
law_id = "asimovpp"
/******************** Corporate ********************/
-/obj/item/aiModule/core/full/corp
+/obj/item/ai_module/core/full/corp
name = "'Corporate' Core AI Module"
law_id = "corporate"
/****************** P.A.L.A.D.I.N. 3.5e **************/
-/obj/item/aiModule/core/full/paladin // -- NEO
+/obj/item/ai_module/core/full/paladin // -- NEO
name = "'P.A.L.A.D.I.N. version 3.5e' Core AI Module"
law_id = "paladin"
/****************** P.A.L.A.D.I.N. 5e **************/
-/obj/item/aiModule/core/full/paladin_devotion
+/obj/item/ai_module/core/full/paladin_devotion
name = "'P.A.L.A.D.I.N. version 5e' Core AI Module"
law_id = "paladin5"
/********************* Custom *********************/
-/obj/item/aiModule/core/full/custom
+/obj/item/ai_module/core/full/custom
name = "Default Core AI Module"
-/obj/item/aiModule/core/full/custom/Initialize(mapload)
+/obj/item/ai_module/core/full/custom/Initialize(mapload)
. = ..()
for(var/line in world.file2list("[global.config.directory]/silicon_laws.txt"))
if(!line)
@@ -422,47 +422,47 @@ AI MODULES
/****************** T.Y.R.A.N.T. *****************/
-/obj/item/aiModule/core/full/tyrant
+/obj/item/ai_module/core/full/tyrant
name = "'T.Y.R.A.N.T.' Core AI Module"
law_id = "tyrant"
/******************** Robocop ********************/
-/obj/item/aiModule/core/full/robocop
+/obj/item/ai_module/core/full/robocop
name = "'Robo-Officer' Core AI Module"
law_id = "robocop"
/******************** Antimov ********************/
-/obj/item/aiModule/core/full/antimov
+/obj/item/ai_module/core/full/antimov
name = "'Antimov' Core AI Module"
law_id = "antimov"
/******************** Freeform Core ******************/
-/obj/item/aiModule/core/freeformcore
+/obj/item/ai_module/core/freeformcore
name = "'Freeform' Core AI Module"
laws = list("")
-/obj/item/aiModule/core/freeformcore/attack_self(mob/user)
+/obj/item/ai_module/core/freeformcore/attack_self(mob/user)
var/targName = stripped_input(user, "Please enter a new core law for the AI.", "Freeform Law Entry", laws[1])
if(!targName)
return
laws[1] = targName
..()
-/obj/item/aiModule/core/freeformcore/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
+/obj/item/ai_module/core/freeformcore/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
..()
return laws[1]
/******************** Overthrow ******************/
-/obj/item/aiModule/core/full/overthrow
+/obj/item/ai_module/core/full/overthrow
name = "'Overthrow' Hacked AI Module"
law_id = "overthrow"
-/obj/item/aiModule/core/full/overthrow/install(datum/ai_laws/law_datum, mob/user)
+/obj/item/ai_module/core/full/overthrow/install(datum/ai_laws/law_datum, mob/user)
if(!user || !law_datum || !law_datum.owner)
return
var/datum/mind/user_mind = user.mind
@@ -493,19 +493,19 @@ AI MODULES
/******************** Hacked AI Module ******************/
-/obj/item/aiModule/syndicate // This one doesn't inherit from ion boards because it doesn't call ..() in transmitInstructions. ~Miauw
+/obj/item/ai_module/syndicate // This one doesn't inherit from ion boards because it doesn't call ..() in transmitInstructions. ~Miauw
name = "Hacked AI Module"
desc = "An AI Module for hacking additional laws to an AI."
laws = list("")
-/obj/item/aiModule/syndicate/attack_self(mob/user)
+/obj/item/ai_module/syndicate/attack_self(mob/user)
var/targName = stripped_input(user, "Please enter a new law for the AI.", "Freeform Law Entry", laws[1])
if(!targName)
return
laws[1] = targName
..()
-/obj/item/aiModule/syndicate/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
+/obj/item/ai_module/syndicate/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
// ..() //We don't want this module reporting to the AI who dun it. --NEO
if(law_datum.owner)
to_chat(law_datum.owner, "BZZZZT ")
@@ -522,14 +522,14 @@ AI MODULES
/******************* Ion Module *******************/
-/obj/item/aiModule/toyAI // -- Incoming //No actual reason to inherit from ion boards here, either. *sigh* ~Miauw
+/obj/item/ai_module/toyAI // -- Incoming //No actual reason to inherit from ion boards here, either. *sigh* ~Miauw
name = "toy AI"
desc = "A little toy model AI core with real law uploading action!" //Note: subtle tell
icon = 'icons/obj/toy.dmi'
icon_state = "AI"
laws = list("")
-/obj/item/aiModule/toyAI/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
+/obj/item/ai_module/toyAI/transmitInstructions(datum/ai_laws/law_datum, mob/sender, overflow)
//..()
if(law_datum.owner)
to_chat(law_datum.owner, "BZZZZT ")
@@ -544,7 +544,7 @@ AI MODULES
law_datum.replace_random_law(laws[1],list(LAW_ION,LAW_INHERENT,LAW_SUPPLIED))
return laws[1]
-/obj/item/aiModule/toyAI/attack_self(mob/user)
+/obj/item/ai_module/toyAI/attack_self(mob/user)
laws[1] = generate_ion_law()
to_chat(user, "You press the button on [src]. ")
playsound(user, 'sound/machines/click.ogg', 20, 1)
@@ -552,56 +552,56 @@ AI MODULES
/******************** Mother Drone ******************/
-/obj/item/aiModule/core/full/drone
+/obj/item/ai_module/core/full/drone
name = "'Mother Drone' Core AI Module"
law_id = "drone"
/******************** Robodoctor ****************/
-/obj/item/aiModule/core/full/hippocratic
+/obj/item/ai_module/core/full/hippocratic
name = "'Robodoctor' Core AI Module"
law_id = "hippocratic"
/******************** Reporter *******************/
-/obj/item/aiModule/core/full/reporter
+/obj/item/ai_module/core/full/reporter
name = "'Reportertron' Core AI Module"
law_id = "reporter"
/****************** Thermodynamic *******************/
-/obj/item/aiModule/core/full/thermurderdynamic
+/obj/item/ai_module/core/full/thermurderdynamic
name = "'Thermodynamic' Core AI Module"
law_id = "thermodynamic"
/******************Live And Let Live*****************/
-/obj/item/aiModule/core/full/liveandletlive
+/obj/item/ai_module/core/full/liveandletlive
name = "'Live And Let Live' Core AI Module"
law_id = "liveandletlive"
/******************Guardian of Balance***************/
-/obj/item/aiModule/core/full/balance
+/obj/item/ai_module/core/full/balance
name = "'Guardian of Balance' Core AI Module"
law_id = "balance"
-/obj/item/aiModule/core/full/maintain
+/obj/item/ai_module/core/full/maintain
name = "'Station Efficiency' Core AI Module"
law_id = "maintain"
-/obj/item/aiModule/core/full/peacekeeper
+/obj/item/ai_module/core/full/peacekeeper
name = "'Peacekeeper' Core AI Module"
law_id = "peacekeeper"
// Bad times ahead
-/obj/item/aiModule/core/full/damaged
+/obj/item/ai_module/core/full/damaged
name = "damaged Core AI Module"
desc = "An AI Module for programming laws to an AI. It looks slightly damaged."
-/obj/item/aiModule/core/full/damaged/install(datum/ai_laws/law_datum, mob/user)
+/obj/item/ai_module/core/full/damaged/install(datum/ai_laws/law_datum, mob/user)
laws += generate_ion_law()
while (prob(75))
laws += generate_ion_law()
@@ -610,6 +610,6 @@ AI MODULES
/******************H.O.G.A.N.***************/
-/obj/item/aiModule/core/full/hulkamania
+/obj/item/ai_module/core/full/hulkamania
name = "'H.O.G.A.N.' Core AI Module"
law_id = "hulkamania"
diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm
index c801ce558b..6665358aae 100644
--- a/code/game/objects/items/RCD.dm
+++ b/code/game/objects/items/RCD.dm
@@ -106,9 +106,9 @@ RLD
matter += value*amount_to_use
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
to_chat(user, "You insert [amount_to_use] [S.name] sheets into [src]. ")
- return 1
+ return TRUE
to_chat(user, "You can't insert any more [S.name] sheets into [src]! ")
- return 0
+ return FALSE
/obj/item/construction/proc/activate()
playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
@@ -575,12 +575,12 @@ RLD
/obj/item/construction/rcd/borg/useResource(amount, mob/user)
if(!iscyborg(user))
- return 0
+ return FALSE
var/mob/living/silicon/robot/borgy = user
if(!borgy.cell)
if(user)
to_chat(user, no_ammo_message)
- return 0
+ return FALSE
. = borgy.cell.use(amount * energyfactor) //borgs get 1.3x the use of their RCDs
if(!. && user)
to_chat(user, no_ammo_message)
@@ -588,12 +588,12 @@ RLD
/obj/item/construction/rcd/borg/checkResource(amount, mob/user)
if(!iscyborg(user))
- return 0
+ return FALSE
var/mob/living/silicon/robot/borgy = user
if(!borgy.cell)
if(user)
to_chat(user, no_ammo_message)
- return 0
+ return FALSE
. = borgy.cell.charge >= (amount * energyfactor)
if(!. && user)
to_chat(user, no_ammo_message)
@@ -750,7 +750,7 @@ RLD
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
if(do_after(user, decondelay, target = A))
if(!useResource(deconcost, user))
- return 0
+ return FALSE
activate()
qdel(A)
return TRUE
@@ -811,9 +811,9 @@ RLD
playsound(src.loc, 'sound/effects/light_flicker.ogg', 50, 1)
if(do_after(user, floordelay, target = A))
if(!istype(F))
- return 0
+ return FALSE
if(!useResource(floorcost, user))
- return 0
+ return FALSE
activate()
var/destination = get_turf(A)
var/obj/machinery/light/floor/FL = new /obj/machinery/light/floor(destination)
diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm
index 1a6d78b694..e891b2f7d5 100644
--- a/code/game/objects/items/blueprints.dm
+++ b/code/game/objects/items/blueprints.dm
@@ -202,7 +202,7 @@
log_game("[key_name(usr)] has renamed [prevname] to [str]")
A.update_areasize()
interact()
- return 1
+ return TRUE
/obj/item/areaeditor/proc/set_area_machinery_title(area/A,title,oldtitle)
diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm
index 295fbb853e..346f68b192 100644
--- a/code/game/objects/items/cardboard_cutouts.dm
+++ b/code/game/objects/items/cardboard_cutouts.dm
@@ -19,7 +19,7 @@
. = ..()
if(possible_appearances)
return
- possible_appearances = sortList(list(
+ possible_appearances = sort_list(list(
"Assistant" = image(icon = src.icon, icon_state = "cutout_greytide"),
"Clown" = image(icon = src.icon, icon_state = "cutout_clown"),
"Mime" = image(icon = src.icon, icon_state = "cutout_mime"),
diff --git a/code/game/objects/items/chrono_eraser.dm b/code/game/objects/items/chrono_eraser.dm
index 8c510bb489..6670af9bea 100644
--- a/code/game/objects/items/chrono_eraser.dm
+++ b/code/game/objects/items/chrono_eraser.dm
@@ -35,7 +35,7 @@
/obj/item/chrono_eraser/item_action_slot_check(slot, mob/user, datum/action/A)
if(slot == ITEM_SLOT_BACK)
- return 1
+ return TRUE
/obj/item/gun/energy/chrono_gun
name = "T.E.D. Projection Apparatus"
@@ -108,9 +108,9 @@
var/turf/currentpos = get_turf(src)
var/mob/living/user = src.loc
if((currentpos == startpos) && (field in view(CHRONO_BEAM_RANGE, currentpos)) && !user.lying && (user.stat == CONSCIOUS))
- return 1
+ return TRUE
field_disconnect(F)
- return 0
+ return FALSE
/obj/item/gun/energy/chrono_gun/proc/pass_mind(datum/mind/M)
if(TED)
diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm
index 518772c771..a52bbb75f3 100644
--- a/code/game/objects/items/cigs_lighters.dm
+++ b/code/game/objects/items/cigs_lighters.dm
@@ -108,6 +108,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
w_class = WEIGHT_CLASS_TINY
body_parts_covered = null
grind_results = list()
+ throw_verb = "flick"
var/lit = FALSE
var/starts_lit = FALSE
var/icon_on = "cigon" //Note - these are in masks.dmi not in cigarette.dmi
diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm
index 078839bcd1..c901e82b8d 100644
--- a/code/game/objects/items/circuitboards/machine_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm
@@ -654,7 +654,7 @@
display_vending_names_paths = list()
for(var/path in vending_names_paths)
display_vending_names_paths[vending_names_paths[path]] = path
- var/choice = input(user,"Choose a new brand","Select an Item") as null|anything in sortList(display_vending_names_paths)
+ var/choice = input(user,"Choose a new brand","Select an Item") as null|anything in sort_list(display_vending_names_paths)
set_type(display_vending_names_paths[choice])
else
return ..()
diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm
index 0b733d6192..b4bf42b93d 100644
--- a/code/game/objects/items/crayons.dm
+++ b/code/game/objects/items/crayons.dm
@@ -127,7 +127,7 @@
refill()
else
if(check_empty(user, amount, requires_full))
- return 0
+ return FALSE
else
. = min(charges_left, amount)
charges_left -= .
diff --git a/code/game/objects/items/credit_holochip.dm b/code/game/objects/items/credit_holochip.dm
index b7f7f5f2d1..d5ccd4d960 100644
--- a/code/game/objects/items/credit_holochip.dm
+++ b/code/game/objects/items/credit_holochip.dm
@@ -70,7 +70,7 @@
qdel(src)
return credits
else
- return 0
+ return FALSE
/obj/item/holochip/attackby(obj/item/I, mob/user, params)
..()
diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm
index 29d39f122c..4df3accb67 100644
--- a/code/game/objects/items/defib.dm
+++ b/code/game/objects/items/defib.dm
@@ -173,7 +173,7 @@
update_power()
for(var/X in actions)
var/datum/action/A = X
- A.UpdateButtonIcon()
+ A.UpdateButtons()
/obj/item/defibrillator/proc/make_paddles()
if(!combat)
@@ -188,7 +188,7 @@
/obj/item/defibrillator/item_action_slot_check(slot, mob/user, datum/action/A)
if(slot == user.getBackSlot())
- return 1
+ return TRUE
/obj/item/defibrillator/proc/remove_paddles(mob/user) //this fox the bug with the paddles when other player stole you the defib when you have the paddles equiped
if(ismob(paddles.loc))
diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm
index 8bce72c84c..5cd8d8dc3f 100644
--- a/code/game/objects/items/devices/PDA/PDA.dm
+++ b/code/game/objects/items/devices/PDA/PDA.dm
@@ -29,6 +29,7 @@ GLOBAL_LIST_EMPTY(PDAs)
item_flags = NOBLUDGEON
w_class = WEIGHT_CLASS_TINY
slot_flags = ITEM_SLOT_ID | ITEM_SLOT_BELT
+ actions_types = list(/datum/action/item_action/toggle_light/pda)
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 100)
resistance_flags = FIRE_PROOF | ACID_PROOF
@@ -962,7 +963,7 @@ GLOBAL_LIST_EMPTY(PDAs)
/obj/item/pda/proc/toggle_light()
if(hasSiliconAccessInArea(usr) || !usr.canUseTopic(src, BE_CLOSE))
- return
+ return FALSE
if(fon)
fon = FALSE
set_light(0)
@@ -970,6 +971,7 @@ GLOBAL_LIST_EMPTY(PDAs)
fon = TRUE
set_light(f_lum, f_pow, f_col)
update_icon()
+ return TRUE
/obj/item/pda/proc/remove_pen()
@@ -1180,7 +1182,7 @@ GLOBAL_LIST_EMPTY(PDAs)
plist[avoid_assoc_duplicate_keys(P.owner, namecounts)] = P
- var/c = input(user, "Please select a PDA") as null|anything in sortList(plist)
+ var/c = input(user, "Please select a PDA") as null|anything in sort_list(plist)
if (!c)
return
@@ -1268,7 +1270,7 @@ GLOBAL_LIST_EMPTY(PDAs)
plist[avoid_assoc_duplicate_keys(P.owner, namecounts)] = P
- var/c = input(user, "Please select a PDA") as null|anything in sortList(plist)
+ var/c = input(user, "Please select a PDA") as null|anything in sort_list(plist)
if (!c)
return
diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm
index 34f8202898..be9244d245 100644
--- a/code/game/objects/items/devices/PDA/cart.dm
+++ b/code/game/objects/items/devices/PDA/cart.dm
@@ -600,7 +600,7 @@ Code:
if(!emoji_table)
var/datum/asset/spritesheet/sheet = get_asset_datum(/datum/asset/spritesheet/chat)
var/list/collate = list("")
- for(var/emoji in sortList(icon_states(icon('icons/emoji.dmi'))))
+ for(var/emoji in sort_list(icon_states(icon('icons/emoji.dmi'))))
var/tag = sheet.icon_tag("emoji-[emoji]")
collate += "[emoji] [tag] "
collate += "
"
diff --git a/code/game/objects/items/devices/camera_bug.dm b/code/game/objects/items/devices/camera_bug.dm
index da5bed07ce..2804582e89 100644
--- a/code/game/objects/items/devices/camera_bug.dm
+++ b/code/game/objects/items/devices/camera_bug.dm
@@ -62,15 +62,15 @@
/obj/item/camera_bug/check_eye(mob/user)
if ( loc != user || user.incapacitated() || user.eye_blind || !current )
user.unset_machine()
- return 0
+ return FALSE
var/turf/T_user = get_turf(user.loc)
var/turf/T_current = get_turf(current)
if(T_user.z != T_current.z || !current.can_use())
to_chat(user, "[src] has lost the signal. ")
current = null
user.unset_machine()
- return 0
- return 1
+ return FALSE
+ return TRUE
/obj/item/camera_bug/on_unset_machine(mob/user)
user.reset_perspective(null)
@@ -82,7 +82,7 @@
continue
if(length(list("ss13","mine", "rd", "labor", "toxins", "minisat")&camera.network))
bugged_cameras[camera.c_tag] = camera
- return sortList(bugged_cameras)
+ return sort_list(bugged_cameras)
/obj/item/camera_bug/proc/menu(list/cameras)
diff --git a/code/game/objects/items/devices/dogborg_sleeper.dm b/code/game/objects/items/devices/dogborg_sleeper.dm
index 9d641cf598..8748278681 100644
--- a/code/game/objects/items/devices/dogborg_sleeper.dm
+++ b/code/game/objects/items/devices/dogborg_sleeper.dm
@@ -59,7 +59,7 @@
return ..()
/obj/item/dogborg/sleeper/Exit(atom/movable/O)
- return 0
+ return FALSE
/obj/item/dogborg/sleeper/proc/get_host()
if(!loc)
diff --git a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm
index 69850a9f1e..82e1f1fbec 100644
--- a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm
+++ b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm
@@ -13,7 +13,7 @@
/obj/item/electroadaptive_pseudocircuit/Initialize(mapload)
. = ..()
- maptext = "[circuits]"
+ maptext = MAPTEXT("[circuits]")
/obj/item/electroadaptive_pseudocircuit/examine(mob/user)
. = ..()
@@ -40,7 +40,7 @@
playsound(R, 'sound/items/rped.ogg', 50, TRUE)
recharging = TRUE
circuits--
- maptext = "[circuits]"
+ maptext = MAPTEXT("[circuits]")
icon_state = "[initial(icon_state)]_recharging"
var/recharge_time = min(600, circuit_cost * 5) //40W of cost for one fabrication = 20 seconds of recharge time; this is to prevent spamming
addtimer(CALLBACK(src, PROC_REF(recharge)), recharge_time)
@@ -53,7 +53,7 @@
if(!is_type_in_typecache(target, recycleable_circuits))
return
circuits++
- maptext = "[circuits]"
+ maptext = MAPTEXT("[circuits]")
user.visible_message("User breaks down [target] with [src]. ", \
"You recycle [target] into [src]. It now has material for [circuits] circuits. ")
playsound(user, 'sound/items/deconstruct.ogg', 50, TRUE)
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index 79489c3c51..3f64be4729 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -40,7 +40,7 @@
playsound(src, on ? 'sound/weapons/magin.ogg' : 'sound/weapons/magout.ogg', 40, TRUE)
for(var/X in actions)
var/datum/action/A = X
- A.UpdateButtonIcon()
+ A.UpdateButtons()
return TRUE
/obj/item/flashlight/DoRevenantThrowEffects(atom/target)
diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm
index e2dc7b0f91..579f9e888d 100644
--- a/code/game/objects/items/devices/gps.dm
+++ b/code/game/objects/items/devices/gps.dm
@@ -86,7 +86,7 @@
// I assume it's faster to color,tag and OR the turf in, rather
// then checking if its there
T.color = RANDOM_COLOUR
- T.maptext = "[T.x],[T.y],[T.z]"
+ T.maptext = MAPTEXT("[T.x],[T.y],[T.z]")
tagged |= T
/obj/item/gps/visible_debug/proc/clear()
diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm
index c5e92349c7..9c206d2003 100644
--- a/code/game/objects/items/devices/lightreplacer.dm
+++ b/code/game/objects/items/devices/lightreplacer.dm
@@ -170,7 +170,7 @@
/obj/item/lightreplacer/proc/Use(mob/user)
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
AddUses(-1)
- return 1
+ return TRUE
// Negative numbers will subtract
/obj/item/lightreplacer/proc/AddUses(amount = 1)
@@ -239,9 +239,9 @@
/obj/item/lightreplacer/proc/CanUse(mob/living/user)
src.add_fingerprint(user)
if(uses > 0)
- return 1
+ return TRUE
else
- return 0
+ return FALSE
/obj/item/lightreplacer/afterattack(atom/T, mob/U, proximity)
. = ..()
diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm
index fbc241c5de..a8fe41bb7b 100644
--- a/code/game/objects/items/devices/multitool.dm
+++ b/code/game/objects/items/devices/multitool.dm
@@ -236,11 +236,11 @@
/datum/action/item_action/toggle_multitool/Trigger()
if(!..())
- return 0
+ return FALSE
if(target)
var/obj/item/multitool/ai_detect/M = target
M.toggle_hud(owner)
- return 1
+ return TRUE
/obj/item/multitool/cyborg
name = "multitool"
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index ac74074e1f..0c4f4a5bc1 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -973,7 +973,7 @@ GENETICS SCANNER
for(var/A in buffer)
options += get_display_name(A)
- var/answer = input(user, "Analyze Potential", "Sequence Analyzer") as null|anything in sortList(options)
+ var/answer = input(user, "Analyze Potential", "Sequence Analyzer") as null|anything in sort_list(options)
if(answer && ready && user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
var/sequence
for(var/A in buffer) //this physically hurts but i dont know what anything else short of an assoc list
diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm
index d181a02656..f2013b354f 100644
--- a/code/game/objects/items/devices/traitordevices.dm
+++ b/code/game/objects/items/devices/traitordevices.dm
@@ -217,7 +217,7 @@ effective or pretty fucking useless.
/obj/item/shadowcloak/item_action_slot_check(slot, mob/user, datum/action/A)
if(slot == ITEM_SLOT_BELT)
- return 1
+ return TRUE
/obj/item/shadowcloak/proc/Activate(mob/living/carbon/human/user)
if(!user)
diff --git a/code/game/objects/items/dice.dm b/code/game/objects/items/dice.dm
index 91aad761d9..ea42fee208 100644
--- a/code/game/objects/items/dice.dm
+++ b/code/game/objects/items/dice.dm
@@ -168,7 +168,9 @@
diceroll(user)
/obj/item/dice/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
- diceroll(thrownby)
+ var/mob/thrown_by = thrownby?.resolve()
+ if(thrown_by)
+ diceroll(thrown_by)
. = ..()
/obj/item/dice/proc/diceroll(mob/user)
diff --git a/code/game/objects/items/dualsaber.dm b/code/game/objects/items/dualsaber.dm
index 984dcca450..a331578634 100644
--- a/code/game/objects/items/dualsaber.dm
+++ b/code/game/objects/items/dualsaber.dm
@@ -209,7 +209,7 @@
/obj/item/dualsaber/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0) //In case thats just so happens that it is still activated on the groud, prevents hulk from picking it up
if(wielded)
to_chat(user, "You can't pick up such dangerous item with your meaty hands without losing fingers, better not to! ")
- return 1
+ return TRUE
/obj/item/dualsaber/process()
if(wielded)
diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm
index b0b9f31707..81fcad2349 100644
--- a/code/game/objects/items/extinguisher.dm
+++ b/code/game/objects/items/extinguisher.dm
@@ -119,7 +119,7 @@
if(reagents.total_volume == reagents.maximum_volume)
to_chat(user, "\The [src] is already full! ")
safety = safety_save
- return 1
+ return TRUE
var/obj/structure/reagent_dispensers/W = target //will it work?
var/transferred = W.reagents.trans_to(src, max_water)
if(transferred > 0)
@@ -130,9 +130,9 @@
else
to_chat(user, "\The [W] is empty! ")
safety = safety_save
- return 1
+ return TRUE
else
- return 0
+ return FALSE
/obj/item/extinguisher/afterattack(atom/target, mob/user , flag)
. = ..()
diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm
index f83d01f4ef..801befc9c6 100644
--- a/code/game/objects/items/granters.dm
+++ b/code/game/objects/items/granters.dm
@@ -129,12 +129,12 @@
/datum/action/innate/drink_fling/Activate()
button_icon_state = "drinkfling_on"
active = TRUE
- UpdateButtonIcon()
+ UpdateButtons()
/datum/action/innate/drink_fling/Deactivate()
button_icon_state = "drinkfling_off"
active = FALSE
- UpdateButtonIcon()
+ UpdateButtons()
/obj/item/book/granter/action/origami
granted_action = /datum/action/innate/origami
@@ -155,13 +155,13 @@
to_chat(owner, "You will now fold origami planes. ")
button_icon_state = "origami_on"
active = TRUE
- UpdateButtonIcon()
+ UpdateButtons()
/datum/action/innate/origami/Deactivate()
to_chat(owner, "You will no longer fold origami planes. ")
button_icon_state = "origami_off"
active = FALSE
- UpdateButtonIcon()
+ UpdateButtons()
///SPELLS///
diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm
index 095c56be08..3cdd3b3900 100644
--- a/code/game/objects/items/holy_weapons.dm
+++ b/code/game/objects/items/holy_weapons.dm
@@ -260,7 +260,7 @@
display_names[initial(rodtype.name)] = rodtype
nullrod_icons += list(initial(rodtype.name) = image(icon = initial(rodtype.icon), icon_state = initial(rodtype.icon_state)))
- nullrod_icons = sortList(nullrod_icons)
+ nullrod_icons = sort_list(nullrod_icons)
var/choice = show_radial_menu(L, src , nullrod_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), L), radius = 42, require_near = TRUE)
if(!choice || !check_menu(L))
diff --git a/code/game/objects/items/implants/implant.dm b/code/game/objects/items/implants/implant.dm
index f8e02eaf03..0df8c35196 100644
--- a/code/game/objects/items/implants/implant.dm
+++ b/code/game/objects/items/implants/implant.dm
@@ -38,8 +38,8 @@
//What does the implant do upon injection?
-//return 1 if the implant injects
-//return 0 if there is no room for implant / it fails
+//return TRUE if the implant injects
+//return FALSE if there is no room for implant / it fails
/obj/item/implant/proc/implant(mob/living/target, mob/user, silent = FALSE, force = FALSE)
if(SEND_SIGNAL(src, COMSIG_IMPLANT_IMPLANTING, args) & COMPONENT_STOP_IMPLANTING)
return
@@ -99,7 +99,7 @@
var/mob/living/carbon/human/H = source
H.sec_hud_set_implants()
- return 1
+ return TRUE
/obj/item/implant/Destroy()
if(imp_in)
diff --git a/code/game/objects/items/implants/implant_chem.dm b/code/game/objects/items/implants/implant_chem.dm
index 5f0b4f3fc3..07de277a76 100644
--- a/code/game/objects/items/implants/implant_chem.dm
+++ b/code/game/objects/items/implants/implant_chem.dm
@@ -59,7 +59,7 @@
/obj/item/implant/chem/activate(cause)
. = ..()
if(!cause || !imp_in)
- return 0
+ return FALSE
var/mob/living/carbon/R = imp_in
var/injectamount = null
if (cause == "action_button")
diff --git a/code/game/objects/items/implants/implant_explosive.dm b/code/game/objects/items/implants/implant_explosive.dm
index 489cef3d39..45984879f4 100644
--- a/code/game/objects/items/implants/implant_explosive.dm
+++ b/code/game/objects/items/implants/implant_explosive.dm
@@ -48,7 +48,7 @@
imp_e.weak += weak
imp_e.delay += delay
qdel(src)
- return 1
+ return TRUE
return ..()
diff --git a/code/game/objects/items/implants/implant_mindshield.dm b/code/game/objects/items/implants/implant_mindshield.dm
index 395c0c4ce0..14a49c1a00 100644
--- a/code/game/objects/items/implants/implant_mindshield.dm
+++ b/code/game/objects/items/implants/implant_mindshield.dm
@@ -64,8 +64,8 @@
L.sec_hud_set_implants()
if(target.stat != DEAD && !silent)
to_chat(target, "Your mind suddenly feels terribly vulnerable. You are no longer safe from brainwashing. ")
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/item/implanter/mindshield
name = "implanter (mindshield)"
diff --git a/code/game/objects/items/implants/implantchair.dm b/code/game/objects/items/implants/implantchair.dm
index 8777a9f5e0..263aab4039 100644
--- a/code/game/objects/items/implants/implantchair.dm
+++ b/code/game/objects/items/implants/implantchair.dm
@@ -158,11 +158,11 @@
/obj/machinery/implantchair/genepurge/implant_action(mob/living/carbon/human/H,mob/user)
if(!istype(H))
- return 0
+ return FALSE
H.set_species(/datum/species/human, 1)//lizards go home
purrbation_remove(H)//remove cats
H.dna.remove_all_mutations()//hulks out
- return 1
+ return TRUE
/obj/machinery/implantchair/brainwash
diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm
index 648a38437c..138472a4c8 100644
--- a/code/game/objects/items/pet_carrier.dm
+++ b/code/game/objects/items/pet_carrier.dm
@@ -289,10 +289,11 @@
"[M] has been splashed with something! ")
var/turf/TT = get_turf(hit_atom)
var/throwerstring
- if(thrownby)
- log_combat(thrownby, M, "splashed", R)
- var/turf/AT = get_turf(thrownby)
- throwerstring = " THROWN BY [key_name(thrownby)] at [AT] (AREACOORD(AT)]"
+ var/mob/thrown_by = thrownby?.resolve()
+ if(thrown_by)
+ log_combat(thrown_by, M, "splashed", R)
+ var/turf/AT = get_turf(thrown_by)
+ throwerstring = " THROWN BY [key_name(thrown_by)] at [AT] (AREACOORD(AT)]"
log_reagent("SPLASH: [src] mob throw_impact() onto [key_name(hit_atom)] at [TT] ([AREACOORD(TT)])[throwerstring] - [R]")
reagents.reaction(hit_atom, TOUCH)
reagents.clear_reagents()
diff --git a/code/game/objects/items/robot/ai_upgrades.dm b/code/game/objects/items/robot/ai_upgrades.dm
index acfc1353b9..dc1eef53ad 100644
--- a/code/game/objects/items/robot/ai_upgrades.dm
+++ b/code/game/objects/items/robot/ai_upgrades.dm
@@ -25,7 +25,7 @@
AI.hack_software = TRUE
log_game("[key_name(user)] has upgraded [key_name(AI)] with a [src].")
message_admins("[ADMIN_LOOKUPFLW(user)] has upgraded [ADMIN_LOOKUPFLW(AI)] with a [src].")
- to_chat(user, "You upgrade [AI]. [src] is consumed in the process. ")
+ to_chat(user, span_notice("You install [src], upgrading [AI]."))
qdel(src)
@@ -46,7 +46,7 @@
AI.eyeobj.relay_speech = TRUE
to_chat(AI, "[user] has upgraded you with surveillance software! ")
to_chat(AI, "Via a combination of hidden microphones and lip reading software, you are able to use your cameras to listen in on conversations.")
- to_chat(user, "You upgrade [AI]. [src] is consumed in the process. ")
+ to_chat(user, span_notice("You install [src], upgrading [AI]."))
log_game("[key_name(user)] has upgraded [key_name(AI)] with a [src].")
message_admins("[ADMIN_LOOKUPFLW(user)] has upgraded [ADMIN_LOOKUPFLW(AI)] with a [src].")
qdel(src)
diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm
index fbb3297f89..d473e1c7e1 100644
--- a/code/game/objects/items/robot/robot_parts.dm
+++ b/code/game/objects/items/robot/robot_parts.dm
@@ -59,8 +59,8 @@
if(src.l_leg && src.r_leg)
if(src.chest && src.head)
SSblackbox.record_feedback("amount", "cyborg_frames_built", 1)
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/item/robot_suit/wrench_act(mob/living/user, obj/item/I) //Deconstucts empty borg shell. Flashes remain unbroken because they haven't been used yet
var/turf/T = get_turf(src)
@@ -292,9 +292,7 @@
if(M.laws.id == DEFAULT_AI_LAWID)
O.make_laws()
- SSticker.mode.remove_antag_for_borging(BM.mind)
- if(!istype(M.laws, /datum/ai_laws/ratvar))
- remove_servant_of_ratvar(BM, TRUE)
+ BM.mind.remove_antags_for_borging()
BM.mind.transfer_to(O)
if(O.mind && O.mind.special_role)
@@ -312,6 +310,7 @@
qdel(O.mmi)
O.mmi = W //and give the real mmi to the borg.
O.updatename()
+ playsound(O.loc, 'sound/voice/liveagain.ogg', 75, TRUE)
SSblackbox.record_feedback("amount", "cyborg_birth", 1)
forceMove(O)
O.robot_suit = src
diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm
index 5a8788deba..d8730cc95b 100644
--- a/code/game/objects/items/robot/robot_upgrades.dm
+++ b/code/game/objects/items/robot/robot_upgrades.dm
@@ -8,32 +8,29 @@
icon_state = "cyborg_upgrade"
w_class = WEIGHT_CLASS_SMALL
var/locked = FALSE
- var/installed = 0
- var/require_module = 0
- var/list/module_type
+ var/installed = FALSE
+ var/require_module = FALSE
+ var/list/module_type = null
/// Bitflags listing module compatibility. Used in the exosuit fabricator for creating sub-categories.
var/module_flags = NONE
// if true, is not stored in the robot to be ejected
// if module is reset
var/one_use = FALSE
+ /// Means this is a basetype and should not be used
+ var/abstract_type = /obj/item/borg/upgrade
+ /// Show the amount of this module that is installed
+ var/show_amount = FALSE
/obj/item/borg/upgrade/proc/action(mob/living/silicon/robot/R, user = usr)
if(R.stat == DEAD)
- to_chat(user, "[src] will not function on a deceased cyborg. ")
+ to_chat(user, span_warning("[src] will not function on a deceased cyborg!"))
return FALSE
if(module_type && !is_type_in_list(R.module, module_type))
- to_chat(R, "Upgrade mounting error! No suitable hardpoint detected. ")
- to_chat(user, "There's no mounting point for the module! ")
+ to_chat(R, span_alert("Upgrade mounting error! No suitable hardpoint detected."))
+ to_chat(user, span_warning("There's no mounting point for the module!"))
return FALSE
return TRUE
-/*
-This proc gets called by upgrades after installing them. Use this for things that for example need to be moved into a specific borg item,
-as performing this in action() will cause the upgrade to end up in the borg instead of its intended location due to forceMove() being called afterwards..
-*/
-/obj/item/borg/upgrade/proc/afterInstall(mob/living/silicon/robot/R, user = usr)
- return
-
/obj/item/borg/upgrade/proc/deactivate(mob/living/silicon/robot/R, user = usr)
if (!(src in R.upgrades))
return FALSE
@@ -324,12 +321,12 @@ as performing this in action() will cause the upgrade to end up in the borg inst
/obj/item/borg/upgrade/lavaproof/action(mob/living/silicon/robot/R, user = usr)
. = ..()
if(.)
- ADD_TRAIT(src, TRAIT_LAVA_IMMUNE, type)
+ ADD_TRAIT(R, TRAIT_LAVA_IMMUNE, type)
/obj/item/borg/upgrade/lavaproof/deactivate(mob/living/silicon/robot/R, user = usr)
. = ..()
if (.)
- REMOVE_TRAIT(src, TRAIT_LAVA_IMMUNE, type)
+ REMOVE_TRAIT(R, TRAIT_LAVA_IMMUNE, type)
/obj/item/borg/upgrade/selfrepair
name = "self-repair module"
@@ -440,6 +437,7 @@ as performing this in action() will cause the upgrade to end up in the borg inst
/obj/item/robot_module/syndicate_medical)
var/list/additional_reagents = list()
module_flags = BORG_MODULE_MEDICAL
+ abstract_type = /obj/item/borg/upgrade/hypospray
/obj/item/borg/upgrade/hypospray/action(mob/living/silicon/robot/R, user = usr)
. = ..()
@@ -721,6 +719,6 @@ as performing this in action() will cause the upgrade to end up in the borg inst
user.vtec = initial(user.vtec) - maxReduction * 1
action.button_icon_state = "Chevron_State_[currentState]"
- action.UpdateButtonIcon()
+ action.UpdateButtons()
return TRUE
diff --git a/code/game/objects/items/scrolls.dm b/code/game/objects/items/scrolls.dm
index d58f670dc4..f1f9bd0f0b 100644
--- a/code/game/objects/items/scrolls.dm
+++ b/code/game/objects/items/scrolls.dm
@@ -33,7 +33,7 @@
if (usr.stat || usr.restrained() || src.loc != usr)
return
if (!ishuman(usr))
- return 1
+ return TRUE
var/mob/living/carbon/human/H = usr
if(H.is_holding(src))
H.set_machine(src)
diff --git a/code/game/objects/items/stacks/bscrystal.dm b/code/game/objects/items/stacks/bscrystal.dm
index 125065c83e..bcc194154d 100644
--- a/code/game/objects/items/stacks/bscrystal.dm
+++ b/code/game/objects/items/stacks/bscrystal.dm
@@ -24,7 +24,7 @@
pixel_y = rand(-5, 5)
/obj/item/stack/ore/bluespace_crystal/get_part_rating()
- return 1
+ return TRUE
/obj/item/stack/ore/bluespace_crystal/attack_self(mob/user)
user.visible_message("[user] crushes [src]! ", "You crush [src]! ")
diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm
index fd3b79ce94..b7d5cef961 100644
--- a/code/game/objects/items/stacks/medical.dm
+++ b/code/game/objects/items/stacks/medical.dm
@@ -216,7 +216,8 @@
/obj/item/stack/medical/gauze/cyborg
custom_materials = null
- is_cyborg = 1
+ is_cyborg = TRUE
+ source = /datum/robot_energy_storage/medical
cost = 250
/obj/item/stack/medical/suture
@@ -440,7 +441,8 @@
/obj/item/stack/medical/bone_gel/cyborg
custom_materials = null
- is_cyborg = 1
+ is_cyborg = TRUE
+ source = /datum/robot_energy_storage/medical
cost = 250
/obj/item/stack/medical/aloe
diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm
index 08f0a6fb7f..c0fde9ce73 100644
--- a/code/game/objects/items/stacks/rods.dm
+++ b/code/game/objects/items/stacks/rods.dm
@@ -39,7 +39,7 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \
/obj/item/stack/rods/update_icon_state()
var/amount = get_amount()
- if(amount <= 5)
+ if(amount <= 5 && amount >= 1)
icon_state = "rods-[amount]"
else
icon_state = "rods"
@@ -76,12 +76,9 @@ GLOBAL_LIST_INIT(rod_recipes, list ( \
/obj/item/stack/rods/cyborg
custom_materials = null
- is_cyborg = 1
- cost = 250
-
-/obj/item/stack/rods/cyborg/ComponentInitialize()
- . = ..()
- AddElement(/datum/element/update_icon_blocker)
+ is_cyborg = TRUE
+ source = /datum/robot_energy_storage/medical
+ cost = MINERAL_MATERIAL_AMOUNT * 0.125
/obj/item/stack/rods/ten
amount = 10
diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm
index bea05f6ef1..929b572e06 100644
--- a/code/game/objects/items/stacks/sheets/glass.dm
+++ b/code/game/objects/items/stacks/sheets/glass.dm
@@ -51,8 +51,9 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \
/obj/item/stack/sheet/glass/cyborg
custom_materials = null
- is_cyborg = 1
- cost = 500
+ is_cyborg = TRUE
+ source = /datum/robot_energy_storage/glass
+ cost = MINERAL_MATERIAL_AMOUNT * 0.25
/obj/item/stack/sheet/glass/fifty
amount = 50
@@ -178,9 +179,16 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \
/obj/item/stack/sheet/rglass/cyborg
custom_materials = null
- var/datum/robot_energy_storage/glasource
- var/metcost = 250
- var/glacost = 500
+ is_cyborg = TRUE
+ source = /datum/robot_energy_storage/metal
+ var/datum/robot_energy_storage/glasource = /datum/robot_energy_storage/glass
+ var/metcost = MINERAL_MATERIAL_AMOUNT * 0.125
+ var/glacost = MINERAL_MATERIAL_AMOUNT * 0.25
+
+/obj/item/stack/sheet/rglass/cyborg/prepare_estorage(obj/item/robot_module/module)
+ . = ..()
+ if(glasource)
+ glasource = module.get_or_create_estorage(glasource)
/obj/item/stack/sheet/rglass/cyborg/get_amount()
return min(round(source.energy / metcost), round(glasource.energy / glacost))
@@ -188,10 +196,12 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \
/obj/item/stack/sheet/rglass/cyborg/use(used, transfer = FALSE) // Requires special checks, because it uses two storages
source.use_charge(used * metcost)
glasource.use_charge(used * glacost)
+ update_icon()
/obj/item/stack/sheet/rglass/cyborg/add(amount)
source.add_charge(amount * metcost)
glasource.add_charge(amount * glacost)
+ update_icon()
/obj/item/stack/sheet/rglass/get_main_recipes()
. = ..()
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 43ed3b9213..745fa6a321 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -163,8 +163,9 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \
/obj/item/stack/sheet/metal/cyborg
custom_materials = null
- is_cyborg = 1
- cost = 500
+ is_cyborg = TRUE
+ source = /datum/robot_energy_storage/metal
+ cost = MINERAL_MATERIAL_AMOUNT * 0.25
/obj/item/stack/sheet/metal/get_main_recipes()
. = ..()
@@ -178,7 +179,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \
* Plasteel
*/
GLOBAL_LIST_INIT(plasteel_recipes, list ( \
- new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = TRUE), \
+ new/datum/stack_recipe("AI core", /obj/structure/ai_core, 4, time = 50, one_per_turf = TRUE), \
new/datum/stack_recipe("bomb assembly", /obj/machinery/syndicatebomb/empty, 10, time = 50), \
new/datum/stack_recipe("plasteel keg", /obj/structure/custom_keg, 10, time = 50), \
new/datum/stack_recipe("micro powered fan assembly", /obj/machinery/fan_assembly, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \
diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm
index b2cd0f481b..7eca36247f 100644
--- a/code/game/objects/items/stacks/stack.dm
+++ b/code/game/objects/items/stacks/stack.dm
@@ -42,6 +42,12 @@
var/matter_amount = 0
/obj/item/stack/Initialize(mapload, new_amount, merge = TRUE)
+ if(is_cyborg)
+ if(!istype(loc, /obj/item/robot_module))
+ stack_trace("Cyborg stack created outside of a robot module, deleting.")
+ return INITIALIZE_HINT_QDEL
+ prepare_estorage(loc)
+
if(new_amount != null)
amount = new_amount
while(amount > max_amount)
@@ -132,6 +138,19 @@
else
icon_state = "[initial(icon_state)]_3"
+/obj/item/stack/update_overlays()
+ . = ..()
+ if(isturf(loc))
+ return
+ var/atom/movable/screen/storage/item_holder/holder = locate(/atom/movable/screen/storage/item_holder) in vis_locs
+ if(holder?.master && istype(holder.master, /datum/component/storage/concrete))
+ var/datum/component/storage/concrete/storage = holder.master
+ if(storage.display_numerical_stacking)
+ return // It's being handled by the storage we're in, forget about it.
+ var/mutable_appearance/number = mutable_appearance(appearance_flags = APPEARANCE_UI_IGNORE_ALPHA)
+ number.maptext = MAPTEXT(get_amount())
+ . += number
+
/obj/item/stack/examine(mob/user)
. = ..()
if (is_cyborg)
@@ -151,6 +170,14 @@
. += "There is [get_amount()] in the stack."
. += "Alt-click to take a custom amount. "
+/obj/item/stack/equipped(mob/user, slot)
+ . = ..()
+ update_icon()
+
+/obj/item/stack/dropped(mob/user, slot)
+ . = ..()
+ update_icon()
+
/obj/item/stack/proc/get_amount()
if(is_cyborg)
. = round(source?.energy / cost)
@@ -358,11 +385,13 @@
return FALSE
return TRUE
-/obj/item/stack/use(used, transfer = FALSE, check = TRUE) // return 0 = borked; return 1 = had enough
+/obj/item/stack/use(used, transfer = FALSE, check = TRUE) // return FALSE = borked; return TRUE = had enough
if(check && zero_amount())
return FALSE
if (is_cyborg)
- return source.use_charge(used * cost)
+ . = source.use_charge(used * cost)
+ update_icon()
+ return
if (amount < used)
return FALSE
amount -= used
@@ -465,9 +494,53 @@
return
//get amount from user
var/max = get_amount()
- var/stackmaterial = round(input(user,"How many sheets do you wish to take out of this stack? (Maximum [max])") as null|num)
- max = get_amount()
- stackmaterial = min(max, stackmaterial)
+ var/list/quick_split
+ for(var/option in list(2, 3, 4, 5, 6, 7, "One", "Five", "Ten", "Custom"))
+ var/mutable_appearance/option_display = new(src)
+ option_display.filters = null
+ option_display.cut_overlays()
+ option_display.pixel_x = 0
+ option_display.pixel_y = 0
+
+ switch(option)
+ if("Custom")
+ var/list/sort_numbers = quick_split
+ sort_numbers = sort_list(sort_numbers, /proc/cmp_numeric_text_desc)
+ option_display.maptext = MAPTEXT("?")
+ quick_split = list("Custom" = option_display)
+ quick_split += sort_numbers
+ if("One")
+ option = 1
+ option_display.maptext = MAPTEXT("1")
+ if("Five")
+ if(max > 5)
+ option = 5
+ option_display.maptext = MAPTEXT("5")
+ else
+ continue
+ if("Ten")
+ if(max > 10)
+ option = 10
+ option_display.maptext = MAPTEXT("10")
+ else
+ continue
+ else
+ if(max % option == 0)
+ option_display.maptext = MAPTEXT(max / option)
+ option = max / option
+ else
+ continue
+ if(option != "Custom")
+ LAZYSET(quick_split, "[option]", option_display)
+ var/stackmaterial
+ if(length(quick_split) <= 2)
+ stackmaterial = round(input(user, "How many sheets do you wish to take out of this stack?\nMax: [max]") as null|num)
+ else
+ stackmaterial = show_radial_menu(user, get_atom_on_turf(src), quick_split, require_near = TRUE, tooltips = TRUE)
+ if(stackmaterial == "Custom")
+ stackmaterial = round(input(user, "How many sheets do you wish to take out of this stack?\nMax: [max]") as null|num)
+ stackmaterial = isnum(stackmaterial) ? stackmaterial : text2num(stackmaterial)
+ stackmaterial = min(get_amount(), stackmaterial)
if(stackmaterial == null || stackmaterial <= 0 || !user.canUseTopic(src, BE_CLOSE, TRUE, FALSE)) //, !iscyborg(user)
return
split_stack(user, stackmaterial)
@@ -491,7 +564,11 @@
F.forceMove(user.drop_location())
add_fingerprint(user)
F.add_fingerprint(user)
- zero_amount()
+ if(!zero_amount())
+ var/atom/movable/screen/storage/item_holder/holder = locate(/atom/movable/screen/storage/item_holder) in vis_locs
+ if(holder?.master && istype(holder.master, /datum/component/storage/concrete))
+ var/datum/component/storage/concrete/storage = holder.master
+ storage.refresh_mob_views()
/obj/item/stack/attackby(obj/item/W, mob/user, params)
if(can_merge(W))
@@ -514,3 +591,12 @@
/obj/item/stack/microwave_act(obj/machinery/microwave/M)
if(istype(M) && M.dirty < 100)
M.dirty += amount
+
+/obj/item/stack/proc/prepare_estorage(obj/item/robot_module/module)
+ if(source)
+ source = module.get_or_create_estorage(source)
+
+/obj/item/stack/Moved(old_loc, dir)
+ . = ..()
+ if(isturf(loc))
+ update_icon()
diff --git a/code/game/objects/items/stacks/tickets.dm b/code/game/objects/items/stacks/tickets.dm
index 22cb895277..df040a89c7 100644
--- a/code/game/objects/items/stacks/tickets.dm
+++ b/code/game/objects/items/stacks/tickets.dm
@@ -11,7 +11,7 @@
. = ..()
update_icon()
-/obj/item/stack/arcadeticket/update_icon()
+/obj/item/stack/arcadeticket/update_icon_state()
var/amount = get_amount()
if((amount >= 12) && (amount > 0))
icon_state = "arcade-ticket_4"
diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm
index 588e066a41..84ccdfb1c5 100644
--- a/code/game/objects/items/stacks/tiles/tile_types.dm
+++ b/code/game/objects/items/stacks/tiles/tile_types.dm
@@ -535,8 +535,9 @@
/obj/item/stack/tile/plasteel/cyborg
custom_materials = null // All other Borg versions of items have no Metal or Glass - RR
- is_cyborg = 1
- cost = 125
+ is_cyborg = TRUE
+ source = /datum/robot_energy_storage/metal
+ cost = MINERAL_MATERIAL_AMOUNT * 0.0625
/obj/item/stack/tile/material
name = "floor tile"
diff --git a/code/game/objects/items/stacks/wrap.dm b/code/game/objects/items/stacks/wrap.dm
index c969e2d1d4..5fa4537794 100644
--- a/code/game/objects/items/stacks/wrap.dm
+++ b/code/game/objects/items/stacks/wrap.dm
@@ -40,6 +40,12 @@
resistance_flags = FLAMMABLE
grind_results = list(/datum/reagent/cellulose = 5)
+/obj/item/stack/packageWrap/cyborg
+ custom_materials = null
+ is_cyborg = TRUE
+ source = /datum/robot_energy_storage/wrapping_paper
+ cost = 1
+
/obj/item/stack/packageWrap/suicide_act(mob/living/user)
user.visible_message("[user] begins wrapping [user.p_them()]self in \the [src]! It looks like [user.p_theyre()] trying to commit suicide! ")
if(use(3))
@@ -53,16 +59,16 @@
return SHAME
/obj/item/proc/can_be_package_wrapped() //can the item be wrapped with package wrapper into a delivery package
- return 1
+ return TRUE
/obj/item/storage/can_be_package_wrapped()
- return 0
+ return FALSE
/obj/item/storage/box/can_be_package_wrapped()
- return 1
+ return TRUE
/obj/item/smallDelivery/can_be_package_wrapped()
- return 0
+ return FALSE
/obj/item/stack/packageWrap/afterattack(obj/target, mob/user, proximity)
. = ..()
diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm
index 91c18a5941..569004177a 100644
--- a/code/game/objects/items/storage/book.dm
+++ b/code/game/objects/items/storage/book.dm
@@ -25,7 +25,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible",
var/obj/item/storage/book/bible/B = locate() in src
if(is_holding(B))
return B
- return 0
+ return FALSE
/obj/item/storage/book/bible
name = "bible"
@@ -105,7 +105,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible",
var/obj/item/bodypart/BP = X
if(BP.is_robotic_limb())
to_chat(user, "[src.deity_name] refuses to heal this metallic taint! ")
- return 0
+ return FALSE
var/heal_amt = 5
var/list/hurt_limbs = H.get_damaged_bodyparts(1, 1)
@@ -119,7 +119,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible",
to_chat(H, "May the power of [deity_name] compel you to be healed! ")
playsound(src.loc, "punch", 25, 1, -1)
SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "blessing", /datum/mood_event/blessing)
- return 1
+ return TRUE
/obj/item/storage/book/bible/attack(mob/living/M, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1, heal_mode = TRUE)
diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm
index 9530a580cb..e5de4570a5 100644
--- a/code/game/objects/items/storage/boxes.dm
+++ b/code/game/objects/items/storage/boxes.dm
@@ -73,7 +73,7 @@
/obj/item/storage/box/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/stack/packageWrap))
- return 0
+ return FALSE
return ..()
//Disk boxes
@@ -886,7 +886,7 @@
/obj/item/storage/box/papersack/Initialize(mapload)
. = ..()
- papersack_designs = sortList(list(
+ papersack_designs = sort_list(list(
"None" = image(icon = src.icon, icon_state = "paperbag_None"),
"NanotrasenStandard" = image(icon = src.icon, icon_state = "paperbag_NanotrasenStandard"),
"SyndiSnacks" = image(icon = src.icon, icon_state = "paperbag_SyndiSnacks"),
diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm
index f4b5e26189..bbcdf5b2b9 100644
--- a/code/game/objects/items/storage/uplink_kits.dm
+++ b/code/game/objects/items/storage/uplink_kits.dm
@@ -85,10 +85,10 @@
new /obj/item/implanter/stealth(src)
if("hacker") // 30 tc
- new /obj/item/aiModule/syndicate(src)
+ new /obj/item/ai_module/syndicate(src)
new /obj/item/card/emag(src)
new /obj/item/encryptionkey/binary(src)
- new /obj/item/aiModule/toyAI(src)
+ new /obj/item/ai_module/toyAI(src)
new /obj/item/multitool/ai_detect(src)
new /obj/item/flashlight/emp(src)
new /obj/item/emagrecharge(src)
diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm
index 7d84d38624..46e0c66953 100644
--- a/code/game/objects/items/stunbaton.dm
+++ b/code/game/objects/items/stunbaton.dm
@@ -61,9 +61,10 @@
/obj/item/melee/baton/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
..()
+ var/mob/thrown_by = thrownby?.resolve()
//Only mob/living types have stun handling
- if(turned_on && prob(throw_hit_chance) && iscarbon(hit_atom) && thrownby)
- baton_stun(hit_atom, thrownby, shoving = TRUE)
+ if(turned_on && prob(throw_hit_chance) && iscarbon(hit_atom) && thrown_by)
+ baton_stun(hit_atom, thrown_by, shoving = TRUE)
/obj/item/melee/baton/loaded //this one starts with a cell pre-installed.
preload_cell_type = /obj/item/stock_parts/cell/high/plus
@@ -387,8 +388,9 @@
/obj/item/melee/baton/boomerang/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
if(turned_on)
var/caught = hit_atom.hitby(src, FALSE, FALSE, throwingdatum=throwingdatum)
- if(ishuman(hit_atom) && !caught && prob(throw_hit_chance) && thrownby)//if they are a carbon and they didn't catch it
- baton_stun(hit_atom, thrownby, shoving = TRUE)
+ var/mob/thrown_by = thrownby?.resolve()
+ if(ishuman(hit_atom) && !caught && prob(throw_hit_chance) && thrown_by)//if they are a carbon and they didn't catch it
+ baton_stun(hit_atom, thrown_by, shoving = TRUE)
if(thrownby && !caught)
throw_back()
else
@@ -397,8 +399,9 @@
/obj/item/melee/baton/boomerang/proc/throw_back()
set waitfor = FALSE
sleep(1)
+ var/mob/thrown_by = thrownby?.resolve()
if(!QDELETED(src))
- throw_at(thrownby, throw_range+2, throw_speed, null, TRUE)
+ throw_at(thrown_by, throw_range+2, throw_speed, null, TRUE)
/obj/item/melee/baton/boomerang/update_icon()
if(turned_on)
diff --git a/code/game/objects/items/summon.dm b/code/game/objects/items/summon.dm
index b31cc7cbd6..6de3d80a82 100644
--- a/code/game/objects/items/summon.dm
+++ b/code/game/objects/items/summon.dm
@@ -431,7 +431,7 @@
src.rotation = rotation
// end animations
animate(atom, time = 0, flags = ANIMATION_END_NOW)
- return 0
+ return FALSE
// grab source
var/rel_x = (destination.x - relative_to.x) * world.icon_size + src.dist * sin(src.angle)
@@ -458,7 +458,7 @@
/datum/summon_weapon/proc/Rotate(degrees, time, rotation)
. = time
if(!dist)
- return 0
+ return FALSE
var/matrix/M = ConstructMatrix(angle + degrees, dist, rotation || src.rotation)
if(rotation)
src.rotation = rotation
diff --git a/code/game/objects/items/tanks/jetpack.dm b/code/game/objects/items/tanks/jetpack.dm
index 6a130acce6..a091993ff1 100644
--- a/code/game/objects/items/tanks/jetpack.dm
+++ b/code/game/objects/items/tanks/jetpack.dm
@@ -50,7 +50,7 @@
to_chat(user, "You turn the jetpack off. ")
for(var/X in actions)
var/datum/action/A = X
- A.UpdateButtonIcon()
+ A.UpdateButtons()
/obj/item/tank/jetpack/proc/turn_on(mob/user)
on = TRUE
diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm
index 7804abdc91..ad18d1049e 100644
--- a/code/game/objects/items/tanks/tanks.dm
+++ b/code/game/objects/items/tanks/tanks.dm
@@ -247,19 +247,19 @@
air_contents.merge(giver)
check_status()
- return 1
+ return TRUE
/obj/item/tank/assume_air_moles(datum/gas_mixture/giver, moles)
giver.transfer_to(air_contents, moles)
check_status()
- return 1
+ return TRUE
/obj/item/tank/assume_air_ratio(datum/gas_mixture/giver, ratio)
giver.transfer_ratio_to(air_contents, ratio)
check_status()
- return 1
+ return TRUE
/obj/item/tank/proc/remove_air_volume(volume_to_return)
if(!air_contents)
@@ -281,7 +281,7 @@
//Handle exploding, leaking, and rupturing of the tank
if(!air_contents)
- return 0
+ return FALSE
var/pressure = air_contents.return_pressure()
var/temperature = air_contents.return_temperature()
diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm
index 188a8763cd..db895bbcd7 100644
--- a/code/game/objects/items/tanks/watertank.dm
+++ b/code/game/objects/items/tanks/watertank.dm
@@ -26,7 +26,7 @@
/obj/item/watertank/item_action_slot_check(slot, mob/user, datum/action/A)
if(slot == user.getBackSlot())
- return 1
+ return TRUE
/obj/item/watertank/proc/toggle_mister(mob/living/user)
if(!istype(user))
@@ -88,7 +88,7 @@
/obj/item/watertank/attackby(obj/item/W, mob/user, params)
if(W == noz)
remove_noz()
- return 1
+ return TRUE
else
return ..()
@@ -349,7 +349,7 @@
/obj/item/reagent_containers/chemtank/item_action_slot_check(slot, mob/user, datum/action/A)
if(slot == ITEM_SLOT_BACK)
- return 1
+ return TRUE
/obj/item/reagent_containers/chemtank/proc/toggle_injection()
var/mob/living/carbon/human/user = usr
diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm
index 5bd7217484..0c8e0db987 100644
--- a/code/game/objects/items/tools/weldingtool.dm
+++ b/code/game/objects/items/tools/weldingtool.dm
@@ -212,8 +212,8 @@
if(get_fuel() <= 0 && welding)
switched_on(user)
update_icon()
- return 0
- return 1
+ return FALSE
+ return TRUE
//Switches the welder on
/obj/item/weldingtool/proc/switched_on(mob/user)
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 92c1351fde..b05abdc49a 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -160,10 +160,10 @@
if(istype(A, /obj/item/toy/ammo/gun))
if (src.bullets >= 7)
to_chat(user, "It's already fully loaded! ")
- return 1
+ return TRUE
if (A.amount_left <= 0)
to_chat(user, "There are no more caps! ")
- return 1
+ return TRUE
if (A.amount_left < (7 - src.bullets))
src.bullets += A.amount_left
to_chat(user, text("You reload [] cap\s. ", A.amount_left))
@@ -173,7 +173,7 @@
A.amount_left -= 7 - src.bullets
src.bullets = 7
A.update_icon()
- return 1
+ return TRUE
else
return ..()
diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm
index 71aafe9a1e..831041db91 100644
--- a/code/game/objects/obj_defense.dm
+++ b/code/game/objects/obj_defense.dm
@@ -23,12 +23,12 @@
//returns the damage value of the attack after processing the obj's various armor protections
/obj/proc/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir, armour_penetration = 0)
if(damage_flag == MELEE && damage_amount < damage_deflection) // TODO: Refactor armor datums and types entirely jfc
- return 0
+ return FALSE
switch(damage_type)
if(BRUTE)
if(BURN)
else
- return 0
+ return FALSE
var/armor_protection = 0
if(damage_flag)
armor_protection = armor.getRating(damage_flag)
@@ -107,8 +107,8 @@
else
playsound(src, 'sound/effects/bang.ogg', 50, 1)
take_damage(hulk_damage(), BRUTE, MELEE, 0, get_dir(src, user))
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/blob_act(obj/structure/blob/B)
if(isturf(loc))
@@ -135,7 +135,7 @@
return
if(!M.melee_damage_upper && !M.obj_damage)
M.emote("custom", message = "[M.friendly_verb_continuous] [src].")
- return 0
+ return FALSE
else
var/play_soundeffect = 1
if(M.environment_smash)
@@ -187,7 +187,7 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e
/obj/acid_act(acidpwr, acid_volume)
if(!(resistance_flags & UNACIDABLE) && acid_volume)
AddComponent(/datum/component/acid, acidpwr, acid_volume)
- return 1
+ return TRUE
//called when the obj is destroyed by acid.
/obj/proc/acid_melt()
@@ -201,7 +201,7 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e
if(acid)
return acid.level
else
- return 0
+ return FALSE
//// FIRE
@@ -216,7 +216,7 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e
resistance_flags |= ON_FIRE
SSfire_burning.processing[src] = src
update_icon()
- return 1
+ return TRUE
//called when the obj is destroyed by fire
/obj/proc/burn()
@@ -232,7 +232,7 @@ GLOBAL_DATUM_INIT(acid_overlay, /mutable_appearance, mutable_appearance('icons/e
/obj/zap_act(power, zap_flags, shocked_targets)
if(QDELETED(src))
- return 0
+ return FALSE
obj_flags |= BEING_SHOCKED
addtimer(CALLBACK(src, PROC_REF(reset_shocked)), 10)
return power / 2
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index cfe1afad5a..10b8c04367 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -271,7 +271,7 @@
. = !density
/obj/proc/check_uplink_validity()
- return 1
+ return TRUE
/obj/vv_get_dropdown()
. = ..()
diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm
index 85ee3f9f56..9d34e5e659 100644
--- a/code/game/objects/structures/ai_core.dm
+++ b/code/game/objects/structures/ai_core.dm
@@ -1,4 +1,6 @@
-/obj/structure/AIcore
+#define AI_CORE_BRAIN(X) X.braintype == "Android" ? "brain" : "MMI"
+
+/obj/structure/ai_core
density = TRUE
anchored = FALSE
name = "\improper AI core"
@@ -8,28 +10,76 @@
max_integrity = 500
var/state = 0
var/datum/ai_laws/laws
- var/obj/item/circuitboard/circuit = null
- var/obj/item/mmi/brain = null
- var/can_deconstruct = TRUE
+ var/obj/item/circuitboard/aicore/circuit = null
+ var/obj/item/mmi/core_mmi
-/obj/structure/AIcore/Initialize(mapload)
+/obj/structure/ai_core/Initialize(mapload)
. = ..()
laws = new
laws.set_laws_config()
-/obj/structure/AIcore/Destroy()
- if(circuit)
- qdel(circuit)
+/obj/structure/ai_core/examine(mob/user)
+ . = ..()
+ if(!anchored)
+ if(state != EMPTY_CORE)
+ . += span_notice("It has some bolts that could be tightened.")
+ else
+ . += span_notice("It has some bolts that could be tightened. The frame can be melted down.")
+ else
+ switch(state)
+ if(EMPTY_CORE)
+ . += span_notice("There is a slot for a circuit board, its bolts can be loosened.")
+ if(CIRCUIT_CORE)
+ . += span_notice("The circuit board can be screwed into place or pried out.")
+ if(SCREWED_CORE)
+ . += span_notice("The frame can be wired , the circuit board can be unfastened .")
+ if(CABLED_CORE)
+ if(!core_mmi)
+ . += span_notice("There are wires which could be hooked up to an MMI or positronic brain , or cut .")
+ else
+ var/accept_laws = TRUE
+ if(core_mmi.laws.id != DEFAULT_AI_LAWID || !core_mmi.brainmob || !core_mmi.brainmob?.mind)
+ accept_laws = FALSE
+ . += span_notice("There is a slot for a reinforced glass panel, the [AI_CORE_BRAIN(core_mmi)] could be pried out.[accept_laws ? " A law module can be swiped across." : ""]")
+ if(GLASS_CORE)
+ . += span_notice("The monitor [core_mmi?.brainmob?.mind && !core_mmi?.brainmob?.suiciding ? "and neural interface " : ""]can be screwed in, the panel can be pried out.")
+ if(AI_READY_CORE)
+ . += span_notice("The monitor's connection can be cut [core_mmi?.brainmob?.mind && !core_mmi?.brainmob?.suiciding ? " the neural interface can be screwed in." : "."]")
+
+/obj/structure/ai_core/handle_atom_del(atom/A)
+ if(A == circuit)
circuit = null
- if(brain)
- qdel(brain)
- brain = null
+ if((state != GLASS_CORE) && (state != AI_READY_CORE))
+ state = EMPTY_CORE
+ update_appearance()
+ if(A == core_mmi)
+ core_mmi = null
return ..()
-/obj/structure/AIcore/latejoin_inactive
- name = "Networked AI core"
+/obj/structure/ai_core/Destroy()
+ QDEL_NULL(circuit)
+ QDEL_NULL(core_mmi)
+ QDEL_NULL(laws)
+ return ..()
+
+/obj/structure/ai_core/deactivated
+ icon_state = "ai-empty"
+ anchored = TRUE
+ state = AI_READY_CORE
+
+/obj/structure/ai_core/deactivated/Initialize(mapload, posibrain = FALSE)
+ . = ..()
+ circuit = new(src)
+ if(posibrain)
+ core_mmi = new/obj/item/mmi/posibrain(src)
+ else
+ core_mmi = new(src)
+ core_mmi.brain = new(core_mmi)
+ core_mmi.update_appearance()
+
+/obj/structure/ai_core/latejoin_inactive
+ name = "networked AI core"
desc = "This AI core is connected by bluespace transmitters to NTNet, allowing for an AI personality to be downloaded to it on the fly mid-shift."
- can_deconstruct = FALSE
icon_state = "ai-empty"
anchored = TRUE
state = AI_READY_CORE
@@ -37,11 +87,24 @@
var/safety_checks = TRUE
var/active = TRUE
-/obj/structure/AIcore/latejoin_inactive/examine(mob/user)
+/obj/structure/ai_core/latejoin_inactive/Initialize(mapload)
. = ..()
- . += "Its transmitter seems to be [active? "on" : "off"]."
+ circuit = new(src)
+ core_mmi = new(src)
+ core_mmi.brain = new(core_mmi)
+ core_mmi.update_appearance()
+ GLOB.latejoin_ai_cores += src
-/obj/structure/AIcore/latejoin_inactive/proc/is_available() //If people still manage to use this feature to spawn-kill AI latejoins ahelp them.
+/obj/structure/ai_core/latejoin_inactive/Destroy()
+ GLOB.latejoin_ai_cores -= src
+ return ..()
+
+/obj/structure/ai_core/latejoin_inactive/examine(mob/user)
+ . = ..()
+ . += "Its transmitter seems to be [active? "on" : "off"] ."
+ . += span_notice("You could [active? "deactivate" : "activate"] it with a multitool.")
+
+/obj/structure/ai_core/latejoin_inactive/proc/is_available() //If people still manage to use this feature to spawn-kill AI latejoins ahelp them.
if(!available)
return FALSE
if(!safety_checks)
@@ -56,42 +119,61 @@
return FALSE
if(!SSmapping.level_trait(T.z,ZTRAIT_STATION))
return FALSE
- if(!istype(T, /turf/open/floor))
+ if(!isfloorturf(T))
return FALSE
return TRUE
-/obj/structure/AIcore/latejoin_inactive/attackby(obj/item/P, mob/user, params)
+/obj/structure/ai_core/latejoin_inactive/attackby(obj/item/P, mob/user, params)
if(P.tool_behaviour == TOOL_MULTITOOL)
active = !active
to_chat(user, "You [active? "activate" : "deactivate"] [src]'s transmitters.")
return
return ..()
-/obj/structure/AIcore/latejoin_inactive/Initialize(mapload)
+/obj/structure/ai_core/wrench_act(mob/living/user, obj/item/tool)
. = ..()
- GLOB.latejoin_ai_cores += src
+ default_unfasten_wrench(user, tool)
+ return TRUE
-/obj/structure/AIcore/latejoin_inactive/Destroy()
- GLOB.latejoin_ai_cores -= src
- return ..()
+/obj/structure/ai_core/screwdriver_act(mob/living/user, obj/item/tool)
+ . = ..()
+ if(state == AI_READY_CORE)
+ if(!core_mmi)
+ balloon_alert(user, "no brain installed!")
+ return TRUE
+ else if(!core_mmi.brainmob?.mind || core_mmi.brainmob?.suiciding)
+ balloon_alert(user, "brain is inactive!")
+ return TRUE
+ else
+ balloon_alert(user, "connecting neural network...")
+ if(!tool.use_tool(src, user, 10 SECONDS))
+ return TRUE
+ if(!ai_structure_to_mob())
+ return TRUE
+ balloon_alert(user, "connected neural network")
+ return TRUE
-/obj/structure/AIcore/attackby(obj/item/P, mob/user, params)
- if(P.tool_behaviour == TOOL_WRENCH)
- return default_unfasten_wrench(user, P, 20)
+/obj/structure/ai_core/attackby(obj/item/P, mob/user, params)
if(!anchored)
- if(P.tool_behaviour == TOOL_WELDER && can_deconstruct)
+ if(P.tool_behaviour == TOOL_WELDER)
if(state != EMPTY_CORE)
- to_chat(user, "The core must be empty to deconstruct it! ")
+ balloon_alert(user, "core must be empty to deconstruct it!")
return
if(!P.tool_start_check(user, amount=0))
return
- to_chat(user, "You start to deconstruct the frame... ")
+ balloon_alert(user, "deconstructing frame...")
if(P.use_tool(src, user, 20, volume=50) && state == EMPTY_CORE)
- to_chat(user, "You deconstruct the frame. ")
+ balloon_alert(user, "deconstructed frame")
deconstruct(TRUE)
return
+ else
+ if(user.a_intent != INTENT_HARM)
+ balloon_alert(user, "bolt it down first!")
+ return
+ else
+ return ..()
else
switch(state)
if(EMPTY_CORE)
@@ -99,7 +181,7 @@
if(!user.transferItemToLoc(P, src))
return
playsound(loc, 'sound/items/deconstruct.ogg', 50, 1)
- to_chat(user, "You place the circuit board inside the frame. ")
+ balloon_alert(user, "circuit board inserted")
update_icon()
state = CIRCUIT_CORE
circuit = P
@@ -107,13 +189,13 @@
if(CIRCUIT_CORE)
if(P.tool_behaviour == TOOL_SCREWDRIVER)
P.play_tool_sound(src)
- to_chat(user, "You screw the circuit board into place. ")
+ balloon_alert(user, "board screwed into place")
state = SCREWED_CORE
update_icon()
return
if(P.tool_behaviour == TOOL_CROWBAR)
P.play_tool_sound(src)
- to_chat(user, "You remove the circuit board. ")
+ balloon_alert(user, "circuit board removed")
state = EMPTY_CORE
update_icon()
circuit.forceMove(loc)
@@ -122,7 +204,7 @@
if(SCREWED_CORE)
if(P.tool_behaviour == TOOL_SCREWDRIVER && circuit)
P.play_tool_sound(src)
- to_chat(user, "You unfasten the circuit board. ")
+ balloon_alert(user, "circuit board unfastened")
state = CIRCUIT_CORE
update_icon()
return
@@ -130,61 +212,73 @@
var/obj/item/stack/cable_coil/C = P
if(C.get_amount() >= 5)
playsound(loc, 'sound/items/deconstruct.ogg', 50, 1)
- to_chat(user, "You start to add cables to the frame... ")
- if(do_after(user, 20, target = src) && state == SCREWED_CORE && C.use_tool(src, user, 0, 5))
- to_chat(user, "You add cables to the frame. ")
+ balloon_alert(user, "adding cables to frame...")
+ if(do_after(user, 20, target = src) && state == SCREWED_CORE && C.use(5))
+ balloon_alert(user, "added cables to frame.")
state = CABLED_CORE
update_icon()
else
- to_chat(user, "You need five lengths of cable to wire the AI core! ")
+ balloon_alert(user, "need five lengths of cable!")
return
if(CABLED_CORE)
if(P.tool_behaviour == TOOL_WIRECUTTER)
- if(brain)
- to_chat(user, "Get that [brain.name] out of there first! ")
+ if(core_mmi)
+ balloon_alert(user, "remove the [AI_CORE_BRAIN(core_mmi)] first!")
else
P.play_tool_sound(src)
- to_chat(user, "You remove the cables. ")
+ balloon_alert(user, "cables removed")
state = SCREWED_CORE
update_icon()
new /obj/item/stack/cable_coil(drop_location(), 5)
return
if(istype(P, /obj/item/stack/sheet/rglass))
+ if(!core_mmi)
+ balloon_alert(user, "add a brain first!")
+ return
var/obj/item/stack/sheet/rglass/G = P
if(G.get_amount() >= 2)
playsound(loc, 'sound/items/deconstruct.ogg', 50, 1)
- to_chat(user, "You start to put in the glass panel... ")
+ balloon_alert(user, "adding glass panel...")
if(do_after(user, 20, target = src) && state == CABLED_CORE && G.use(2))
- to_chat(user, "You put in the glass panel. ")
+ balloon_alert(user, "added glass panel")
state = GLASS_CORE
update_icon()
else
- to_chat(user, "You need two sheets of reinforced glass to insert them into the AI core! ")
+ balloon_alert(user, "need two sheets of reinforced glass!")
return
- if(istype(P, /obj/item/aiModule))
- if(brain && brain.laws.id != DEFAULT_AI_LAWID)
- to_chat(user, "The installed [brain.name] already has set laws! ")
+ if(istype(P, /obj/item/ai_module))
+ if(!core_mmi)
+ balloon_alert(user, "no brain installed!")
return
- var/obj/item/aiModule/module = P
+ if(!core_mmi.brainmob || !core_mmi.brainmob?.mind || core_mmi.brainmob?.suiciding)
+ balloon_alert(user, "[AI_CORE_BRAIN(core_mmi)] is inactive!")
+ return
+ if(core_mmi.laws.id != DEFAULT_AI_LAWID)
+ balloon_alert(user, "[AI_CORE_BRAIN(core_mmi)] already has set laws!")
+ return
+ var/obj/item/ai_module/module = P
module.install(laws, user)
return
- if(istype(P, /obj/item/mmi) && !brain)
+ if(istype(P, /obj/item/mmi) && !core_mmi)
var/obj/item/mmi/M = P
- if(!M.brainmob)
- to_chat(user, "Sticking an empty [M.name] into the frame would sort of defeat the purpose! ")
- return
- if(M.brainmob.stat == DEAD)
- to_chat(user, "Sticking a dead [M.name] into the frame would sort of defeat the purpose! ")
- return
+ if(!M.brain_check(user))
+ var/install = tgui_alert(user, "This [AI_CORE_BRAIN(M)] is inactive, would you like to make an inactive AI?", "Installing AI [AI_CORE_BRAIN(M)]", list("Yes", "No"))
+ if(install != "Yes")
+ return
+ if(M.brainmob?.suiciding)
+ to_chat(user, span_warning("[M.name] is completely useless!"))
+ return
+ if(!user.transferItemToLoc(M, src))
+ return
+ core_mmi = M
+ balloon_alert(user, "added [AI_CORE_BRAIN(core_mmi)] to frame")
+ update_appearance()
- if(!M.brainmob.client)
- to_chat(user, "Sticking an inactive [M.name] into the frame would sort of defeat the purpose. ")
- return
-
- if(!CONFIG_GET(flag/allow_ai) || (jobban_isbanned(M.brainmob, "AI") && !QDELETED(src) && !QDELETED(user) && !QDELETED(M) && !QDELETED(user) && Adjacent(user)))
+ var/mob/living/brain/B = M.brainmob
+ if(!CONFIG_GET(flag/allow_ai) || (jobban_isbanned(B, "AI") && !QDELETED(src) && !QDELETED(user) && !QDELETED(M) && !QDELETED(user) && Adjacent(user)))
if(!QDELETED(M))
to_chat(user, "This [M.name] does not seem to fit! ")
return
@@ -196,47 +290,36 @@
if(!user.transferItemToLoc(M,src))
return
- brain = M
- to_chat(user, "You add [M.name] to the frame. ")
+ core_mmi = M
+ balloon_alert(user, "added [AI_CORE_BRAIN(core_mmi)] to frame")
update_icon()
return
- if(P.tool_behaviour == TOOL_CROWBAR && brain)
+ if(P.tool_behaviour == TOOL_CROWBAR && core_mmi)
P.play_tool_sound(src)
- to_chat(user, "You remove the brain. ")
- brain.forceMove(loc)
- brain = null
+ balloon_alert(user, "removed [AI_CORE_BRAIN(core_mmi)]")
+ core_mmi.forceMove(loc)
+ core_mmi = null
update_icon()
return
if(GLASS_CORE)
if(P.tool_behaviour == TOOL_CROWBAR)
P.play_tool_sound(src)
- to_chat(user, "You remove the glass panel. ")
+ balloon_alert(user, "removed glass panel")
state = CABLED_CORE
update_icon()
new /obj/item/stack/sheet/rglass(loc, 2)
return
if(P.tool_behaviour == TOOL_SCREWDRIVER)
+ if(core_mmi?.brainmob?.suiciding)
+ to_chat(user, span_warning("The brain installed is completely useless."))
+ return
P.play_tool_sound(src)
- to_chat(user, "You connect the monitor. ")
- if(brain)
- SSticker.mode.remove_antag_for_borging(brain.brainmob.mind)
- if(!istype(brain.laws, /datum/ai_laws/ratvar))
- remove_servant_of_ratvar(brain.brainmob, TRUE)
-
- var/mob/living/silicon/ai/A = null
-
- if (brain.overrides_aicore_laws)
- A = new /mob/living/silicon/ai(loc, brain.laws, brain.brainmob)
- else
- A = new /mob/living/silicon/ai(loc, laws, brain.brainmob)
-
- if(brain.force_replace_ai_name)
- A.fully_replace_character_name(A.name, brain.replacement_ai_name())
- SSblackbox.record_feedback("amount", "ais_created", 1)
- qdel(src)
+ balloon_alert(user, "connected monitor[core_mmi?.brainmob?.mind ? " and neural network" : ""]")
+ if(core_mmi.brainmob?.mind)
+ ai_structure_to_mob()
else
state = AI_READY_CORE
update_icon()
@@ -247,15 +330,39 @@
P.transfer_ai("INACTIVE", "AICARD", src, user)
return
- if(P.tool_behaviour == TOOL_SCREWDRIVER)
+ if(P.tool_behaviour == TOOL_WIRECUTTER)
P.play_tool_sound(src)
- to_chat(user, "You disconnect the monitor. ")
+ balloon_alert(user, "disconnected monitor")
state = GLASS_CORE
update_icon()
return
return ..()
-/obj/structure/AIcore/update_icon_state()
+/obj/structure/ai_core/proc/ai_structure_to_mob()
+ var/mob/living/brain/the_brainmob = core_mmi.brainmob
+ if(!the_brainmob.mind || the_brainmob.suiciding)
+ return FALSE
+ the_brainmob.mind.remove_antags_for_borging()
+ if(!the_brainmob.mind.has_ever_been_ai)
+ SSblackbox.record_feedback("amount", "ais_created", 1)
+ var/mob/living/silicon/ai/ai_mob = null
+
+ if(core_mmi.overrides_aicore_laws)
+ ai_mob = new /mob/living/silicon/ai(loc, core_mmi.laws, the_brainmob)
+ core_mmi.laws = null //MMI's law datum is being donated, so we need the MMI to let it go or the GC will eat it
+ else
+ ai_mob = new /mob/living/silicon/ai(loc, laws, the_brainmob)
+ laws = null //we're giving the new AI this datum, so let's not delete it when we qdel(src) 5 lines from now
+
+ if(core_mmi.force_replace_ai_name)
+ ai_mob.fully_replace_character_name(ai_mob.name, core_mmi.replacement_ai_name())
+ if(core_mmi.braintype == "Android")
+ ai_mob.posibrain_inside = TRUE
+ deadchat_broadcast(" has been brought online at [get_area_name(ai_mob, format_text = TRUE)] .", span_name("[ai_mob]"), follow_target = ai_mob, message_type = DEADCHAT_ANNOUNCEMENT)
+ qdel(src)
+ return TRUE
+
+/obj/structure/ai_core/update_icon_state()
switch(state)
if(EMPTY_CORE)
icon_state = "0"
@@ -264,7 +371,7 @@
if(SCREWED_CORE)
icon_state = "2"
if(CABLED_CORE)
- if(brain)
+ if(core_mmi)
icon_state = "3b"
else
icon_state = "3"
@@ -273,8 +380,8 @@
if(AI_READY_CORE)
icon_state = "ai-empty"
-/obj/structure/AIcore/deconstruct(disassembled = TRUE)
- if(state == GLASS_CORE)
+/obj/structure/ai_core/deconstruct(disassembled = TRUE)
+ if(state >= GLASS_CORE)
new /obj/item/stack/sheet/rglass(loc, 2)
if(state >= CABLED_CORE)
new /obj/item/stack/cable_coil(loc, 5)
@@ -284,13 +391,13 @@
new /obj/item/stack/sheet/plasteel(loc, 4)
qdel(src)
-/obj/structure/AIcore/deactivated
+/obj/structure/ai_core/deactivated
name = "inactive AI"
icon_state = "ai-empty"
anchored = TRUE
state = AI_READY_CORE
-/obj/structure/AIcore/deactivated/New()
+/obj/structure/ai_core/deactivated/New()
..()
circuit = new(src)
@@ -307,23 +414,38 @@ That prevents a few funky behaviors.
if(istype(card))
if(card.flush)
to_chat(user, "ERROR : AI flush is in progress, cannot execute transfer protocol.")
- return 0
- return 1
+ return FALSE
+ return TRUE
-/obj/structure/AIcore/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/aicard/card)
+/obj/structure/ai_core/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/aicard/card)
if(state != AI_READY_CORE || !..())
return
- //Transferring a carded AI to a core.
+ if(core_mmi && core_mmi.brainmob)
+ if(core_mmi.brainmob.mind)
+ to_chat(user, span_warning("[src] already contains an active mind!"))
+ return
+ else if(core_mmi.brainmob.suiciding)
+ to_chat(user, span_warning("[AI_CORE_BRAIN(core_mmi)] installed in [src] is completely useless!"))
+ return
+ //Transferring a carded AI to a core.
if(interaction == AI_TRANS_FROM_CARD)
- AI.control_disabled = 0
- AI.radio_enabled = 1
+ AI.control_disabled = FALSE
+ AI.radio_enabled = TRUE
AI.forceMove(loc) // to replace the terminal.
- to_chat(AI, "You have been uploaded to a stationary terminal. Remote device connection restored.")
- to_chat(user, "Transfer successful : [AI.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed.")
+ to_chat(AI, span_notice("You have been uploaded to a stationary terminal. Remote device connection restored."))
+ to_chat(user, "[span_boldnotice("Transfer successful")]: [AI.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed.")
card.AI = null
+ AI.battery = circuit.battery
+ if(core_mmi.braintype == "Android")
+ AI.posibrain_inside = TRUE
+ else
+ AI.posibrain_inside = FALSE
qdel(src)
else //If for some reason you use an empty card on an empty AI terminal.
- to_chat(user, "There is no AI loaded on this terminal!")
+ to_chat(user, span_alert("There is no AI loaded on this terminal."))
/obj/item/circuitboard/aicore
name = "AI core (AI Core Board)" //Well, duh, but best to be consistent
+ var/battery = 200 //backup battery for when the AI loses power. Copied to/from AI mobs when carding, and placed here to avoid recharge via deconning the core
+
+#undef AI_CORE_BRAIN
diff --git a/code/game/objects/structures/beds_chairs/alien_nest.dm b/code/game/objects/structures/beds_chairs/alien_nest.dm
index eff87d3955..762331c40e 100644
--- a/code/game/objects/structures/beds_chairs/alien_nest.dm
+++ b/code/game/objects/structures/beds_chairs/alien_nest.dm
@@ -48,7 +48,7 @@
unbuckle_mob(M)
add_fingerprint(user)
-/obj/structure/bed/nest/user_buckle_mob(mob/living/M, mob/living/carbon/user)
+/obj/structure/bed/nest/user_buckle_mob(mob/living/M, mob/living/carbon/user, check_loc)
if ( !ismob(M) || (get_dist(src, user) > 1) || (M.loc != src.loc) || !user.cuff_resist_check() || M.buckled )
return
diff --git a/code/game/objects/structures/beds_chairs/bed.dm b/code/game/objects/structures/beds_chairs/bed.dm
index 8f5e1c5079..5ed8c8ee02 100644
--- a/code/game/objects/structures/beds_chairs/bed.dm
+++ b/code/game/objects/structures/beds_chairs/bed.dm
@@ -87,7 +87,7 @@
R.loaded = src
forceMove(R)
user.visible_message("[user] collects [src].", "You collect [src]. ")
- return 1
+ return TRUE
else
return ..()
@@ -95,9 +95,9 @@
. = ..()
if(over_object == usr && Adjacent(usr))
if(!ishuman(usr) || !usr.canUseTopic(src, BE_CLOSE))
- return 0
+ return FALSE
if(has_buckled_mobs())
- return 0
+ return FALSE
usr.visible_message("[usr] collapses \the [src.name].", "You collapse \the [src.name]. ")
var/obj/structure/bed/roller/B = new foldabletype(get_turf(src))
usr.put_in_hands(B)
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index c80405872f..0176abd505 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -269,7 +269,7 @@
if(user in src)
return
if(src.tool_interact(W,user))
- return 1 // No afterattack
+ return TRUE // No afterattack
else
return ..()
@@ -396,7 +396,7 @@
close()
else
O.forceMove(T)
- return 1
+ return TRUE
/obj/structure/closet/relaymove(mob/living/user, direction)
if(user.stat || !isturf(loc))
diff --git a/code/game/objects/structures/crates_lockers/closets/bodybag.dm b/code/game/objects/structures/crates_lockers/closets/bodybag.dm
index 09441a577e..8cf85d7f1e 100644
--- a/code/game/objects/structures/crates_lockers/closets/bodybag.dm
+++ b/code/game/objects/structures/crates_lockers/closets/bodybag.dm
@@ -46,8 +46,8 @@
/obj/structure/closet/body_bag/close()
if(..())
density = FALSE
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/structure/closet/body_bag/handle_lock_addition()
return
@@ -59,11 +59,11 @@
. = ..()
if(over_object == usr && Adjacent(usr) && (in_range(src, usr) || usr.contents.Find(src)))
if(!ishuman(usr))
- return 0
+ return FALSE
if(opened)
- return 0
+ return FALSE
if(contents.len)
- return 0
+ return FALSE
visible_message("[usr] folds up [src]. ")
var/obj/item/bodybag/B = new foldedbag_path(get_turf(src))
usr.put_in_hands(B)
@@ -83,15 +83,15 @@
. = ..()
if(over_object == usr && Adjacent(usr) && (in_range(src, usr) || usr.contents.Find(src)))
if(!ishuman(usr))
- return 0
+ return FALSE
if(opened)
- return 0
+ return FALSE
if(contents.len >= mob_storage_capacity / 2)
to_chat(usr, "There are too many things inside of [src] to fold it up! ")
- return 0
+ return FALSE
for(var/obj/item/bodybag/bluespace/B in src)
to_chat(usr, "You can't recursively fold bluespace body bags! " )
- return 0
+ return FALSE
visible_message("[usr] folds up [src]. ")
var/obj/item/bodybag/B = new foldedbag_path(get_turf(src))
usr.put_in_hands(B)
diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm
index a5853f769e..14d28b17d3 100644
--- a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm
+++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm
@@ -35,7 +35,7 @@
/obj/structure/closet/cardboard/open()
if(opened || !can_open())
- return 0
+ return FALSE
var/list/alerted = null
if(egged < world.time)
var/mob/living/Snake = null
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
index 22996339ef..ef0dd5f2d5 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
@@ -10,7 +10,7 @@
/obj/structure/closet/secure_closet/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir)
if(damage_flag == MELEE && damage_amount < melee_min_damage)
- return 0
+ return FALSE
. = ..()
// Exists to work around the minimum 700 cr price for goodies / small items / materials
diff --git a/code/game/objects/structures/crates_lockers/crates/large.dm b/code/game/objects/structures/crates_lockers/crates/large.dm
index c376e63880..bc024202a9 100644
--- a/code/game/objects/structures/crates_lockers/crates/large.dm
+++ b/code/game/objects/structures/crates_lockers/crates/large.dm
@@ -34,7 +34,7 @@
qdel(src)
else
- if(user.a_intent == INTENT_HARM) //Only return ..() if intent is harm, otherwise return 0 or just end it.
+ if(user.a_intent == INTENT_HARM) //Only return ..() if intent is harm, otherwise return FALSE or just end it.
return ..() //Stops it from opening and turning invisible when items are used on it.
else
diff --git a/code/game/objects/structures/crates_lockers/crates/secure.dm b/code/game/objects/structures/crates_lockers/crates/secure.dm
index e60454a7ce..887ca6d09b 100644
--- a/code/game/objects/structures/crates_lockers/crates/secure.dm
+++ b/code/game/objects/structures/crates_lockers/crates/secure.dm
@@ -10,7 +10,7 @@
/obj/structure/closet/crate/secure/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir)
if(damage_flag == MELEE && damage_amount < 25)
- return 0
+ return FALSE
. = ..()
/obj/structure/closet/crate/secure/update_overlays()
diff --git a/code/game/objects/structures/destructible_structures.dm b/code/game/objects/structures/destructible_structures.dm
index cfed4561d4..de55ab8cb4 100644
--- a/code/game/objects/structures/destructible_structures.dm
+++ b/code/game/objects/structures/destructible_structures.dm
@@ -16,4 +16,4 @@
if(break_sound)
playsound(src, break_sound, 50, 1)
qdel(src)
- return 1
+ return TRUE
diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm
index 90224af8cc..d5efe63bb9 100644
--- a/code/game/objects/structures/ghost_role_spawners.dm
+++ b/code/game/objects/structures/ghost_role_spawners.dm
@@ -753,7 +753,7 @@
/datum/action/toggle_dead_chat_mob/Trigger()
if(!..())
- return 0
+ return FALSE
var/mob/M = target
if(HAS_TRAIT_FROM(M,TRAIT_SIXTHSENSE,GHOSTROLE_TRAIT))
REMOVE_TRAIT(M,TRAIT_SIXTHSENSE,GHOSTROLE_TRAIT)
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index 5b4b3a229f..925184b7c7 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -378,7 +378,7 @@
var/obj/item/stack/sheet/runed_metal/R = W
if(R.get_amount() < 1)
to_chat(user, "You need at least one sheet of runed metal to construct a runed wall! ")
- return 0
+ return FALSE
user.visible_message("[user] begins laying runed metal on [src]... ", "You begin constructing a runed wall... ")
if(do_after(user, 50, target = src))
if(R.get_amount() < 1)
@@ -452,7 +452,7 @@
var/obj/item/stack/sheet/bronze/B = W
if(B.get_amount() < 2)
to_chat(user, "You need at least two bronze sheets to build a bronze wall! ")
- return 0
+ return FALSE
user.visible_message("[user] begins plating [src] with bronze... ", "You begin constructing a bronze wall... ")
if(do_after(user, 50, target = src))
if(B.get_amount() < 2)
diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm
index 6ced11ee78..64f964a103 100644
--- a/code/game/objects/structures/grille.dm
+++ b/code/game/objects/structures/grille.dm
@@ -268,7 +268,7 @@
var/turf/T = get_turf(src)
var/obj/structure/cable/C = T.get_cable_node()
if(C)
- playsound(src, 'sound/magic/lightningshock.ogg', 100, 1, extrarange = 5)
+ playsound(src, 'sound/magic/lightningshock.ogg', 100, TRUE, extrarange = 5)
tesla_zap(src, 3, C.newavail() * 0.01, ZAP_MOB_DAMAGE | ZAP_OBJ_DAMAGE | ZAP_MOB_STUN | ZAP_ALLOW_DUPLICATES) //Zap for 1/100 of the amount of power. At a million watts in the grid, it will be as powerful as a tesla revolver shot.
C.add_delayedload(C.newavail() * 0.0375) // you can gain up to 3.5 via the 4x upgrades power is halved by the pole so thats 2x then 1X then .5X for 3.5x the 3 bounces shock.
return ..()
diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm
index 234c62cdef..bde567af1c 100644
--- a/code/game/objects/structures/janicart.dm
+++ b/code/game/objects/structures/janicart.dm
@@ -22,12 +22,12 @@
/obj/structure/janitorialcart/proc/wet_mop(obj/item/mop, mob/user)
if(reagents.total_volume < 1)
to_chat(user, "[src] is out of water! ")
- return 0
+ return FALSE
else
reagents.trans_to(mop, 5)
to_chat(user, "You wet [mop] in [src]. ")
playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
- return 1
+ return TRUE
/obj/structure/janitorialcart/proc/put_in_cart(obj/item/I, mob/user)
if(!user.transferItemToLoc(I, src))
@@ -110,7 +110,7 @@
if(!length(items))
return
- items = sortList(items)
+ items = sort_list(items)
var/pick = show_radial_menu(user, src, items, custom_check = CALLBACK(src, PROC_REF(check_menu), user), radius = 38, require_near = TRUE)
if(!pick)
return
diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm
index a37797045f..8c2655dd64 100644
--- a/code/game/objects/structures/kitchen_spike.dm
+++ b/code/game/objects/structures/kitchen_spike.dm
@@ -97,7 +97,7 @@
-/obj/structure/kitchenspike/user_buckle_mob(mob/living/M, mob/living/user) //Don't want them getting put on the rack other than by spiking
+/obj/structure/kitchenspike/user_buckle_mob(mob/living/M, mob/living/user, check_loc) //Don't want them getting put on the rack other than by spiking
return
/obj/structure/kitchenspike/user_unbuckle_mob(mob/living/buckled_mob, mob/living/carbon/human/user)
diff --git a/code/game/objects/structures/manned_turret.dm b/code/game/objects/structures/manned_turret.dm
index 0002fe9438..7f7574c2f3 100644
--- a/code/game/objects/structures/manned_turret.dm
+++ b/code/game/objects/structures/manned_turret.dm
@@ -43,7 +43,7 @@
. = ..()
STOP_PROCESSING(SSfastprocess, src)
-/obj/machinery/manned_turret/user_buckle_mob(mob/living/M, mob/living/carbon/user)
+/obj/machinery/manned_turret/user_buckle_mob(mob/living/M, mob/living/carbon/user, check_loc)
if(user.incapacitated() || !istype(user))
return
M.forceMove(get_turf(src))
@@ -80,7 +80,7 @@
return FALSE
var/client/C = controller.client
if(C)
- var/atom/A = C.mouseObject
+ var/atom/A = C.mouse_object_ref?.resolve()
var/turf/T = get_turf(A)
if(istype(T)) //They're hovering over something in the map.
direction_track(controller, T)
diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm
index 69206f0d08..42a5a0d8cb 100644
--- a/code/game/objects/structures/morgue.dm
+++ b/code/game/objects/structures/morgue.dm
@@ -330,6 +330,17 @@ GLOBAL_LIST_EMPTY(crematoriums)
else
to_chat(user, "That's not connected to anything! ")
+/obj/structure/tray/attackby(obj/P, mob/user, params)
+ if(!istype(P, /obj/item/riding_offhand))
+ return ..()
+
+ var/obj/item/riding_offhand/riding_item = P
+ var/mob/living/carried_mob = riding_item.rider
+ if(carried_mob == user) //Piggyback user.
+ return
+ user.unbuckle_mob(carried_mob)
+ MouseDrop_T(carried_mob, user)
+
/obj/structure/tray/MouseDrop_T(atom/movable/O as mob|obj, mob/user)
if(!ismovable(O) || O.anchored || !Adjacent(user) || !user.Adjacent(O) || O.loc == user)
return
@@ -369,9 +380,9 @@ GLOBAL_LIST_EMPTY(crematoriums)
if(.)
return
if(locate(/obj/structure/table) in get_turf(mover))
- return 1
+ return TRUE
else
- return 0
+ return FALSE
/obj/structure/tray/m_tray/CanAStarPass(obj/item/card/id/ID, to_dir, atom/movable/caller)
. = !density
diff --git a/code/game/objects/structures/petrified_statue.dm b/code/game/objects/structures/petrified_statue.dm
index 97eadff5f6..13bd885413 100644
--- a/code/game/objects/structures/petrified_statue.dm
+++ b/code/game/objects/structures/petrified_statue.dm
@@ -78,28 +78,28 @@
/mob/living/carbon/human/petrify(statue_timer)
if(!isturf(loc))
- return 0
+ return FALSE
var/obj/structure/statue/petrified/S = new(loc, src, statue_timer)
S.name = "statue of [name]"
bleedsuppress = 1
S.copy_overlays(src)
var/newcolor = list(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0))
S.add_atom_colour(newcolor, FIXED_COLOUR_PRIORITY)
- return 1
+ return TRUE
/mob/living/carbon/monkey/petrify(statue_timer)
if(!isturf(loc))
- return 0
+ return FALSE
var/obj/structure/statue/petrified/S = new(loc, src, statue_timer)
S.name = "statue of a monkey"
S.icon_state = "monkey"
- return 1
+ return TRUE
/mob/living/simple_animal/pet/dog/corgi/petrify(statue_timer)
if(!isturf(loc))
- return 0
+ return FALSE
var/obj/structure/statue/petrified/S = new (loc, src, statue_timer)
S.name = "statue of a corgi"
S.icon_state = "corgi"
S.desc = "If it takes forever, I will wait for you..."
- return 1
+ return TRUE
diff --git a/code/game/objects/structures/plasticflaps.dm b/code/game/objects/structures/plasticflaps.dm
index e4d310b0a3..a8cdb517ca 100644
--- a/code/game/objects/structures/plasticflaps.dm
+++ b/code/game/objects/structures/plasticflaps.dm
@@ -77,24 +77,24 @@
var/obj/structure/bed/B = A
if(istype(A, /obj/structure/bed) && (B.has_buckled_mobs() || B.density))//if it's a bed/chair and is dense or someone is buckled, it will not pass
- return 0
+ return FALSE
if(istype(A, /obj/structure/closet/cardboard))
var/obj/structure/closet/cardboard/C = A
if(C.move_delay)
- return 0
+ return FALSE
if(ismecha(A))
- return 0
+ return FALSE
else if(isliving(A)) // You Shall Not Pass!
var/mob/living/M = A
if(isbot(A)) //Bots understand the secrets
- return 1
+ return TRUE
if(M.buckled && istype(M.buckled, /mob/living/simple_animal/bot/mulebot)) // mulebot passenger gets a free pass.
- return 1
+ return TRUE
if(!M.lying && !(SEND_SIGNAL(M, COMSIG_CHECK_VENTCRAWL)) && M.mob_size != MOB_SIZE_TINY) //If your not laying down, or a ventcrawler or a small creature, no pass.
- return 0
+ return FALSE
/obj/structure/plasticflaps/deconstruct(disassembled = TRUE)
if(!(flags_1 & NODECONSTRUCT_1))
diff --git a/code/game/objects/structures/reflector.dm b/code/game/objects/structures/reflector.dm
index acf7e19f75..bdb30aff2b 100644
--- a/code/game/objects/structures/reflector.dm
+++ b/code/game/objects/structures/reflector.dm
@@ -56,7 +56,7 @@
return ..(NORTH)
/obj/structure/reflector/proc/dir_map_to_angle(dir)
- return 0
+ return FALSE
/obj/structure/reflector/bullet_act(obj/item/projectile/P)
var/pdir = P.dir
diff --git a/code/game/objects/structures/spirit_board.dm b/code/game/objects/structures/spirit_board.dm
index 1b3093e4e7..514128a8b5 100644
--- a/code/game/objects/structures/spirit_board.dm
+++ b/code/game/objects/structures/spirit_board.dm
@@ -25,7 +25,7 @@
/obj/structure/spirit_board/proc/spirit_board_pick_letter(mob/M)
if(!spirit_board_checks(M))
- return 0
+ return FALSE
if(virgin)
virgin = 0
@@ -48,7 +48,7 @@
bonus = 10 //Give some other people a chance, hog.
if(next_use - bonus > world.time )
- return 0 //No feedback here, hiding the cooldown a little makes it harder to tell who's really picking letters.
+ return FALSE //No feedback here, hiding the cooldown a little makes it harder to tell who's really picking letters.
//lighting check
var/light_amount = 0
@@ -58,7 +58,7 @@
if(light_amount > 0.2)
to_chat(M, "It's too bright here to use [src.name]! ")
- return 0
+ return FALSE
//mobs in range check
var/users_in_range = 0
@@ -71,6 +71,6 @@
if(users_in_range < 2)
to_chat(M, "There aren't enough people to use the [src.name]! ")
- return 0
+ return FALSE
- return 1
+ return TRUE
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 667195a179..4c7d54ee40 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -124,11 +124,11 @@
. = . || (caller.pass_flags & PASSTABLE)
/obj/structure/table/proc/tableplace(mob/living/user, mob/living/pushed_mob)
- pushed_mob.forceMove(src.loc)
- pushed_mob.set_resting(TRUE, FALSE)
- pushed_mob.visible_message("[user] places [pushed_mob] onto [src]. ", \
- "[user] places [pushed_mob] onto [src]. ")
- log_combat(user, pushed_mob, "placed")
+ pushed_mob.forceMove(loc)
+ pushed_mob.set_resting(TRUE, TRUE)
+ pushed_mob.visible_message(span_notice("[user] places [pushed_mob] onto [src]."), \
+ span_notice("[user] places [pushed_mob] onto [src]."))
+ log_combat(user, pushed_mob, "places", null, "onto [src]")
/obj/structure/table/proc/tablepush(mob/living/user, mob/living/pushed_mob)
if(HAS_TRAIT(user, TRAIT_PACIFISM))
@@ -205,6 +205,30 @@
return
// If the tray IS empty, continue on (tray will be placed on the table like other items)
+ if(istype(I, /obj/item/riding_offhand))
+ var/obj/item/riding_offhand/riding_item = I
+ var/mob/living/carried_mob = riding_item.rider
+ if(carried_mob == user) //Piggyback user.
+ return
+ if(user.a_intent == INTENT_HARM)
+ user.unbuckle_mob(carried_mob)
+ tablelimbsmash(user, carried_mob)
+ else
+ var/tableplace_delay = 3.5 SECONDS
+ var/skills_space = ""
+ if(HAS_TRAIT(user, TRAIT_QUICKER_CARRY))
+ tableplace_delay = 2 SECONDS
+ skills_space = " expertly"
+ else if(HAS_TRAIT(user, TRAIT_QUICK_CARRY))
+ tableplace_delay = 2.75 SECONDS
+ skills_space = " quickly"
+ carried_mob.visible_message(span_notice("[user] begins to[skills_space] place [carried_mob] onto [src]..."),
+ span_userdanger("[user] begins to[skills_space] place [carried_mob] onto [src]..."))
+ if(do_after(user, tableplace_delay, target = carried_mob))
+ user.unbuckle_mob(carried_mob)
+ tableplace(user, carried_mob)
+ return TRUE
+
if(user.a_intent != INTENT_HARM && !(I.item_flags & ABSTRACT))
if(user.transferItemToLoc(I, drop_location()))
var/list/click_params = params2list(params)
@@ -717,11 +741,11 @@
/obj/structure/rack/CanPass(atom/movable/mover, turf/target)
if(src.density == 0) //Because broken racks -Agouri |TODO: SPRITE!|
- return 1
+ return TRUE
if(istype(mover) && (mover.pass_flags & PASSTABLE))
- return 1
+ return TRUE
else
- return 0
+ return FALSE
/obj/structure/rack/CanAStarPass(obj/item/card/id/ID, to_dir, atom/movable/caller)
. = !density
@@ -745,7 +769,7 @@
if(user.a_intent == INTENT_HARM)
return ..()
if(user.transferItemToLoc(W, drop_location()))
- return 1
+ return TRUE
/obj/structure/rack/attack_paw(mob/living/user)
attack_hand(user)
diff --git a/code/game/objects/structures/transit_tubes/station.dm b/code/game/objects/structures/transit_tubes/station.dm
index 376725b262..0819020d92 100644
--- a/code/game/objects/structures/transit_tubes/station.dm
+++ b/code/game/objects/structures/transit_tubes/station.dm
@@ -31,7 +31,7 @@
return ..()
/obj/structure/transit_tube/station/should_stop_pod(pod, from_dir)
- return 1
+ return TRUE
/obj/structure/transit_tube/station/Bumped(atom/movable/AM)
if(!pod_moving && open_status == STATION_TUBE_OPEN && ismob(AM) && AM.dir == boarding_dir)
@@ -132,8 +132,8 @@
if(open_status == STATION_TUBE_CLOSED && pod && pod.loc == loc)
pod.follow_tube()
pod_moving = 0
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/structure/transit_tube/station/process()
if(!pod_moving)
diff --git a/code/game/objects/structures/transit_tubes/transit_tube.dm b/code/game/objects/structures/transit_tubes/transit_tube.dm
index c8341c8834..be87c97759 100644
--- a/code/game/objects/structures/transit_tubes/transit_tube.dm
+++ b/code/game/objects/structures/transit_tubes/transit_tube.dm
@@ -54,7 +54,7 @@
// Called to check if a pod should stop upon entering this tube.
/obj/structure/transit_tube/proc/should_stop_pod(pod, from_dir)
- return 0
+ return FALSE
// Called when a pod stops in this tube section.
/obj/structure/transit_tube/proc/pod_stopped(pod, from_dir)
@@ -66,18 +66,18 @@
for(var/direction in tube_dirs)
if(direction == from_dir)
- return 1
+ return TRUE
- return 0
+ return FALSE
/obj/structure/transit_tube/proc/has_exit(in_dir)
for(var/direction in tube_dirs)
if(direction == in_dir)
- return 1
+ return TRUE
- return 0
+ return FALSE
diff --git a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm
index 0ae1aff68a..bb0682f078 100644
--- a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm
+++ b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm
@@ -83,7 +83,7 @@
/obj/structure/transit_tube_pod/Process_Spacemove()
if(moving) //No drifting while moving in the tubes
- return 1
+ return TRUE
else
return ..()
diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm
index aa3544fdee..3b20e2d3b2 100644
--- a/code/game/objects/structures/watercloset.dm
+++ b/code/game/objects/structures/watercloset.dm
@@ -597,7 +597,7 @@
busy = TRUE
if(!do_after(user, 4 SECONDS, src))
busy = FALSE
- return 1
+ return TRUE
busy = FALSE
SEND_SIGNAL(O, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
O.clean_blood()
@@ -609,7 +609,7 @@
reagents.reaction(O, TOUCH)
user.visible_message("[user] washes [O] using [src]. ", \
"You wash [O] using [src]. ")
- return 1
+ return TRUE
else
return ..()
diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm
index e94b23bccd..7c89d66382 100644
--- a/code/game/objects/structures/windoor_assembly.dm
+++ b/code/game/objects/structures/windoor_assembly.dm
@@ -69,7 +69,7 @@
if(get_dir(loc, T) == dir)
return !density
else
- return 1
+ return TRUE
/obj/structure/windoor_assembly/CheckExit(atom/movable/mover, turf/target)
if(mover.pass_flags & pass_flags_self)
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 17784c55dc..eee337d731 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -165,7 +165,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
if(.)
return
if(dir == FULLTILE_WINDOW_DIR)
- return 0 //full tile window, you can't move into it!
+ return FALSE //full tile window, you can't move into it!
var/attempted_dir = get_dir(loc, target)
if(attempted_dir == dir)
return
@@ -184,10 +184,10 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
/obj/structure/window/CheckExit(atom/movable/O, turf/target)
if(istype(O) && (O.pass_flags & PASSGLASS))
- return 1
+ return TRUE
if(get_dir(O.loc, target) == dir)
- return 0
- return 1
+ return FALSE
+ return TRUE
/obj/structure/window/attack_tk(mob/user)
user.DelayNextAction(CLICK_CD_MELEE)
@@ -197,7 +197,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
/obj/structure/window/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
if(!can_be_reached(user))
- return 1
+ return TRUE
. = ..()
/obj/structure/window/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
@@ -218,7 +218,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
/obj/structure/window/attackby(obj/item/I, mob/living/user, params)
if(!can_be_reached(user))
- return 1 //skip the afterattack
+ return TRUE //skip the afterattack
add_fingerprint(user)
@@ -454,8 +454,8 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
if(get_dir(user,src) & dir)
for(var/obj/O in loc)
if(!O.CanPass(user, user.loc, 1))
- return 0
- return 1
+ return FALSE
+ return TRUE
/obj/structure/window/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1)
. = ..()
diff --git a/code/game/say.dm b/code/game/say.dm
index c794d1c523..02067b33a2 100644
--- a/code/game/say.dm
+++ b/code/game/say.dm
@@ -45,7 +45,7 @@ GLOBAL_LIST_INIT(freqtospan, list(
M.playsound_local(T, vol = volume, vary = TRUE, frequency = pitch, max_distance = distance, falloff_distance = 0, falloff_exponent = BARK_SOUND_FALLOFF_EXPONENT(distance), S = vocal_bark, distance_multiplier = 1)
/atom/movable/proc/can_speak()
- return 1
+ return TRUE
/atom/movable/proc/send_speech(message, range = 7, atom/movable/source = src, bubble_type, list/spans, datum/language/message_language = null, message_mode)
var/rendered = compose_message(src, message_language, message, , spans, message_mode, source)
@@ -202,7 +202,7 @@ GLOBAL_LIST_INIT(freqtospan, list(
return "[src]" //Returns the atom's name, prepended with 'The' if it's not a proper noun
/atom/movable/proc/IsVocal()
- return 1
+ return TRUE
/atom/movable/proc/get_alt_name()
diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm
index ef3c6a91d9..5bae49aa91 100644
--- a/code/game/turfs/closed.dm
+++ b/code/game/turfs/closed.dm
@@ -37,7 +37,7 @@
return
/turf/closed/indestructible/acid_act(acidpwr, acid_volume, acid_id)
- return 0
+ return FALSE
/turf/closed/indestructible/Melt()
to_be_destroyed = FALSE
diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm
index e638033d85..8afb7d4edc 100644
--- a/code/game/turfs/open.dm
+++ b/code/game/turfs/open.dm
@@ -245,7 +245,7 @@
if(L.bodytemperature <= 50)
L.apply_status_effect(/datum/status_effect/freon)
MakeSlippery(TURF_WET_PERMAFROST, 50)
- return 1
+ return TRUE
/turf/open/proc/water_vapor_gas_act()
MakeSlippery(TURF_WET_WATER, min_wet_time = 100, wet_time_to_add = 50)
diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm
index da1cf68d40..e728d1ee60 100644
--- a/code/game/turfs/simulated/floor.dm
+++ b/code/game/turfs/simulated/floor.dm
@@ -157,7 +157,7 @@
/turf/open/floor/is_shielded()
for(var/obj/structure/A in contents)
if(A.level == 3)
- return 1
+ return TRUE
/turf/open/floor/blob_act(obj/structure/blob/B)
return
@@ -212,12 +212,12 @@
/turf/open/floor/attackby(obj/item/C, mob/user, params)
if(!C || !user)
- return 1
+ return TRUE
if(..())
- return 1
+ return TRUE
if(intact && istype(C, /obj/item/stack/tile))
try_replace_tile(C, user, params)
- return 0
+ return FALSE
/turf/open/floor/crowbar_act(mob/living/user, obj/item/I)
return intact ? FORCE_BOOLEAN(pry_tile(I, user)) : FALSE
diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm
index a7d3cda389..fd3ba4bcce 100644
--- a/code/game/turfs/simulated/floor/fancy_floor.dm
+++ b/code/game/turfs/simulated/floor/fancy_floor.dm
@@ -258,7 +258,7 @@
/turf/open/floor/carpet/update_icon()
if(!..())
- return 0
+ return FALSE
if(!broken && !burnt)
if(smooth)
queue_smooth(src)
diff --git a/code/game/turfs/simulated/floor/mineral_floor.dm b/code/game/turfs/simulated/floor/mineral_floor.dm
index b7266bfb16..498417e3f8 100644
--- a/code/game/turfs/simulated/floor/mineral_floor.dm
+++ b/code/game/turfs/simulated/floor/mineral_floor.dm
@@ -25,7 +25,7 @@
/turf/open/floor/mineral/update_icon()
if(!..())
- return 0
+ return FALSE
if(!broken && !burnt)
if( !(icon_state in icons) )
icon_state = initial(icon_state)
diff --git a/code/game/turfs/simulated/floor/plasteel_floor.dm b/code/game/turfs/simulated/floor/plasteel_floor.dm
index 614c63a14c..11c0ba4f4d 100644
--- a/code/game/turfs/simulated/floor/plasteel_floor.dm
+++ b/code/game/turfs/simulated/floor/plasteel_floor.dm
@@ -15,7 +15,7 @@
/turf/open/floor/plasteel/update_icon()
if(!..())
- return 0
+ return FALSE
if(!broken && !burnt)
icon_state = icon_regular_floor
diff --git a/code/game/turfs/simulated/lava.dm b/code/game/turfs/simulated/lava.dm
index 943f60e752..3cd08ff419 100644
--- a/code/game/turfs/simulated/lava.dm
+++ b/code/game/turfs/simulated/lava.dm
@@ -201,6 +201,7 @@
var/obj/structure/closet/burn_closet = burn_obj
for(var/burn_content in burn_closet.contents)
burn_stuff(burn_content)
+ return
var/mob/living/burn_living = burn_target
burn_living.update_fire()
diff --git a/code/game/turfs/simulated/wall/reinf_walls.dm b/code/game/turfs/simulated/wall/reinf_walls.dm
index 620c9adfc8..944934df75 100644
--- a/code/game/turfs/simulated/wall/reinf_walls.dm
+++ b/code/game/turfs/simulated/wall/reinf_walls.dm
@@ -75,25 +75,25 @@
d_state = SUPPORT_LINES
update_icon()
to_chat(user, "You cut the outer grille. ")
- return 1
+ return TRUE
if(SUPPORT_LINES)
if(W.tool_behaviour == TOOL_SCREWDRIVER)
to_chat(user, "You begin unsecuring the support lines... ")
if(W.use_tool(src, user, 40, volume=100))
if(!istype(src, /turf/closed/wall/r_wall) || d_state != SUPPORT_LINES)
- return 1
+ return TRUE
d_state = COVER
update_icon()
to_chat(user, "You unsecure the support lines. ")
- return 1
+ return TRUE
else if(W.tool_behaviour == TOOL_WIRECUTTER)
W.play_tool_sound(src, 100)
d_state = INTACT
update_icon()
to_chat(user, "You repair the outer grille. ")
- return 1
+ return TRUE
if(COVER)
if(W.tool_behaviour == TOOL_WELDER || istype(W, /obj/item/gun/energy/plasmacutter))
@@ -102,32 +102,32 @@
to_chat(user, "You begin slicing through the metal cover... ")
if(W.use_tool(src, user, 60, volume=100))
if(!istype(src, /turf/closed/wall/r_wall) || d_state != COVER)
- return 1
+ return TRUE
d_state = CUT_COVER
update_icon()
to_chat(user, "You press firmly on the cover, dislodging it. ")
- return 1
+ return TRUE
if(W.tool_behaviour == TOOL_SCREWDRIVER)
to_chat(user, "You begin securing the support lines... ")
if(W.use_tool(src, user, 40, volume=100))
if(!istype(src, /turf/closed/wall/r_wall) || d_state != COVER)
- return 1
+ return TRUE
d_state = SUPPORT_LINES
update_icon()
to_chat(user, "The support lines have been secured. ")
- return 1
+ return TRUE
if(CUT_COVER)
if(W.tool_behaviour == TOOL_CROWBAR)
to_chat(user, "You struggle to pry off the cover... ")
if(W.use_tool(src, user, 100, volume=100))
if(!istype(src, /turf/closed/wall/r_wall) || d_state != CUT_COVER)
- return 1
+ return TRUE
d_state = ANCHOR_BOLTS
update_icon()
to_chat(user, "You pry off the cover. ")
- return 1
+ return TRUE
if(W.tool_behaviour == TOOL_WELDER)
if(!W.tool_start_check(user, amount=0))
@@ -139,28 +139,28 @@
d_state = COVER
update_icon()
to_chat(user, "The metal cover has been welded securely to the frame. ")
- return 1
+ return TRUE
if(ANCHOR_BOLTS)
if(W.tool_behaviour == TOOL_WRENCH)
to_chat(user, "You start loosening the anchoring bolts which secure the support rods to their frame... ")
if(W.use_tool(src, user, 40, volume=100))
if(!istype(src, /turf/closed/wall/r_wall) || d_state != ANCHOR_BOLTS)
- return 1
+ return TRUE
d_state = SUPPORT_RODS
update_icon()
to_chat(user, "You remove the bolts anchoring the support rods. ")
- return 1
+ return TRUE
if(W.tool_behaviour == TOOL_CROWBAR)
to_chat(user, "You start to pry the cover back into place... ")
if(W.use_tool(src, user, 20, volume=100))
if(!istype(src, /turf/closed/wall/r_wall) || d_state != ANCHOR_BOLTS)
- return 1
+ return TRUE
d_state = CUT_COVER
update_icon()
to_chat(user, "The metal cover has been pried back into place. ")
- return 1
+ return TRUE
if(SUPPORT_RODS)
if(W.tool_behaviour == TOOL_WELDER || istype(W, /obj/item/gun/energy/plasmacutter))
@@ -169,32 +169,32 @@
to_chat(user, "You begin slicing through the support rods... ")
if(W.use_tool(src, user, 100, volume=100))
if(!istype(src, /turf/closed/wall/r_wall) || d_state != SUPPORT_RODS)
- return 1
+ return TRUE
d_state = SHEATH
update_icon()
to_chat(user, "You slice through the support rods. ")
- return 1
+ return TRUE
if(W.tool_behaviour == TOOL_WRENCH)
to_chat(user, "You start tightening the bolts which secure the support rods to their frame... ")
W.play_tool_sound(src, 100)
if(W.use_tool(src, user, 40))
if(!istype(src, /turf/closed/wall/r_wall) || d_state != SUPPORT_RODS)
- return 1
+ return TRUE
d_state = ANCHOR_BOLTS
update_icon()
to_chat(user, "You tighten the bolts anchoring the support rods. ")
- return 1
+ return TRUE
if(SHEATH)
if(W.tool_behaviour == TOOL_CROWBAR)
to_chat(user, "You struggle to pry off the outer sheath... ")
if(W.use_tool(src, user, 100, volume=100))
if(!istype(src, /turf/closed/wall/r_wall) || d_state != SHEATH)
- return 1
+ return TRUE
to_chat(user, "You pry off the outer sheath. ")
dismantle_wall()
- return 1
+ return TRUE
if(W.tool_behaviour == TOOL_WELDER)
if(!W.tool_start_check(user, amount=0))
@@ -206,8 +206,8 @@
d_state = SUPPORT_RODS
update_icon()
to_chat(user, "You weld the support rods back together. ")
- return 1
- return 0
+ return TRUE
+ return FALSE
/turf/closed/wall/r_wall/update_icon()
. = ..()
diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm
index 2df1606cb9..e9911fb02e 100644
--- a/code/game/turfs/space/space.dm
+++ b/code/game/turfs/space/space.dm
@@ -228,16 +228,16 @@
/turf/open/space/can_have_cabling()
if(locate(/obj/structure/lattice/catwalk, src))
- return 1
- return 0
+ return TRUE
+ return FALSE
/turf/open/space/is_transition_turf()
if(destination_x || destination_y || destination_z)
- return 1
+ return TRUE
/turf/open/space/acid_act(acidpwr, acid_volume)
- return 0
+ return FALSE
/turf/open/space/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir)
underlay_appearance.icon = 'icons/turf/space.dmi'
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index 826132e860..b9be8d2386 100755
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -476,11 +476,11 @@ GLOBAL_LIST_EMPTY(station_turfs)
var/atom/A
for(var/i in contents)
if(. <= 0)
- return 0
+ return FALSE
A = i
if(!QDELETED(A) && A.level >= affecting_level)
. = A.wave_explode(., explosion, dir)
- maptext = "[.]"
+ maptext = MAPTEXT("[.]")
/turf/narsie_act(force, ignore_mobs, probability = 20)
. = (prob(probability) || force)
diff --git a/code/modules/admin/DB_ban/functions.dm b/code/modules/admin/DB_ban/functions.dm
index b8d2452874..429d1fef5d 100644
--- a/code/modules/admin/DB_ban/functions.dm
+++ b/code/modules/admin/DB_ban/functions.dm
@@ -173,7 +173,7 @@
AH.Resolve() //with prejudice
if(banned_client && banned_client.ckey == ckey)
qdel(banned_client)
- return 1
+ return TRUE
/datum/admins/proc/DB_ban_unban(ckey, bantype, job = "")
diff --git a/code/modules/admin/NewBan.dm b/code/modules/admin/NewBan.dm
index 1a6f17efdf..ca307fbbbd 100644
--- a/code/modules/admin/NewBan.dm
+++ b/code/modules/admin/NewBan.dm
@@ -7,7 +7,7 @@ GLOBAL_PROTECT(Banlist)
if(!GLOB.Banlist) // if Banlist cannot be located for some reason
LoadBans() // try to load the bans
if(!GLOB.Banlist) // uh oh, can't find bans!
- return 0 // ABORT ABORT ABORT
+ return FALSE // ABORT ABORT ABORT
. = list()
var/appeal
@@ -20,7 +20,7 @@ GLOBAL_PROTECT(Banlist)
if (GLOB.Banlist["temp"])
if (!GetExp(GLOB.Banlist["minutes"]))
ClearTempbans()
- return 0
+ return FALSE
else
.["desc"] = "\nReason: [GLOB.Banlist["reason"]]\nExpires: [GetExp(GLOB.Banlist["minutes"])]\nBy: [GLOB.Banlist["bannedby"]] during round ID [GLOB.Banlist["roundid"]][appeal]"
else
@@ -47,18 +47,18 @@ GLOBAL_PROTECT(Banlist)
if(GLOB.Banlist["temp"])
if (!GetExp(GLOB.Banlist["minutes"]))
ClearTempbans()
- return 0
+ return FALSE
else
.["desc"] = "\nReason: [GLOB.Banlist["reason"]]\nExpires: [GetExp(GLOB.Banlist["minutes"])]\nBy: [GLOB.Banlist["bannedby"]] during round ID [GLOB.Banlist["roundid"]][appeal]"
else
.["desc"] = "\nReason: [GLOB.Banlist["reason"]]\nExpires: PERMENANT \nBy: [GLOB.Banlist["bannedby"]] during round ID [GLOB.Banlist["roundid"]][appeal]"
.["reason"] = matches
return .
- return 0
+ return FALSE
/proc/UpdateTime() //No idea why i made this a proc.
GLOB.CMinutes = (world.realtime / 10) / 60
- return 1
+ return TRUE
/proc/LoadBans()
if(!CONFIG_GET(flag/ban_legacy_system))
@@ -78,7 +78,7 @@ GLOBAL_PROTECT(Banlist)
GLOB.Banlist.cd = "/base"
ClearTempbans()
- return 1
+ return TRUE
/proc/ClearTempbans()
UpdateTime()
@@ -97,7 +97,7 @@ GLOBAL_PROTECT(Banlist)
if (GLOB.CMinutes >= GLOB.Banlist["minutes"])
RemoveBan(A)
- return 1
+ return TRUE
/proc/AddBan(key, computerid, reason, bannedby, temp, minutes, address)
@@ -111,7 +111,7 @@ GLOBAL_PROTECT(Banlist)
GLOB.Banlist.cd = "/base"
if ( GLOB.Banlist.dir.Find("[ban_ckey][computerid]") )
to_chat(usr, text("Ban already exists. "))
- return 0
+ return FALSE
else
GLOB.Banlist.dir.Add("[ban_ckey][computerid]")
GLOB.Banlist.cd = "/base/[ban_ckey][computerid]"
@@ -128,7 +128,7 @@ GLOBAL_PROTECT(Banlist)
create_message("note", key, bannedby, "Permanently banned - [reason]", null, null, 0, 0, null, 0, 0)
else
create_message("note", key, bannedby, "Banned for [minutes] minutes - [reason]", null, null, 0, 0, null, 0, 0)
- return 1
+ return TRUE
/proc/RemoveBan(foldername)
var/key
@@ -140,7 +140,7 @@ GLOBAL_PROTECT(Banlist)
GLOB.Banlist.cd = "/base"
if (!GLOB.Banlist.dir.Remove(foldername))
- return 0
+ return FALSE
if(!usr)
log_admin_private("Ban Expired: [key]")
@@ -157,13 +157,13 @@ GLOBAL_PROTECT(Banlist)
GLOB.Banlist.dir.Remove(A)
continue
- return 1
+ return TRUE
/proc/GetExp(minutes as num)
UpdateTime()
var/exp = minutes - GLOB.CMinutes
if (exp <= 0)
- return 0
+ return FALSE
else
var/timeleftstring
if (exp >= 1440) //1440 = 1 day in minutes
diff --git a/code/modules/admin/admin_investigate.dm b/code/modules/admin/admin_investigate.dm
index 52be445120..9343e716ef 100644
--- a/code/modules/admin/admin_investigate.dm
+++ b/code/modules/admin/admin_investigate.dm
@@ -22,7 +22,7 @@
else
logs_missing += "[subject] (empty)"
- var/list/combined = sortList(logs_present) + sortList(logs_missing)
+ var/list/combined = sort_list(logs_present) + sort_list(logs_missing)
var/selected = input("Investigate what?", "Investigate") as null|anything in combined
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index bc2be6c9d6..29c9aaebc5 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -18,6 +18,7 @@ GLOBAL_PROTECT(admin_verbs_default)
/client/proc/cmd_admin_pm_panel, /*admin-pm list*/
/client/proc/stop_sounds,
/client/proc/mark_datum_mapview,
+ /client/proc/tag_datum_mapview,
/client/proc/debugstatpanel
// /client/proc/fix_air /*resets air in designated radius to its default atmos composition*/
)
@@ -88,7 +89,8 @@ GLOBAL_PROTECT(admin_verbs_admin)
/client/proc/addbunkerbypass, //CIT
/client/proc/revokebunkerbypass, //CIT
/datum/admins/proc/open_borgopanel,
- /datum/admins/proc/change_laws //change AI laws
+ /datum/admins/proc/change_laws, //change AI laws
+ /datum/admins/proc/display_tags,
)
GLOBAL_LIST_INIT(admin_verbs_ban, list(/client/proc/unban_panel, /client/proc/DB_ban_panel, /client/proc/stickybanpanel))
GLOBAL_PROTECT(admin_verbs_ban)
@@ -692,7 +694,7 @@ GLOBAL_PROTECT(admin_verbs_hideable)
// if(!SStrading_card_game.loaded)
// message_admins("The card subsystem is not currently loaded")
// return
-// var/pack = input("Which pack should we test?", "You fucked it didn't you") as null|anything in sortList(SStrading_card_game.card_packs)
+// var/pack = input("Which pack should we test?", "You fucked it didn't you") as null|anything in sort_list(SStrading_card_game.card_packs)
// var/batchCount = input("How many times should we open it?", "Don't worry, I understand") as null|num
// var/batchSize = input("How many cards per batch?", "I hope you remember to check the validation") as null|num
// var/guar = input("Should we use the pack's guaranteed rarity? If so, how many?", "We've all been there. Man you should have seen the old system") as null|num
@@ -712,7 +714,7 @@ GLOBAL_PROTECT(admin_verbs_hideable)
var/type_length = length_char("/obj/effect/proc_holder/spell") + 2
for(var/A in GLOB.spells)
spell_list[copytext_char("[A]", type_length)] = A
- var/obj/effect/proc_holder/spell/S = input("Choose the spell to give to that guy", "ABRAKADABRA") as null|anything in sortList(spell_list)
+ var/obj/effect/proc_holder/spell/S = input("Choose the spell to give to that guy", "ABRAKADABRA") as null|anything in sort_list(spell_list)
if(!S)
return
@@ -733,7 +735,7 @@ GLOBAL_PROTECT(admin_verbs_hideable)
set desc = "Remove a spell from the selected mob."
if(T?.mind)
- var/obj/effect/proc_holder/spell/S = input("Choose the spell to remove", "NO ABRAKADABRA") as null|anything in sortList(T.mind.spell_list)
+ var/obj/effect/proc_holder/spell/S = input("Choose the spell to remove", "NO ABRAKADABRA") as null|anything in sort_list(T.mind.spell_list)
if(S)
T.mind.RemoveSpell(S)
log_admin("[key_name(usr)] removed the spell [S] from [key_name(T)].")
@@ -747,7 +749,7 @@ GLOBAL_PROTECT(admin_verbs_hideable)
if(!istype(T))
to_chat(src, "You can only give a disease to a mob of type /mob/living. ", confidential = TRUE)
return
- var/datum/disease/D = input("Choose the disease to give to that guy", "ACHOO") as null|anything in sortList(SSdisease.diseases, GLOBAL_PROC_REF(cmp_typepaths_asc))
+ var/datum/disease/D = input("Choose the disease to give to that guy", "ACHOO") as null|anything in sort_list(SSdisease.diseases, GLOBAL_PROC_REF(cmp_typepaths_asc))
if(!D)
return
T.ForceContractDisease(new D, FALSE, TRUE)
diff --git a/code/modules/admin/create_poll.dm b/code/modules/admin/create_poll.dm
index e5391f0f43..6bd4fd040e 100644
--- a/code/modules/admin/create_poll.dm
+++ b/code/modules/admin/create_poll.dm
@@ -29,7 +29,7 @@
if ("Instant Runoff Voting")
polltype = POLLTYPE_IRV
else
- return 0
+ return FALSE
var/starttime = SQLtime()
var/endtime = input("Set end time for poll as format YYYY-MM-DD HH:MM:SS. All times in server time. HH:MM:SS is optional and 24-hour. Must be later than starting time for obvious reasons.", "Set end time", SQLtime()) as text
if(!endtime)
@@ -117,7 +117,7 @@
if("Finish")
add_option = 0
else
- return 0
+ return FALSE
var/m1 = "[key_name(usr)] has created a new server poll. Poll type: [polltype] - Admin Only: [adminonly ? "Yes" : "No"] - Question: [question]"
var/m2 = "[key_name_admin(usr)] has created a new server poll. Poll type: [polltype] - Admin Only: [adminonly ? "Yes" : "No"] Question: [question]"
var/datum/db_query/query_polladd_question = SSdbcore.NewQuery({"
diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm
index 1430d5d77a..ea16283070 100644
--- a/code/modules/admin/holder2.dm
+++ b/code/modules/admin/holder2.dm
@@ -30,6 +30,9 @@ GLOBAL_PROTECT(href_token)
var/datum/filter_editor/filteriffic
+ /// A lazylist of tagged datums, for quick reference with the View Tags verb
+ var/list/tagged_datums
+
/datum/admins/CanProcCall(procname)
. = ..()
if(!check_rights(R_SENSITIVE))
@@ -137,21 +140,21 @@ GLOBAL_PROTECT(href_token)
/datum/admins/proc/check_for_rights(rights_required)
if(rights_required && !(rights_required & rank.rights))
- return 0
- return 1
+ return FALSE
+ return TRUE
/datum/admins/proc/check_if_greater_rights_than_holder(datum/admins/other)
if(!other)
- return 1 //they have no rights
+ return TRUE //they have no rights
if(rank.rights == R_EVERYTHING)
- return 1 //we have all the rights
+ return TRUE //we have all the rights
if(src == other)
- return 1 //you always have more rights than yourself
+ return TRUE //you always have more rights than yourself
if(rank.rights != other.rank.rights)
if( (rank.rights & other.rank.rights) == other.rank.rights )
- return 1 //we have all the rights they have and more
- return 0
+ return TRUE //we have all the rights they have and more
+ return FALSE
/datum/admins/vv_edit_var(var_name, var_value)
if(var_name == NAMEOF(src, fakekey))
@@ -161,7 +164,7 @@ GLOBAL_PROTECT(href_token)
/*
checks if usr is an admin with at least ONE of the flags in rights_required. (Note, they don't need all the flags)
if rights_required == 0, then it simply checks if they are an admin.
-if it doesn't return 1 and show_msg=1 it will prints a message explaining why the check has failed
+if it doesn't return TRUE and show_msg=1 it will prints a message explaining why the check has failed
generally it would be used like so:
/proc/admin_proc()
@@ -175,26 +178,26 @@ you will have to do something like if(client.rights & R_ADMIN) yourself.
/proc/check_rights(rights_required, show_msg=1)
if(usr && usr.client)
if (check_rights_for(usr.client, rights_required))
- return 1
+ return TRUE
else
if(show_msg)
to_chat(usr, "Error: You do not have sufficient rights to do that. You require one of the following flags:[rights2text(rights_required," ")]. ")
- return 0
+ return FALSE
//probably a bit iffy - will hopefully figure out a better solution
/proc/check_if_greater_rights_than(client/other)
if(usr && usr.client)
if(usr.client.holder)
if(!other || !other.holder)
- return 1
+ return TRUE
return usr.client.holder.check_if_greater_rights_than_holder(other.holder)
- return 0
+ return FALSE
//This proc checks whether subject has at least ONE of the rights specified in rights_required.
/proc/check_rights_for(client/subject, rights_required)
if(subject && subject.holder)
return subject.holder.check_for_rights(rights_required)
- return 0
+ return FALSE
/proc/GenerateToken()
. = ""
diff --git a/code/modules/admin/playtimes.dm b/code/modules/admin/playtimes.dm
index 7f9f5cf56c..fedd096974 100644
--- a/code/modules/admin/playtimes.dm
+++ b/code/modules/admin/playtimes.dm
@@ -32,7 +32,7 @@
clients += list(client)
- clients = sortList(clients, GLOBAL_PROC_REF(cmp_playtime))
+ clients = sort_list(clients, GLOBAL_PROC_REF(cmp_playtime))
data["clients"] = clients
return data
diff --git a/code/modules/admin/sound_emitter.dm b/code/modules/admin/sound_emitter.dm
index ad9c995aa1..388a8e42af 100644
--- a/code/modules/admin/sound_emitter.dm
+++ b/code/modules/admin/sound_emitter.dm
@@ -81,7 +81,7 @@
var/new_label = stripped_input(user, "Choose a new label.", "Sound Emitter")
if(!new_label)
return
- maptext = new_label
+ maptext = MAPTEXT(new_label)
to_chat(user, "Label set to [maptext]. ", confidential = TRUE)
if(href_list["edit_sound_file"])
var/new_file = input(user, "Choose a sound file.", "Sound Emitter") as null|sound
diff --git a/code/modules/admin/stickyban.dm b/code/modules/admin/stickyban.dm
index 57487f3144..c5c7a278d2 100644
--- a/code/modules/admin/stickyban.dm
+++ b/code/modules/admin/stickyban.dm
@@ -403,7 +403,7 @@
if (SSstickyban.dbcacheexpire)
return SSstickyban.dbcache.Copy()
- return sortList(world.GetConfig("ban"))
+ return sort_list(world.GetConfig("ban"))
/proc/get_stickyban_from_ckey(ckey)
diff --git a/code/modules/admin/tag.dm b/code/modules/admin/tag.dm
new file mode 100644
index 0000000000..b7fc297cd1
--- /dev/null
+++ b/code/modules/admin/tag.dm
@@ -0,0 +1,132 @@
+/**
+ * Inserts the target_datum into [/datum/admins/var/tagged_datums], for later reference.
+ *
+ * Arguments:
+ * * target_datum - The datum you want to create a tag for
+ */
+/datum/admins/proc/add_tagged_datum(datum/target_datum)
+ if(LAZYFIND(tagged_datums, target_datum))
+ to_chat(owner, span_warning("[target_datum] is already tagged!"))
+ return
+
+ LAZYADD(tagged_datums, target_datum)
+ RegisterSignal(target_datum, COMSIG_PARENT_QDELETING, .proc/handle_tagged_del, override = TRUE)
+ to_chat(owner, span_notice("[target_datum] has been tagged."))
+
+/// Get ahead of the curve with deleting
+/datum/admins/proc/handle_tagged_del(datum/source)
+ SIGNAL_HANDLER
+
+ // No point, we don't even care about it anymore.
+ if(!LAZYFIND(tagged_datums, source))
+ return
+
+ if(owner)
+ to_chat(owner, span_boldnotice("Tagged datum [source] ([source.type]) has been deleted."))
+ remove_tagged_datum(source, silent = TRUE)
+
+/**
+ * Attempts to remove the specified datum from [/datum/admins/var/tagged_datums] if it exists
+ *
+ * Arguments:
+ * * target_datum - The datum you want to remove from the tagged_datums list
+ * * silent - If TRUE, won't print messages to the owner's chat
+ */
+/datum/admins/proc/remove_tagged_datum(datum/target_datum, silent=FALSE)
+ if(!istype(target_datum))
+ return
+
+ if(LAZYFIND(tagged_datums, target_datum))
+ LAZYREMOVE(tagged_datums, target_datum)
+ if(!silent)
+ to_chat(owner, span_notice("[target_datum] has been untagged."))
+ else if(!silent)
+ to_chat(owner, span_warning("[target_datum] was not already tagged."))
+
+/// Quick define for readability
+#define TAGS_REFRESH "Refresh "
+#define TAGS_CLEAR "Untag all "
+
+#define TAG_DEL(X) "(UNTAG ) "
+#define TAG_MARK(X) "(MARK ) "
+#define TAG_SIMPLE_HEALTH(X) "Health: [X.health] "
+#define TAG_CARBON_HEALTH(X) "Health: [X.health] (\
+ [X.getBruteLoss()] \
+ [X.getFireLoss()] \
+ [X.getToxLoss()] \
+ [X.getOxyLoss()] \
+ [X.getCloneLoss() ? " [X.getCloneLoss()] " : ""])"
+
+/// Display all of the tagged datums
+/datum/admins/proc/display_tags()
+ set category = "Admin.Game"
+ set name = "View Tags"
+
+ if (!istype(src, /datum/admins))
+ src = usr.client.holder
+ if (!istype(src, /datum/admins))
+ to_chat(usr, "Error: you are not an admin!", confidential = TRUE)
+ return
+
+ var/index = 0
+ var/list/dat = list("Tag Menu ")
+
+ dat += " [TAGS_REFRESH] | [TAGS_CLEAR] "
+ if(LAZYLEN(tagged_datums))
+ for(var/datum/iter_datum as anything in tagged_datums)
+ index++
+ var/specific_info
+
+ if(isnull(iter_datum))
+ dat += "\t[index]: Null reference - Check runtime logs!"
+ stack_trace("Null datum found in tagged datum menu! User: [usr]")
+ continue
+ else if(iscarbon(iter_datum))
+ var/mob/living/carbon/resolved_carbon = iter_datum
+ specific_info = "[TAG_CARBON_HEALTH(resolved_carbon)] | [AREACOORD(resolved_carbon)] [ADMIN_PP(iter_datum)] [ADMIN_FLW(iter_datum)]"
+ else if(isliving(iter_datum))
+ var/mob/living/resolved_living = iter_datum
+ specific_info = "[TAG_SIMPLE_HEALTH(resolved_living)] | [AREACOORD(resolved_living)] [ADMIN_PP(iter_datum)] [ADMIN_FLW(iter_datum)]"
+ else if(ismob(iter_datum))
+ var/atom/resolved_atom = iter_datum // needed for ADMIN_JMP
+ specific_info = "[AREACOORD(resolved_atom)] [ADMIN_PP(iter_datum)] [ADMIN_FLW(iter_datum)]"
+ else if(ismovable(iter_datum))
+ var/atom/resolved_atom = iter_datum // needed for ADMIN_JMP
+ specific_info = "[AREACOORD(resolved_atom)] [ADMIN_FLW(iter_datum)]"
+ else if(isatom(iter_datum))
+ var/atom/resolved_atom = iter_datum // needed for ADMIN_JMP
+ specific_info = "[AREACOORD(resolved_atom)] [ADMIN_JMP(resolved_atom)]"
+ else if(istype(iter_datum, /datum/controller/subsystem))
+ var/datum/controller/subsystem/resolved_subsystem = iter_datum
+ specific_info = "[resolved_subsystem.stat_entry()]"
+ // else, it's just a /datum
+
+ dat += "\t[index]: [iter_datum] | [specific_info] | [ADMIN_VV(iter_datum)]| [TAG_DEL(iter_datum)] | [iter_datum == marked_datum ? "Marked " : TAG_MARK(iter_datum)] "
+ dat += "\t([iter_datum.type]) "
+ else
+ dat += "No datums tagged :("
+
+ dat = dat.Join(" ")
+ usr << browse(dat, "window=tag;size=800x480")
+
+/**
+ * Clears tagged datums
+ */
+/datum/admins/proc/clear_tags()
+ var/amount_of_tags = LAZYLEN(tagged_datums)
+ if(!amount_of_tags)
+ to_chat(owner, span_warning("There are no tagged datums to clear."))
+ return
+ var/confirmation = alert(usr, "Clear your tagged datums? ([amount_of_tags])", "Confirmation", "Yes", "No")
+ if(confirmation != "Yes")
+ return
+ LAZYNULL(tagged_datums)
+ to_chat(owner, span_notice("Tagged datums have been cleared, [amount_of_tags] item\s removed."))
+
+#undef TAGS_REFRESH
+#undef TAGS_CLEAR
+
+#undef TAG_DEL
+#undef TAG_MARK
+#undef TAG_SIMPLE_HEALTH
+#undef TAG_CARBON_HEALTH
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index cc143dcad0..c1bf537dd8 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1026,7 +1026,7 @@
to_chat(M, "The reason is: [reason] ")
to_chat(M, "This jobban will be lifted in [mins] minutes. ")
href_list["jobban2"] = 1 // lets it fall through and refresh
- return 1
+ return TRUE
if("No")
var/reason = input(usr,"Please State Reason For Banning [M.key].","Reason") as message|null
severity = input("Set the severity of the note/ban.", "Severity", null, null) as null|anything in list("High", "Medium", "Minor", "None")
@@ -1052,7 +1052,7 @@
to_chat(M, "The reason is: [reason] ")
to_chat(M, "Jobban can be lifted only upon request. ")
href_list["jobban2"] = 1 // lets it fall through and refresh
- return 1
+ return TRUE
if("Cancel")
return
@@ -1081,8 +1081,8 @@
message_admins("[key_name_admin(usr)] unbanned [key_name_admin(M)] from [msg]. ")
to_chat(M, "You have been un-jobbanned by [usr.client.key] from [msg]. ")
href_list["jobban2"] = 1 // lets it fall through and refresh
- return 1
- return 0 //we didn't do anything!
+ return TRUE
+ return FALSE //we didn't do anything!
else if(href_list["boot2"])
if(!check_rights(R_ADMIN))
@@ -1351,7 +1351,7 @@
for (var/rule in subtypesof(/datum/dynamic_ruleset/roundstart))
var/datum/dynamic_ruleset/roundstart/newrule = new rule()
roundstart_rules[newrule.name] = newrule
- var/added_rule = input(usr,"What ruleset do you want to force? This will bypass threat level and population restrictions.", "Rigging Roundstart", null) as null|anything in sortList(roundstart_rules)
+ var/added_rule = input(usr,"What ruleset do you want to force? This will bypass threat level and population restrictions.", "Rigging Roundstart", null) as null|anything in sort_list(roundstart_rules)
if (added_rule)
GLOB.dynamic_forced_roundstart_ruleset += roundstart_rules[added_rule]
log_admin("[key_name(usr)] set [added_rule] to be a forced roundstart ruleset.")
@@ -2705,6 +2705,31 @@
log_query_debug("[usr.key] | [response]")
else if(answer == "no")
log_query_debug("[usr.key] | Reported no server hang")
+ else if(href_list["del_tag"])
+ if(!check_rights(R_ADMIN))
+ return
+ var/datum/datum_to_remove = locate(href_list["del_tag"])
+ if(!datum_to_remove)
+ return
+ return remove_tagged_datum(datum_to_remove)
+
+ else if(href_list["show_tags"])
+ if(!check_rights(R_ADMIN))
+ return
+ return display_tags()
+
+ else if(href_list["clear_tags"])
+ if(!check_rights(R_ADMIN))
+ return
+ return clear_tags()
+
+ else if(href_list["mark_datum"])
+ if(!check_rights(R_ADMIN))
+ return
+ var/datum/datum_to_mark = locate(href_list["mark_datum"])
+ if(!datum_to_mark)
+ return
+ return usr.client?.mark_datum(datum_to_mark)
/datum/admins/proc/HandleCMode()
if(!check_rights(R_ADMIN))
diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm
index 3a708ef182..09219e05ee 100644
--- a/code/modules/admin/verbs/adminpm.dm
+++ b/code/modules/admin/verbs/adminpm.dm
@@ -30,7 +30,7 @@
targets["[T.mob.real_name](as [T.mob.name]) - [T]"] = T
else
targets["(No Mob) - [T]"] = T
- var/target = input(src,"To whom shall we send a message?","Admin PM",null) as null|anything in sortList(targets)
+ var/target = input(src,"To whom shall we send a message?","Admin PM",null) as null|anything in sort_list(targets)
cmd_admin_pm(targets[target],null)
SSblackbox.record_feedback("tally", "admin_verb", 1, "Admin PM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
diff --git a/code/modules/admin/verbs/borgpanel.dm b/code/modules/admin/verbs/borgpanel.dm
index ec03afff36..0cd8c5d20e 100644
--- a/code/modules/admin/verbs/borgpanel.dm
+++ b/code/modules/admin/verbs/borgpanel.dm
@@ -50,15 +50,12 @@
"lockdown" = borg.locked_down,
"scrambledcodes" = borg.scrambledcodes
)
- .["upgrades"] = list()
- for (var/upgradetype in subtypesof(/obj/item/borg/upgrade)-/obj/item/borg/upgrade/hypospray) //hypospray is a dummy parent for hypospray upgrades
- var/obj/item/borg/upgrade/upgrade = upgradetype
- if (initial(upgrade.module_type) && !is_type_in_list(borg.module, initial(upgrade.module_type))) // Upgrade requires a different module
- continue
- var/installed = FALSE
- if (locate(upgradetype) in borg)
- installed = TRUE
- .["upgrades"] += list(list("name" = initial(upgrade.name), "installed" = installed, "type" = upgradetype))
+ var/obj/item/gun/energy/kinetic_accelerator/kinetic_accelerator = locate(/obj/item/gun/energy/kinetic_accelerator) in borg.module
+ if(kinetic_accelerator)
+ .["ka_remaining_capacity"] = kinetic_accelerator.get_remaining_mod_capacity()
+ .["active_upgrades"] = list()
+ for (var/obj/item/borg/upgrade/upgrade as anything in borg.upgrades) // put a non-upgrade here, i dare you.
+ .["active_upgrades"] += list(list("type" = upgrade.type))
.["laws"] = borg.laws ? borg.laws.get_law_list(include_zeroth = TRUE, render_html = FALSE) : list()
.["channels"] = list()
for (var/k in GLOB.radiochannels)
@@ -77,6 +74,28 @@
for(var/mob/living/silicon/ai/ai in GLOB.ai_list)
.["ais"] += list(list("name" = ai.name, "ref" = REF(ai), "connected" = (borg.connected_ai == ai)))
+/datum/borgpanel/ui_static_data(mob/user)
+ . = ..()
+ .["upgrades"] = list()
+ for(var/obj/item/borg/upgrade/upgrade as anything in GLOB.borg_upgrades)
+ if(upgrade.type == upgrade.abstract_type)
+ continue
+ var/obj/item/borg/upgrade/modkit/modkit
+ if(istype(upgrade, /obj/item/borg/upgrade/modkit))
+ modkit = upgrade
+ if(modkit.minebot_exclusive)
+ continue
+ modkit = upgrade
+ .["upgrades"] += list(
+ list(
+ "name" = upgrade.name,
+ "type" = upgrade.type,
+ "module_type" = upgrade.module_type,
+ "maximum_of_type" = modkit ? modkit.maximum_of_type : null,
+ "denied_type" = modkit ? modkit.denied_type : null,
+ "cost" = modkit ? modkit.cost : null
+ )
+ )
/datum/borgpanel/ui_act(action, params)
if(..())
@@ -148,17 +167,31 @@
var/upgradepath = text2path(params["upgrade"])
var/obj/item/borg/upgrade/installedupgrade = locate(upgradepath) in borg
if (installedupgrade)
- installedupgrade.deactivate(borg, user)
- borg.upgrades -= installedupgrade
+ qdel(installedupgrade)
message_admins("[key_name_admin(user)] removed the [installedupgrade] upgrade from [ADMIN_LOOKUPFLW(borg)].")
log_admin("[key_name(user)] removed the [installedupgrade] upgrade from [key_name(borg)].")
- qdel(installedupgrade)
else
- var/obj/item/borg/upgrade/upgrade = new upgradepath(borg)
- upgrade.action(borg, user)
- borg.upgrades += upgrade
+ var/obj/item/borg/upgrade/upgrade = new upgradepath()
+ if(!borg.apply_upgrade(upgrade, user, TRUE))
+ to_chat(user, span_danger("Upgrade error."))
+ return
message_admins("[key_name_admin(user)] added the [upgrade] borg upgrade to [ADMIN_LOOKUPFLW(borg)].")
log_admin("[key_name(user)] added the [upgrade] borg upgrade to [key_name(borg)].")
+ if ("add_upgrade")
+ var/upgradepath = text2path(params["upgrade"])
+ var/obj/item/borg/upgrade/upgrade = new upgradepath()
+ if(!borg.apply_upgrade(upgrade, user, TRUE))
+ to_chat(user, span_danger("Upgrade error."))
+ return
+ message_admins("[key_name_admin(user)] added the [upgrade] borg upgrade to [ADMIN_LOOKUPFLW(borg)].")
+ log_admin("[key_name(user)] added the [upgrade] borg upgrade to [key_name(borg)].")
+ if ("remove_upgrade")
+ var/upgradepath = text2path(params["upgrade"])
+ var/obj/item/borg/upgrade/installedupgrade = locate(upgradepath) in borg
+ if (installedupgrade)
+ qdel(installedupgrade)
+ message_admins("[key_name_admin(user)] removed the [installedupgrade] upgrade from [ADMIN_LOOKUPFLW(borg)].")
+ log_admin("[key_name(user)] removed the [installedupgrade] upgrade from [key_name(borg)].")
if ("toggle_radio")
var/channel = params["channel"]
if (channel in borg.radio.channels) // We're removing a channel
@@ -226,13 +259,20 @@
if (!istype(chosensilicon, /mob/living/silicon))
to_chat(usr, "Silicon is required for law changes ", confidential=TRUE)
return
- var/chosen = pick_closest_path(null, make_types_fancy(typesof(/obj/item/aiModule)))
+ var/chosen = pick_closest_path(null, make_types_fancy(typesof(/obj/item/ai_module)))
if (!chosen)
return
var/new_board = new chosen(src)
- var/obj/item/aiModule/chosenboard = new_board
+ var/obj/item/ai_module/chosenboard = new_board
var/mob/living/silicon/beepboop = chosensilicon
chosenboard.install(beepboop.laws, usr)
message_admins("[key_name_admin(usr)] added [chosenboard] to [ADMIN_LOOKUPFLW(beepboop)].")
log_admin("[key_name(usr)] added [chosenboard] to [key_name(beepboop)].")
qdel(new_board)
+
+GLOBAL_LIST_INIT(borg_upgrades, populate_borg_upgrades())
+
+/proc/populate_borg_upgrades()
+ . = list()
+ for(var/type in typesof(/obj/item/borg/upgrade))
+ . += new type
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 1028a48f62..386f098dd6 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -89,11 +89,11 @@
available.Add(C)
var/mob/choice = input("Choose a player to play the pAI", "Spawn pAI") in available
if(!choice)
- return 0
+ return FALSE
if(!isobserver(choice))
var/confirm = input("[choice.key] isn't ghosting right now. Are you sure you want to yank him out of them out of their body and place them in this pAI?", "Spawn pAI Confirmation", "No") in list("Yes", "No")
if(confirm != "Yes")
- return 0
+ return FALSE
var/obj/item/paicard/card = new(T)
var/mob/living/silicon/pai/pai = new(card)
pai.name = input(choice, "Enter your pAI name:", "pAI Name", "Personal AI") as text
@@ -238,7 +238,7 @@
if(M.ckey)
if(alert("This mob is being controlled by [M.key]. Are you sure you wish to give someone else control of it? [M.key] will be made a ghost.",,"Yes","No") != "Yes")
return
- var/client/newkey = input(src, "Pick the player to put in control.", "New player") as null|anything in sortList(GLOB.clients)
+ var/client/newkey = input(src, "Pick the player to put in control.", "New player") as null|anything in sort_list(GLOB.clients)
var/mob/oldmob = newkey.mob
var/delmob = FALSE
if((isobserver(oldmob) || alert("Do you want to delete [newkey]'s old mob?","Delete?","Yes","No") != "No"))
@@ -494,7 +494,7 @@
var/datum/outfit/O = path //not much to initalize here but whatever
outfits[initial(O.name)] = path
- var/dresscode = input("Select outfit", "Robust quick dress shop") as null|anything in baseoutfits + sortList(outfits)
+ var/dresscode = input("Select outfit", "Robust quick dress shop") as null|anything in baseoutfits + sort_list(outfits)
if (isnull(dresscode))
return
@@ -508,7 +508,7 @@
var/datum/outfit/O = path
job_outfits[initial(O.name)] = path
- dresscode = input("Select job equipment", "Robust quick dress shop") as null|anything in sortList(job_outfits)
+ dresscode = input("Select job equipment", "Robust quick dress shop") as null|anything in sort_list(job_outfits)
dresscode = job_outfits[dresscode]
if(isnull(dresscode))
return
@@ -520,7 +520,7 @@
var/datum/outfit/O = path
plasmaman_outfits[initial(O.name)] = path
- dresscode = input("Select plasmeme equipment", "Robust quick dress shop") as null|anything in sortList(plasmaman_outfits)
+ dresscode = input("Select plasmeme equipment", "Robust quick dress shop") as null|anything in sort_list(plasmaman_outfits)
dresscode = plasmaman_outfits[dresscode]
if(isnull(dresscode))
return
@@ -529,7 +529,7 @@
var/list/custom_names = list()
for(var/datum/outfit/D in GLOB.custom_outfits)
custom_names[D.name] = D
- var/selected_name = input("Select outfit", "Robust quick dress shop") as null|anything in sortList(custom_names)
+ var/selected_name = input("Select outfit", "Robust quick dress shop") as null|anything in sort_list(custom_names)
dresscode = custom_names[selected_name]
if(isnull(dresscode))
return
@@ -828,15 +828,15 @@
set name = "Show Line Profiling"
set desc = "Shows tracked profiling info from code lines that support it"
- var/sortlist = list(
+ var/sort_list = list(
"Avg time" = GLOBAL_PROC_REF(cmp_profile_avg_time_dsc),
"Total Time" = GLOBAL_PROC_REF(cmp_profile_time_dsc),
"Call Count" = GLOBAL_PROC_REF(cmp_profile_count_dsc)
)
- var/sort = input(src, "Sort type?", "Sort Type", "Avg time") as null|anything in sortlist
+ var/sort = input(src, "Sort type?", "Sort Type", "Avg time") as null|anything in sort_list
if (!sort)
return
- sort = sortlist[sort]
+ sort = sort_list[sort]
profile_show(src, sort)
/client/proc/reload_configuration()
diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm
index 0dfee4c38c..89c0e0210e 100644
--- a/code/modules/admin/verbs/mapping.dm
+++ b/code/modules/admin/verbs/mapping.dm
@@ -65,7 +65,7 @@ GLOBAL_PROTECT(admin_verbs_debug_mapping)
icon_state = "yellow"
/obj/effect/debugging/marker/Move()
- return 0
+ return FALSE
/client/proc/camera_view()
set category = "Mapping"
@@ -83,7 +83,7 @@ GLOBAL_PROTECT(admin_verbs_debug_mapping)
for(var/turf/T in C.can_see())
seen[T]++
for(var/turf/T in seen)
- T.maptext = "[seen[T]]"
+ T.maptext = MAPTEXT("[seen[T]]")
SSblackbox.record_feedback("tally", "admin_verb", 1, "Show Camera Range") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
SSblackbox.record_feedback("tally", "admin_verb", 1, "Show Camera Range")
@@ -111,7 +111,7 @@ GLOBAL_LIST_EMPTY(dirty_vars)
if(!Master)
alert(usr,"Master_controller not found.","Sec Camera Report")
- return 0
+ return FALSE
var/list/obj/machinery/camera/CL = list()
diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm
index babb529574..e600ffc6d6 100644
--- a/code/modules/admin/verbs/one_click_antag.dm
+++ b/code/modules/admin/verbs/one_click_antag.dm
@@ -70,10 +70,10 @@
H.mind.make_Traitor()
candidates.Remove(H)
- return 1
+ return TRUE
- return 0
+ return FALSE
/datum/admins/proc/makeChangelings()
@@ -102,9 +102,9 @@
H.mind.make_Changeling()
candidates.Remove(H)
- return 1
+ return TRUE
- return 0
+ return FALSE
/datum/admins/proc/makeRevs()
@@ -131,9 +131,9 @@
H = pick(candidates)
H.mind.make_Rev()
candidates.Remove(H)
- return 1
+ return TRUE
- return 0
+ return FALSE
/datum/admins/proc/makeWizard()
@@ -171,9 +171,9 @@
H.mind.make_Cultist()
candidates.Remove(H)
- return 1
+ return TRUE
- return 0
+ return FALSE
/datum/admins/proc/makeClockCult()
@@ -206,9 +206,9 @@
SSticker.mode.equip_servant(H)
candidates.Remove(H)
- return 1
+ return TRUE
- return 0
+ return FALSE
@@ -236,7 +236,7 @@
break
//Making sure we have atleast 3 Nuke agents, because less than that is kinda bad
if(agentcount < 3)
- return 0
+ return FALSE
//Let's find the spawn locations
var/leader_chosen = FALSE
@@ -249,9 +249,9 @@
nuke_team = N.nuke_team
else
new_character.mind.add_antag_datum(/datum/antagonist/nukeop,nuke_team)
- return 1
+ return TRUE
else
- return 0
+ return FALSE
@@ -451,8 +451,8 @@
//Abductors
/datum/admins/proc/makeAbductorTeam()
new /datum/round_event/ghost_role/abductor
- return 1
+ return TRUE
/datum/admins/proc/makeRevenant()
new /datum/round_event/ghost_role/revenant(TRUE, TRUE)
- return 1
+ return TRUE
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 48d9c396e4..c6867b312f 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -300,7 +300,7 @@
else
to_chat(usr, "Error: create_xeno(): no suitable candidates. ")
if(!istext(ckey))
- return 0
+ return FALSE
var/alien_caste = input(usr, "Please choose which caste to spawn.","Pick a caste",null) as null|anything in list("Queen","Praetorian","Hunter","Sentinel","Drone","Larva")
var/obj/effect/landmark/spawn_here = GLOB.xeno_spawn.len ? pick(GLOB.xeno_spawn) : null
@@ -319,7 +319,7 @@
if("Larva")
new_xeno = new /mob/living/carbon/alien/larva(spawn_here)
else
- return 0
+ return FALSE
if(!spawn_here)
SSjob.SendToLateJoin(new_xeno, FALSE)
@@ -327,7 +327,7 @@
var/msg = "[key_name_admin(usr)] has spawned [ckey] as a filthy xeno [alien_caste]. "
message_admins(msg)
admin_ticket_log(new_xeno, msg)
- return 1
+ return TRUE
/*
If a guy was gibbed and you want to revive him, this is a good way to do so.
@@ -1672,7 +1672,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
var/name = GLOB.trait_name_map[trait] || trait
availible_traits[name] = trait
- var/chosen_trait = input("Select trait to modify", "Trait") as null|anything in sortList(availible_traits)
+ var/chosen_trait = input("Select trait to modify", "Trait") as null|anything in sort_list(availible_traits)
if(!chosen_trait)
return
chosen_trait = availible_traits[chosen_trait]
@@ -1689,7 +1689,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if("All")
source = null
if("Specific")
- source = input("Source to be removed","Trait Remove/Add") as null|anything in sortList(D.status_traits[chosen_trait])
+ source = input("Source to be removed","Trait Remove/Add") as null|anything in sort_list(D.status_traits[chosen_trait])
if(!source)
return
REMOVE_TRAIT(D,chosen_trait,source)
diff --git a/code/modules/admin/verbs/secrets.dm b/code/modules/admin/verbs/secrets.dm
index d8bd1841bd..2bc93a5b19 100644
--- a/code/modules/admin/verbs/secrets.dm
+++ b/code/modules/admin/verbs/secrets.dm
@@ -246,7 +246,7 @@
var/datum/round_event_control/disease_outbreak/DC = locate(/datum/round_event_control/disease_outbreak) in SSevents.control
E = DC.runEvent()
if("Choose")
- var/virus = input("Choose the virus to spread", "BIOHAZARD") as null|anything in sortList(typesof(/datum/disease), GLOBAL_PROC_REF(cmp_typepaths_asc))
+ var/virus = input("Choose the virus to spread", "BIOHAZARD") as null|anything in sort_list(typesof(/datum/disease), GLOBAL_PROC_REF(cmp_typepaths_asc))
var/datum/round_event_control/disease_outbreak/DC = locate(/datum/round_event_control/disease_outbreak) in SSevents.control
var/datum/round_event/disease_outbreak/DO = DC.runEvent()
DO.virus_type = virus
diff --git a/code/modules/admin/view_variables/get_variables.dm b/code/modules/admin/view_variables/get_variables.dm
index 3f90002edc..1457731ee1 100644
--- a/code/modules/admin/view_variables/get_variables.dm
+++ b/code/modules/admin/view_variables/get_variables.dm
@@ -77,6 +77,15 @@
markstring = "[VV_MARKED_DATUM] (CURRENT: [(istype(holder) && istype(holder.marked_datum))? holder.marked_datum.type : "NULL"])"
classes += markstring
+ var/list/tagstrings = new
+ if(!(VV_TAGGED_DATUM in restricted_classes) && holder && LAZYLEN(holder.tagged_datums))
+ var/i = 0
+ for(var/datum/iter_tagged_datum as anything in holder.tagged_datums)
+ i++
+ var/new_tagstring = "[VV_TAGGED_DATUM] #[i]: [iter_tagged_datum.type])"
+ tagstrings[new_tagstring] = iter_tagged_datum
+ classes += new_tagstring
+
if(restricted_classes)
classes -= restricted_classes
@@ -87,6 +96,11 @@
if(holder && holder.marked_datum && .["class"] == markstring)
.["class"] = VV_MARKED_DATUM
+ if(holder && tagstrings[.["class"]])
+ var/datum/chosen_datum = tagstrings[.["class"]]
+ .["value"] = chosen_datum
+ .["class"] = VV_TAGGED_DATUM
+
switch(.["class"])
if(VV_TEXT)
.["value"] = input("Enter new text:", "Text", current_value) as null|text
@@ -202,6 +216,11 @@
.["class"] = null
return
+ if(VV_TAGGED_DATUM)
+ if(.["value"] == null)
+ .["class"] = null
+ return
+
if(VV_PROCCALL_RETVAL)
var/list/get_retval = list()
callproc_blocking(get_retval)
diff --git a/code/modules/admin/view_variables/mass_edit_variables.dm b/code/modules/admin/view_variables/mass_edit_variables.dm
index 5b120b6cef..ba9a4d278c 100644
--- a/code/modules/admin/view_variables/mass_edit_variables.dm
+++ b/code/modules/admin/view_variables/mass_edit_variables.dm
@@ -29,7 +29,7 @@
for (var/V in O.vars)
names += V
- names = sortList(names)
+ names = sort_list(names)
variable = input("Which var?", "Var") as null|anything in names
else
diff --git a/code/modules/admin/view_variables/modify_variables.dm b/code/modules/admin/view_variables/modify_variables.dm
index 54af2a9481..bfa8fb146c 100644
--- a/code/modules/admin/view_variables/modify_variables.dm
+++ b/code/modules/admin/view_variables/modify_variables.dm
@@ -306,7 +306,7 @@ GLOBAL_PROTECT(VVpixelmovement)
for (var/V in O.vars)
names += V
- names = sortList(names)
+ names = sort_list(names)
variable = input("Which var?","Var") as null|anything in names
if(!variable)
diff --git a/code/modules/admin/view_variables/tag_datum.dm b/code/modules/admin/view_variables/tag_datum.dm
new file mode 100644
index 0000000000..3b611e3cdf
--- /dev/null
+++ b/code/modules/admin/view_variables/tag_datum.dm
@@ -0,0 +1,18 @@
+/client/proc/tag_datum(datum/target_datum)
+ if(!holder || QDELETED(target_datum))
+ return
+ holder.add_tagged_datum(target_datum)
+
+/client/proc/toggle_tag_datum(datum/target_datum)
+ if(!holder || !target_datum)
+ return
+
+ if(LAZYFIND(holder.tagged_datums, target_datum))
+ holder.remove_tagged_datum(target_datum)
+ else
+ holder.add_tagged_datum(target_datum)
+
+/client/proc/tag_datum_mapview(datum/target_datum as mob|obj|turf|area in view(view))
+ set category = "Debug"
+ set name = "Tag Datum"
+ tag_datum(target_datum)
diff --git a/code/modules/admin/view_variables/topic_basic.dm b/code/modules/admin/view_variables/topic_basic.dm
index 6629b2efc2..de7da94586 100644
--- a/code/modules/admin/view_variables/topic_basic.dm
+++ b/code/modules/admin/view_variables/topic_basic.dm
@@ -59,15 +59,17 @@
if(href_list[VV_HK_MARK])
usr.client.mark_datum(target)
+ if(href_list[VV_HK_TAG])
+ usr.client.tag_datum(target)
if(href_list[VV_HK_ADDCOMPONENT])
if(!check_rights(NONE))
return
var/list/names = list()
- var/list/componentsubtypes = sortList(subtypesof(/datum/component), GLOBAL_PROC_REF(cmp_typepaths_asc))
+ var/list/componentsubtypes = sort_list(subtypesof(/datum/component), GLOBAL_PROC_REF(cmp_typepaths_asc))
names += "---Components---"
names += componentsubtypes
names += "---Elements---"
- names += sortList(subtypesof(/datum/element), GLOBAL_PROC_REF(cmp_typepaths_asc))
+ names += sort_list(subtypesof(/datum/element), GLOBAL_PROC_REF(cmp_typepaths_asc))
var/result = input(usr, "Choose a component/element to add","better know what ur fuckin doin pal") as null|anything in names
if(!usr || !result || result == "---Components---" || result == "---Elements---")
return
diff --git a/code/modules/admin/view_variables/view_variables.dm b/code/modules/admin/view_variables/view_variables.dm
index 6039e88d9d..a7faea2553 100644
--- a/code/modules/admin/view_variables/view_variables.dm
+++ b/code/modules/admin/view_variables/view_variables.dm
@@ -88,7 +88,7 @@
value = L[key]
variable_html += debug_variable(i, value, 0, L)
else
- names = sortList(names)
+ names = sort_list(names)
for(var/V in names)
if(D.can_vv_get(V))
variable_html += D.vv_get_var(V)
diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm
index 02a27b312f..136a4c6e69 100644
--- a/code/modules/antagonists/_common/antag_datum.dm
+++ b/code/modules/antagonists/_common/antag_datum.dm
@@ -449,7 +449,7 @@ GLOBAL_LIST_EMPTY(antagonists)
antag_memory = new_memo
/**
- * Gets how fast we can hijack the shuttle, return 0 for can not hijack.
+ * Gets how fast we can hijack the shuttle, return FALSE for can not hijack.
* Defaults to hijack_speed var, override for custom stuff like buffing hijack speed for hijack objectives or something.
*/
/datum/antagonist/proc/hijack_speed()
diff --git a/code/modules/antagonists/_common/antag_spawner.dm b/code/modules/antagonists/_common/antag_spawner.dm
index bcba1e1e1e..a12f050596 100644
--- a/code/modules/antagonists/_common/antag_spawner.dm
+++ b/code/modules/antagonists/_common/antag_spawner.dm
@@ -50,7 +50,7 @@
if(H.stat || H.restrained())
return
if(!ishuman(H))
- return 1
+ return TRUE
if(loc == H || (in_range(src, H) && isturf(loc)))
H.set_machine(src)
diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
index 60c112a7e1..7506ae8975 100644
--- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm
+++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm
@@ -59,7 +59,7 @@
H.update_inv_wear_suit()
for(var/X in actions)
var/datum/action/A = X
- A.UpdateButtonIcon()
+ A.UpdateButtons()
/obj/item/clothing/suit/armor/abductor/vest/item_action_slot_check(slot, mob/user, datum/action/A)
if(slot == ITEM_SLOT_OCLOTHING) //we only give the mob the ability to activate the vest if he's actually wearing it.
diff --git a/code/modules/antagonists/blob/blob/blob_report.dm b/code/modules/antagonists/blob/blob/blob_report.dm
index d532121e12..c417fa6574 100644
--- a/code/modules/antagonists/blob/blob/blob_report.dm
+++ b/code/modules/antagonists/blob/blob/blob_report.dm
@@ -61,7 +61,7 @@
/datum/station_state/proc/score(datum/station_state/result)
if(!result)
- return 0
+ return FALSE
var/output = 0
output += (result.floor / max(floor,1))
output += (result.r_wall/ max(r_wall,1))
diff --git a/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm b/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm
index 1c98060d9b..833a8ee95e 100644
--- a/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm
+++ b/code/modules/antagonists/blob/blob/blobs/blob_mobs.dm
@@ -53,7 +53,7 @@
/mob/living/simple_animal/hostile/blob/Process_Spacemove(movement_dir = 0)
for(var/obj/structure/blob/B in range(1, src))
- return 1
+ return TRUE
return ..()
/mob/living/simple_animal/hostile/blob/proc/blob_chat(msg)
@@ -275,7 +275,7 @@
/mob/living/simple_animal/hostile/blob/blobbernaut/update_health_hud()
if(hud_used)
- hud_used.healths.maptext = "[round((health / maxHealth) * 100, 0.5)]%
"
+ hud_used.healths.maptext = MAPTEXT("[round((health / maxHealth) * 100, 0.5)]%
")
/mob/living/simple_animal/hostile/blob/blobbernaut/AttackingTarget()
. = ..()
diff --git a/code/modules/antagonists/blob/blob/blobstrains/_blobstrain.dm b/code/modules/antagonists/blob/blob/blobstrains/_blobstrain.dm
index 8b6f4bd687..2c55cc6915 100644
--- a/code/modules/antagonists/blob/blob/blobstrains/_blobstrain.dm
+++ b/code/modules/antagonists/blob/blob/blobstrains/_blobstrain.dm
@@ -65,7 +65,7 @@ GLOBAL_LIST_INIT(valid_blobstrains, subtypesof(/datum/blobstrain) - list(/datum/
return
/datum/blobstrain/proc/tesla_reaction(obj/structure/blob/B, power, coefficient = 1) //when the blob is hit by a tesla bolt, do this
- return 1 //return 0 to ignore damage
+ return TRUE //return FALSE to ignore damage
/datum/blobstrain/proc/extinguish_reaction(obj/structure/blob/B, coefficient = 1) //when the blob is hit with water, do this
return
diff --git a/code/modules/antagonists/blob/blob/blobstrains/_reagent.dm b/code/modules/antagonists/blob/blob/blobstrains/_reagent.dm
index f47c3b3378..385fa1f7ae 100644
--- a/code/modules/antagonists/blob/blob/blobstrains/_reagent.dm
+++ b/code/modules/antagonists/blob/blob/blobstrains/_reagent.dm
@@ -29,5 +29,5 @@
/datum/reagent/blob/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
if(M.stat == DEAD || istype(M, /mob/living/simple_animal/hostile/blob))
- return 0 //the dead, and blob mobs, don't cause reactions
+ return FALSE //the dead, and blob mobs, don't cause reactions
return round(reac_volume * min(1.5 - touch_protection, 1), 0.1) //full touch protection means 50% volume, any prot below 0.5 means 100% volume.
diff --git a/code/modules/antagonists/blob/blob/blobstrains/blazing_oil.dm b/code/modules/antagonists/blob/blob/blobstrains/blazing_oil.dm
index be08266687..471d2d607d 100644
--- a/code/modules/antagonists/blob/blob/blobstrains/blazing_oil.dm
+++ b/code/modules/antagonists/blob/blob/blobstrains/blazing_oil.dm
@@ -23,7 +23,7 @@
if(!(C && C.overmind && C.overmind.blobstrain.type == B.overmind.blobstrain.type) && prob(80))
new /obj/effect/hotspot(T)
if(damage_flag == FIRE)
- return 0
+ return FALSE
return ..()
/datum/reagent/blob/blazing_oil
diff --git a/code/modules/antagonists/blob/blob/blobstrains/energized_jelly.dm b/code/modules/antagonists/blob/blob/blobstrains/energized_jelly.dm
index c22b429e1b..a25a4d1974 100644
--- a/code/modules/antagonists/blob/blob/blobstrains/energized_jelly.dm
+++ b/code/modules/antagonists/blob/blob/blobstrains/energized_jelly.dm
@@ -15,7 +15,7 @@
return ..()
/datum/blobstrain/reagent/energized_jelly/tesla_reaction(obj/structure/blob/B, power)
- return 0
+ return FALSE
/datum/blobstrain/reagent/energized_jelly/emp_reaction(obj/structure/blob/B, severity)
var/damage = rand(30, 50) - severity * rand(10, 15)
diff --git a/code/modules/antagonists/blob/blob/blobstrains/explosive_lattice.dm b/code/modules/antagonists/blob/blob/blobstrains/explosive_lattice.dm
index c805069a9c..afc83f5a62 100644
--- a/code/modules/antagonists/blob/blob/blobstrains/explosive_lattice.dm
+++ b/code/modules/antagonists/blob/blob/blobstrains/explosive_lattice.dm
@@ -13,7 +13,7 @@
/datum/blobstrain/reagent/explosive_lattice/damage_reaction(obj/structure/blob/B, damage, damage_type, damage_flag)
if(damage_flag == BOMB)
- return 0
+ return FALSE
else if(damage_flag != MELEE && damage_flag != BULLET && damage_flag != LASER)
return damage * 1.5
return ..()
diff --git a/code/modules/antagonists/blob/blob/blobstrains/multiplex.dm b/code/modules/antagonists/blob/blob/blobstrains/multiplex.dm
index 191da6c51f..953608aa5c 100644
--- a/code/modules/antagonists/blob/blob/blobstrains/multiplex.dm
+++ b/code/modules/antagonists/blob/blob/blobstrains/multiplex.dm
@@ -29,7 +29,7 @@
for (var/datum/blobstrain/bt in blobstrains)
. += bt.tesla_reaction(B, power, coefficient*typeshare)
if (prob(. / length(blobstrains) * 100))
- return 1
+ return TRUE
/datum/blobstrain/multiplex/extinguish_reaction(obj/structure/blob/B, coefficient = 1) //when the blob is hit with water, do this
for (var/datum/blobstrain/bt in blobstrains)
diff --git a/code/modules/antagonists/blob/blob/blobstrains/reactive_spines.dm b/code/modules/antagonists/blob/blob/blobstrains/reactive_spines.dm
index 84ff383dd1..104637aecc 100644
--- a/code/modules/antagonists/blob/blob/blobstrains/reactive_spines.dm
+++ b/code/modules/antagonists/blob/blob/blobstrains/reactive_spines.dm
@@ -26,5 +26,5 @@
/datum/reagent/blob/reactive_spines/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/O)
if(M.stat == DEAD || istype(M, /mob/living/simple_animal/hostile/blob))
- return 0 //the dead, and blob mobs, don't cause reactions
+ return FALSE //the dead, and blob mobs, don't cause reactions
M.adjustBruteLoss(0.8*reac_volume)
diff --git a/code/modules/antagonists/blob/blob/overmind.dm b/code/modules/antagonists/blob/blob/overmind.dm
index 605e327443..f15234cd48 100644
--- a/code/modules/antagonists/blob/blob/overmind.dm
+++ b/code/modules/antagonists/blob/blob/overmind.dm
@@ -197,14 +197,14 @@ GLOBAL_LIST_EMPTY(blob_nodes)
/mob/camera/blob/update_health_hud()
if(blob_core)
- hud_used.healths.maptext = "[round(blob_core.obj_integrity)]
"
+ hud_used.healths.maptext = MAPTEXT("[round(blob_core.obj_integrity)]
")
for(var/mob/living/simple_animal/hostile/blob/blobbernaut/B in blob_mobs)
if(B.hud_used && B.hud_used.blobpwrdisplay)
- B.hud_used.blobpwrdisplay.maptext = "[round(blob_core.obj_integrity)]
"
+ B.hud_used.blobpwrdisplay.maptext = MAPTEXT("[round(blob_core.obj_integrity)]
")
/mob/camera/blob/proc/add_points(points)
blob_points = clamp(blob_points + points, 0, max_blob_points)
- hud_used.blobpwrdisplay.maptext = "[round(blob_points)]
"
+ hud_used.blobpwrdisplay.maptext = MAPTEXT("[round(blob_points)]
")
/mob/camera/blob/say(message, bubble_type, var/list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null)
if (!message)
@@ -264,13 +264,13 @@ GLOBAL_LIST_EMPTY(blob_nodes)
if(B)
forceMove(NewLoc)
else
- return 0
+ return FALSE
else
var/area/A = get_area(NewLoc)
if(isspaceturf(NewLoc) || istype(A, /area/shuttle)) //if unplaced, can't go on shuttles or space tiles
- return 0
+ return FALSE
forceMove(NewLoc)
- return 1
+ return TRUE
/mob/camera/blob/mind_initialize()
. = ..()
diff --git a/code/modules/antagonists/blob/blob/powers.dm b/code/modules/antagonists/blob/blob/powers.dm
index 9256d0d16b..18886765de 100644
--- a/code/modules/antagonists/blob/blob/powers.dm
+++ b/code/modules/antagonists/blob/blob/powers.dm
@@ -1,15 +1,15 @@
/mob/camera/blob/proc/can_buy(cost = 15)
if(blob_points < cost)
to_chat(src, "You cannot afford this, you need at least [cost] resources! ")
- return 0
+ return FALSE
add_points(-cost)
- return 1
+ return TRUE
// Power verbs
/mob/camera/blob/proc/place_blob_core(placement_override, pop_override = FALSE)
if(placed && placement_override != -1)
- return 1
+ return TRUE
if(!placement_override)
if(!pop_override)
for(var/mob/living/M in range(7, src))
@@ -17,30 +17,30 @@
continue
if(M.client)
to_chat(src, "There is someone too close to place your blob core! ")
- return 0
+ return FALSE
for(var/mob/living/M in view(13, src))
if(ROLE_BLOB in M.faction)
continue
if(M.client)
to_chat(src, "Someone could see your blob core from here! ")
- return 0
+ return FALSE
var/turf/T = get_turf(src)
if(T.density)
to_chat(src, "This spot is too dense to place a blob core on! ")
- return 0
+ return FALSE
for(var/obj/O in T)
if(istype(O, /obj/structure/blob))
if(istype(O, /obj/structure/blob/normal))
qdel(O)
else
to_chat(src, "There is already a blob here! ")
- return 0
+ return FALSE
else if(O.density)
to_chat(src, "This spot is too dense to place a blob core on! ")
- return 0
+ return FALSE
if(!pop_override && world.time <= manualplace_min_time && world.time <= autoplace_max_time)
to_chat(src, "It is too early to place your blob core! ")
- return 0
+ return FALSE
else if(placement_override == 1)
var/turf/T = pick(GLOB.blobstart)
forceMove(T) //got overrided? you're somewhere random, motherfucker
@@ -54,7 +54,7 @@
core.update_icon()
update_health_hud()
placed = 1
- return 1
+ return TRUE
/mob/camera/blob/verb/transport_core()
set category = "Blob"
diff --git a/code/modules/antagonists/blob/blob/theblob.dm b/code/modules/antagonists/blob/blob/theblob.dm
index ff6eab264b..7945cf9687 100644
--- a/code/modules/antagonists/blob/blob/theblob.dm
+++ b/code/modules/antagonists/blob/blob/theblob.dm
@@ -123,8 +123,8 @@
heal_timestamp = world.time + 20
update_icon()
pulse_timestamp = world.time + 10
- return 1 //we did it, we were pulsed!
- return 0 //oh no we failed
+ return TRUE //we did it, we were pulsed!
+ return FALSE //oh no we failed
/obj/structure/blob/proc/ConsumeTile()
for(var/atom/A in loc)
@@ -157,7 +157,7 @@
else
T = null
if(!T)
- return 0
+ return FALSE
var/make_blob = TRUE //can we make a blob?
if(isspaceturf(T) && !(locate(/obj/structure/lattice) in T) && prob(80))
@@ -271,7 +271,7 @@
damage_amount *= fire_resist
if(CLONE)
else
- return 0
+ return FALSE
var/armor_protection = 0
if(damage_flag)
armor_protection = armor.getRating(damage_flag)
diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm
index c5f1cfbb40..a3b7fd4c0f 100644
--- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm
+++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm
@@ -216,7 +216,7 @@
return
// Disable Powers: Masquerade * NOTE * This should happen as a FLAW!
//if (stat >= UNCONSCIOUS)
- // for (var/datum/action/bloodsucker/masquerade/P in powers)
+ // for (var/datum/action/cooldown/bloodsucker/masquerade/P in powers)
// P.Deactivate()
// TEMP DEATH
var/total_brute = owner.current.getBruteLoss_nonProsthetic()
@@ -252,7 +252,7 @@
owner.current.update_sight()
owner.current.reload_fullscreen()
// Disable ALL Powers
- for(var/datum/action/bloodsucker/power in powers)
+ for(var/datum/action/cooldown/bloodsucker/power in powers)
if(power.active && !power.can_use_in_torpor)
power.DeactivatePower()
if(owner.current.suiciding)
diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm b/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm
index 0a799021e9..019bbe6fbd 100644
--- a/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm
+++ b/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm
@@ -1,22 +1,26 @@
-/datum/action/bloodsucker
+/datum/action/cooldown/bloodsucker
name = "Vampiric Gift"
desc = "A vampiric gift."
button_icon = 'icons/mob/actions/bloodsucker.dmi' //This is the file for the BACKGROUND icon
background_icon_state = "vamp_power_off" //And this is the state for the background icon
- var/background_icon_state_on = "vamp_power_on" // FULP: Our "ON" icon alternative.
- var/background_icon_state_off = "vamp_power_off" // FULP: Our "OFF" icon alternative.
icon_icon = 'icons/mob/actions/bloodsucker.dmi' //This is the file for the ACTION icon
button_icon_state = "power_feed" //And this is the state for the action icon
buttontooltipstyle = "cult"
+ transparent_when_unavailable = TRUE
+
+ /// Cooldown you'll have to wait between each use, decreases depending on level.
+ cooldown_time = 2 SECONDS
+
+ ///Background icon when the Power is active.
+ var/background_icon_state_on = "vamp_power_on"
+ ///Background icon when the Power is NOT active.
+ var/background_icon_state_off = "vamp_power_off"
// Action-Related
- //var/amPassive = FALSE // REMOVED: Just made it its own kind. // Am I just "on" at all times? (aka NO ICON)
var/amTargetted = FALSE // Am I asked to choose a target when enabled? (Shows as toggled ON when armed)
var/amToggle = FALSE // Can I be actively turned on and off?
var/amSingleUse = FALSE // Am I removed after a single use?
var/active = FALSE
- var/cooldown = 20 // 10 ticks, 1 second.
- var/cooldownUntil = 0 // From action.dm: next_use_time = world.time + cooldown_time
// Power-Related
var/level_current = 0 // Can increase to yield new abilities. Each power goes up in strength each Rank.
//var/level_max = 1 //
@@ -32,7 +36,7 @@
//var/not_bloodsucker = FALSE // This goes to Vassals or Hunters, but NOT bloodsuckers.
var/must_be_concious = TRUE //Can't use this ability while unconcious.
-/datum/action/bloodsucker/New()
+/datum/action/cooldown/bloodsucker/New()
if(bloodcost > 0)
desc += "COST: [bloodcost] Blood" // Modify description to add cost.
if(warn_constant_cost)
@@ -46,7 +50,7 @@
// click.dm <--- Where we can take over mouse clicks
// spells.dm /add_ranged_ability() <--- How we take over the mouse click to use a power on a target.
-/datum/action/bloodsucker/Trigger()
+/datum/action/cooldown/bloodsucker/Trigger()
// Active? DEACTIVATE AND END!
if(active && CheckCanDeactivate(TRUE))
DeactivatePower()
@@ -56,7 +60,7 @@
PayCost()
if(amToggle)
active = !active
- UpdateButtonIcon()
+ UpdateButtons()
if(!amToggle || !active)
StartCooldown() // Must come AFTER UpdateButton(), otherwise icon will revert.
ActivatePower() // NOTE: ActivatePower() freezes this power in place until it ends.
@@ -65,13 +69,13 @@
if(amSingleUse)
RemoveAfterUse()
-/datum/action/bloodsucker/proc/CheckCanPayCost(display_error)
+/datum/action/cooldown/bloodsucker/proc/CheckCanPayCost(display_error)
if(!owner || !owner.mind)
return FALSE
// Cooldown?
- if(cooldownUntil > world.time)
+ if(next_use_time > world.time)
if(display_error)
- to_chat(owner, "[src] is unavailable. Wait [(cooldownUntil - world.time) / 10] seconds.")
+ to_chat(owner, "[src] is unavailable. Wait [(next_use_time - world.time) / 10] seconds.")
return FALSE
// Have enough blood?
var/mob/living/L = owner
@@ -81,7 +85,7 @@
return FALSE
return TRUE
-/datum/action/bloodsucker/proc/CheckCanUse(display_error) // These checks can be scanned every frame while a ranged power is on.
+/datum/action/cooldown/bloodsucker/proc/CheckCanUse(display_error) // These checks can be scanned every frame while a ranged power is on.
if(!owner || !owner.mind)
return FALSE
// Torpor?
@@ -123,79 +127,43 @@
return FALSE
return TRUE
-/datum/action/bloodsucker/proc/StartCooldown()
- set waitfor = FALSE
- // Alpha Out
- button.color = rgb(128,0,0,128)
- button.alpha = 100
- // Calculate Cooldown (by power's level)
- var/this_cooldown = (cooldown_static || amSingleUse) ? cooldown : max(cooldown / 2, cooldown - (cooldown / 16 * (level_current-1)))
- // NOTE: With this formula, you'll hit half cooldown at level 8 for that power.
-
- // Wait for cooldown
- cooldownUntil = world.time + this_cooldown
- spawn(this_cooldown)
- // Alpha In
- button.color = rgb(255,255,255,255)
- button.alpha = 255
-
-/datum/action/bloodsucker/proc/CheckCanDeactivate(display_error)
+/datum/action/cooldown/bloodsucker/proc/CheckCanDeactivate(display_error)
return TRUE
-/datum/action/bloodsucker/UpdateButtonIcon(force = FALSE)
+/datum/action/cooldown/bloodsucker/UpdateButton(atom/movable/screen/movable/action_button/button, force = FALSE)
background_icon_state = active? background_icon_state_on : background_icon_state_off
- ..()//UpdateButtonIcon()
+ ..()//UpdateButton()
-
-/datum/action/bloodsucker/proc/PayCost()
+/datum/action/cooldown/bloodsucker/proc/PayCost()
// owner for actions is the mob, not mind.
var/mob/living/L = owner
L.blood_volume -= bloodcost
-/datum/action/bloodsucker/proc/ActivatePower()
+/datum/action/cooldown/bloodsucker/proc/ActivatePower()
-/datum/action/bloodsucker/proc/DeactivatePower(mob/living/user = owner, mob/living/target)
+/datum/action/cooldown/bloodsucker/proc/DeactivatePower(mob/living/user = owner, mob/living/target)
active = FALSE
- UpdateButtonIcon()
+ UpdateButtons()
StartCooldown()
-/datum/action/bloodsucker/proc/ContinueActive(mob/living/user, mob/living/target) // Used by loops to make sure this power can stay active.
+/datum/action/cooldown/bloodsucker/proc/ContinueActive(mob/living/user, mob/living/target) // Used by loops to make sure this power can stay active.
return active && user && (!warn_constant_cost || user.blood_volume > 0)
-/datum/action/bloodsucker/proc/RemoveAfterUse()
+/datum/action/cooldown/bloodsucker/proc/RemoveAfterUse()
// Un-Learn Me! (GO HOME
var/datum/antagonist/bloodsucker/bloodsuckerdatum = owner.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)
if (istype(bloodsuckerdatum))
bloodsuckerdatum.powers -= src
Remove(owner)
-/datum/action/bloodsucker/proc/Upgrade()
+/datum/action/cooldown/bloodsucker/proc/Upgrade()
level_current ++
-/////////////////////////////////// PASSIVE POWERS ///////////////////////////////////
-
-// New Type: Passive (Always on, no button)
-/datum/action/bloodsucker/passive
-
-/datum/action/bloodsucker/passive/New()
- // REMOVED: DO NOTHBING!
- ..()
- // Don't Display Button! (it doesn't do anything anyhow)
- button.screen_loc = DEFAULT_BLOODSPELLS
- button.moved = DEFAULT_BLOODSPELLS
- button.ordered = FALSE
-
-/datum/action/bloodsucker/passive/Destroy()
- if(owner)
- Remove(owner)
- target = null
- return ..()
-
/////////////////////////////////// TARGETTED POWERS ///////////////////////////////////
-/datum/action/bloodsucker/targeted
+/datum/action/cooldown/bloodsucker/targeted
// NOTE: All Targeted spells are Toggles! We just don't bother checking here.
var/target_range = 99
var/message_Trigger = "Select a target."
@@ -204,7 +172,7 @@
var/power_in_use = FALSE // Is this power LOCKED due to being used?
-/datum/action/bloodsucker/targeted/New(Target)
+/datum/action/cooldown/bloodsucker/targeted/New(Target)
desc += " \[Targeted Power \]" // Modify description to add notice that this is aimed.
..()
// Create Proc Holder for intercepting clicks
@@ -212,7 +180,7 @@
bs_proc_holder.linked_power = src
// Click power: Begin Aim
-/datum/action/bloodsucker/targeted/Trigger()
+/datum/action/cooldown/bloodsucker/targeted/Trigger()
if(active && CheckCanDeactivate(TRUE))
DeactivateRangedAbility()
DeactivatePower()
@@ -220,7 +188,7 @@
if(!CheckCanPayCost(TRUE) || !CheckCanUse(TRUE))
return
active = !active
- UpdateButtonIcon()
+ UpdateButtons()
// Create & Link Targeting Proc
var/mob/living/L = owner
if(L.ranged_ability)
@@ -230,7 +198,7 @@
if(message_Trigger != "")
to_chat(owner, "[message_Trigger] ")
-/datum/action/bloodsucker/targeted/CheckCanUse(display_error)
+/datum/action/cooldown/bloodsucker/targeted/CheckCanUse(display_error)
. = ..()
if(!.)
return
@@ -238,21 +206,21 @@
return FALSE // doesn't let you remove powers if you're not there. So, let's just cancel the power entirely.
return TRUE
-/datum/action/bloodsucker/targeted/DeactivatePower(mob/living/user = owner, mob/living/target)
+/datum/action/cooldown/bloodsucker/targeted/DeactivatePower(mob/living/user = owner, mob/living/target)
// Don't run ..(), we don't want to engage the cooldown until we USE this power!
active = FALSE
- UpdateButtonIcon()
+ UpdateButtons()
-/datum/action/bloodsucker/targeted/proc/DeactivateRangedAbility()
+/datum/action/cooldown/bloodsucker/targeted/proc/DeactivateRangedAbility()
// Only Turned off when CLICK is disabled...aka, when you successfully clicked (or
bs_proc_holder.remove_ranged_ability()
// Check if target is VALID (wall, turf, or character?)
-/datum/action/bloodsucker/targeted/proc/CheckValidTarget(atom/A)
+/datum/action/cooldown/bloodsucker/targeted/proc/CheckValidTarget(atom/A)
return FALSE // FALSE targets nothing.
// Check if valid target meets conditions
-/datum/action/bloodsucker/targeted/proc/CheckCanTarget(atom/A, display_error)
+/datum/action/cooldown/bloodsucker/targeted/proc/CheckCanTarget(atom/A, display_error)
// Out of Range
if(!(A in view(target_range, owner)))
if(display_error && target_range > 1) // Only warn for range if it's greater than 1. Brawn doesn't need to announce itself.
@@ -261,7 +229,7 @@
return istype(A)
// Click Target
-/datum/action/bloodsucker/targeted/proc/ClickWithPower(atom/A)
+/datum/action/cooldown/bloodsucker/targeted/proc/ClickWithPower(atom/A)
// CANCEL RANGED TARGET check
if(power_in_use || !CheckValidTarget(A))
return FALSE
@@ -276,21 +244,21 @@
power_in_use = FALSE
return TRUE
-/datum/action/bloodsucker/targeted/proc/FireTargetedPower(atom/A)
+/datum/action/cooldown/bloodsucker/targeted/proc/FireTargetedPower(atom/A)
// Like ActivatePower, but specific to Targeted (and takes an atom input). We don't use ActivatePower for targeted.
-/datum/action/bloodsucker/targeted/proc/PowerActivatedSuccessfully()
+/datum/action/cooldown/bloodsucker/targeted/proc/PowerActivatedSuccessfully()
// The power went off! We now pay the cost of the power.
PayCost()
DeactivateRangedAbility()
DeactivatePower()
StartCooldown() // Do AFTER UpdateIcon() inside of DeactivatePower. Otherwise icon just gets wiped.
-/datum/action/bloodsucker/targeted/ContinueActive(mob/living/user, mob/living/target) // Used by loops to make sure this power can stay active.
+/datum/action/cooldown/bloodsucker/targeted/ContinueActive(mob/living/user, mob/living/target) // Used by loops to make sure this power can stay active.
return ..()
// Target Proc Holder
/obj/effect/proc_holder/bloodsucker
- var/datum/action/bloodsucker/targeted/linked_power
+ var/datum/action/cooldown/bloodsucker/targeted/linked_power
/obj/effect/proc_holder/bloodsucker/remove_ranged_ability(msg)
..()
diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_sunlight.dm b/code/modules/antagonists/bloodsucker/bloodsucker_sunlight.dm
index a86cb374d2..88a4b6bb32 100644
--- a/code/modules/antagonists/bloodsucker/bloodsucker_sunlight.dm
+++ b/code/modules/antagonists/bloodsucker/bloodsucker_sunlight.dm
@@ -55,8 +55,8 @@
bloodsuckerdatum.warn_sun_locker = FALSE
bloodsuckerdatum.warn_sun_burn = FALSE
// Remove Dawn Powers
- for(var/datum/action/bloodsucker/P in bloodsuckerdatum.powers)
- if(istype(P, /datum/action/bloodsucker/gohome))
+ for(var/datum/action/cooldown/bloodsucker/P in bloodsuckerdatum.powers)
+ if(istype(P, /datum/action/cooldown/bloodsucker/gohome))
bloodsuckerdatum.powers -= P
P.Remove(M.current)
nighttime_duration += 100 //Each day makes the night a minute longer.
@@ -149,5 +149,5 @@
if(!istype(M) || !istype(M.current))
continue
var/datum/antagonist/bloodsucker/bloodsuckerdatum = M.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)
- if(istype(bloodsuckerdatum) && bloodsuckerdatum.lair && !(locate(/datum/action/bloodsucker/gohome) in bloodsuckerdatum.powers))
- bloodsuckerdatum.BuyPower(new /datum/action/bloodsucker/gohome)
+ if(istype(bloodsuckerdatum) && bloodsuckerdatum.lair && !(locate(/datum/action/cooldown/bloodsucker/gohome) in bloodsuckerdatum.powers))
+ bloodsuckerdatum.BuyPower(new /datum/action/cooldown/bloodsucker/gohome)
diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_ui.dm b/code/modules/antagonists/bloodsucker/bloodsucker_ui.dm
index 486ae51117..3edffe9c31 100644
--- a/code/modules/antagonists/bloodsucker/bloodsucker_ui.dm
+++ b/code/modules/antagonists/bloodsucker/bloodsucker_ui.dm
@@ -14,7 +14,7 @@
dat += " "
// Step One: Decide powers you CAN buy.
- for(var/pickedpower in typesof(/datum/action/bloodsucker))
+ for(var/pickedpower in typesof(/datum/action/cooldown/bloodsucker))
var/obj/effect/proc_holder/spell/bloodsucker/power = pickedpower
// NAME
dat += "[power.name] "
diff --git a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm
index 9f44ed687f..56ebb8fd87 100644
--- a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm
+++ b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm
@@ -168,7 +168,7 @@
return fullname
-/datum/antagonist/bloodsucker/proc/BuyPower(datum/action/bloodsucker/power)//(obj/effect/proc_holder/spell/power)
+/datum/antagonist/bloodsucker/proc/BuyPower(datum/action/cooldown/bloodsucker/power)//(obj/effect/proc_holder/spell/power)
powers += power
power.Grant(owner.current)// owner.AddSpell(power)
@@ -177,9 +177,9 @@
add_hud()
update_hud(TRUE) // Set blood value, current rank
// Powers
- BuyPower(new /datum/action/bloodsucker/feed)
- BuyPower(new /datum/action/bloodsucker/masquerade)
- BuyPower(new /datum/action/bloodsucker/veil)
+ BuyPower(new /datum/action/cooldown/bloodsucker/feed)
+ BuyPower(new /datum/action/cooldown/bloodsucker/masquerade)
+ BuyPower(new /datum/action/cooldown/bloodsucker/veil)
// Traits
for(var/T in defaultTraits)
ADD_TRAIT(owner.current, T, BLOODSUCKER_TRAIT)
@@ -221,7 +221,7 @@
remove_hud()
// Powers
while(powers.len)
- var/datum/action/bloodsucker/power = pick(powers)
+ var/datum/action/cooldown/bloodsucker/power = pick(powers)
powers -= power
power.Remove(owner.current)
// owner.RemoveSpell(power)
@@ -267,7 +267,7 @@
to_chat(owner, "Bloodsucker Tip: If you cannot find or steal a coffin to use, you can build one from wooden planks. ")
/datum/antagonist/bloodsucker/proc/LevelUpPowers()
- for(var/datum/action/bloodsucker/power in powers)
+ for(var/datum/action/cooldown/bloodsucker/power in powers)
power.level_current ++
/datum/antagonist/bloodsucker/proc/SpendRank()
@@ -281,8 +281,8 @@
//TODO: Make this into a radial, or perhaps a tgui next UI
// Purchase Power Prompt
var/list/options = list()
- for(var/pickedpower in typesof(/datum/action/bloodsucker))
- var/datum/action/bloodsucker/power = pickedpower
+ for(var/pickedpower in typesof(/datum/action/cooldown/bloodsucker))
+ var/datum/action/cooldown/bloodsucker/power = pickedpower
// If I don't own it, and I'm allowed to buy it.
if(!(locate(power) in powers) && initial(power.bloodsucker_can_buy))
options[initial(power.name)] = power // TESTING: After working with TGUI, it seems you can use initial() to view the variables inside a path?
@@ -303,7 +303,7 @@
to_chat(owner.current, "You dont have enough blood to thicken your blood, you need [level_bloodcost - L.blood_volume] units more! ")
return
// Buy New Powers
- var/datum/action/bloodsucker/P = options[choice]
+ var/datum/action/cooldown/bloodsucker/P = options[choice]
AddBloodVolume(-level_bloodcost)
BuyPower(new P)
to_chat(owner.current, "You have used [level_bloodcost] units of blood and learned [initial(P.name)]! ")
@@ -725,7 +725,7 @@
/atom/movable/screen/bloodsucker/blood_counter/update_counter(value, valuecolor)
..()
- maptext = "[round(value,1)]
"
+ maptext = MAPTEXT("[round(value,1)]
")
/atom/movable/screen/bloodsucker/rank_counter
name = "Bloodsucker Rank"
@@ -735,7 +735,7 @@
/atom/movable/screen/bloodsucker/rank_counter/update_counter(value, valuecolor)
..()
- maptext = "[round(value,1)]
"
+ maptext = MAPTEXT("[round(value,1)]
")
/atom/movable/screen/bloodsucker/sunlight_counter
icon = 'icons/mob/actions/bloodsucker.dmi'
@@ -763,7 +763,7 @@
/atom/movable/screen/bloodsucker/sunlight_counter/update_counter(value, valuecolor)
..()
- maptext = "[value]
"
+ maptext = MAPTEXT("[value]
")
/datum/antagonist/bloodsucker/proc/count_vassals(datum/mind/master)
var/datum/antagonist/bloodsucker/B = master.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)
diff --git a/code/modules/antagonists/bloodsucker/datum_hunter.dm b/code/modules/antagonists/bloodsucker/datum_hunter.dm
index b221a83a60..9c862fe42a 100644
--- a/code/modules/antagonists/bloodsucker/datum_hunter.dm
+++ b/code/modules/antagonists/bloodsucker/datum_hunter.dm
@@ -26,7 +26,7 @@
//owner.current.apply_status_effect(/datum/status_effect/agent_pinpointer/hunter_edition)
// Give Hunter Power
- var/datum/action/P = new /datum/action/bloodsucker/trackvamp
+ var/datum/action/P = new /datum/action/cooldown/bloodsucker/trackvamp
P.Grant(owner.current)
// Give Hunter Martial Arts
@@ -69,7 +69,7 @@
// Take Hunter Power
if (owner.current)
- for (var/datum/action/bloodsucker/P in owner.current.actions)
+ for (var/datum/action/cooldown/bloodsucker/P in owner.current.actions)
P.Remove(owner.current)
// Take Hunter Martial Arts
@@ -166,7 +166,7 @@
/*
-/datum/action/bloodsucker/trackvamp/
+/datum/action/cooldown/bloodsucker/trackvamp/
name = "Track Monster"//"Cellular Emporium"
desc = "Take a moment to look for clues of any nearby monsters. These creatures are slippery, and often look like the crew."
button_icon = 'icons/mob/actions/bloodsucker.dmi' //This is the file for the BACKGROUND icon
@@ -177,7 +177,7 @@
cooldown = 300 // 10 ticks, 1 second.
bloodcost = 0
-/datum/action/bloodsucker/trackvamp/ActivatePower()
+/datum/action/cooldown/bloodsucker/trackvamp/ActivatePower()
var/mob/living/user = owner
to_chat(user, "You look around, scanning your environment and discerning signs of any filthy, wretched affronts to the natural order. ")
@@ -192,7 +192,7 @@
// NOTE: DON'T DEACTIVATE!
//DeactivatePower()
-/datum/action/bloodsucker/trackvamp/proc/display_proximity()
+/datum/action/cooldown/bloodsucker/trackvamp/proc/display_proximity()
// Pick target
var/turf/my_loc = get_turf(owner)
//var/list/mob/living/carbon/vamps = list()
diff --git a/code/modules/antagonists/bloodsucker/datum_vassal.dm b/code/modules/antagonists/bloodsucker/datum_vassal.dm
index 5162897d60..9a2e3a1ae6 100644
--- a/code/modules/antagonists/bloodsucker/datum_vassal.dm
+++ b/code/modules/antagonists/bloodsucker/datum_vassal.dm
@@ -38,7 +38,7 @@
// Master Pinpointer
owner.current.apply_status_effect(/datum/status_effect/agent_pinpointer/vassal_edition)
// Powers
- var/datum/action/bloodsucker/vassal/recuperate/new_Recuperate = new ()
+ var/datum/action/cooldown/bloodsucker/vassal/recuperate/new_Recuperate = new ()
new_Recuperate.Grant(owner.current)
powers += new_Recuperate
// Give Vassal Objective
diff --git a/code/modules/antagonists/bloodsucker/items/bloodsucker_organs.dm b/code/modules/antagonists/bloodsucker/items/bloodsucker_organs.dm
index 25de64fe34..5f3a3dcc6f 100644
--- a/code/modules/antagonists/bloodsucker/items/bloodsucker_organs.dm
+++ b/code/modules/antagonists/bloodsucker/items/bloodsucker_organs.dm
@@ -33,7 +33,7 @@
/obj/item/organ/heart/vampheart/Restart()
beating = 0 // DONT run ..(). We don't want to start beating again.
- return 0
+ return FALSE
/obj/item/organ/heart/vampheart/Stop()
fakingit = 0
diff --git a/code/modules/antagonists/bloodsucker/objects/bloodsucker_coffin.dm b/code/modules/antagonists/bloodsucker/objects/bloodsucker_coffin.dm
index d58190cf66..df4a11b927 100644
--- a/code/modules/antagonists/bloodsucker/objects/bloodsucker_coffin.dm
+++ b/code/modules/antagonists/bloodsucker/objects/bloodsucker_coffin.dm
@@ -122,7 +122,7 @@
update_icon()
//to_chat(user, "You flip a secret latch and unlock [src]. ") // Don't bother. We know it's unlocked.
locked = FALSE
- return 1
+ return TRUE
else
playsound(get_turf(src), 'sound/machines/door_locked.ogg', 20, 1)
to_chat(user, "[src] is locked tight from the inside. ")
diff --git a/code/modules/antagonists/bloodsucker/powers/brawn.dm b/code/modules/antagonists/bloodsucker/powers/brawn.dm
index db3ce92ec1..25a04d16cc 100644
--- a/code/modules/antagonists/bloodsucker/powers/brawn.dm
+++ b/code/modules/antagonists/bloodsucker/powers/brawn.dm
@@ -1,11 +1,11 @@
-/datum/action/bloodsucker/targeted/brawn
+/datum/action/cooldown/bloodsucker/targeted/brawn
name = "Brawn"
desc = "Snap restraints with ease, or deal terrible damage with your bare hands."
button_icon_state = "power_strength"
bloodcost = 10
- cooldown = 90
+ cooldown_time = 90
target_range = 1
power_activates_immediately = TRUE
message_Trigger = ""//"Whom will you subvert to your will?"
@@ -16,7 +16,7 @@
var/upgrade_canLocker = FALSE
var/upgrade_canDoor = FALSE
-/datum/action/bloodsucker/targeted/brawn/CheckCanUse(display_error)
+/datum/action/cooldown/bloodsucker/targeted/brawn/CheckCanUse(display_error)
. = ..()
if(!.)
return
@@ -38,10 +38,10 @@
// NOTE: We use . = FALSE so that we can break cuffs AND throw off our attacker in one use!
//return TRUE
-/datum/action/bloodsucker/targeted/brawn/CheckValidTarget(atom/A)
+/datum/action/cooldown/bloodsucker/targeted/brawn/CheckValidTarget(atom/A)
return isliving(A) || istype(A, /obj/machinery/door)
-/datum/action/bloodsucker/targeted/brawn/CheckCanTarget(atom/A, display_error)
+/datum/action/cooldown/bloodsucker/targeted/brawn/CheckCanTarget(atom/A, display_error)
// DEFAULT CHECKS (Distance)
if(!..()) // Disable range notice for Brawn.
return FALSE
@@ -59,7 +59,7 @@
return TRUE
return ..() // yes, FALSE! You failed if you got here! BAD TARGET
-/datum/action/bloodsucker/targeted/brawn/FireTargetedPower(atom/A)
+/datum/action/cooldown/bloodsucker/targeted/brawn/FireTargetedPower(atom/A)
// set waitfor = FALSE <---- DONT DO THIS!We WANT this power to hold up ClickWithPower(), so that we can unlock the power when it's done.
var/mob/living/carbon/target = A
var/mob/living/user = owner
@@ -97,7 +97,7 @@
D.open(2) // open(2) is like a crowbar or jaws of life.
// Target Type: Closet
-/datum/action/bloodsucker/targeted/brawn/proc/CheckBreakRestraints()
+/datum/action/cooldown/bloodsucker/targeted/brawn/proc/CheckBreakRestraints()
if(!iscarbon(owner)) // || !owner.restrained()
return FALSE
// (NOTE: Just like biodegrade.dm, we only remove one thing per use //
@@ -131,7 +131,7 @@
return TRUE
return FALSE
-/datum/action/bloodsucker/targeted/brawn/proc/CheckEscapePuller()
+/datum/action/cooldown/bloodsucker/targeted/brawn/proc/CheckEscapePuller()
if(!owner.pulledby)// || owner.pulledby.grab_state <= GRAB_PASSIVE)
return FALSE
var/mob/M = owner.pulledby
@@ -153,7 +153,7 @@
owner.pulledby = null // It's already done, but JUST IN CASE.
return TRUE
/* Doesnt work
-/datum/action/bloodsucker/targeted/brawn/proc/CheckBreakLocker()
+/datum/action/cooldown/bloodsucker/targeted/brawn/proc/CheckBreakLocker()
if(!istype(owner.loc, /obj/structure/closet))
return FALSE
playsound(get_turf(owner), 'sound/machines/airlock_alien_prying.ogg', 40, 1, -1)
diff --git a/code/modules/antagonists/bloodsucker/powers/cloak.dm b/code/modules/antagonists/bloodsucker/powers/cloak.dm
index 5383e8c1ac..cb3a1e9fcf 100644
--- a/code/modules/antagonists/bloodsucker/powers/cloak.dm
+++ b/code/modules/antagonists/bloodsucker/powers/cloak.dm
@@ -1,11 +1,11 @@
-/datum/action/bloodsucker/cloak
+/datum/action/cooldown/bloodsucker/cloak
name = "Cloak of Darkness"
desc = "Blend into the shadows and become invisible to the untrained eye. Movement is slowed in brightly lit areas, and you cannot dissapear while mortals watch you."
button_icon_state = "power_cloak"
bloodcost = 5
- cooldown = 50
+ cooldown_time = 50
bloodsucker_can_buy = TRUE
amToggle = TRUE
warn_constant_cost = TRUE
@@ -14,7 +14,7 @@
var/walk_threshold = 0.4 // arbitrary number, to be changed. edit in last commit: this is fine after testing on box station for a bit
var/lum
-/datum/action/bloodsucker/cloak/CheckCanUse(display_error)
+/datum/action/cooldown/bloodsucker/cloak/CheckCanUse(display_error)
. = ..()
if(!.)
return
@@ -24,7 +24,7 @@
return FALSE
return TRUE
-/datum/action/bloodsucker/cloak/ActivatePower()
+/datum/action/cooldown/bloodsucker/cloak/ActivatePower()
var/datum/antagonist/bloodsucker/bloodsuckerdatum = owner.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)
var/mob/living/user = owner
@@ -52,7 +52,7 @@
sleep(5) // Check every few ticks
-/datum/action/bloodsucker/cloak/ContinueActive(mob/living/user, mob/living/target)
+/datum/action/cooldown/bloodsucker/cloak/ContinueActive(mob/living/user, mob/living/target)
if (!..())
return FALSE
if(user.stat == !CONSCIOUS) // Must be CONSCIOUS
@@ -60,7 +60,7 @@
return FALSE
return TRUE
-/datum/action/bloodsucker/cloak/DeactivatePower(mob/living/user = owner, mob/living/target)
+/datum/action/cooldown/bloodsucker/cloak/DeactivatePower(mob/living/user = owner, mob/living/target)
..()
REMOVE_TRAIT(user, TRAIT_NORUNNING, "cloak of darkness")
user.alpha = 255
diff --git a/code/modules/antagonists/bloodsucker/powers/feed.dm b/code/modules/antagonists/bloodsucker/powers/feed.dm
index 284356a296..bfcf274121 100644
--- a/code/modules/antagonists/bloodsucker/powers/feed.dm
+++ b/code/modules/antagonists/bloodsucker/powers/feed.dm
@@ -1,12 +1,12 @@
-/datum/action/bloodsucker/feed
+/datum/action/cooldown/bloodsucker/feed
name = "Feed"
desc = "Draw the heartsblood of living victims in your grasp.None/Passive: Feed silently and unnoticed by your victim.Aggressive: Subdue your target quickly."
button_icon_state = "power_feed"
bloodcost = 0
- cooldown = 30
+ cooldown_time = 30
amToggle = TRUE
bloodsucker_can_buy = TRUE
can_be_staked = TRUE
@@ -16,7 +16,7 @@
var/mob/living/feed_target // So we can validate more than just the guy we're grappling.
var/target_grappled = FALSE // If you started grappled, then ending it will end your Feed.
-/datum/action/bloodsucker/feed/CheckCanUse(display_error)
+/datum/action/cooldown/bloodsucker/feed/CheckCanUse(display_error)
. = ..()
if(!.)
return
@@ -33,7 +33,7 @@
// DONE!
return TRUE
-/datum/action/bloodsucker/feed/proc/ValidateTarget(mob/living/target, display_error) // Called twice: validating a subtle victim, or validating your grapple victim.
+/datum/action/cooldown/bloodsucker/feed/proc/ValidateTarget(mob/living/target, display_error) // Called twice: validating a subtle victim, or validating your grapple victim.
// Bloodsuckers + Animals MUST be grabbed aggressively!
if(!owner.pulling || target == owner.pulling && owner.grab_state < GRAB_AGGRESSIVE)
// NOTE: It's OKAY that we are checking if(!target) below, AFTER animals here. We want passive check vs animal to warn you first, THEN the standard warning.
@@ -76,7 +76,7 @@
return TRUE
// If I'm not grabbing someone, find me someone nearby.
-/datum/action/bloodsucker/feed/proc/FindMyTarget(display_error)
+/datum/action/cooldown/bloodsucker/feed/proc/FindMyTarget(display_error)
// Default
feed_target = null
target_grappled = FALSE
@@ -132,7 +132,7 @@
feed_target = pick(targets_valid)//targets[1]
return TRUE
-/datum/action/bloodsucker/feed/ActivatePower()
+/datum/action/cooldown/bloodsucker/feed/ActivatePower()
// set waitfor = FALSE <---- DONT DO THIS!We WANT this power to hold up Activate(), so Deactivate() can happen after.
var/mob/living/target = feed_target // Stored during CheckCanUse(). Can be a grabbed OR adjecent character.
var/mob/living/user = owner
@@ -302,16 +302,16 @@
CheckKilledTarget(user,target)
-/datum/action/bloodsucker/feed/proc/CheckKilledTarget(mob/living/user, mob/living/target)
+/datum/action/cooldown/bloodsucker/feed/proc/CheckKilledTarget(mob/living/user, mob/living/target)
// Bad Bloodsucker. You shouldn't do that.
if(target && target.stat >= DEAD && ishuman(target))
SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "drankkilled", /datum/mood_event/drankkilled) // BAD // in bloodsucker_life.dm
-/datum/action/bloodsucker/feed/ContinueActive(mob/living/user, mob/living/target)
+/datum/action/cooldown/bloodsucker/feed/ContinueActive(mob/living/user, mob/living/target)
return ..() && target && (!target_grappled || user.pulling == target) && blood_sucking_checks(target, TRUE, TRUE) // Active, and still antag,
// NOTE: We only care about pulling if target started off that way. Mostly only important for Aggressive feed.
-/datum/action/bloodsucker/feed/proc/ApplyVictimEffects(mob/living/target)
+/datum/action/cooldown/bloodsucker/feed/proc/ApplyVictimEffects(mob/living/target)
// Bloodsuckers not affected by "the Kiss" of another vampire
if(!target.mind || !target.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER))
target.Unconscious(50,0)
@@ -320,7 +320,7 @@
if(ishuman(target))
target.adjustStaminaLoss(5, forced = TRUE)// Base Stamina Damage
-/datum/action/bloodsucker/feed/DeactivatePower(mob/living/user = owner, mob/living/target)
+/datum/action/cooldown/bloodsucker/feed/DeactivatePower(mob/living/user = owner, mob/living/target)
..() // activate = FALSE
var/datum/antagonist/bloodsucker/bloodsuckerdatum = user.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)
// No longer Feeding
diff --git a/code/modules/antagonists/bloodsucker/powers/fortitude.dm b/code/modules/antagonists/bloodsucker/powers/fortitude.dm
index 740ec81782..c343270910 100644
--- a/code/modules/antagonists/bloodsucker/powers/fortitude.dm
+++ b/code/modules/antagonists/bloodsucker/powers/fortitude.dm
@@ -2,12 +2,12 @@
-/datum/action/bloodsucker/fortitude
+/datum/action/cooldown/bloodsucker/fortitude
name = "Fortitude"
desc = "Withstand egregious physical wounds and walk away from attacks that would stun, pierce, and dismember lesser beings. You cannot run while active."
button_icon_state = "power_fortitude"
bloodcost = 30
- cooldown = 80
+ cooldown_time = 80
bloodsucker_can_buy = TRUE
amToggle = TRUE
warn_constant_cost = TRUE
@@ -15,7 +15,7 @@
var/fortitude_resist // So we can raise and lower your brute resist based on what your level_current WAS.
-/datum/action/bloodsucker/fortitude/ActivatePower()
+/datum/action/cooldown/bloodsucker/fortitude/ActivatePower()
var/datum/antagonist/bloodsucker/B = owner.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)
var/mob/living/user = owner
to_chat(user, "Your flesh, skin, and muscles become as steel. ")
@@ -47,8 +47,8 @@
B.AddBloodVolume(-0.5)
sleep(20) // Check every few ticks that we haven't disabled this power
// Return to Running (if you were before)
-
-/datum/action/bloodsucker/fortitude/DeactivatePower(mob/living/user = owner, mob/living/target)
+
+/datum/action/cooldown/bloodsucker/fortitude/DeactivatePower(mob/living/user = owner, mob/living/target)
..()
// Restore Traits & Effects
REMOVE_TRAIT(user, TRAIT_PIERCEIMMUNE, "fortitude")
diff --git a/code/modules/antagonists/bloodsucker/powers/go_home.dm b/code/modules/antagonists/bloodsucker/powers/go_home.dm
index a8060ad07e..e78b9089fb 100644
--- a/code/modules/antagonists/bloodsucker/powers/go_home.dm
+++ b/code/modules/antagonists/bloodsucker/powers/go_home.dm
@@ -1,6 +1,6 @@
-/datum/action/bloodsucker/gohome
+/datum/action/cooldown/bloodsucker/gohome
name = "Vanishing Act"
desc = "As dawn aproaches, disperse into mist and return directly to your Lair.WARNING: You will drop ALL of your possessions if observed by mortals."
button_icon_state = "power_gohome"
@@ -8,7 +8,7 @@
background_icon_state_off = "vamp_power_off_oneshot"
bloodcost = 100
- cooldown = 99999 // It'll never come back.
+ cooldown_time = 99999 // It'll never come back.
amToggle = FALSE
amSingleUse = TRUE
@@ -18,7 +18,7 @@
can_be_immobilized = TRUE
must_be_concious = FALSE
-/datum/action/bloodsucker/gohome/CheckCanUse(display_error)
+/datum/action/cooldown/bloodsucker/gohome/CheckCanUse(display_error)
. = ..()
if(!.)
return
@@ -30,12 +30,12 @@
return FALSE
return TRUE
-/datum/action/bloodsucker/gohome/proc/flicker_lights(var/flicker_range, var/beat_volume)
+/datum/action/cooldown/bloodsucker/gohome/proc/flicker_lights(var/flicker_range, var/beat_volume)
for(var/obj/machinery/light/L in view(flicker_range, get_turf(owner)))
playsound(get_turf(owner), 'sound/effects/singlebeat.ogg', beat_volume, 1)
-/datum/action/bloodsucker/gohome/ActivatePower()
+/datum/action/cooldown/bloodsucker/gohome/ActivatePower()
var/mob/living/carbon/user = owner
var/datum/antagonist/bloodsucker/bloodsuckerdatum = owner.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)
// IMPORTANT: Check for lair at every step! It might get destroyed.
diff --git a/code/modules/antagonists/bloodsucker/powers/haste.dm b/code/modules/antagonists/bloodsucker/powers/haste.dm
index 5c5df41cdc..e783afd360 100644
--- a/code/modules/antagonists/bloodsucker/powers/haste.dm
+++ b/code/modules/antagonists/bloodsucker/powers/haste.dm
@@ -3,12 +3,12 @@
// Level 2: Dodge Bullets
// Level 3: Stun People Passed
-/datum/action/bloodsucker/targeted/haste
+/datum/action/cooldown/bloodsucker/targeted/haste
name = "Immortal Haste"
desc = "Dash somewhere with supernatural speed. Those nearby may be knocked away, stunned, or left empty-handed."
button_icon_state = "power_speed"
bloodcost = 6
- cooldown = 120
+ cooldown_time = 120
target_range = 15
power_activates_immediately = TRUE
message_Trigger = ""//"Whom will you subvert to your will?"
@@ -18,7 +18,7 @@
/// If set, uses this speed in deciseconds instead of world.tick_lag
var/speed_override
-/datum/action/bloodsucker/targeted/haste/CheckCanUse(display_error)
+/datum/action/cooldown/bloodsucker/targeted/haste/CheckCanUse(display_error)
. = ..()
if(!.)
return
@@ -33,10 +33,10 @@
return FALSE
return TRUE
-/datum/action/bloodsucker/targeted/haste/CheckValidTarget(atom/A)
+/datum/action/cooldown/bloodsucker/targeted/haste/CheckValidTarget(atom/A)
return isturf(A) || A.loc != owner.loc // Anything will do, if it's not me or my square
-/datum/action/bloodsucker/targeted/haste/CheckCanTarget(atom/A, display_error)
+/datum/action/cooldown/bloodsucker/targeted/haste/CheckCanTarget(atom/A, display_error)
// DEFAULT CHECKS (Distance)
if (!..())
return FALSE
@@ -45,7 +45,7 @@
// return FALSE
return TRUE
-/datum/action/bloodsucker/targeted/haste/FireTargetedPower(atom/A)
+/datum/action/cooldown/bloodsucker/targeted/haste/FireTargetedPower(atom/A)
// This is a non-async proc to make sure the power is "locked" until this finishes.
hit = list()
RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(on_move))
@@ -78,11 +78,11 @@
hit = null
user.update_mobility()
-/datum/action/bloodsucker/targeted/haste/DeactivatePower(mob/living/user = owner, mob/living/target)
+/datum/action/cooldown/bloodsucker/targeted/haste/DeactivatePower(mob/living/user = owner, mob/living/target)
..() // activate = FALSE
user.update_mobility()
-/datum/action/bloodsucker/targeted/haste/proc/on_move()
+/datum/action/cooldown/bloodsucker/targeted/haste/proc/on_move()
for(var/mob/living/L in dview(1, get_turf(owner)))
if(!hit[L] && (L != owner))
hit[L] = TRUE
diff --git a/code/modules/antagonists/bloodsucker/powers/lunge.dm b/code/modules/antagonists/bloodsucker/powers/lunge.dm
index 365f461e20..5ad79400d7 100644
--- a/code/modules/antagonists/bloodsucker/powers/lunge.dm
+++ b/code/modules/antagonists/bloodsucker/powers/lunge.dm
@@ -1,25 +1,21 @@
-/datum/action/bloodsucker/lunge
+/datum/action/cooldown/bloodsucker/lunge
name = "Predatory Lunge"
desc = "Prepare the strenght to grapple your prey."
button_icon_state = "power_lunge"
bloodcost = 10
- cooldown = 30
+ cooldown_time = 30
bloodsucker_can_buy = TRUE
warn_constant_cost = TRUE
amToggle = TRUE
var/leap_skill_mod = 5
-/datum/action/bloodsucker/lunge/New()
- . = ..()
-
-
-/datum/action/bloodsucker/lunge/Destroy()
+/datum/action/cooldown/bloodsucker/lunge/Destroy()
. = ..()
UnregisterSignal(owner, COMSIG_CARBON_TACKLED)
-/datum/action/bloodsucker/lunge/ActivatePower()
+/datum/action/cooldown/bloodsucker/lunge/ActivatePower()
var/mob/living/carbon/user = owner
var/datum/antagonist/bloodsucker/B = user.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)
var/datum/component/tackler/T = user.LoadComponent(/datum/component/tackler)
@@ -37,10 +33,10 @@
sleep(5)
//Without this, the leap component would get removed too early, causing the normal crash into effects.
-/datum/action/bloodsucker/lunge/proc/DelayedDeactivatePower()
+/datum/action/cooldown/bloodsucker/lunge/proc/DelayedDeactivatePower()
addtimer(CALLBACK(src, PROC_REF(DeactivatePower)), 1 SECONDS, TIMER_UNIQUE)
-/datum/action/bloodsucker/lunge/DeactivatePower(mob/living/user = owner)
+/datum/action/cooldown/bloodsucker/lunge/DeactivatePower(mob/living/user = owner)
. = ..()
qdel(user.GetComponent(/datum/component/tackler))
UnregisterSignal(user, COMSIG_CARBON_TACKLED)
diff --git a/code/modules/antagonists/bloodsucker/powers/masquerade.dm b/code/modules/antagonists/bloodsucker/powers/masquerade.dm
index f4ce531ef0..78748a3c80 100644
--- a/code/modules/antagonists/bloodsucker/powers/masquerade.dm
+++ b/code/modules/antagonists/bloodsucker/powers/masquerade.dm
@@ -16,12 +16,12 @@
// -
-/datum/action/bloodsucker/masquerade
+/datum/action/cooldown/bloodsucker/masquerade
name = "Masquerade"
desc = "Feign the vital signs of a mortal, and escape both casual and medical notice as the monster you truly are."
button_icon_state = "power_human"
bloodcost = 10
- cooldown = 50
+ cooldown_time = 50
amToggle = TRUE
bloodsucker_can_buy = TRUE
warn_constant_cost = TRUE
@@ -31,7 +31,7 @@
// NOTE: Firing off vulgar powers disables your Masquerade!
-/*/datum/action/bloodsucker/masquerade/CheckCanUse(display_error)
+/*/datum/action/cooldown/bloodsucker/masquerade/CheckCanUse(display_error)
if(!..(display_error))// DEFAULT CHECKS
return FALSE
// DONE!
@@ -39,7 +39,7 @@
*/
-/datum/action/bloodsucker/masquerade/ActivatePower()
+/datum/action/cooldown/bloodsucker/masquerade/ActivatePower()
var/mob/living/user = owner
var/datum/antagonist/bloodsucker/bloodsuckerdatum = user.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)
@@ -78,14 +78,14 @@
sleep(20) // Check every few ticks that we haven't disabled this power
-/datum/action/bloodsucker/masquerade/ContinueActive(mob/living/user)
+/datum/action/cooldown/bloodsucker/masquerade/ContinueActive(mob/living/user)
// Disable if unable to use power anymore.
//if (user.stat == DEAD || user.blood_volume <= 0) // not conscious or soft critor uncon, just dead
// return FALSE
return ..() // Active, and still Antag
-/datum/action/bloodsucker/masquerade/DeactivatePower(mob/living/user = owner, mob/living/target)
+/datum/action/cooldown/bloodsucker/masquerade/DeactivatePower(mob/living/user = owner, mob/living/target)
..() // activate = FALSE
var/datum/antagonist/bloodsucker/bloodsuckerdatum = user.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)
diff --git a/code/modules/antagonists/bloodsucker/powers/mesmerize.dm b/code/modules/antagonists/bloodsucker/powers/mesmerize.dm
index 3586a5851f..26a747614e 100644
--- a/code/modules/antagonists/bloodsucker/powers/mesmerize.dm
+++ b/code/modules/antagonists/bloodsucker/powers/mesmerize.dm
@@ -5,12 +5,12 @@
// FOLLOW: Target follows you, spouting random phrases from their history (or maybe Polly's or NPC's vocab?)
// ATTACK: Target finds a nearby non-Bloodsucker victim to attack.
-/datum/action/bloodsucker/targeted/mesmerize
+/datum/action/cooldown/bloodsucker/targeted/mesmerize
name = "Mesmerize"
desc = "Dominate the mind of a mortal who can see your eyes."
button_icon_state = "power_mez"
bloodcost = 30
- cooldown = 300
+ cooldown_time = 300
target_range = 2
power_activates_immediately = TRUE
message_Trigger = "Whom will you subvert to your will?"
@@ -18,7 +18,7 @@
bloodsucker_can_buy = TRUE
var/success
-/datum/action/bloodsucker/targeted/mesmerize/CheckCanUse(display_error)
+/datum/action/cooldown/bloodsucker/targeted/mesmerize/CheckCanUse(display_error)
. = ..()
if(!.)
return
@@ -34,10 +34,10 @@
return FALSE
return TRUE
-/datum/action/bloodsucker/targeted/mesmerize/CheckValidTarget(atom/A)
+/datum/action/cooldown/bloodsucker/targeted/mesmerize/CheckValidTarget(atom/A)
return iscarbon(A)
-/datum/action/bloodsucker/targeted/mesmerize/CheckCanTarget(atom/A,display_error)
+/datum/action/cooldown/bloodsucker/targeted/mesmerize/CheckCanTarget(atom/A,display_error)
// Check: Self
if(A == owner)
return FALSE
@@ -88,7 +88,7 @@
return FALSE
return TRUE
-/datum/action/bloodsucker/targeted/mesmerize/proc/ContinueTarget(atom/A)
+/datum/action/cooldown/bloodsucker/targeted/mesmerize/proc/ContinueTarget(atom/A)
var/mob/living/carbon/target = A
var/mob/living/L = owner
@@ -103,7 +103,7 @@
to_chat(L, "[target] has escaped your gaze! ")
UnregisterSignal(target, COMSIG_MOVABLE_MOVED)
-/datum/action/bloodsucker/targeted/mesmerize/FireTargetedPower(atom/A)
+/datum/action/cooldown/bloodsucker/targeted/mesmerize/FireTargetedPower(atom/A)
// set waitfor = FALSE <---- DONT DO THIS!We WANT this power to hold up ClickWithPower(), so that we can unlock the power when it's done.
var/mob/living/carbon/target = A
var/mob/living/L = owner
@@ -118,7 +118,7 @@
// 5 second windup
addtimer(CALLBACK(src, PROC_REF(apply_effects), L, target, power_time), 6 SECONDS)
-/datum/action/bloodsucker/targeted/mesmerize/proc/apply_effects(aggressor, victim, power_time)
+/datum/action/cooldown/bloodsucker/targeted/mesmerize/proc/apply_effects(aggressor, victim, power_time)
var/mob/living/carbon/target = victim
var/mob/living/L = aggressor
if(!success)
@@ -135,5 +135,5 @@
to_chat(L, "[target] has snapped out of their trance. ")
-/datum/action/bloodsucker/targeted/mesmerize/ContinueActive(mob/living/user, mob/living/target)
+/datum/action/cooldown/bloodsucker/targeted/mesmerize/ContinueActive(mob/living/user, mob/living/target)
return ..() && CheckCanUse() && CheckCanTarget(target)
diff --git a/code/modules/antagonists/bloodsucker/powers/recuperate.dm b/code/modules/antagonists/bloodsucker/powers/recuperate.dm
index 90a2e3ff38..6f6b204299 100644
--- a/code/modules/antagonists/bloodsucker/powers/recuperate.dm
+++ b/code/modules/antagonists/bloodsucker/powers/recuperate.dm
@@ -1,12 +1,12 @@
-/datum/action/bloodsucker/vassal/recuperate
+/datum/action/cooldown/bloodsucker/vassal/recuperate
name = "Sanguine Recuperation"
desc = "Slowly heal brute damage while active. This process is exhausting, and requires some of your tainted blood."
button_icon_state = "power_recup"
amToggle = TRUE
bloodcost = 5
- cooldown = 100
+ cooldown_time = 100
-/datum/action/bloodsucker/vassal/recuperate/CheckCanUse(display_error)
+/datum/action/cooldown/bloodsucker/vassal/recuperate/CheckCanUse(display_error)
. = ..()
if(!.)
return
@@ -14,7 +14,7 @@
return FALSE
return TRUE
-/datum/action/bloodsucker/vassal/recuperate/ActivatePower()
+/datum/action/cooldown/bloodsucker/vassal/recuperate/ActivatePower()
to_chat(owner, "Your muscles clench and your skin crawls as your master's immortal blood knits your wounds and gives you stamina. ")
var/mob/living/carbon/C = owner
var/mob/living/carbon/human/H
@@ -35,5 +35,5 @@
// DONE!
//DeactivatePower(owner)
-/datum/action/bloodsucker/vassal/recuperate/ContinueActive(mob/living/user, mob/living/target)
+/datum/action/cooldown/bloodsucker/vassal/recuperate/ContinueActive(mob/living/user, mob/living/target)
return ..() && user.stat <= DEAD && user.blood_volume > 500
diff --git a/code/modules/antagonists/bloodsucker/powers/trespass.dm b/code/modules/antagonists/bloodsucker/powers/trespass.dm
index 56b72a562e..9a64fe8cb3 100644
--- a/code/modules/antagonists/bloodsucker/powers/trespass.dm
+++ b/code/modules/antagonists/bloodsucker/powers/trespass.dm
@@ -1,12 +1,12 @@
-/datum/action/bloodsucker/targeted/trespass
+/datum/action/cooldown/bloodsucker/targeted/trespass
name = "Trespass"
desc = "Become mist and advance two tiles in one direction, ignoring all obstacles except for walls. Useful for skipping past doors and barricades."
button_icon_state = "power_tres"
bloodcost = 10
- cooldown = 80
+ cooldown_time = 80
amToggle = FALSE
//target_range = 2
@@ -16,7 +16,7 @@
var/turf/target_turf // We need to decide where we're going based on where we clicked. It's not actually the tile we clicked.
-/datum/action/bloodsucker/targeted/trespass/CheckCanUse(display_error)
+/datum/action/cooldown/bloodsucker/targeted/trespass/CheckCanUse(display_error)
. = ..()
if(!.)
return
@@ -26,7 +26,7 @@
return TRUE
-/datum/action/bloodsucker/targeted/trespass/CheckValidTarget(atom/A)
+/datum/action/cooldown/bloodsucker/targeted/trespass/CheckValidTarget(atom/A)
// Can't target my tile
if(A == get_turf(owner) || get_turf(A) == get_turf(owner))
return FALSE
@@ -34,7 +34,7 @@
return TRUE // All we care about is destination. Anything you click is fine.
-/datum/action/bloodsucker/targeted/trespass/CheckCanTarget(atom/A, display_error)
+/datum/action/cooldown/bloodsucker/targeted/trespass/CheckCanTarget(atom/A, display_error)
// NOTE: Do NOT use ..()! We don't want to check distance or anything.
// Get clicked tile
@@ -60,7 +60,7 @@
return TRUE
-/datum/action/bloodsucker/targeted/trespass/FireTargetedPower(atom/A)
+/datum/action/cooldown/bloodsucker/targeted/trespass/FireTargetedPower(atom/A)
// set waitfor = FALSE <---- DONT DO THIS!We WANT this power to hold up ClickWithPower(), so that we can unlock the power when it's done.
// Find target turf, at or below Atom
@@ -87,7 +87,7 @@
user.invisibility = INVISIBILITY_MAXIMUM
// LOSE CUFFS
-
+
// Wait...
sleep(mist_delay / 2)
diff --git a/code/modules/antagonists/bloodsucker/powers/veil.dm b/code/modules/antagonists/bloodsucker/powers/veil.dm
index b170b9d442..9b04a6f774 100644
--- a/code/modules/antagonists/bloodsucker/powers/veil.dm
+++ b/code/modules/antagonists/bloodsucker/powers/veil.dm
@@ -1,10 +1,10 @@
-/datum/action/bloodsucker/veil
+/datum/action/cooldown/bloodsucker/veil
name = "Veil of Many Faces"
desc = "Disguise yourself in the illusion of another identity."
button_icon_state = "power_veil"
bloodcost = 15
- cooldown = 100
+ cooldown_time = 100
amToggle = TRUE
bloodsucker_can_buy = TRUE
warn_constant_cost = TRUE
@@ -29,7 +29,7 @@
var/list/prev_features // For lizards and such
-/datum/action/bloodsucker/veil/CheckCanUse(display_error)
+/datum/action/cooldown/bloodsucker/veil/CheckCanUse(display_error)
. = ..()
if(!.)
return
@@ -37,7 +37,7 @@
return TRUE
-/datum/action/bloodsucker/veil/ActivatePower()
+/datum/action/cooldown/bloodsucker/veil/ActivatePower()
cast_effect() // POOF
@@ -47,14 +47,14 @@
Disguise_FaceName()
-/datum/action/bloodsucker/veil/proc/Disguise_Outfit()
+/datum/action/cooldown/bloodsucker/veil/proc/Disguise_Outfit()
// Step One: Back up original items
-/datum/action/bloodsucker/veil/proc/Disguise_FaceName()
+/datum/action/cooldown/bloodsucker/veil/proc/Disguise_FaceName()
// Change Name/Voice
var/mob/living/carbon/human/H = owner
@@ -112,7 +112,7 @@
sleep(50)
-/datum/action/bloodsucker/veil/DeactivatePower(mob/living/user = owner, mob/living/target)
+/datum/action/cooldown/bloodsucker/veil/DeactivatePower(mob/living/user = owner, mob/living/target)
..()
if (ishuman(user))
var/mob/living/carbon/human/H = user
@@ -149,7 +149,7 @@
cast_effect() // POOF
// CAST EFFECT // // General effect (poof, splat, etc) when you cast. Doesn't happen automatically!
-/datum/action/bloodsucker/veil/proc/cast_effect()
+/datum/action/cooldown/bloodsucker/veil/proc/cast_effect()
// Effect
playsound(get_turf(owner), 'sound/magic/smoke.ogg', 20, 1)
var/datum/effect_system/steam_spread/puff = new /datum/effect_system/steam_spread/()
diff --git a/code/modules/antagonists/changeling/cellular_emporium.dm b/code/modules/antagonists/changeling/cellular_emporium.dm
index d825fa048e..3e48fca317 100644
--- a/code/modules/antagonists/changeling/cellular_emporium.dm
+++ b/code/modules/antagonists/changeling/cellular_emporium.dm
@@ -80,7 +80,6 @@
/datum/action/innate/cellular_emporium/New(our_target)
. = ..()
- button.name = name
if(istype(our_target, /datum/cellular_emporium))
cellular_emporium = our_target
else
diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm
index 9103444fff..2a2c24c201 100644
--- a/code/modules/antagonists/changeling/changeling.dm
+++ b/code/modules/antagonists/changeling/changeling.dm
@@ -229,10 +229,10 @@
playsound(get_turf(owner.current), 'sound/effects/lingreadapt.ogg', 75, TRUE, 5)
can_respec = 0
SSblackbox.record_feedback("tally", "changeling_power_purchase", 1, "Readapt")
- return 1
+ return TRUE
else
to_chat(owner.current, "You lack the power to readapt your evolutions! ")
- return 0
+ return FALSE
//Called in life()
/datum/antagonist/changeling/proc/regenerate()//grants the HuD in life.dm
@@ -285,7 +285,7 @@
if(verbose)
to_chat(user, "[target] is not compatible with our biology. ")
return
- return 1
+ return TRUE
/datum/antagonist/changeling/proc/create_profile(mob/living/carbon/human/H, protect = 0)
diff --git a/code/modules/antagonists/changeling/changeling_power.dm b/code/modules/antagonists/changeling/changeling_power.dm
index c784939c0f..8f48128562 100644
--- a/code/modules/antagonists/changeling/changeling_power.dm
+++ b/code/modules/antagonists/changeling/changeling_power.dm
@@ -47,10 +47,10 @@ the same goes for Remove(). if you override Remove(), call parent or else your p
/datum/action/changeling/proc/sting_action(mob/user, mob/target)
SSblackbox.record_feedback("nested tally", "changeling_powers", 1, list("[name]"))
- return 0
+ return FALSE
/datum/action/changeling/proc/sting_feedback(mob/user, mob/target)
- return 0
+ return FALSE
//Fairly important to remember to return TRUE on success >.<
diff --git a/code/modules/antagonists/changeling/powers/fakedeath.dm b/code/modules/antagonists/changeling/powers/fakedeath.dm
index cd0a929fb8..8bbbc423a1 100644
--- a/code/modules/antagonists/changeling/powers/fakedeath.dm
+++ b/code/modules/antagonists/changeling/powers/fakedeath.dm
@@ -44,7 +44,7 @@
name = "Reviving Stasis"
desc = "We fall into a stasis, allowing us to regenerate and trick our enemies. Costs 15 chemicals."
button_icon_state = "fake_death"
- UpdateButtonIcon()
+ UpdateButtons()
chemical_cost = 15
to_chat(user, "We have revived ourselves. ")
@@ -56,7 +56,7 @@
name = "Revive"
desc = "We arise once more."
button_icon_state = "revive"
- UpdateButtonIcon()
+ UpdateButtons()
chemical_cost = 0
revive_ready = TRUE
diff --git a/code/modules/antagonists/changeling/powers/hivemind.dm b/code/modules/antagonists/changeling/powers/hivemind.dm
index 95ad09c318..f4ac9adca7 100644
--- a/code/modules/antagonists/changeling/powers/hivemind.dm
+++ b/code/modules/antagonists/changeling/powers/hivemind.dm
@@ -94,7 +94,7 @@ GLOBAL_LIST_EMPTY(hivemind_bank)
if(first_prof.name == user.real_name)//If our current DNA is the stalest, we gotta ditch it.
to_chat(user, "We have reached our capacity to store genetic information! We must transform before absorbing more. ")
return
- return 1
+ return TRUE
/datum/action/changeling/hivemind_download/sting_action(mob/user)
var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
diff --git a/code/modules/antagonists/changeling/powers/humanform.dm b/code/modules/antagonists/changeling/powers/humanform.dm
index 016ab5c6dd..c141e0db2e 100644
--- a/code/modules/antagonists/changeling/powers/humanform.dm
+++ b/code/modules/antagonists/changeling/powers/humanform.dm
@@ -13,7 +13,7 @@
if(!chosen_prof)
return
if(!user || user.mob_transforming)
- return 0
+ return FALSE
to_chat(user, "We transform our appearance. ")
changeling.purchasedpowers -= src
diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm
index 2f0125886d..b41135086a 100644
--- a/code/modules/antagonists/changeling/powers/mutations.dm
+++ b/code/modules/antagonists/changeling/powers/mutations.dm
@@ -40,7 +40,7 @@
var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
changeling.chem_recharge_slowdown -= recharge_slowdown
user.update_inv_hands()
- return 1
+ return TRUE
/datum/action/changeling/weapon/sting_action(mob/living/user)
var/obj/item/held = user.get_active_held_item()
@@ -325,7 +325,7 @@
..()
/obj/item/projectile/tentacle/proc/reset_throw(mob/living/carbon/human/H)
- if(H.in_throw_mode)
+ if(H.throw_mode)
H.throw_mode_off() //Don't annoy the changeling if he doesn't catch the item
/obj/item/projectile/tentacle/proc/tentacle_grab(mob/living/carbon/human/H, mob/living/carbon/C)
@@ -597,7 +597,7 @@
/datum/action/changeling/gloves/proc/check_gloves(mob/user)
var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
if(!ishuman(user) || !changeling)
- return 1
+ return TRUE
var/mob/living/carbon/human/H = user
if(istype(H.gloves, glove_type))
H.visible_message("With a sickening crunch, [H] reforms [H.p_their()] [glove_name_simple] into hands! ", "We assimilate our [glove_name_simple]. ", "You hear organic matter ripping and tearing! ")
@@ -609,7 +609,7 @@
playsound(H.loc, 'sound/effects/splat.ogg', 50, 1) //So real sounds
changeling.chem_recharge_slowdown -= recharge_slowdown
- return 1
+ return TRUE
/datum/action/changeling/gloves/Remove(mob/user)
if(!ishuman(user))
diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm
index 2519dd1dbf..514d6ed6f6 100644
--- a/code/modules/antagonists/changeling/powers/tiny_prick.dm
+++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm
@@ -53,7 +53,7 @@
if(target.mind && target.mind.has_antag_datum(/datum/antagonist/changeling))
sting_feedback(user, target)
changeling.chem_charges -= chemical_cost
- return 1
+ return TRUE
/datum/action/changeling/sting/sting_feedback(mob/user, mob/target)
if(!target)
@@ -61,7 +61,7 @@
to_chat(user, "We stealthily sting [target.name]. ")
if(target.mind && target.mind.has_antag_datum(/datum/antagonist/changeling))
to_chat(target, "You feel a tiny prick. ")
- return 1
+ return TRUE
/datum/action/changeling/sting/transformation
@@ -94,8 +94,8 @@
return
if((HAS_TRAIT(target, TRAIT_HUSK)) || !iscarbon(target) || (NOTRANSSTING in target.dna.species.species_traits))
to_chat(user, "Our sting appears ineffective against its DNA. ")
- return 0
- return 1
+ return FALSE
+ return TRUE
/datum/action/changeling/sting/transformation/sting_action(mob/user, mob/target)
if(ismonkey(target))
@@ -133,8 +133,8 @@
var/mob/living/L = target
if((HAS_TRAIT(L, TRAIT_HUSK)) || !L.has_dna())
to_chat(user, "Our sting appears ineffective against its DNA. ")
- return 0
- return 1
+ return FALSE
+ return TRUE
/datum/action/changeling/sting/false_armblade/sting_action(mob/user, mob/target)
log_combat(user, target, "stung", object="false armblade sting")
diff --git a/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm b/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm
index 8adaaffcc3..3704094a90 100644
--- a/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm
+++ b/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm
@@ -21,7 +21,7 @@
return ..()
user.visible_message("[user] scatters [src] with [I]! ", "You scatter [src] with [I]! ")
qdel(src)
- return 1
+ return TRUE
return ..()
/obj/effect/clockwork/sigil/attack_tk(mob/user)
diff --git a/code/modules/antagonists/clockcult/clock_effects/servant_blocker.dm b/code/modules/antagonists/clockcult/clock_effects/servant_blocker.dm
index 5905862690..cb52944a0a 100644
--- a/code/modules/antagonists/clockcult/clock_effects/servant_blocker.dm
+++ b/code/modules/antagonists/clockcult/clock_effects/servant_blocker.dm
@@ -25,7 +25,7 @@
return
if(isitem(M))
var/obj/item/I = M
- if(is_servant_of_ratvar(I.thrownby)) //nice try!
+ if(is_servant_of_ratvar(I.thrownby?.resolve())) //nice try!
return
return TRUE
diff --git a/code/modules/antagonists/clockcult/clock_helpers/clock_powerdrain.dm b/code/modules/antagonists/clockcult/clock_helpers/clock_powerdrain.dm
index 8d0dff0ea8..085eacca35 100644
--- a/code/modules/antagonists/clockcult/clock_helpers/clock_powerdrain.dm
+++ b/code/modules/antagonists/clockcult/clock_helpers/clock_powerdrain.dm
@@ -16,22 +16,22 @@ drain_amount: How much is drained by default; Influenced by a multiplier on most
var/obj/item/stock_parts/cell/cell = get_cell()
if(cell)
return cell.power_drain(clockcult_user, drain_weapons, recursive, drain_amount)
- return 0 //Returns 0 instead of FALSE to symbolise it returning the power amount in other cases, not TRUE aka 1
+ return FALSE //Returns 0 instead of FALSE to symbolise it returning the power amount in other cases, not TRUE aka 1
/obj/item/melee/baton/power_drain(clockcult_user, drain_weapons = FALSE, recursive = FALSE, drain_amount = MIN_CLOCKCULT_POWER) //balance memes
if(!drain_weapons)
- return 0
+ return FALSE
var/obj/item/stock_parts/cell/cell = get_cell()
if(cell)
return cell.power_drain(clockcult_user, drain_weapons, recursive, drain_amount)
- return 0 //No need to recurse further in batons
+ return FALSE //No need to recurse further in batons
/obj/item/gun/power_drain(clockcult_user, drain_weapons = FALSE, recursive = FALSE, drain_amount = MIN_CLOCKCULT_POWER) //balance memes
if(!drain_weapons)
- return 0
+ return FALSE
var/obj/item/stock_parts/cell/cell = get_cell()
if(!cell)
- return 0
+ return FALSE
if(cell.charge)
. = min(cell.charge, drain_amount*4) //Done snowflakey because guns have far smaller cells than batons / other equipment, also no need to recurse further in guns
cell.use(.)
diff --git a/code/modules/antagonists/clockcult/clock_helpers/scripture_checks.dm b/code/modules/antagonists/clockcult/clock_helpers/scripture_checks.dm
index 0570f7028b..7151e8b3eb 100644
--- a/code/modules/antagonists/clockcult/clock_helpers/scripture_checks.dm
+++ b/code/modules/antagonists/clockcult/clock_helpers/scripture_checks.dm
@@ -40,7 +40,7 @@
/proc/generate_all_scripture()
if(GLOB.all_scripture.len)
return
- for(var/V in sortList(subtypesof(/datum/clockwork_scripture) - list(/datum/clockwork_scripture/channeled, /datum/clockwork_scripture/create_object, /datum/clockwork_scripture/create_object/construct), GLOBAL_PROC_REF(cmp_clockscripture_priority)))
+ for(var/V in sort_list(subtypesof(/datum/clockwork_scripture) - list(/datum/clockwork_scripture/channeled, /datum/clockwork_scripture/create_object, /datum/clockwork_scripture/create_object/construct), GLOBAL_PROC_REF(cmp_clockscripture_priority)))
var/datum/clockwork_scripture/S = new V
GLOB.all_scripture[S.type] = S
diff --git a/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_shield.dm b/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_shield.dm
index 47105938e6..bc26aad155 100644
--- a/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_shield.dm
+++ b/code/modules/antagonists/clockcult/clock_items/clock_weapons/ratvarian_shield.dm
@@ -25,7 +25,7 @@
/obj/item/shield/riot/ratvarian/proc/calc_bash_mult()
var/bash_mult = 0
if(!dam_absorbed)
- return 1
+ return TRUE
else
bash_mult += round(clamp(1 + (dam_absorbed / bash_mult_steps), 1, max_bash_mult), 0.1) //Multiplies the effect of bashes by up to [max_bash_mult], though never less than one
return bash_mult
diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm
index 06fea9bd91..751e6f16ca 100644
--- a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm
+++ b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm
@@ -55,7 +55,7 @@
/obj/item/clothing/head/helmet/clockwork/mob_can_equip(M, equipper, slot, disable_warning, bypass_equip_delay_self)
if(equipper && !is_servant_of_ratvar(equipper))
- return 0
+ return FALSE
return ..()
/obj/item/clothing/suit/armor/clockwork
@@ -100,7 +100,7 @@
/obj/item/clothing/suit/armor/clockwork/mob_can_equip(M, equipper, slot, disable_warning, bypass_equip_delay_self)
if(equipper && !is_servant_of_ratvar(equipper))
- return 0
+ return FALSE
return ..()
/obj/item/clothing/suit/armor/clockwork/equipped(mob/living/user, slot)
@@ -160,7 +160,7 @@
/obj/item/clothing/gloves/clockwork/mob_can_equip(M, equipper, slot, disable_warning, bypass_equip_delay_self)
if(equipper && !is_servant_of_ratvar(equipper))
- return 0
+ return FALSE
return ..()
/obj/item/clothing/gloves/clockwork/equipped(mob/living/user, slot)
@@ -210,7 +210,7 @@
/obj/item/clothing/shoes/clockwork/mob_can_equip(M, equipper, slot, disable_warning, bypass_equip_delay_self)
if(equipper && !is_servant_of_ratvar(equipper))
- return 0
+ return FALSE
return ..()
/obj/item/clothing/shoes/clockwork/equipped(mob/living/user, slot)
diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm
index 6ba3a660b0..2a7bf1bc08 100644
--- a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm
+++ b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm
@@ -411,6 +411,6 @@
Q.name = "[quickbind_slot.name] ([Q.scripture_index])"
Q.desc = quickbind_slot.quickbind_desc
Q.button_icon_state = quickbind_slot.name
- Q.UpdateButtonIcon()
+ Q.UpdateButtons()
if(isliving(loc))
Q.Grant(loc)
diff --git a/code/modules/antagonists/clockcult/clock_items/judicial_visor.dm b/code/modules/antagonists/clockcult/clock_items/judicial_visor.dm
index 0eae566764..d31a8d1297 100644
--- a/code/modules/antagonists/clockcult/clock_items/judicial_visor.dm
+++ b/code/modules/antagonists/clockcult/clock_items/judicial_visor.dm
@@ -29,7 +29,7 @@
/obj/item/clothing/glasses/judicial_visor/item_action_slot_check(slot, mob/user, datum/action/A)
if(slot != ITEM_SLOT_EYES)
- return 0
+ return FALSE
return ..()
/obj/item/clothing/glasses/judicial_visor/equipped(mob/living/user, slot)
@@ -38,7 +38,7 @@
update_status(FALSE)
if(blaster.ranged_ability_user)
blaster.remove_ranged_ability()
- return 0
+ return FALSE
if(is_servant_of_ratvar(user))
update_status(TRUE)
else
@@ -48,7 +48,7 @@
to_chat(user, "You suddenly catch fire! ")
user.adjust_fire_stacks(5)
user.IgniteMob()
- return 1
+ return TRUE
/obj/item/clothing/glasses/judicial_visor/dropped(mob/user)
. = ..()
@@ -67,27 +67,27 @@
/obj/item/clothing/glasses/judicial_visor/proc/update_status(change_to)
if(recharging || !isliving(loc))
icon_state = "judicial_visor_0"
- return 0
+ return FALSE
if(active == change_to)
- return 0
+ return FALSE
var/mob/living/L = loc
active = change_to
icon_state = "judicial_visor_[active]"
L.update_action_buttons_icon()
L.update_inv_glasses()
if(!is_servant_of_ratvar(L) || L.stat)
- return 0
+ return FALSE
switch(active)
if(TRUE)
to_chat(L, "As you put on [src], its lens begins to glow, information flashing before your eyes. \n\
Judicial visor active. Use the action button to gain the ability to smite the unworthy. ")
if(FALSE)
to_chat(L, "As you take off [src], its lens darkens once more. ")
- return 1
+ return TRUE
/obj/item/clothing/glasses/judicial_visor/proc/recharge_visor(mob/living/user)
if(!src)
- return 0
+ return FALSE
recharging = FALSE
if(user && src == user.get_item_by_slot(ITEM_SLOT_EYES))
to_chat(user, "Your [name] hums. It is ready. ")
diff --git a/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm b/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm
index 9327bac74c..769e61d14b 100644
--- a/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm
+++ b/code/modules/antagonists/clockcult/clock_items/replica_fabricator.dm
@@ -23,7 +23,7 @@
/obj/item/clockwork/replica_fabricator/scarab/fabricate(atom/target, mob/living/user)
if(!debug && !isdrone(user))
- return 0
+ return FALSE
return ..()
/obj/item/clockwork/replica_fabricator/scarab/debug
diff --git a/code/modules/antagonists/clockcult/clock_mobs.dm b/code/modules/antagonists/clockcult/clock_mobs.dm
index a2263401aa..9104146dc5 100644
--- a/code/modules/antagonists/clockcult/clock_mobs.dm
+++ b/code/modules/antagonists/clockcult/clock_mobs.dm
@@ -38,7 +38,7 @@
fully_heal(TRUE)
/mob/living/simple_animal/hostile/clockwork/electrocute_act(shock_damage, source, siemens_coeff = 1, flags = NONE)
- return 0 //ouch, my metal-unlikely-to-be-damaged-by-electricity-body
+ return FALSE //ouch, my metal-unlikely-to-be-damaged-by-electricity-body
/mob/living/simple_animal/hostile/clockwork/examine(mob/user)
var/t_He = p_they(TRUE)
diff --git a/code/modules/antagonists/clockcult/clock_mobs/clockwork_guardian.dm b/code/modules/antagonists/clockcult/clock_mobs/clockwork_guardian.dm
index 1c1b35a12d..44139c6ab9 100644
--- a/code/modules/antagonists/clockcult/clock_mobs/clockwork_guardian.dm
+++ b/code/modules/antagonists/clockcult/clock_mobs/clockwork_guardian.dm
@@ -121,7 +121,7 @@
stat(null, "You do [melee_damage_upper] damage on melee attacks.")
/mob/living/simple_animal/hostile/clockwork/guardian/Process_Spacemove(movement_dir = 0)
- return 1
+ return TRUE
/mob/living/simple_animal/hostile/clockwork/guardian/proc/bind_to_host(mob/living/new_host)
if(!new_host)
@@ -180,8 +180,8 @@
resulthealth = "[round((host.health / host.maxHealth) * 100, 0.5)]%"
else
resulthealth = "NONE"
- G.hosthealth.maptext = "HOST [resulthealth]
"
- hud_used.healths.maptext = "[round((health / maxHealth) * 100, 0.5)]% "
+ G.hosthealth.maptext = MAPTEXT("
HOST [resulthealth]
")
+ hud_used.healths.maptext = MAPTEXT("
[round((health / maxHealth) * 100, 0.5)]% ")
/mob/living/simple_animal/hostile/clockwork/guardian/proc/update_stats()
if(GLOB.ratvar_awakens)
diff --git a/code/modules/antagonists/clockcult/clock_structure.dm b/code/modules/antagonists/clockcult/clock_structure.dm
index 8cdb0fa57d..0a5bb4a9c2 100644
--- a/code/modules/antagonists/clockcult/clock_structure.dm
+++ b/code/modules/antagonists/clockcult/clock_structure.dm
@@ -93,7 +93,7 @@
if(is_servant_of_ratvar(user) && I.tool_behaviour == TOOL_WRENCH && unanchored_icon)
if(default_unfasten_wrench(user, I, 50) == SUCCESSFUL_UNFASTEN)
update_anchored(user)
- return 1
+ return TRUE
return ..()
/obj/structure/destructible/clockwork/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1)
diff --git a/code/modules/antagonists/clockcult/clock_structures/mania_motor.dm b/code/modules/antagonists/clockcult/clock_structures/mania_motor.dm
index 40cadb53a2..69bf306782 100644
--- a/code/modules/antagonists/clockcult/clock_structures/mania_motor.dm
+++ b/code/modules/antagonists/clockcult/clock_structures/mania_motor.dm
@@ -37,7 +37,7 @@
if(user.canUseTopic(src, !issilicon(user), NO_DEXTERY) && is_servant_of_ratvar(user))
if(!can_access_clockwork_power(src, mania_cost))
to_chat(user, "
[src] needs more power to function! ")
- return 0
+ return FALSE
toggle(0, user)
/obj/structure/destructible/clockwork/powered/mania_motor/toggle(fast_process, mob/living/user)
diff --git a/code/modules/antagonists/clockcult/clock_structures/ocular_warden.dm b/code/modules/antagonists/clockcult/clock_structures/ocular_warden.dm
index c81b05145e..a8b318d6b8 100644
--- a/code/modules/antagonists/clockcult/clock_structures/ocular_warden.dm
+++ b/code/modules/antagonists/clockcult/clock_structures/ocular_warden.dm
@@ -144,10 +144,10 @@
/obj/structure/destructible/clockwork/ocular_warden/proc/lose_target()
if(!target)
- return 0
+ return FALSE
target = null
visible_message("
[src] settles and seems almost disappointed. ")
- return 1
+ return TRUE
/obj/structure/destructible/clockwork/ocular_warden/get_efficiency_mod()
if(GLOB.ratvar_awakens)
diff --git a/code/modules/antagonists/clockcult/clock_structures/prolonging_prism.dm b/code/modules/antagonists/clockcult/clock_structures/prolonging_prism.dm
index ededd0174c..774c76f3a1 100644
--- a/code/modules/antagonists/clockcult/clock_structures/prolonging_prism.dm
+++ b/code/modules/antagonists/clockcult/clock_structures/prolonging_prism.dm
@@ -43,19 +43,19 @@
to_chat(user, "
You break [src] apart, refunding some of the power used. ")
adjust_clockwork_power(power_refund)
take_damage(max_integrity)
- return 0
+ return FALSE
if(active)
- return 0
+ return FALSE
var/turf/T = get_turf(src)
if(!T || !is_station_level(T.z))
to_chat(user, "
[src] must be on the station to function! ")
- return 0
+ return FALSE
if(SSshuttle.emergency.mode != SHUTTLE_CALL)
to_chat(user, "
No emergency shuttles are attempting to arrive at the station! ")
- return 0
+ return FALSE
if(!try_use_power(get_delay_cost()))
to_chat(user, "
[src] needs more power to function! ")
- return 0
+ return FALSE
delay_cost += delay_cost_increase
delay_remaining += PRISM_DELAY_DURATION
toggle(0, user)
diff --git a/code/modules/antagonists/clockcult/clock_structures/traps/brass_skewer.dm b/code/modules/antagonists/clockcult/clock_structures/traps/brass_skewer.dm
index 5a70559cf0..5038e6513a 100644
--- a/code/modules/antagonists/clockcult/clock_structures/traps/brass_skewer.dm
+++ b/code/modules/antagonists/clockcult/clock_structures/traps/brass_skewer.dm
@@ -81,7 +81,7 @@
density = TRUE //Skewers are one-use only
desc = "A vicious brass spike protruding from the ground like a stala[pick("gm", "ct")]ite. It makes you sick to look at." //is stalagmite the ground one? or the ceiling one? who can ever remember?
-/obj/structure/destructible/clockwork/trap/brass_skewer/user_buckle_mob()
+/obj/structure/destructible/clockwork/trap/brass_skewer/user_buckle_mob(check_loc)
return
/obj/structure/destructible/clockwork/trap/brass_skewer/post_buckle_mob(mob/living/L)
diff --git a/code/modules/antagonists/clockcult/clock_structures/wall_gear.dm b/code/modules/antagonists/clockcult/clock_structures/wall_gear.dm
index 20cf8711e0..7836e9012c 100644
--- a/code/modules/antagonists/clockcult/clock_structures/wall_gear.dm
+++ b/code/modules/antagonists/clockcult/clock_structures/wall_gear.dm
@@ -25,7 +25,7 @@
/obj/structure/destructible/clockwork/wall_gear/attackby(obj/item/I, mob/user, params)
if(I.tool_behaviour == TOOL_WRENCH)
default_unfasten_wrench(user, I, 10)
- return 1
+ return TRUE
else if(I.tool_behaviour == TOOL_SCREWDRIVER)
if(anchored)
to_chat(user, "
[src] needs to be unsecured to disassemble it! ")
@@ -34,7 +34,7 @@
if(I.use_tool(src, user, 30, volume=100) && !anchored)
to_chat(user, "
You disassemble [src]. ")
deconstruct(TRUE)
- return 1
+ return TRUE
else if(istype(I, /obj/item/stack/tile/brass))
var/obj/item/stack/tile/brass/W = I
if(W.get_amount() < 1)
@@ -64,7 +64,7 @@
qdel(src)
else
to_chat(user, "
You need more brass to make a [anchored ? "false ":""]wall! ")
- return 1
+ return TRUE
return ..()
/obj/structure/destructible/clockwork/wall_gear/deconstruct(disassembled = TRUE)
diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm
index e468bb9c57..d4ff89084c 100644
--- a/code/modules/antagonists/cult/blood_magic.dm
+++ b/code/modules/antagonists/cult/blood_magic.dm
@@ -2,16 +2,11 @@
name = "Prepare Blood Magic"
button_icon_state = "carve"
desc = "Prepare blood magic by carving runes into your flesh. This rite is most effective with an
empowering rune "
+ default_button_position = DEFAULT_BLOODSPELLS
var/list/spells = list()
var/channeling = FALSE
var/holy_dispel = FALSE
-/datum/action/innate/cult/blood_magic/Grant()
- ..()
- button.screen_loc = DEFAULT_BLOODSPELLS
- button.moved = DEFAULT_BLOODSPELLS
- button.ordered = FALSE
-
/datum/action/innate/cult/blood_magic/Remove()
for(var/X in spells)
qdel(X)
@@ -23,15 +18,21 @@
return ..()
/datum/action/innate/cult/blood_magic/proc/Positioning()
- var/list/screen_loc_split = splittext(button.screen_loc,",")
- var/list/screen_loc_X = splittext(screen_loc_split[1],":")
- var/list/screen_loc_Y = splittext(screen_loc_split[2],":")
- var/pix_X = text2num(screen_loc_X[2])
- for(var/datum/action/innate/cult/blood_spell/B in spells)
- if(B.button.locked)
- var/order = pix_X+spells.Find(B)*31
- B.button.screen_loc = "[screen_loc_X[1]]:[order],[screen_loc_Y[1]]:[screen_loc_Y[2]]"
- B.button.moved = B.button.screen_loc
+ for(var/datum/hud/hud as anything in viewers)
+ var/our_view = hud.mymob?.client?.view || "15x15"
+ var/atom/movable/screen/movable/action_button/button = viewers[hud]
+ var/position = screen_loc_to_offset(button.screen_loc)
+ var/spells_iterated = 0
+ for(var/datum/action/innate/cult/blood_spell/blood_spell in spells)
+ spells_iterated += 1
+ if(blood_spell.positioned)
+ continue
+ var/atom/movable/screen/movable/action_button/moving_button = blood_spell.viewers[hud]
+ if(!moving_button)
+ continue
+ var/our_x = position[1] + spells_iterated * world.icon_size // Offset any new buttons into our list
+ hud.position_action(moving_button, offset_to_screen_loc(our_x, position[2], our_view))
+ blood_spell.positioned = TRUE
/datum/action/innate/cult/blood_magic/Activate()
if(holy_dispel)
@@ -99,6 +100,8 @@
var/base_desc //To allow for updating tooltips
var/invocation
var/health_cost = 0
+ /// Have we already been positioned into our starting location?
+ var/positioned = FALSE
/datum/action/innate/cult/blood_spell/Grant(mob/living/owner, datum/action/innate/cult/blood_magic/BM)
if(health_cost)
@@ -106,9 +109,7 @@
base_desc = desc
desc += "
Has [charges] use\s remaining ."
all_magic = BM
- ..()
- button.locked = TRUE
- button.ordered = FALSE
+ return ..()
/datum/action/innate/cult/blood_spell/Remove()
if(all_magic)
@@ -273,7 +274,7 @@
attached_action.charges--
attached_action.desc = attached_action.base_desc
attached_action.desc += "
Has [attached_action.charges] use\s remaining ."
- attached_action.UpdateButtonIcon()
+ attached_action.UpdateButtons()
if(attached_action.charges <= 0)
remove_ranged_ability("
You have exhausted the spell's power! ")
qdel(src)
@@ -325,7 +326,7 @@
qdel(src)
desc = base_desc
desc += "
Has [charges] use\s remaining ."
- UpdateButtonIcon()
+ UpdateButtons()
/datum/action/innate/cult/blood_spell/manipulation
name = "Blood Rites"
@@ -373,7 +374,7 @@
source.charges = uses
source.desc = source.base_desc
source.desc += "
Has [uses] use\s remaining ."
- source.UpdateButtonIcon()
+ source.UpdateButtons()
..()
/obj/item/melee/blood_magic/attack_self(mob/living/user)
@@ -400,7 +401,7 @@
else if(source)
source.desc = source.base_desc
source.desc += "
Has [uses] use\s remaining ."
- source.UpdateButtonIcon()
+ source.UpdateButtons()
//Stun
/obj/item/melee/blood_magic/stun
diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm
index 069b841944..7ef96c0194 100644
--- a/code/modules/antagonists/cult/cult.dm
+++ b/code/modules/antagonists/cult/cult.dm
@@ -108,7 +108,7 @@
var/where = mob.equip_in_one_of_slots(T, slots, critical = TRUE)
if(!where)
to_chat(mob, "
Unfortunately, you weren't able to get a [item_name]. This is very bad and you should adminhelp immediately (press F1). ")
- return 0
+ return FALSE
else
to_chat(mob, "
You have a [item_name] in your [where]. ")
if(where == "backpack")
diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm
index 3091a93a5f..625f07e278 100644
--- a/code/modules/antagonists/cult/cult_comms.dm
+++ b/code/modules/antagonists/cult/cult_comms.dm
@@ -142,7 +142,7 @@
/datum/action/innate/cult/master/IsAvailable(silent = FALSE)
if(!owner.mind || !owner.mind.has_antag_datum(/datum/antagonist/cult/master) || GLOB.cult_narsie)
- return 0
+ return FALSE
return ..()
/datum/action/innate/cult/master/finalreck
diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm
index 20b6a254af..1c7752ed4c 100644
--- a/code/modules/antagonists/cult/cult_items.dm
+++ b/code/modules/antagonists/cult/cult_items.dm
@@ -795,14 +795,13 @@
desc = "Call the blood spear back to your hand!"
background_icon_state = "bg_demon"
button_icon_state = "bloodspear"
+ default_button_position = "6:157,4:-2"
var/obj/item/cult_spear/spear
var/cooldown = 0
/datum/action/innate/cult/spear/Grant(mob/user, obj/blood_spear)
. = ..()
spear = blood_spear
- button.screen_loc = "6:157,4:-2"
- button.moved = "6:157,4:-2"
/datum/action/innate/cult/spear/Activate()
if(owner == spear.loc || cooldown > world.time)
diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm
index 47ef2e2ee3..1c4d4ebb62 100644
--- a/code/modules/antagonists/cult/runes.dm
+++ b/code/modules/antagonists/cult/runes.dm
@@ -243,12 +243,12 @@ structure_check() searches for nearby cultist structures required for the invoca
for(var/M in invokers)
to_chat(M, "
You need at least two invokers to convert [convertee]! ")
log_game("Offer rune failed - tried conversion with one invoker")
- return 0
+ return FALSE
if(convertee.anti_magic_check(TRUE, TRUE, chargecost = 0)) //Not major because it can be spammed
for(var/M in invokers)
to_chat(M, "
Something is shielding [convertee]'s mind! ")
log_game("Offer rune failed - convertee had anti-magic")
- return 0
+ return FALSE
var/brutedamage = convertee.getBruteLoss()
var/burndamage = convertee.getFireLoss()
if(brutedamage || burndamage)
diff --git a/code/modules/antagonists/devil/devil.dm b/code/modules/antagonists/devil/devil.dm
index 9f69f10887..6ee76d0098 100644
--- a/code/modules/antagonists/devil/devil.dm
+++ b/code/modules/antagonists/devil/devil.dm
@@ -389,43 +389,43 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master",
if(iscarbon(body))
var/mob/living/carbon/H = body
return H.reagents.has_reagent(/datum/reagent/water/holywater)
- return 0
+ return FALSE
if(BANISH_COFFIN)
return (body && istype(body.loc, /obj/structure/closet/crate/coffin))
if(BANISH_FORMALDYHIDE)
if(iscarbon(body))
var/mob/living/carbon/H = body
return H.reagents.has_reagent(/datum/reagent/toxin/formaldehyde)
- return 0
+ return FALSE
if(BANISH_RUNES)
if(body)
for(var/obj/effect/decal/cleanable/crayon/R in range(0,body))
if (R.name == "rune")
- return 1
- return 0
+ return TRUE
+ return FALSE
if(BANISH_CANDLES)
if(body)
var/count = 0
for(var/obj/item/candle/C in range(1,body))
count += C.lit
if(count>=4)
- return 1
- return 0
+ return TRUE
+ return FALSE
if(BANISH_DESTRUCTION)
if(body)
- return 0
- return 1
+ return FALSE
+ return TRUE
if(BANISH_FUNERAL_GARB)
if(ishuman(body))
var/mob/living/carbon/human/H = body
if(H.w_uniform && istype(H.w_uniform, /obj/item/clothing/under/misc/burial))
- return 1
- return 0
+ return TRUE
+ return FALSE
else
for(var/obj/item/clothing/under/misc/burial/B in range(0,body))
if(B.loc == get_turf(B)) //Make sure it's not in someone's inventory or something.
- return 1
- return 0
+ return TRUE
+ return FALSE
/datum/antagonist/devil/proc/hellish_resurrection(mob/living/body)
message_admins("[owner.name] (true name is: [truename]) is resurrecting using hellish energy.")
diff --git a/code/modules/antagonists/devil/devil_helpers.dm b/code/modules/antagonists/devil/devil_helpers.dm
index 1fcbbf91d0..389aa43970 100644
--- a/code/modules/antagonists/devil/devil_helpers.dm
+++ b/code/modules/antagonists/devil/devil_helpers.dm
@@ -35,4 +35,4 @@
DefaultCombatKnockdown(40)
qdel(weapon)
return 2
- return 1
+ return TRUE
diff --git a/code/modules/antagonists/devil/sintouched/sintouched.dm b/code/modules/antagonists/devil/sintouched/sintouched.dm
index c9bf474567..839d3cceeb 100644
--- a/code/modules/antagonists/devil/sintouched/sintouched.dm
+++ b/code/modules/antagonists/devil/sintouched/sintouched.dm
@@ -17,9 +17,9 @@
/datum/antagonist/sintouched/threat()
switch(sin)
if(SIN_GLUTTONY,SIN_ENVY)
- return 1
+ return TRUE
else
- return 0
+ return FALSE
/datum/antagonist/sintouched/New()
. = ..()
diff --git a/code/modules/antagonists/devil/true_devil/_true_devil.dm b/code/modules/antagonists/devil/true_devil/_true_devil.dm
index 77f69b9b79..f013e56737 100644
--- a/code/modules/antagonists/devil/true_devil/_true_devil.dm
+++ b/code/modules/antagonists/devil/true_devil/_true_devil.dm
@@ -84,7 +84,7 @@
. += ""
/mob/living/carbon/true_devil/IsAdvancedToolUser()
- return 1
+ return TRUE
/mob/living/carbon/true_devil/resist_buckle()
if(buckled)
@@ -110,7 +110,7 @@
return ..() //flashes don't stop devils UNLESS it's their bane.
/mob/living/carbon/true_devil/soundbang_act()
- return 0
+ return FALSE
/mob/living/carbon/true_devil/get_ear_protection()
return 2
@@ -124,7 +124,7 @@
/mob/living/carbon/true_devil/singularity_act()
if(ascended)
- return 0
+ return FALSE
return ..()
//ATTACK GHOST IGNORING PARENT RETURN VALUE
@@ -138,7 +138,7 @@
return ..()
/mob/living/carbon/true_devil/can_be_revived()
- return 1
+ return TRUE
/mob/living/carbon/true_devil/resist_fire()
//They're immune to fire.
@@ -177,7 +177,7 @@
// devils do not need to breathe
/mob/living/carbon/true_devil/is_literate()
- return 1
+ return TRUE
/mob/living/carbon/true_devil/ex_act(severity, target, origin)
if(!ascended)
diff --git a/code/modules/antagonists/devil/true_devil/inventory.dm b/code/modules/antagonists/devil/true_devil/inventory.dm
index e98cb5ca72..279a261cdb 100644
--- a/code/modules/antagonists/devil/true_devil/inventory.dm
+++ b/code/modules/antagonists/devil/true_devil/inventory.dm
@@ -1,8 +1,8 @@
-/mob/living/carbon/true_devil/doUnEquip(obj/item/I, force, silent = FALSE)
+/mob/living/carbon/true_devil/doUnEquip(obj/item/I, force, invdrop, silent = FALSE)
if(..())
update_inv_hands()
- return 1
- return 0
+ return TRUE
+ return FALSE
/mob/living/carbon/true_devil/update_inv_hands()
//TODO LORDPIDEY: Figure out how to make the hands line up properly. the l/r_hand_overlay should use the down sprite when facing down, left, or right, and the up sprite when facing up.
diff --git a/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm b/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm
index 0389ad3aa4..7a44f5a2c4 100644
--- a/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm
+++ b/code/modules/antagonists/eldritch_cult/eldritch_knowledge.dm
@@ -170,7 +170,7 @@
to_chat(user, "
These items don't possess the required fingerprints or DNA. ")
return FALSE
- var/chosen_mob = input("Select the person you wish to curse","Your target") as null|anything in sortList(compiled_list, GLOBAL_PROC_REF(cmp_mob_realname_dsc))
+ var/chosen_mob = input("Select the person you wish to curse","Your target") as null|anything in sort_list(compiled_list, GLOBAL_PROC_REF(cmp_mob_realname_dsc))
if(!chosen_mob)
return FALSE
curse(compiled_list[chosen_mob])
diff --git a/code/modules/antagonists/overthrow/overthrow.dm b/code/modules/antagonists/overthrow/overthrow.dm
index fffd8f9237..ed55f0598a 100644
--- a/code/modules/antagonists/overthrow/overthrow.dm
+++ b/code/modules/antagonists/overthrow/overthrow.dm
@@ -125,7 +125,7 @@
var/datum/component/uplink/uplink = uplink_holder.GetComponent(/datum/component/uplink)
uplink.telecrystals = INITIAL_CRYSTALS
// Give AI hacking board
- var/obj/item/aiModule/core/full/overthrow/O = new(H)
+ var/obj/item/ai_module/core/full/overthrow/O = new(H)
var/list/slots = list (
"backpack" = ITEM_SLOT_BACKPACK,
"left pocket" = ITEM_SLOT_LPOCKET,
diff --git a/code/modules/antagonists/revenant/revenant.dm b/code/modules/antagonists/revenant/revenant.dm
index d3654193c8..781f59332f 100644
--- a/code/modules/antagonists/revenant/revenant.dm
+++ b/code/modules/antagonists/revenant/revenant.dm
@@ -150,7 +150,7 @@
essencecolor = "#9A5ACB" //oh boy you've got a lot of essence
else if(!essence)
essencecolor = "#1D2953" //oh jeez you're dying
- hud_used.healths.maptext = "
[essence]E
"
+ hud_used.healths.maptext = MAPTEXT("
[essence]E
")
/mob/living/simple_animal/revenant/med_hud_set_health()
return //we use no hud
@@ -175,7 +175,7 @@
//Immunities
/mob/living/simple_animal/revenant/ex_act(severity, target, origin)
- return 1 //Immune to the effects of explosions.
+ return TRUE //Immune to the effects of explosions.
/mob/living/simple_animal/revenant/wave_ex_act(power, datum/wave_explosion/explosion, dir)
return power
@@ -225,7 +225,7 @@
/mob/living/simple_animal/revenant/death()
if(!revealed || stasis) //Revenants cannot die if they aren't revealed //or are already dead
- return 0
+ return FALSE
stasis = TRUE
to_chat(src, "
NO! No... it's too late, you can feel your essence [pick("breaking apart", "drifting away")]... ")
mob_transforming = TRUE
@@ -333,7 +333,7 @@
to_chat(src, "
Gained [essence_amt]E[source ? " from [source]":""]. ")
else
to_chat(src, "
Lost [essence_amt]E[source ? " from [source]":""]. ")
- return 1
+ return TRUE
/mob/living/simple_animal/revenant/proc/telekinesis_cooldown_end()
if(!telekinesis_cooldown)
diff --git a/code/modules/antagonists/revenant/revenant_abilities.dm b/code/modules/antagonists/revenant/revenant_abilities.dm
index 7aefee68f6..8aff5072e4 100644
--- a/code/modules/antagonists/revenant/revenant_abilities.dm
+++ b/code/modules/antagonists/revenant/revenant_abilities.dm
@@ -176,7 +176,7 @@
user.reveal(reveal)
user.stun(stun)
if(action)
- action.UpdateButtonIcon()
+ action.UpdateButtons()
return TRUE
//Overload Light: Breaks a light that's online and sends out lightning bolts to all nearby people.
diff --git a/code/modules/antagonists/slaughter/slaughter.dm b/code/modules/antagonists/slaughter/slaughter.dm
index eff712c38f..1dba6f8b88 100644
--- a/code/modules/antagonists/slaughter/slaughter.dm
+++ b/code/modules/antagonists/slaughter/slaughter.dm
@@ -210,7 +210,7 @@
return ..()
/obj/item/organ/heart/demon/Stop()
- return 0 // Always beating.
+ return FALSE // Always beating.
/mob/living/simple_animal/slaughter/laughter
// The laughter demon! It's everyone's best friend! It just wants to hug
diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm
index 4c48ad81dd..0eac4678d7 100644
--- a/code/modules/antagonists/swarmer/swarmer.dm
+++ b/code/modules/antagonists/swarmer/swarmer.dm
@@ -142,9 +142,9 @@
/mob/living/simple_animal/hostile/swarmer/CanAllowThrough(atom/movable/O)
. = ..()
if(istype(O, /obj/item/projectile/beam/disabler))//Allows for swarmers to fight as a group without wasting their shots hitting each other
- return 1
+ return TRUE
if(isswarmer(O))
- return 1
+ return TRUE
////CTRL CLICK FOR SWARMERS AND SWARMER_ACT()'S////
/mob/living/simple_animal/hostile/swarmer/AttackingTarget()
@@ -191,11 +191,11 @@
return S.Integrate(src)
/atom/movable/proc/IntegrateAmount()
- return 0
+ return FALSE
/obj/item/IntegrateAmount() //returns the amount of resources gained when eating this item
if(custom_materials[SSmaterials.GetMaterialRef(/datum/material/iron)] || custom_materials[SSmaterials.GetMaterialRef(/datum/material/glass)])
- return 1
+ return TRUE
return ..()
/obj/item/gun/swarmer_act()//Stops you from eating the entire armory
@@ -217,7 +217,7 @@
return 2
/obj/item/clockwork/alloy_shards/small/IntegrateAmount()
- return 1
+ return TRUE
/turf/open/floor/swarmer_act()//ex_act() on turf calls it on its contents, this is to prevent attacking mobs by DisIntegrate()'ing the floor
return FALSE
@@ -494,7 +494,7 @@
resources -= fabrication_cost
else
to_chat(src, "
You do not have the necessary resources to fabricate this object. ")
- return 0
+ return FALSE
return new fabrication_object(loc)
/mob/living/simple_animal/hostile/swarmer/proc/Integrate(atom/movable/target)
diff --git a/code/modules/antagonists/swarmer/swarmer_event.dm b/code/modules/antagonists/swarmer/swarmer_event.dm
index e70d76812d..460ce687a6 100644
--- a/code/modules/antagonists/swarmer/swarmer_event.dm
+++ b/code/modules/antagonists/swarmer/swarmer_event.dm
@@ -13,9 +13,9 @@
/datum/round_event/spawn_swarmer/start()
if(find_swarmer())
- return 0
+ return FALSE
if(!GLOB.the_gateway)
- return 0
+ return FALSE
new /obj/effect/mob_spawn/swarmer(get_turf(GLOB.the_gateway))
if(prob(25)) //25% chance to announce it to the crew
var/swarmer_report = "
[command_name()] High-Priority Update "
@@ -26,5 +26,5 @@
for(var/i in GLOB.mob_living_list)
var/mob/living/L = i
if(istype(L, /mob/living/simple_animal/hostile/swarmer) && L.client) //If there is a swarmer with an active client, we've found our swarmer
- return 1
- return 0
+ return TRUE
+ return FALSE
diff --git a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm
index 9f78f9afd9..b7c6e8a8b1 100644
--- a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm
+++ b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm
@@ -33,9 +33,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
/datum/action/innate/ai/New()
..()
- if(uses > 1)
- desc = "[desc] It has [uses] use\s remaining."
- button.desc = desc
+ desc = "[desc] It has [uses] use\s remaining."
/datum/action/innate/ai/Grant(mob/living/L)
. = ..()
@@ -63,7 +61,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
if(!silent)
to_chat(owner, "
[name] now has [uses] use[uses > 1 ? "s" : ""] remaining. ")
desc = "[initial(desc)] It has [uses] use\s remaining."
- UpdateButtonIcon()
+ UpdateButtons()
return
if(initial(uses) > 1) //no need to tell 'em if it was one-use anyway!
to_chat(owner, "
[name] has run out of uses! ")
@@ -92,7 +90,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
if(!silent)
to_chat(owner, "
[name] now has [uses] use[uses > 1 ? "s" : ""] remaining. ")
desc = "[initial(desc)] It has [uses] use\s remaining."
- UpdateButtonIcon()
+ UpdateButtons()
return
if(initial(uses) > 1) //no need to tell 'em if it was one-use anyway!
to_chat(owner, "
[name] has run out of uses! ")
@@ -203,7 +201,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
else //Adding uses to an existing module
action.uses += initial(action.uses)
action.desc = "[initial(action.desc)] It has [action.uses] use\s remaining."
- action.UpdateButtonIcon()
+ action.UpdateButtons()
temp = "Additional use[action.uses > 1 ? "s" : ""] added to [action.name]!"
processing_time -= AM.cost
@@ -759,6 +757,10 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
uses = 3
auto_use_uses = FALSE
+/datum/action/innate/ai/blackout/New()
+ ..()
+ desc = "[desc] It has [uses] use\s remaining."
+
/datum/action/innate/ai/blackout/Activate()
for(var/obj/machinery/power/apc/apc in GLOB.apcs_list)
if(prob(30 * apc.overload))
@@ -768,7 +770,10 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
to_chat(owner, "
Overcurrent applied to the powernet. ")
owner.playsound_local(owner, "sparks", 50, 0)
adjust_uses(-1)
-
+ if(QDELETED(src) || uses) //Not sure if not having src here would cause a runtime, so it's here to be safe
+ return
+ desc = "[initial(desc)] It has [uses] use\s remaining."
+ UpdateButtons()
//Disable Emergency Lights
/datum/AI_Module/small/emergency_lights
@@ -816,6 +821,10 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
auto_use_uses = FALSE
cooldown_period = 30
+/datum/action/innate/ai/reactivate_cameras/New()
+ ..()
+ desc = "[desc] It has [uses] use\s remaining."
+
/datum/action/innate/ai/reactivate_cameras/Activate()
var/fixed_cameras = 0
for(var/V in GLOB.cameranet.cameras)
@@ -830,7 +839,10 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list(
to_chat(owner, "
Diagnostic complete! Cameras reactivated: [fixed_cameras] . Reactivations remaining: [uses] . ")
owner.playsound_local(owner, 'sound/items/wirecutter.ogg', 50, 0)
adjust_uses(0, TRUE) //Checks the uses remaining
-
+ if(QDELETED(src) || !uses) //Not sure if not having src here would cause a runtime, so it's here to be safe
+ return
+ desc = "[initial(desc)] It has [uses] use\s remaining."
+ UpdateButtons()
//Upgrade Camera Network: EMP-proofs all cameras, in addition to giving them X-ray vision.
/datum/AI_Module/large/upgrade_cameras
diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm
index 0701ade73c..3240b5cc11 100644
--- a/code/modules/antagonists/wizard/equipment/spellbook.dm
+++ b/code/modules/antagonists/wizard/equipment/spellbook.dm
@@ -21,18 +21,18 @@
if(istype(SSticker.mode,/datum/game_mode/dynamic))
var/datum/game_mode/dynamic/mode = SSticker.mode
if(dynamic_requirement > 0 && mode.threat_level < dynamic_requirement)
- return 0
- return 1
+ return FALSE
+ return TRUE
/datum/spellbook_entry/proc/CanBuy(mob/living/carbon/human/user,obj/item/spellbook/book) // Specific circumstances
if(book.uses
= aspell.level_max)
to_chat(user, "This spell cannot be improved further. ")
- return 0
+ return FALSE
else
aspell.name = initial(aspell.name)
aspell.spell_level++
@@ -63,22 +63,22 @@
if(aspell.spell_level >= aspell.level_max)
to_chat(user, "This spell cannot be strengthened any further. ")
SSblackbox.record_feedback("nested tally", "wizard_spell_improved", 1, list("[name]", "[aspell.spell_level]"))
- return 1
+ return TRUE
//No same spell found - just learn it
SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name)
user.mind.AddSpell(S)
to_chat(user, "You have learned [S.name]. ")
- return 1
+ return TRUE
/datum/spellbook_entry/proc/CanRefund(mob/living/carbon/human/user,obj/item/spellbook/book)
if(!refundable)
- return 0
+ return FALSE
if(!S)
S = new spell_type()
for(var/obj/effect/proc_holder/spell/aspell in user.mind.spell_list)
if(initial(S.name) == initial(aspell.name))
- return 1
- return 0
+ return TRUE
+ return FALSE
/datum/spellbook_entry/proc/Refund(mob/living/carbon/human/user,obj/item/spellbook/book) //return point value or -1 for failure
var/area/wizard_station/A = GLOB.areas_by_type[/area/wizard_station]
@@ -228,7 +228,7 @@
spell_type = /obj/effect/proc_holder/spell/aimed/lightningbolt
cost = 3
-/datum/spellbook_entry/lightningbolt/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) //return 1 on success
+/datum/spellbook_entry/lightningbolt/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) //return TRUE on success
. = ..()
ADD_TRAIT(user, TRAIT_TESLA_SHOCKIMMUNE, "lightning_bolt_spell")
@@ -291,7 +291,7 @@
/datum/spellbook_entry/item/Buy(mob/living/carbon/human/user,obj/item/spellbook/book)
new item_path(get_turf(user))
SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name)
- return 1
+ return TRUE
/datum/spellbook_entry/item/GetInfo()
var/dat =""
@@ -520,7 +520,7 @@
/datum/spellbook_entry/summon/guns/IsAvailible()
if(!SSticker.mode) // In case spellbook is placed on map
- return 0
+ return FALSE
return (!CONFIG_GET(flag/no_summon_guns) && ..())
/datum/spellbook_entry/summon/guns/Buy(mob/living/carbon/human/user,obj/item/spellbook/book)
@@ -529,7 +529,7 @@
active = 1
playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, 1)
to_chat(user, "You have cast summon guns! ")
- return 1
+ return TRUE
/datum/spellbook_entry/summon/magic
name = "Summon Magic"
@@ -539,7 +539,7 @@
/datum/spellbook_entry/summon/magic/IsAvailible()
if(!SSticker.mode) // In case spellbook is placed on map
- return 0
+ return FALSE
return (!CONFIG_GET(flag/no_summon_guns) && ..())
/datum/spellbook_entry/summon/magic/Buy(mob/living/carbon/human/user,obj/item/spellbook/book)
@@ -548,7 +548,7 @@
active = 1
playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, 1)
to_chat(user, "You have cast summon magic! ")
- return 1
+ return TRUE
/datum/spellbook_entry/summon/events
name = "Summon Events"
@@ -558,7 +558,7 @@
/datum/spellbook_entry/summon/events/IsAvailible()
if(!SSticker.mode) // In case spellbook is placed on map
- return 0
+ return FALSE
return (!CONFIG_GET(flag/no_summon_events) && ..())
/datum/spellbook_entry/summon/events/Buy(mob/living/carbon/human/user,obj/item/spellbook/book)
@@ -567,7 +567,7 @@
times++
playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, 1)
to_chat(user, "You have cast summon events. ")
- return 1
+ return TRUE
/datum/spellbook_entry/summon/events/GetInfo()
. = ..()
@@ -755,7 +755,7 @@
if(H.stat || H.restrained())
return
if(!ishuman(H))
- return 1
+ return TRUE
if(H.mind.special_role == "apprentice")
temp = "If you got caught sneaking a peek from your teacher's spellbook, you'd likely be expelled from the Wizard Academy. Better not."
diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm
index 63bb2b5b57..5e69bb3847 100644
--- a/code/modules/antagonists/wizard/wizard.dm
+++ b/code/modules/antagonists/wizard/wizard.dm
@@ -1,3 +1,7 @@
+#define WIZARD_DO_NOTHING 0
+#define WIZARD_QDEL_INVENTORY 1
+#define WIZARD_DROP_INVENTORY 2
+
/datum/antagonist/wizard
name = "Space Wizard"
roundend_category = "wizards/witches"
@@ -10,7 +14,8 @@
ui_name = "AntagInfoWizard"
suicide_cry = "FOR THE FEDERATION!!"
var/give_objectives = TRUE
- var/strip = TRUE //strip before equipping
+ var/inventory_mode = WIZARD_QDEL_INVENTORY
+ var/change_species = TRUE
var/allow_rename = TRUE
var/datum/team/wizard/wiz_team //Only created if wizard summons apprentices
var/move_to_lair = TRUE
@@ -87,10 +92,14 @@
var/mob/living/carbon/human/H = owner.current
if(!istype(H))
return
- if(strip)
- H.delete_equipment()
+ switch(inventory_mode)
+ if(WIZARD_QDEL_INVENTORY)
+ H.delete_equipment()
+ if(WIZARD_DROP_INVENTORY)
+ H.unequip_everything()
//Wizards are human by default. Use the mirror if you want something else.
- H.set_species(/datum/species/human)
+ if(change_species)
+ H.set_species(/datum/species/human)
if(H.age < wiz_age)
H.age = wiz_age
H.equipOutfit(outfit_type)
@@ -250,6 +259,17 @@
new_objective.owner = owner
objectives += new_objective
+/datum/antagonist/wizard/on_station
+ inventory_mode = WIZARD_DROP_INVENTORY
+ change_species = FALSE
+
+/datum/antagonist/wizard/on_station/on_gain()
+ var/datum/effect_system/smoke_spread/smoke = new
+ smoke.start()
+ smoke.set_up(2, get_turf(owner))
+ owner.current.visible_message("[owner] suddenly disappears in a puff of smoke, leaving [owner.p_their()] clothes behind! ", "You feel yourself being pulled away... ")
+ return ..()
+
//Solo wizard report
/datum/antagonist/wizard/roundend_report()
var/list/parts = list()
diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm
index 67844d50bf..cd603baf55 100644
--- a/code/modules/assembly/assembly.dm
+++ b/code/modules/assembly/assembly.dm
@@ -30,7 +30,7 @@
var/activate_cooldown = 3 SECONDS
/obj/item/assembly/get_part_rating()
- return 1
+ return TRUE
/obj/item/assembly/proc/on_attach()
diff --git a/code/modules/assembly/health.dm b/code/modules/assembly/health.dm
index 0af6c85fb6..db79bb78c7 100644
--- a/code/modules/assembly/health.dm
+++ b/code/modules/assembly/health.dm
@@ -61,7 +61,7 @@
/obj/item/assembly/health/proc/toggle_scan()
if(!secured)
- return 0
+ return FALSE
scanning = !scanning
if(scanning)
START_PROCESSING(SSobj, src)
diff --git a/code/modules/asset_cache/asset_list.dm b/code/modules/asset_cache/asset_list.dm
index f88f57eacc..fc9b6527d2 100644
--- a/code/modules/asset_cache/asset_list.dm
+++ b/code/modules/asset_cache/asset_list.dm
@@ -331,7 +331,7 @@ GLOBAL_LIST_EMPTY(asset_datums)
if (legacy)
assets |= parents
var/list/hashlist = list()
- var/list/sorted_assets = sortList(assets)
+ var/list/sorted_assets = sort_list(assets)
for (var/asset_name in sorted_assets)
var/datum/asset_cache_item/ACI = new(asset_name, sorted_assets[asset_name])
diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm
deleted file mode 100644
index be6850a7f7..0000000000
--- a/code/modules/asset_cache/asset_list_items.dm
+++ /dev/null
@@ -1,596 +0,0 @@
-//DEFINITIONS FOR ASSET DATUMS START HERE.
-
-/datum/asset/simple/tgui
- keep_local_name = TRUE
- assets = list(
- "tgui.bundle.js" = file("tgui/public/tgui.bundle.js"),
- "tgui.bundle.css" = file("tgui/public/tgui.bundle.css"),
- )
-
-/datum/asset/simple/tgui_panel
- keep_local_name = TRUE
- assets = list(
- "tgui-panel.bundle.js" = file("tgui/public/tgui-panel.bundle.js"),
- "tgui-panel.bundle.css" = file("tgui/public/tgui-panel.bundle.css"),
- )
-
-/datum/asset/simple/headers
- assets = list(
- "alarm_green.gif" = 'icons/program_icons/alarm_green.gif',
- "alarm_red.gif" = 'icons/program_icons/alarm_red.gif',
- "batt_5.gif" = 'icons/program_icons/batt_5.gif',
- "batt_20.gif" = 'icons/program_icons/batt_20.gif',
- "batt_40.gif" = 'icons/program_icons/batt_40.gif',
- "batt_60.gif" = 'icons/program_icons/batt_60.gif',
- "batt_80.gif" = 'icons/program_icons/batt_80.gif',
- "batt_100.gif" = 'icons/program_icons/batt_100.gif',
- "charging.gif" = 'icons/program_icons/charging.gif',
- "downloader_finished.gif" = 'icons/program_icons/downloader_finished.gif',
- "downloader_running.gif" = 'icons/program_icons/downloader_running.gif',
- "ntnrc_idle.gif" = 'icons/program_icons/ntnrc_idle.gif',
- "ntnrc_new.gif" = 'icons/program_icons/ntnrc_new.gif',
- "power_norm.gif" = 'icons/program_icons/power_norm.gif',
- "power_warn.gif" = 'icons/program_icons/power_warn.gif',
- "sig_high.gif" = 'icons/program_icons/sig_high.gif',
- "sig_low.gif" = 'icons/program_icons/sig_low.gif',
- "sig_lan.gif" = 'icons/program_icons/sig_lan.gif',
- "sig_none.gif" = 'icons/program_icons/sig_none.gif',
- "smmon_0.gif" = 'icons/program_icons/smmon_0.gif',
- "smmon_1.gif" = 'icons/program_icons/smmon_1.gif',
- "smmon_2.gif" = 'icons/program_icons/smmon_2.gif',
- "smmon_3.gif" = 'icons/program_icons/smmon_3.gif',
- "smmon_4.gif" = 'icons/program_icons/smmon_4.gif',
- "smmon_5.gif" = 'icons/program_icons/smmon_5.gif',
- "smmon_6.gif" = 'icons/program_icons/smmon_6.gif',
- "borg_mon.gif" = 'icons/program_icons/borg_mon.gif',
- "robotact.gif" = 'icons/program_icons/robotact.gif'
- )
-
-/datum/asset/simple/radar_assets
- assets = list(
- "ntosradarbackground.png" = 'icons/ui_icons/tgui/ntosradar_background.png',
- "ntosradarpointer.png" = 'icons/ui_icons/tgui/ntosradar_pointer.png',
- "ntosradarpointerS.png" = 'icons/ui_icons/tgui/ntosradar_pointer_S.png'
- )
-
-/datum/asset/simple/circuit_assets
- assets = list(
- "grid_background.png" = 'icons/ui_icons/tgui/grid_background.png'
- )
-
-/datum/asset/spritesheet/simple/pda
- name = "pda"
- assets = list(
- "atmos" = 'icons/pda_icons/pda_atmos.png',
- "back" = 'icons/pda_icons/pda_back.png',
- "bell" = 'icons/pda_icons/pda_bell.png',
- "blank" = 'icons/pda_icons/pda_blank.png',
- "boom" = 'icons/pda_icons/pda_boom.png',
- "bucket" = 'icons/pda_icons/pda_bucket.png',
- "medbot" = 'icons/pda_icons/pda_medbot.png',
- "floorbot" = 'icons/pda_icons/pda_floorbot.png',
- "cleanbot" = 'icons/pda_icons/pda_cleanbot.png',
- "crate" = 'icons/pda_icons/pda_crate.png',
- "cuffs" = 'icons/pda_icons/pda_cuffs.png',
- "eject" = 'icons/pda_icons/pda_eject.png',
- "flashlight" = 'icons/pda_icons/pda_flashlight.png',
- "honk" = 'icons/pda_icons/pda_honk.png',
- "mail" = 'icons/pda_icons/pda_mail.png',
- "medical" = 'icons/pda_icons/pda_medical.png',
- "menu" = 'icons/pda_icons/pda_menu.png',
- "mule" = 'icons/pda_icons/pda_mule.png',
- "notes" = 'icons/pda_icons/pda_notes.png',
- "power" = 'icons/pda_icons/pda_power.png',
- "rdoor" = 'icons/pda_icons/pda_rdoor.png',
- "reagent" = 'icons/pda_icons/pda_reagent.png',
- "refresh" = 'icons/pda_icons/pda_refresh.png',
- "scanner" = 'icons/pda_icons/pda_scanner.png',
- "signaler" = 'icons/pda_icons/pda_signaler.png',
- // "skills" = 'icons/pda_icons/pda_skills.png',
- "status" = 'icons/pda_icons/pda_status.png',
- "dronephone" = 'icons/pda_icons/pda_dronephone.png',
- "emoji" = 'icons/pda_icons/pda_emoji.png'
- // "droneblacklist" = 'icons/pda_icons/pda_droneblacklist.png',
- )
-
-/datum/asset/spritesheet/simple/paper
- name = "paper"
- assets = list(
- "stamp-clown" = 'icons/stamp_icons/large_stamp-clown.png',
- "stamp-deny" = 'icons/stamp_icons/large_stamp-deny.png',
- "stamp-ok" = 'icons/stamp_icons/large_stamp-ok.png',
- "stamp-hop" = 'icons/stamp_icons/large_stamp-hop.png',
- "stamp-cmo" = 'icons/stamp_icons/large_stamp-cmo.png',
- "stamp-ce" = 'icons/stamp_icons/large_stamp-ce.png',
- "stamp-hos" = 'icons/stamp_icons/large_stamp-hos.png',
- "stamp-rd" = 'icons/stamp_icons/large_stamp-rd.png',
- "stamp-cap" = 'icons/stamp_icons/large_stamp-cap.png',
- "stamp-qm" = 'icons/stamp_icons/large_stamp-qm.png',
- "stamp-law" = 'icons/stamp_icons/large_stamp-law.png',
- "stamp-chap" = 'icons/stamp_icons/large_stamp-chap.png',
- "stamp-mime" = 'icons/stamp_icons/large_stamp-mime.png',
- "stamp-centcom" = 'icons/stamp_icons/large_stamp-centcom.png',
- "stamp-syndicate" = 'icons/stamp_icons/large_stamp-syndicate.png'
- )
-
-
-/datum/asset/simple/irv
- assets = list(
- "jquery-ui.custom-core-widgit-mouse-sortable-min.js" = 'html/jquery/jquery-ui.custom-core-widgit-mouse-sortable.min.js',
- )
-
-/datum/asset/group/irv
- children = list(
- /datum/asset/simple/jquery,
- /datum/asset/simple/irv
- )
-
-/datum/asset/simple/jquery
- legacy = TRUE
- assets = list(
- "jquery.min.js" = 'html/jquery/jquery.min.js',
- )
-
-/datum/asset/simple/namespaced/fontawesome
- assets = list(
- "fa-regular-400.eot" = 'html/font-awesome/webfonts/fa-regular-400.eot',
- "fa-regular-400.woff" = 'html/font-awesome/webfonts/fa-regular-400.woff',
- "fa-solid-900.eot" = 'html/font-awesome/webfonts/fa-solid-900.eot',
- "fa-solid-900.woff" = 'html/font-awesome/webfonts/fa-solid-900.woff',
- "v4shim.css" = 'html/font-awesome/css/v4-shims.min.css'
- )
- parents = list("font-awesome.css" = 'html/font-awesome/css/all.min.css')
-
-/datum/asset/simple/namespaced/tgfont
- assets = list(
- "tgfont.eot" = file("tgui/packages/tgfont/dist/tgfont.eot"),
- "tgfont.woff2" = file("tgui/packages/tgfont/dist/tgfont.woff2"),
- )
- parents = list(
- "tgfont.css" = file("tgui/packages/tgfont/dist/tgfont.css"),
- )
-
-/datum/asset/spritesheet/chat
- name = "chat"
-
-/datum/asset/spritesheet/chat/register()
- InsertAll("emoji", 'icons/emoji.dmi')
- InsertAll("emoji", 'icons/emoji_32.dmi')
- // pre-loading all lanugage icons also helps to avoid meta
- InsertAll("language", 'icons/misc/language.dmi')
- // catch languages which are pulling icons from another file
- for(var/path in typesof(/datum/language))
- var/datum/language/L = path
- var/icon = initial(L.icon)
- if (icon != 'icons/misc/language.dmi')
- var/icon_state = initial(L.icon_state)
- Insert("language-[icon_state]", icon, icon_state=icon_state)
- ..()
-
-/datum/asset/simple/lobby
- assets = list(
- "playeroptions.css" = 'html/browser/playeroptions.css'
- )
-
-/datum/asset/simple/namespaced/common
- assets = list("padlock.png" = 'html/padlock.png')
- parents = list("common.css" = 'html/browser/common.css')
-
-/datum/asset/simple/permissions
- assets = list(
- "search.js" = 'html/admin/search.js',
- "panels.css" = 'html/admin/panels.css'
- )
-
-/datum/asset/group/permissions
- children = list(
- /datum/asset/simple/permissions,
- /datum/asset/simple/namespaced/common
- )
-
-/datum/asset/simple/notes
- assets = list(
- "high_button.png" = 'html/high_button.png',
- "medium_button.png" = 'html/medium_button.png',
- "minor_button.png" = 'html/minor_button.png',
- "none_button.png" = 'html/none_button.png',
- )
-
-/datum/asset/simple/arcade
- assets = list(
- "boss1.gif" = 'icons/ui_icons/arcade/boss1.gif',
- "boss2.gif" = 'icons/ui_icons/arcade/boss2.gif',
- "boss3.gif" = 'icons/ui_icons/arcade/boss3.gif',
- "boss4.gif" = 'icons/ui_icons/arcade/boss4.gif',
- "boss5.gif" = 'icons/ui_icons/arcade/boss5.gif',
- "boss6.gif" = 'icons/ui_icons/arcade/boss6.gif',
- )
-
-/datum/asset/spritesheet/simple/achievements
- name ="achievements"
- assets = list(
- "default" = 'icons/ui_icons/achievements/default.png',
- "basemisc" = 'icons/ui_icons/achievements/basemisc.png',
- "baseboss" = 'icons/ui_icons/achievements/baseboss.png',
- "baseskill" = 'icons/ui_icons/achievements/baseskill.png',
- "bbgum" = 'icons/ui_icons/achievements/Boss/bbgum.png',
- "colossus" = 'icons/ui_icons/achievements/Boss/colossus.png',
- "hierophant" = 'icons/ui_icons/achievements/Boss/hierophant.png',
- "drake" = 'icons/ui_icons/achievements/Boss/drake.png',
- "legion" = 'icons/ui_icons/achievements/Boss/legion.png',
- "miner" = 'icons/ui_icons/achievements/Boss/miner.png',
- "swarmer" = 'icons/ui_icons/achievements/Boss/swarmer.png',
- "tendril" = 'icons/ui_icons/achievements/Boss/tendril.png',
- "featofstrength" = 'icons/ui_icons/achievements/Misc/featofstrength.png',
- "helbital" = 'icons/ui_icons/achievements/Misc/helbital.png',
- "jackpot" = 'icons/ui_icons/achievements/Misc/jackpot.png',
- "meteors" = 'icons/ui_icons/achievements/Misc/meteors.png',
- "timewaste" = 'icons/ui_icons/achievements/Misc/timewaste.png',
- "upgrade" = 'icons/ui_icons/achievements/Misc/upgrade.png',
- "clownking" = 'icons/ui_icons/achievements/Misc/clownking.png',
- "clownthanks" = 'icons/ui_icons/achievements/Misc/clownthanks.png',
- "rule8" = 'icons/ui_icons/achievements/Misc/rule8.png',
- "longshift" = 'icons/ui_icons/achievements/Misc/longshift.png',
- "snail" = 'icons/ui_icons/achievements/Misc/snail.png',
- "ascension" = 'icons/ui_icons/achievements/Misc/ascension.png',
- "ashascend" = 'icons/ui_icons/achievements/Misc/ashascend.png',
- "fleshascend" = 'icons/ui_icons/achievements/Misc/fleshascend.png',
- "rustascend" = 'icons/ui_icons/achievements/Misc/rustascend.png',
- "voidascend" = 'icons/ui_icons/achievements/Misc/voidascend.png',
- "toolbox_soul" = 'icons/ui_icons/achievements/Misc/toolbox_soul.png',
- "chem_tut" = 'icons/ui_icons/achievements/Misc/chem_tut.png',
- "mining" = 'icons/ui_icons/achievements/Skills/mining.png',
- "mafia" = 'icons/ui_icons/achievements/Mafia/mafia.png',
- "town" = 'icons/ui_icons/achievements/Mafia/town.png',
- "neutral" = 'icons/ui_icons/achievements/Mafia/neutral.png',
- "hated" = 'icons/ui_icons/achievements/Mafia/hated.png',
- "basemafia" ='icons/ui_icons/achievements/basemafia.png',
- "frenching" = 'icons/ui_icons/achievements/Misc/frenchingthebubble.png'
- )
-
-/datum/asset/spritesheet/simple/pills
- name = "pills"
- assets = list(
- "pill1" = 'icons/ui_icons/pills/pill1.png',
- "pill2" = 'icons/ui_icons/pills/pill2.png',
- "pill3" = 'icons/ui_icons/pills/pill3.png',
- "pill4" = 'icons/ui_icons/pills/pill4.png',
- "pill5" = 'icons/ui_icons/pills/pill5.png',
- "pill6" = 'icons/ui_icons/pills/pill6.png',
- "pill7" = 'icons/ui_icons/pills/pill7.png',
- "pill8" = 'icons/ui_icons/pills/pill8.png',
- "pill9" = 'icons/ui_icons/pills/pill9.png',
- "pill10" = 'icons/ui_icons/pills/pill10.png',
- "pill11" = 'icons/ui_icons/pills/pill11.png',
- "pill12" = 'icons/ui_icons/pills/pill12.png',
- "pill13" = 'icons/ui_icons/pills/pill13.png',
- "pill14" = 'icons/ui_icons/pills/pill14.png',
- "pill15" = 'icons/ui_icons/pills/pill15.png',
- "pill16" = 'icons/ui_icons/pills/pill16.png',
- "pill17" = 'icons/ui_icons/pills/pill17.png',
- "pill18" = 'icons/ui_icons/pills/pill18.png',
- "pill19" = 'icons/ui_icons/pills/pill19.png',
- "pill20" = 'icons/ui_icons/pills/pill20.png',
- "pill21" = 'icons/ui_icons/pills/pill21.png',
- "pill22" = 'icons/ui_icons/pills/pill22.png',
- )
-
-// /datum/asset/spritesheet/simple/condiments
-// name = "condiments"
-// assets = list(
-// CONDIMASTER_STYLE_FALLBACK = 'icons/ui_icons/condiments/emptycondiment.png',
-// "enzyme" = 'icons/ui_icons/condiments/enzyme.png',
-// "flour" = 'icons/ui_icons/condiments/flour.png',
-// "mayonnaise" = 'icons/ui_icons/condiments/mayonnaise.png',
-// "milk" = 'icons/ui_icons/condiments/milk.png',
-// "blackpepper" = 'icons/ui_icons/condiments/peppermillsmall.png',
-// "rice" = 'icons/ui_icons/condiments/rice.png',
-// "sodiumchloride" = 'icons/ui_icons/condiments/saltshakersmall.png',
-// "soymilk" = 'icons/ui_icons/condiments/soymilk.png',
-// "soysauce" = 'icons/ui_icons/condiments/soysauce.png',
-// "sugar" = 'icons/ui_icons/condiments/sugar.png',
-// "ketchup" = 'icons/ui_icons/condiments/ketchup.png',
-// "capsaicin" = 'icons/ui_icons/condiments/hotsauce.png',
-// "frostoil" = 'icons/ui_icons/condiments/coldsauce.png',
-// "bbqsauce" = 'icons/ui_icons/condiments/bbqsauce.png',
-// "cornoil" = 'icons/ui_icons/condiments/oliveoil.png',
-// )
-
-//this exists purely to avoid meta by pre-loading all language icons.
-/datum/asset/language/register()
- for(var/path in typesof(/datum/language))
- set waitfor = FALSE
- var/datum/language/L = new path ()
- L.get_icon()
-
-/datum/asset/spritesheet/pipes
- name = "pipes"
-
-/datum/asset/spritesheet/pipes/register()
- for (var/each in list('icons/obj/atmospherics/pipes/pipe_item.dmi', 'icons/obj/atmospherics/pipes/disposal.dmi', 'icons/obj/atmospherics/pipes/transit_tube.dmi', 'icons/obj/plumbing/fluid_ducts.dmi'))
- InsertAll("", each, GLOB.alldirs)
- ..()
-
-/datum/asset/spritesheet/supplypods
- name = "supplypods"
-
-/datum/asset/spritesheet/supplypods/register()
- for (var/style in 1 to length(GLOB.podstyles))
- if (style == STYLE_SEETHROUGH)
- Insert("pod_asset[style]", icon('icons/obj/supplypods.dmi' , "seethrough-icon"))
- continue
- var/base = GLOB.podstyles[style][POD_BASE]
- if (!base)
- Insert("pod_asset[style]", icon('icons/obj/supplypods.dmi', "invisible-icon"))
- continue
- var/icon/podIcon = icon('icons/obj/supplypods.dmi', base)
- var/door = GLOB.podstyles[style][POD_DOOR]
- if (door)
- door = "[base]_door"
- podIcon.Blend(icon('icons/obj/supplypods.dmi', door), ICON_OVERLAY)
- var/shape = GLOB.podstyles[style][POD_SHAPE]
- if (shape == POD_SHAPE_NORML)
- var/decal = GLOB.podstyles[style][POD_DECAL]
- if (decal)
- podIcon.Blend(icon('icons/obj/supplypods.dmi', decal), ICON_OVERLAY)
- var/glow = GLOB.podstyles[style][POD_GLOW]
- if (glow)
- glow = "pod_glow_[glow]"
- podIcon.Blend(icon('icons/obj/supplypods.dmi', glow), ICON_OVERLAY)
- Insert("pod_asset[style]", podIcon)
- return ..()
-
-// Representative icons for each research design
-/datum/asset/spritesheet/research_designs
- name = "design"
-
-/datum/asset/spritesheet/research_designs/register()
- for (var/path in subtypesof(/datum/design))
- var/datum/design/D = path
-
- var/icon_file
- var/icon_state
- var/icon/I
-
- if(initial(D.research_icon) && initial(D.research_icon_state)) //If the design has an icon replacement skip the rest
- icon_file = initial(D.research_icon)
- icon_state = initial(D.research_icon_state)
- if(!(icon_state in icon_states(icon_file)))
- warning("design [D] with icon '[icon_file]' missing state '[icon_state]'")
- continue
- I = icon(icon_file, icon_state, SOUTH)
-
- else
- // construct the icon and slap it into the resource cache
- var/atom/item = initial(D.build_path)
- if (!ispath(item, /atom))
- // biogenerator outputs to beakers by default
- if (initial(D.build_type) & BIOGENERATOR)
- item = /obj/item/reagent_containers/glass/beaker/large
- else
- continue // shouldn't happen, but just in case
-
- // circuit boards become their resulting machines or computers
- if (ispath(item, /obj/item/circuitboard))
- var/obj/item/circuitboard/C = item
- var/machine = initial(C.build_path)
- if (machine)
- item = machine
-
- // Check for GAGS support where necessary
- // var/greyscale_config = initial(item.greyscale_config)
- // var/greyscale_colors = initial(item.greyscale_colors)
- // if (greyscale_config && greyscale_colors)
- // icon_file = SSgreyscale.GetColoredIconByType(greyscale_config, greyscale_colors)
- // else
- icon_file = initial(item.icon)
-
- icon_state = initial(item.icon_state)
- if(!(icon_state in icon_states(icon_file)))
- warning("design [D] with icon '[icon_file]' missing state '[icon_state]'")
- continue
- I = icon(icon_file, icon_state, SOUTH)
-
- // computers (and snowflakes) get their screen and keyboard sprites
- if (ispath(item, /obj/machinery/computer) || ispath(item, /obj/machinery/power/solar_control))
- var/obj/machinery/computer/C = item
- var/screen = initial(C.icon_screen)
- var/keyboard = initial(C.icon_keyboard)
- var/all_states = icon_states(icon_file)
- if (screen && (screen in all_states))
- I.Blend(icon(icon_file, screen, SOUTH), ICON_OVERLAY)
- if (keyboard && (keyboard in all_states))
- I.Blend(icon(icon_file, keyboard, SOUTH), ICON_OVERLAY)
-
- Insert(initial(D.id), I)
- return ..()
-
-/datum/asset/spritesheet/vending
- name = "vending"
-
-/datum/asset/spritesheet/vending/register()
- for (var/k in GLOB.vending_products)
- var/atom/item = k
- if (!ispath(item, /atom))
- continue
-
- var/icon_file
- // if (initial(item.greyscale_colors) && initial(item.greyscale_config))
- // icon_file = SSgreyscale.GetColoredIconByType(initial(item.greyscale_config), initial(item.greyscale_colors))
- // else
- icon_file = initial(item.icon)
- var/icon_state = initial(item.icon_state)
- var/icon/I
-
- var/icon_states_list = icon_states(icon_file)
- if(icon_state in icon_states_list)
- I = icon(icon_file, icon_state, SOUTH)
- var/c = initial(item.color)
- if (!isnull(c) && c != "#FFFFFF")
- I.Blend(c, ICON_MULTIPLY)
- else
- var/icon_states_string
- for (var/an_icon_state in icon_states_list)
- if (!icon_states_string)
- icon_states_string = "[json_encode(an_icon_state)](\ref[an_icon_state])"
- else
- icon_states_string += ", [json_encode(an_icon_state)](\ref[an_icon_state])"
- stack_trace("[item] does not have a valid icon state, icon=[icon_file], icon_state=[json_encode(icon_state)](\ref[icon_state]), icon_states=[icon_states_string]")
- I = icon('icons/turf/floors.dmi', "", SOUTH)
-
- var/imgid = replacetext(replacetext("[item]", "/obj/item/", ""), "/", "-")
-
- Insert(imgid, I)
- return ..()
-
-/datum/asset/simple/genetics
- assets = list(
- "dna_discovered.gif" = 'html/dna_discovered.gif',
- "dna_undiscovered.gif" = 'html/dna_undiscovered.gif',
- "dna_extra.gif" = 'html/dna_extra.gif'
- )
-
-/datum/asset/simple/orbit
- assets = list(
- "ghost.png" = 'html/ghost.png'
- )
-
-/datum/asset/simple/vv
- assets = list(
- "view_variables.css" = 'html/admin/view_variables.css'
- )
-
-/datum/asset/spritesheet/sheetmaterials
- name = "sheetmaterials"
-
-/datum/asset/spritesheet/sheetmaterials/register()
- InsertAll("", 'icons/obj/stack_objects.dmi')
-
- // Special case to handle Bluespace Crystals
- Insert("polycrystal", 'icons/obj/telescience.dmi', "polycrystal")
- ..()
-
-/datum/asset/spritesheet/mafia
- name = "mafia"
-
-/datum/asset/spritesheet/mafia/register()
- InsertAll("", 'icons/obj/mafia.dmi')
- ..()
-
-/datum/asset/simple/portraits
- var/tab = "use subtypes of this please"
- assets = list()
-
-/datum/asset/simple/portraits/New()
- if(!SSpersistence.paintings || !SSpersistence.paintings[tab] || !length(SSpersistence.paintings[tab]))
- return
- for(var/p in SSpersistence.paintings[tab])
- var/list/portrait = p
- var/png = "data/paintings/[tab]/[portrait["md5"]].png"
- if(fexists(png))
- var/asset_name = "[tab]_[portrait["md5"]]"
- assets[asset_name] = png
- ..() //this is where it registers all these assets we added to the list
-
-/datum/asset/simple/portraits/library
- tab = "library"
-
-/datum/asset/simple/portraits/library_secure
- tab = "library_secure"
-
-/datum/asset/simple/portraits/library_private
- tab = "library_private"
-
-/datum/asset/simple/safe
- assets = list(
- "safe_dial.png" = 'html/safe_dial.png'
- )
-
-// /datum/asset/spritesheet/fish
-// name = "fish"
-
-// /datum/asset/spritesheet/fish/register()
-// for (var/path in subtypesof(/datum/aquarium_behaviour/fish))
-// var/datum/aquarium_behaviour/fish/fish_type = path
-// var/fish_icon = initial(fish_type.icon)
-// var/fish_icon_state = initial(fish_type.icon_state)
-// var/id = sanitize_css_class_name("[fish_icon][fish_icon_state]")
-// if(sprites[id]) //no dupes
-// continue
-// Insert(id, fish_icon, fish_icon_state)
-// ..()
-
-/datum/asset/simple/adventure
- assets = list(
- "default" = 'icons/ui_icons/adventure/default.png',
- "grue" = 'icons/ui_icons/adventure/grue.png',
- "signal_lost" ='icons/ui_icons/adventure/signal_lost.png',
- "trade" = 'icons/ui_icons/adventure/trade.png',
- )
-
-/datum/asset/simple/inventory
- assets = list(
- "inventory-glasses.png" = 'icons/ui_icons/inventory/glasses.png',
- "inventory-head.png" = 'icons/ui_icons/inventory/head.png',
- "inventory-neck.png" = 'icons/ui_icons/inventory/neck.png',
- "inventory-mask.png" = 'icons/ui_icons/inventory/mask.png',
- "inventory-ears.png" = 'icons/ui_icons/inventory/ears.png',
- "inventory-uniform.png" = 'icons/ui_icons/inventory/uniform.png',
- "inventory-suit.png" = 'icons/ui_icons/inventory/suit.png',
- "inventory-gloves.png" = 'icons/ui_icons/inventory/gloves.png',
- "inventory-hand_l.png" = 'icons/ui_icons/inventory/hand_l.png',
- "inventory-hand_r.png" = 'icons/ui_icons/inventory/hand_r.png',
- "inventory-shoes.png" = 'icons/ui_icons/inventory/shoes.png',
- "inventory-suit_storage.png" = 'icons/ui_icons/inventory/suit_storage.png',
- "inventory-id.png" = 'icons/ui_icons/inventory/id.png',
- "inventory-belt.png" = 'icons/ui_icons/inventory/belt.png',
- "inventory-back.png" = 'icons/ui_icons/inventory/back.png',
- "inventory-pocket.png" = 'icons/ui_icons/inventory/pocket.png',
- "inventory-collar.png" = 'icons/ui_icons/inventory/collar.png',
- )
-
-/// Removes all non-alphanumerics from the text, keep in mind this can lead to id conflicts
-/proc/sanitize_css_class_name(name)
- var/static/regex/regex = new(@"[^a-zA-Z0-9]","g")
- return replacetext(name, regex, "")
-
-/datum/asset/simple/tutorial_advisors
- assets = list(
- "chem_help_advisor.gif" = 'icons/ui_icons/advisors/chem_help_advisor.gif',
- )
-
-// /datum/asset/spritesheet/moods
-// name = "moods"
-// var/iconinserted = 1
-
-// /datum/asset/spritesheet/moods/register()
-// for(var/i in 1 to 9)
-// var/target_to_insert = "mood"+"[iconinserted]"
-// Insert(target_to_insert, 'icons/hud/screen_gen.dmi', target_to_insert)
-// iconinserted++
-// ..()
-
-// /datum/asset/spritesheet/moods/ModifyInserted(icon/pre_asset)
-// var/blended_color
-// switch(iconinserted)
-// if(1)
-// blended_color = "#f15d36"
-// if(2 to 3)
-// blended_color = "#f38943"
-// if(4)
-// blended_color = "#dfa65b"
-// if(5)
-// blended_color = "#4b96c4"
-// if(6)
-// blended_color = "#86d656"
-// else
-// blended_color = "#2eeb9a"
-// pre_asset.Blend(blended_color, ICON_MULTIPLY)
-// return pre_asset
-
-/datum/asset/spritesheet/jobs
- name = "jobs"
-
-/datum/asset/spritesheet/jobs/register()
- InsertAll("", 'icons/UI_Icons/tgui/jobs.dmi')
- ..()
diff --git a/code/modules/asset_cache/assets/achievements.dm b/code/modules/asset_cache/assets/achievements.dm
new file mode 100644
index 0000000000..7d01099dca
--- /dev/null
+++ b/code/modules/asset_cache/assets/achievements.dm
@@ -0,0 +1,41 @@
+/datum/asset/spritesheet/simple/achievements
+ name ="achievements"
+ assets = list(
+ "default" = 'icons/ui_icons/achievements/default.png',
+ "basemisc" = 'icons/ui_icons/achievements/basemisc.png',
+ "baseboss" = 'icons/ui_icons/achievements/baseboss.png',
+ "baseskill" = 'icons/ui_icons/achievements/baseskill.png',
+ "bbgum" = 'icons/ui_icons/achievements/Boss/bbgum.png',
+ "colossus" = 'icons/ui_icons/achievements/Boss/colossus.png',
+ "hierophant" = 'icons/ui_icons/achievements/Boss/hierophant.png',
+ "drake" = 'icons/ui_icons/achievements/Boss/drake.png',
+ "legion" = 'icons/ui_icons/achievements/Boss/legion.png',
+ "miner" = 'icons/ui_icons/achievements/Boss/miner.png',
+ "swarmer" = 'icons/ui_icons/achievements/Boss/swarmer.png',
+ "tendril" = 'icons/ui_icons/achievements/Boss/tendril.png',
+ "featofstrength" = 'icons/ui_icons/achievements/Misc/featofstrength.png',
+ "helbital" = 'icons/ui_icons/achievements/Misc/helbital.png',
+ "jackpot" = 'icons/ui_icons/achievements/Misc/jackpot.png',
+ "meteors" = 'icons/ui_icons/achievements/Misc/meteors.png',
+ "timewaste" = 'icons/ui_icons/achievements/Misc/timewaste.png',
+ "upgrade" = 'icons/ui_icons/achievements/Misc/upgrade.png',
+ "clownking" = 'icons/ui_icons/achievements/Misc/clownking.png',
+ "clownthanks" = 'icons/ui_icons/achievements/Misc/clownthanks.png',
+ "rule8" = 'icons/ui_icons/achievements/Misc/rule8.png',
+ "longshift" = 'icons/ui_icons/achievements/Misc/longshift.png',
+ "snail" = 'icons/ui_icons/achievements/Misc/snail.png',
+ "ascension" = 'icons/ui_icons/achievements/Misc/ascension.png',
+ "ashascend" = 'icons/ui_icons/achievements/Misc/ashascend.png',
+ "fleshascend" = 'icons/ui_icons/achievements/Misc/fleshascend.png',
+ "rustascend" = 'icons/ui_icons/achievements/Misc/rustascend.png',
+ "voidascend" = 'icons/ui_icons/achievements/Misc/voidascend.png',
+ "toolbox_soul" = 'icons/ui_icons/achievements/Misc/toolbox_soul.png',
+ "chem_tut" = 'icons/ui_icons/achievements/Misc/chem_tut.png',
+ "mining" = 'icons/ui_icons/achievements/Skills/mining.png',
+ "mafia" = 'icons/ui_icons/achievements/Mafia/mafia.png',
+ "town" = 'icons/ui_icons/achievements/Mafia/town.png',
+ "neutral" = 'icons/ui_icons/achievements/Mafia/neutral.png',
+ "hated" = 'icons/ui_icons/achievements/Mafia/hated.png',
+ "basemafia" ='icons/ui_icons/achievements/basemafia.png',
+ "frenching" = 'icons/ui_icons/achievements/Misc/frenchingthebubble.png'
+ )
diff --git a/code/modules/asset_cache/assets/adventure.dm b/code/modules/asset_cache/assets/adventure.dm
new file mode 100644
index 0000000000..65f6c3fe9c
--- /dev/null
+++ b/code/modules/asset_cache/assets/adventure.dm
@@ -0,0 +1,7 @@
+/datum/asset/simple/adventure
+ assets = list(
+ "default" = 'icons/ui_icons/adventure/default.png',
+ "grue" = 'icons/ui_icons/adventure/grue.png',
+ "signal_lost" ='icons/ui_icons/adventure/signal_lost.png',
+ "trade" = 'icons/ui_icons/adventure/trade.png',
+ )
diff --git a/code/modules/asset_cache/assets/arcade.dm b/code/modules/asset_cache/assets/arcade.dm
new file mode 100644
index 0000000000..bcd23919f9
--- /dev/null
+++ b/code/modules/asset_cache/assets/arcade.dm
@@ -0,0 +1,9 @@
+/datum/asset/simple/arcade
+ assets = list(
+ "boss1.gif" = 'icons/ui_icons/arcade/boss1.gif',
+ "boss2.gif" = 'icons/ui_icons/arcade/boss2.gif',
+ "boss3.gif" = 'icons/ui_icons/arcade/boss3.gif',
+ "boss4.gif" = 'icons/ui_icons/arcade/boss4.gif',
+ "boss5.gif" = 'icons/ui_icons/arcade/boss5.gif',
+ "boss6.gif" = 'icons/ui_icons/arcade/boss6.gif',
+ )
diff --git a/code/modules/asset_cache/assets/chat.dm b/code/modules/asset_cache/assets/chat.dm
new file mode 100644
index 0000000000..a6b450d5d5
--- /dev/null
+++ b/code/modules/asset_cache/assets/chat.dm
@@ -0,0 +1,16 @@
+/datum/asset/spritesheet/chat
+ name = "chat"
+
+/datum/asset/spritesheet/chat/register()
+ InsertAll("emoji", 'icons/emoji.dmi')
+ InsertAll("emoji", 'icons/emoji_32.dmi')
+ // pre-loading all lanugage icons also helps to avoid meta
+ InsertAll("language", 'icons/misc/language.dmi')
+ // catch languages which are pulling icons from another file
+ for(var/path in typesof(/datum/language))
+ var/datum/language/L = path
+ var/icon = initial(L.icon)
+ if (icon != 'icons/misc/language.dmi')
+ var/icon_state = initial(L.icon_state)
+ Insert("language-[icon_state]", icon, icon_state=icon_state)
+ ..()
diff --git a/code/modules/asset_cache/assets/circuits.dm b/code/modules/asset_cache/assets/circuits.dm
new file mode 100644
index 0000000000..df9aa1fa6d
--- /dev/null
+++ b/code/modules/asset_cache/assets/circuits.dm
@@ -0,0 +1,4 @@
+/datum/asset/simple/circuit_assets
+ assets = list(
+ "grid_background.png" = 'icons/ui_icons/tgui/grid_background.png'
+ )
diff --git a/code/modules/asset_cache/assets/common.dm b/code/modules/asset_cache/assets/common.dm
new file mode 100644
index 0000000000..c5ab184e96
--- /dev/null
+++ b/code/modules/asset_cache/assets/common.dm
@@ -0,0 +1,3 @@
+/datum/asset/simple/namespaced/common
+ assets = list("padlock.png" = 'html/padlock.png')
+ parents = list("common.css" = 'html/browser/common.css')
diff --git a/code/modules/asset_cache/assets/condiments.dm b/code/modules/asset_cache/assets/condiments.dm
new file mode 100644
index 0000000000..2d89092281
--- /dev/null
+++ b/code/modules/asset_cache/assets/condiments.dm
@@ -0,0 +1,20 @@
+// /datum/asset/spritesheet/simple/condiments
+// name = "condiments"
+// assets = list(
+// CONDIMASTER_STYLE_FALLBACK = 'icons/ui_icons/condiments/emptycondiment.png',
+// "enzyme" = 'icons/ui_icons/condiments/enzyme.png',
+// "flour" = 'icons/ui_icons/condiments/flour.png',
+// "mayonnaise" = 'icons/ui_icons/condiments/mayonnaise.png',
+// "milk" = 'icons/ui_icons/condiments/milk.png',
+// "blackpepper" = 'icons/ui_icons/condiments/peppermillsmall.png',
+// "rice" = 'icons/ui_icons/condiments/rice.png',
+// "sodiumchloride" = 'icons/ui_icons/condiments/saltshakersmall.png',
+// "soymilk" = 'icons/ui_icons/condiments/soymilk.png',
+// "soysauce" = 'icons/ui_icons/condiments/soysauce.png',
+// "sugar" = 'icons/ui_icons/condiments/sugar.png',
+// "ketchup" = 'icons/ui_icons/condiments/ketchup.png',
+// "capsaicin" = 'icons/ui_icons/condiments/hotsauce.png',
+// "frostoil" = 'icons/ui_icons/condiments/coldsauce.png',
+// "bbqsauce" = 'icons/ui_icons/condiments/bbqsauce.png',
+// "cornoil" = 'icons/ui_icons/condiments/oliveoil.png',
+// )
diff --git a/code/modules/asset_cache/assets/fish.dm b/code/modules/asset_cache/assets/fish.dm
new file mode 100644
index 0000000000..64c36eba79
--- /dev/null
+++ b/code/modules/asset_cache/assets/fish.dm
@@ -0,0 +1,13 @@
+// /datum/asset/spritesheet/fish
+// name = "fish"
+
+// /datum/asset/spritesheet/fish/register()
+// for (var/path in subtypesof(/datum/aquarium_behaviour/fish))
+// var/datum/aquarium_behaviour/fish/fish_type = path
+// var/fish_icon = initial(fish_type.icon)
+// var/fish_icon_state = initial(fish_type.icon_state)
+// var/id = sanitize_css_class_name("[fish_icon][fish_icon_state]")
+// if(sprites[id]) //no dupes
+// continue
+// Insert(id, fish_icon, fish_icon_state)
+// ..()
diff --git a/code/modules/asset_cache/assets/fontawesome.dm b/code/modules/asset_cache/assets/fontawesome.dm
new file mode 100644
index 0000000000..6f5441ab42
--- /dev/null
+++ b/code/modules/asset_cache/assets/fontawesome.dm
@@ -0,0 +1,8 @@
+/datum/asset/simple/namespaced/fontawesome
+ assets = list(
+ "fa-regular-400.ttf" = 'html/font-awesome/webfonts/fa-regular-400.ttf',
+ "fa-solid-900.ttf" = 'html/font-awesome/webfonts/fa-solid-900.ttf',
+ "fa-v4compatibility.ttf" = 'html/font-awesome/webfonts/fa-v4compatibility.ttf',
+ "v4shim.css" = 'html/font-awesome/css/v4-shims.min.css',
+ )
+ parents = list("font-awesome.css" = 'html/font-awesome/css/all.min.css')
diff --git a/code/modules/asset_cache/assets/genetics.dm b/code/modules/asset_cache/assets/genetics.dm
new file mode 100644
index 0000000000..6404ff7448
--- /dev/null
+++ b/code/modules/asset_cache/assets/genetics.dm
@@ -0,0 +1,6 @@
+/datum/asset/simple/genetics
+ assets = list(
+ "dna_discovered.gif" = 'html/dna_discovered.gif',
+ "dna_undiscovered.gif" = 'html/dna_undiscovered.gif',
+ "dna_extra.gif" = 'html/dna_extra.gif'
+ )
diff --git a/code/modules/asset_cache/assets/headers.dm b/code/modules/asset_cache/assets/headers.dm
new file mode 100644
index 0000000000..8ba6b3b512
--- /dev/null
+++ b/code/modules/asset_cache/assets/headers.dm
@@ -0,0 +1,31 @@
+/datum/asset/simple/headers
+ assets = list(
+ "alarm_green.gif" = 'icons/program_icons/alarm_green.gif',
+ "alarm_red.gif" = 'icons/program_icons/alarm_red.gif',
+ "batt_5.gif" = 'icons/program_icons/batt_5.gif',
+ "batt_20.gif" = 'icons/program_icons/batt_20.gif',
+ "batt_40.gif" = 'icons/program_icons/batt_40.gif',
+ "batt_60.gif" = 'icons/program_icons/batt_60.gif',
+ "batt_80.gif" = 'icons/program_icons/batt_80.gif',
+ "batt_100.gif" = 'icons/program_icons/batt_100.gif',
+ "charging.gif" = 'icons/program_icons/charging.gif',
+ "downloader_finished.gif" = 'icons/program_icons/downloader_finished.gif',
+ "downloader_running.gif" = 'icons/program_icons/downloader_running.gif',
+ "ntnrc_idle.gif" = 'icons/program_icons/ntnrc_idle.gif',
+ "ntnrc_new.gif" = 'icons/program_icons/ntnrc_new.gif',
+ "power_norm.gif" = 'icons/program_icons/power_norm.gif',
+ "power_warn.gif" = 'icons/program_icons/power_warn.gif',
+ "sig_high.gif" = 'icons/program_icons/sig_high.gif',
+ "sig_low.gif" = 'icons/program_icons/sig_low.gif',
+ "sig_lan.gif" = 'icons/program_icons/sig_lan.gif',
+ "sig_none.gif" = 'icons/program_icons/sig_none.gif',
+ "smmon_0.gif" = 'icons/program_icons/smmon_0.gif',
+ "smmon_1.gif" = 'icons/program_icons/smmon_1.gif',
+ "smmon_2.gif" = 'icons/program_icons/smmon_2.gif',
+ "smmon_3.gif" = 'icons/program_icons/smmon_3.gif',
+ "smmon_4.gif" = 'icons/program_icons/smmon_4.gif',
+ "smmon_5.gif" = 'icons/program_icons/smmon_5.gif',
+ "smmon_6.gif" = 'icons/program_icons/smmon_6.gif',
+ "borg_mon.gif" = 'icons/program_icons/borg_mon.gif',
+ "robotact.gif" = 'icons/program_icons/robotact.gif'
+ )
diff --git a/code/modules/asset_cache/assets/inventory.dm b/code/modules/asset_cache/assets/inventory.dm
new file mode 100644
index 0000000000..a63fc45620
--- /dev/null
+++ b/code/modules/asset_cache/assets/inventory.dm
@@ -0,0 +1,20 @@
+/datum/asset/simple/inventory
+ assets = list(
+ "inventory-glasses.png" = 'icons/ui_icons/inventory/glasses.png',
+ "inventory-head.png" = 'icons/ui_icons/inventory/head.png',
+ "inventory-neck.png" = 'icons/ui_icons/inventory/neck.png',
+ "inventory-mask.png" = 'icons/ui_icons/inventory/mask.png',
+ "inventory-ears.png" = 'icons/ui_icons/inventory/ears.png',
+ "inventory-uniform.png" = 'icons/ui_icons/inventory/uniform.png',
+ "inventory-suit.png" = 'icons/ui_icons/inventory/suit.png',
+ "inventory-gloves.png" = 'icons/ui_icons/inventory/gloves.png',
+ "inventory-hand_l.png" = 'icons/ui_icons/inventory/hand_l.png',
+ "inventory-hand_r.png" = 'icons/ui_icons/inventory/hand_r.png',
+ "inventory-shoes.png" = 'icons/ui_icons/inventory/shoes.png',
+ "inventory-suit_storage.png" = 'icons/ui_icons/inventory/suit_storage.png',
+ "inventory-id.png" = 'icons/ui_icons/inventory/id.png',
+ "inventory-belt.png" = 'icons/ui_icons/inventory/belt.png',
+ "inventory-back.png" = 'icons/ui_icons/inventory/back.png',
+ "inventory-pocket.png" = 'icons/ui_icons/inventory/pocket.png',
+ "inventory-collar.png" = 'icons/ui_icons/inventory/collar.png',
+ )
diff --git a/code/modules/asset_cache/assets/irv.dm b/code/modules/asset_cache/assets/irv.dm
new file mode 100644
index 0000000000..79758edcaa
--- /dev/null
+++ b/code/modules/asset_cache/assets/irv.dm
@@ -0,0 +1,10 @@
+/datum/asset/simple/irv
+ assets = list(
+ "jquery-ui.custom-core-widgit-mouse-sortable-min.js" = 'html/jquery/jquery-ui.custom-core-widgit-mouse-sortable.min.js',
+ )
+
+/datum/asset/group/irv
+ children = list(
+ /datum/asset/simple/jquery,
+ /datum/asset/simple/irv
+ )
diff --git a/code/modules/asset_cache/assets/jobs.dm b/code/modules/asset_cache/assets/jobs.dm
new file mode 100644
index 0000000000..b391ab43ec
--- /dev/null
+++ b/code/modules/asset_cache/assets/jobs.dm
@@ -0,0 +1,6 @@
+/datum/asset/spritesheet/jobs
+ name = "jobs"
+
+/datum/asset/spritesheet/jobs/register()
+ InsertAll("", 'icons/UI_Icons/tgui/jobs.dmi')
+ ..()
diff --git a/code/modules/asset_cache/assets/jquery.dm b/code/modules/asset_cache/assets/jquery.dm
new file mode 100644
index 0000000000..b7241fdb61
--- /dev/null
+++ b/code/modules/asset_cache/assets/jquery.dm
@@ -0,0 +1,5 @@
+/datum/asset/simple/jquery
+ legacy = TRUE
+ assets = list(
+ "jquery.min.js" = 'html/jquery/jquery.min.js',
+ )
diff --git a/code/modules/asset_cache/assets/languages.dm b/code/modules/asset_cache/assets/languages.dm
new file mode 100644
index 0000000000..f84db6a21a
--- /dev/null
+++ b/code/modules/asset_cache/assets/languages.dm
@@ -0,0 +1,6 @@
+//this exists purely to avoid meta by pre-loading all language icons.
+/datum/asset/language/register()
+ for(var/path in typesof(/datum/language))
+ set waitfor = FALSE
+ var/datum/language/L = new path ()
+ L.get_icon()
diff --git a/code/modules/asset_cache/assets/lobby.dm b/code/modules/asset_cache/assets/lobby.dm
new file mode 100644
index 0000000000..ce1d61e552
--- /dev/null
+++ b/code/modules/asset_cache/assets/lobby.dm
@@ -0,0 +1,4 @@
+/datum/asset/simple/lobby
+ assets = list(
+ "playeroptions.css" = 'html/browser/playeroptions.css'
+ )
diff --git a/code/modules/asset_cache/assets/mafia.dm b/code/modules/asset_cache/assets/mafia.dm
new file mode 100644
index 0000000000..7ec094aea0
--- /dev/null
+++ b/code/modules/asset_cache/assets/mafia.dm
@@ -0,0 +1,6 @@
+/datum/asset/spritesheet/mafia
+ name = "mafia"
+
+/datum/asset/spritesheet/mafia/register()
+ InsertAll("", 'icons/obj/mafia.dmi')
+ ..()
diff --git a/code/modules/asset_cache/assets/moods.dm b/code/modules/asset_cache/assets/moods.dm
new file mode 100644
index 0000000000..5b16b838f9
--- /dev/null
+++ b/code/modules/asset_cache/assets/moods.dm
@@ -0,0 +1,28 @@
+// /datum/asset/spritesheet/moods
+// name = "moods"
+// var/iconinserted = 1
+
+// /datum/asset/spritesheet/moods/register()
+// for(var/i in 1 to 9)
+// var/target_to_insert = "mood"+"[iconinserted]"
+// Insert(target_to_insert, 'icons/hud/screen_gen.dmi', target_to_insert)
+// iconinserted++
+// ..()
+
+// /datum/asset/spritesheet/moods/ModifyInserted(icon/pre_asset)
+// var/blended_color
+// switch(iconinserted)
+// if(1)
+// blended_color = "#f15d36"
+// if(2 to 3)
+// blended_color = "#f38943"
+// if(4)
+// blended_color = "#dfa65b"
+// if(5)
+// blended_color = "#4b96c4"
+// if(6)
+// blended_color = "#86d656"
+// else
+// blended_color = "#2eeb9a"
+// pre_asset.Blend(blended_color, ICON_MULTIPLY)
+// return pre_asset
diff --git a/code/modules/asset_cache/assets/notes.dm b/code/modules/asset_cache/assets/notes.dm
new file mode 100644
index 0000000000..8a10b3f250
--- /dev/null
+++ b/code/modules/asset_cache/assets/notes.dm
@@ -0,0 +1,7 @@
+/datum/asset/simple/notes
+ assets = list(
+ "high_button.png" = 'html/high_button.png',
+ "medium_button.png" = 'html/medium_button.png',
+ "minor_button.png" = 'html/minor_button.png',
+ "none_button.png" = 'html/none_button.png',
+ )
diff --git a/code/modules/asset_cache/assets/orbit.dm b/code/modules/asset_cache/assets/orbit.dm
new file mode 100644
index 0000000000..1ad8bb1e18
--- /dev/null
+++ b/code/modules/asset_cache/assets/orbit.dm
@@ -0,0 +1,4 @@
+/datum/asset/simple/orbit
+ assets = list(
+ "ghost.png" = 'html/ghost.png'
+ )
diff --git a/code/modules/asset_cache/assets/paper.dm b/code/modules/asset_cache/assets/paper.dm
new file mode 100644
index 0000000000..8cf50b8f3d
--- /dev/null
+++ b/code/modules/asset_cache/assets/paper.dm
@@ -0,0 +1,19 @@
+/datum/asset/spritesheet/simple/paper
+ name = "paper"
+ assets = list(
+ "stamp-clown" = 'icons/stamp_icons/large_stamp-clown.png',
+ "stamp-deny" = 'icons/stamp_icons/large_stamp-deny.png',
+ "stamp-ok" = 'icons/stamp_icons/large_stamp-ok.png',
+ "stamp-hop" = 'icons/stamp_icons/large_stamp-hop.png',
+ "stamp-cmo" = 'icons/stamp_icons/large_stamp-cmo.png',
+ "stamp-ce" = 'icons/stamp_icons/large_stamp-ce.png',
+ "stamp-hos" = 'icons/stamp_icons/large_stamp-hos.png',
+ "stamp-rd" = 'icons/stamp_icons/large_stamp-rd.png',
+ "stamp-cap" = 'icons/stamp_icons/large_stamp-cap.png',
+ "stamp-qm" = 'icons/stamp_icons/large_stamp-qm.png',
+ "stamp-law" = 'icons/stamp_icons/large_stamp-law.png',
+ "stamp-chap" = 'icons/stamp_icons/large_stamp-chap.png',
+ "stamp-mime" = 'icons/stamp_icons/large_stamp-mime.png',
+ "stamp-centcom" = 'icons/stamp_icons/large_stamp-centcom.png',
+ "stamp-syndicate" = 'icons/stamp_icons/large_stamp-syndicate.png'
+ )
diff --git a/code/modules/asset_cache/assets/pda.dm b/code/modules/asset_cache/assets/pda.dm
new file mode 100644
index 0000000000..ef38bbd05c
--- /dev/null
+++ b/code/modules/asset_cache/assets/pda.dm
@@ -0,0 +1,34 @@
+/datum/asset/spritesheet/simple/pda
+ name = "pda"
+ assets = list(
+ "atmos" = 'icons/pda_icons/pda_atmos.png',
+ "back" = 'icons/pda_icons/pda_back.png',
+ "bell" = 'icons/pda_icons/pda_bell.png',
+ "blank" = 'icons/pda_icons/pda_blank.png',
+ "boom" = 'icons/pda_icons/pda_boom.png',
+ "bucket" = 'icons/pda_icons/pda_bucket.png',
+ "medbot" = 'icons/pda_icons/pda_medbot.png',
+ "floorbot" = 'icons/pda_icons/pda_floorbot.png',
+ "cleanbot" = 'icons/pda_icons/pda_cleanbot.png',
+ "crate" = 'icons/pda_icons/pda_crate.png',
+ "cuffs" = 'icons/pda_icons/pda_cuffs.png',
+ "eject" = 'icons/pda_icons/pda_eject.png',
+ "flashlight" = 'icons/pda_icons/pda_flashlight.png',
+ "honk" = 'icons/pda_icons/pda_honk.png',
+ "mail" = 'icons/pda_icons/pda_mail.png',
+ "medical" = 'icons/pda_icons/pda_medical.png',
+ "menu" = 'icons/pda_icons/pda_menu.png',
+ "mule" = 'icons/pda_icons/pda_mule.png',
+ "notes" = 'icons/pda_icons/pda_notes.png',
+ "power" = 'icons/pda_icons/pda_power.png',
+ "rdoor" = 'icons/pda_icons/pda_rdoor.png',
+ "reagent" = 'icons/pda_icons/pda_reagent.png',
+ "refresh" = 'icons/pda_icons/pda_refresh.png',
+ "scanner" = 'icons/pda_icons/pda_scanner.png',
+ "signaler" = 'icons/pda_icons/pda_signaler.png',
+ // "skills" = 'icons/pda_icons/pda_skills.png',
+ "status" = 'icons/pda_icons/pda_status.png',
+ "dronephone" = 'icons/pda_icons/pda_dronephone.png',
+ "emoji" = 'icons/pda_icons/pda_emoji.png'
+ // "droneblacklist" = 'icons/pda_icons/pda_droneblacklist.png',
+ )
diff --git a/code/modules/asset_cache/assets/permissions.dm b/code/modules/asset_cache/assets/permissions.dm
new file mode 100644
index 0000000000..6cc6c0e754
--- /dev/null
+++ b/code/modules/asset_cache/assets/permissions.dm
@@ -0,0 +1,11 @@
+/datum/asset/simple/permissions
+ assets = list(
+ "search.js" = 'html/admin/search.js',
+ "panels.css" = 'html/admin/panels.css'
+ )
+
+/datum/asset/group/permissions
+ children = list(
+ /datum/asset/simple/permissions,
+ /datum/asset/simple/namespaced/common
+ )
diff --git a/code/modules/asset_cache/assets/pills.dm b/code/modules/asset_cache/assets/pills.dm
new file mode 100644
index 0000000000..bbc551e544
--- /dev/null
+++ b/code/modules/asset_cache/assets/pills.dm
@@ -0,0 +1,26 @@
+/datum/asset/spritesheet/simple/pills
+ name = "pills"
+ assets = list(
+ "pill1" = 'icons/ui_icons/pills/pill1.png',
+ "pill2" = 'icons/ui_icons/pills/pill2.png',
+ "pill3" = 'icons/ui_icons/pills/pill3.png',
+ "pill4" = 'icons/ui_icons/pills/pill4.png',
+ "pill5" = 'icons/ui_icons/pills/pill5.png',
+ "pill6" = 'icons/ui_icons/pills/pill6.png',
+ "pill7" = 'icons/ui_icons/pills/pill7.png',
+ "pill8" = 'icons/ui_icons/pills/pill8.png',
+ "pill9" = 'icons/ui_icons/pills/pill9.png',
+ "pill10" = 'icons/ui_icons/pills/pill10.png',
+ "pill11" = 'icons/ui_icons/pills/pill11.png',
+ "pill12" = 'icons/ui_icons/pills/pill12.png',
+ "pill13" = 'icons/ui_icons/pills/pill13.png',
+ "pill14" = 'icons/ui_icons/pills/pill14.png',
+ "pill15" = 'icons/ui_icons/pills/pill15.png',
+ "pill16" = 'icons/ui_icons/pills/pill16.png',
+ "pill17" = 'icons/ui_icons/pills/pill17.png',
+ "pill18" = 'icons/ui_icons/pills/pill18.png',
+ "pill19" = 'icons/ui_icons/pills/pill19.png',
+ "pill20" = 'icons/ui_icons/pills/pill20.png',
+ "pill21" = 'icons/ui_icons/pills/pill21.png',
+ "pill22" = 'icons/ui_icons/pills/pill22.png',
+ )
diff --git a/code/modules/asset_cache/assets/pipes.dm b/code/modules/asset_cache/assets/pipes.dm
new file mode 100644
index 0000000000..87f0afbb64
--- /dev/null
+++ b/code/modules/asset_cache/assets/pipes.dm
@@ -0,0 +1,7 @@
+/datum/asset/spritesheet/pipes
+ name = "pipes"
+
+/datum/asset/spritesheet/pipes/register()
+ for (var/each in list('icons/obj/atmospherics/pipes/pipe_item.dmi', 'icons/obj/atmospherics/pipes/disposal.dmi', 'icons/obj/atmospherics/pipes/transit_tube.dmi', 'icons/obj/plumbing/fluid_ducts.dmi'))
+ InsertAll("", each, GLOB.alldirs)
+ ..()
diff --git a/code/modules/asset_cache/assets/portraits.dm b/code/modules/asset_cache/assets/portraits.dm
new file mode 100644
index 0000000000..2b758dcf98
--- /dev/null
+++ b/code/modules/asset_cache/assets/portraits.dm
@@ -0,0 +1,23 @@
+/datum/asset/simple/portraits
+ var/tab = "use subtypes of this please"
+ assets = list()
+
+/datum/asset/simple/portraits/New()
+ if(!SSpersistence.paintings || !SSpersistence.paintings[tab] || !length(SSpersistence.paintings[tab]))
+ return
+ for(var/p in SSpersistence.paintings[tab])
+ var/list/portrait = p
+ var/png = "data/paintings/[tab]/[portrait["md5"]].png"
+ if(fexists(png))
+ var/asset_name = "[tab]_[portrait["md5"]]"
+ assets[asset_name] = png
+ ..() //this is where it registers all these assets we added to the list
+
+/datum/asset/simple/portraits/library
+ tab = "library"
+
+/datum/asset/simple/portraits/library_secure
+ tab = "library_secure"
+
+/datum/asset/simple/portraits/library_private
+ tab = "library_private"
diff --git a/code/modules/asset_cache/assets/radar.dm b/code/modules/asset_cache/assets/radar.dm
new file mode 100644
index 0000000000..cef2679a92
--- /dev/null
+++ b/code/modules/asset_cache/assets/radar.dm
@@ -0,0 +1,6 @@
+/datum/asset/simple/radar_assets
+ assets = list(
+ "ntosradarbackground.png" = 'icons/ui_icons/tgui/ntosradar_background.png',
+ "ntosradarpointer.png" = 'icons/ui_icons/tgui/ntosradar_pointer.png',
+ "ntosradarpointerS.png" = 'icons/ui_icons/tgui/ntosradar_pointer_S.png'
+ )
diff --git a/code/modules/asset_cache/assets/research_designs.dm b/code/modules/asset_cache/assets/research_designs.dm
new file mode 100644
index 0000000000..503c841794
--- /dev/null
+++ b/code/modules/asset_cache/assets/research_designs.dm
@@ -0,0 +1,64 @@
+// Representative icons for each research design
+/datum/asset/spritesheet/research_designs
+ name = "design"
+
+/datum/asset/spritesheet/research_designs/register()
+ for (var/path in subtypesof(/datum/design))
+ var/datum/design/D = path
+
+ var/icon_file
+ var/icon_state
+ var/icon/I
+
+ if(initial(D.research_icon) && initial(D.research_icon_state)) //If the design has an icon replacement skip the rest
+ icon_file = initial(D.research_icon)
+ icon_state = initial(D.research_icon_state)
+ if(!(icon_state in icon_states(icon_file)))
+ warning("design [D] with icon '[icon_file]' missing state '[icon_state]'")
+ continue
+ I = icon(icon_file, icon_state, SOUTH)
+
+ else
+ // construct the icon and slap it into the resource cache
+ var/atom/item = initial(D.build_path)
+ if (!ispath(item, /atom))
+ // biogenerator outputs to beakers by default
+ if (initial(D.build_type) & BIOGENERATOR)
+ item = /obj/item/reagent_containers/glass/beaker/large
+ else
+ continue // shouldn't happen, but just in case
+
+ // circuit boards become their resulting machines or computers
+ if (ispath(item, /obj/item/circuitboard))
+ var/obj/item/circuitboard/C = item
+ var/machine = initial(C.build_path)
+ if (machine)
+ item = machine
+
+ // Check for GAGS support where necessary
+ // var/greyscale_config = initial(item.greyscale_config)
+ // var/greyscale_colors = initial(item.greyscale_colors)
+ // if (greyscale_config && greyscale_colors)
+ // icon_file = SSgreyscale.GetColoredIconByType(greyscale_config, greyscale_colors)
+ // else
+ icon_file = initial(item.icon)
+
+ icon_state = initial(item.icon_state)
+ if(!(icon_state in icon_states(icon_file)))
+ warning("design [D] with icon '[icon_file]' missing state '[icon_state]'")
+ continue
+ I = icon(icon_file, icon_state, SOUTH)
+
+ // computers (and snowflakes) get their screen and keyboard sprites
+ if (ispath(item, /obj/machinery/computer) || ispath(item, /obj/machinery/power/solar_control))
+ var/obj/machinery/computer/C = item
+ var/screen = initial(C.icon_screen)
+ var/keyboard = initial(C.icon_keyboard)
+ var/all_states = icon_states(icon_file)
+ if (screen && (screen in all_states))
+ I.Blend(icon(icon_file, screen, SOUTH), ICON_OVERLAY)
+ if (keyboard && (keyboard in all_states))
+ I.Blend(icon(icon_file, keyboard, SOUTH), ICON_OVERLAY)
+
+ Insert(initial(D.id), I)
+ return ..()
diff --git a/code/modules/asset_cache/assets/safe.dm b/code/modules/asset_cache/assets/safe.dm
new file mode 100644
index 0000000000..a074e287b3
--- /dev/null
+++ b/code/modules/asset_cache/assets/safe.dm
@@ -0,0 +1,4 @@
+/datum/asset/simple/safe
+ assets = list(
+ "safe_dial.png" = 'html/safe_dial.png'
+ )
diff --git a/code/modules/asset_cache/assets/sheetmaterials.dm b/code/modules/asset_cache/assets/sheetmaterials.dm
new file mode 100644
index 0000000000..2735767b9f
--- /dev/null
+++ b/code/modules/asset_cache/assets/sheetmaterials.dm
@@ -0,0 +1,9 @@
+/datum/asset/spritesheet/sheetmaterials
+ name = "sheetmaterials"
+
+/datum/asset/spritesheet/sheetmaterials/register()
+ InsertAll("", 'icons/obj/stack_objects.dmi')
+
+ // Special case to handle Bluespace Crystals
+ Insert("polycrystal", 'icons/obj/telescience.dmi', "polycrystal")
+ ..()
diff --git a/code/modules/asset_cache/assets/supplypods.dm b/code/modules/asset_cache/assets/supplypods.dm
new file mode 100644
index 0000000000..a528a3a250
--- /dev/null
+++ b/code/modules/asset_cache/assets/supplypods.dm
@@ -0,0 +1,28 @@
+/datum/asset/spritesheet/supplypods
+ name = "supplypods"
+
+/datum/asset/spritesheet/supplypods/register()
+ for (var/style in 1 to length(GLOB.podstyles))
+ if (style == STYLE_SEETHROUGH)
+ Insert("pod_asset[style]", icon('icons/obj/supplypods.dmi' , "seethrough-icon"))
+ continue
+ var/base = GLOB.podstyles[style][POD_BASE]
+ if (!base)
+ Insert("pod_asset[style]", icon('icons/obj/supplypods.dmi', "invisible-icon"))
+ continue
+ var/icon/podIcon = icon('icons/obj/supplypods.dmi', base)
+ var/door = GLOB.podstyles[style][POD_DOOR]
+ if (door)
+ door = "[base]_door"
+ podIcon.Blend(icon('icons/obj/supplypods.dmi', door), ICON_OVERLAY)
+ var/shape = GLOB.podstyles[style][POD_SHAPE]
+ if (shape == POD_SHAPE_NORML)
+ var/decal = GLOB.podstyles[style][POD_DECAL]
+ if (decal)
+ podIcon.Blend(icon('icons/obj/supplypods.dmi', decal), ICON_OVERLAY)
+ var/glow = GLOB.podstyles[style][POD_GLOW]
+ if (glow)
+ glow = "pod_glow_[glow]"
+ podIcon.Blend(icon('icons/obj/supplypods.dmi', glow), ICON_OVERLAY)
+ Insert("pod_asset[style]", podIcon)
+ return ..()
diff --git a/code/modules/asset_cache/assets/tgfont.dm b/code/modules/asset_cache/assets/tgfont.dm
new file mode 100644
index 0000000000..1d9df4282c
--- /dev/null
+++ b/code/modules/asset_cache/assets/tgfont.dm
@@ -0,0 +1,8 @@
+/datum/asset/simple/namespaced/tgfont
+ assets = list(
+ "tgfont.eot" = file("tgui/packages/tgfont/dist/tgfont.eot"),
+ "tgfont.woff2" = file("tgui/packages/tgfont/dist/tgfont.woff2"),
+ )
+ parents = list(
+ "tgfont.css" = file("tgui/packages/tgfont/dist/tgfont.css"),
+ )
diff --git a/code/modules/asset_cache/assets/tgui.dm b/code/modules/asset_cache/assets/tgui.dm
new file mode 100644
index 0000000000..9c79925602
--- /dev/null
+++ b/code/modules/asset_cache/assets/tgui.dm
@@ -0,0 +1,13 @@
+/datum/asset/simple/tgui
+ keep_local_name = TRUE
+ assets = list(
+ "tgui.bundle.js" = file("tgui/public/tgui.bundle.js"),
+ "tgui.bundle.css" = file("tgui/public/tgui.bundle.css"),
+ )
+
+/datum/asset/simple/tgui_panel
+ keep_local_name = TRUE
+ assets = list(
+ "tgui-panel.bundle.js" = file("tgui/public/tgui-panel.bundle.js"),
+ "tgui-panel.bundle.css" = file("tgui/public/tgui-panel.bundle.css"),
+ )
diff --git a/code/modules/asset_cache/assets/tutorial_advisors.dm b/code/modules/asset_cache/assets/tutorial_advisors.dm
new file mode 100644
index 0000000000..da80e8904d
--- /dev/null
+++ b/code/modules/asset_cache/assets/tutorial_advisors.dm
@@ -0,0 +1,4 @@
+/datum/asset/simple/tutorial_advisors
+ assets = list(
+ "chem_help_advisor.gif" = 'icons/ui_icons/advisors/chem_help_advisor.gif',
+ )
diff --git a/code/modules/asset_cache/assets/vending.dm b/code/modules/asset_cache/assets/vending.dm
new file mode 100644
index 0000000000..a612e0c6b5
--- /dev/null
+++ b/code/modules/asset_cache/assets/vending.dm
@@ -0,0 +1,37 @@
+/datum/asset/spritesheet/vending
+ name = "vending"
+
+/datum/asset/spritesheet/vending/register()
+ for (var/k in GLOB.vending_products)
+ var/atom/item = k
+ if (!ispath(item, /atom))
+ continue
+
+ var/icon_file
+ // if (initial(item.greyscale_colors) && initial(item.greyscale_config))
+ // icon_file = SSgreyscale.GetColoredIconByType(initial(item.greyscale_config), initial(item.greyscale_colors))
+ // else
+ icon_file = initial(item.icon)
+ var/icon_state = initial(item.icon_state)
+ var/icon/I
+
+ var/icon_states_list = icon_states(icon_file)
+ if(icon_state in icon_states_list)
+ I = icon(icon_file, icon_state, SOUTH)
+ var/c = initial(item.color)
+ if (!isnull(c) && c != "#FFFFFF")
+ I.Blend(c, ICON_MULTIPLY)
+ else
+ var/icon_states_string
+ for (var/an_icon_state in icon_states_list)
+ if (!icon_states_string)
+ icon_states_string = "[json_encode(an_icon_state)](\ref[an_icon_state])"
+ else
+ icon_states_string += ", [json_encode(an_icon_state)](\ref[an_icon_state])"
+ stack_trace("[item] does not have a valid icon state, icon=[icon_file], icon_state=[json_encode(icon_state)](\ref[icon_state]), icon_states=[icon_states_string]")
+ I = icon('icons/turf/floors.dmi', "", SOUTH)
+
+ var/imgid = replacetext(replacetext("[item]", "/obj/item/", ""), "/", "-")
+
+ Insert(imgid, I)
+ return ..()
diff --git a/code/modules/asset_cache/assets/vv.dm b/code/modules/asset_cache/assets/vv.dm
new file mode 100644
index 0000000000..0dd974c7c7
--- /dev/null
+++ b/code/modules/asset_cache/assets/vv.dm
@@ -0,0 +1,4 @@
+/datum/asset/simple/vv
+ assets = list(
+ "view_variables.css" = 'html/admin/view_variables.css'
+ )
diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.dm b/code/modules/atmospherics/gasmixtures/gas_mixture.dm
index fe7a8fdfaf..8b00fc49d0 100644
--- a/code/modules/atmospherics/gasmixtures/gas_mixture.dm
+++ b/code/modules/atmospherics/gasmixtures/gas_mixture.dm
@@ -278,7 +278,7 @@ we use a hook instead
/datum/gas_mixture/copy_from_turf(turf/model)
set_temperature(initial(model.initial_temperature))
parse_gas_string(model.initial_gas_mix)
- return 1
+ return TRUE
/datum/gas_mixture/proc/__auxtools_parse_gas_string(gas_string)
@@ -297,7 +297,7 @@ we use a hook instead
for(var/id in gas)
set_moles(id, text2num(gas[id]))
archive()
- return 1
+ return TRUE
*/
/*
/datum/gas_mixture/react(datum/holder)
diff --git a/code/modules/atmospherics/gasmixtures/zextools_broke.dm b/code/modules/atmospherics/gasmixtures/zextools_broke.dm
index fe7b1c462b..3b133b77ac 100644
--- a/code/modules/atmospherics/gasmixtures/zextools_broke.dm
+++ b/code/modules/atmospherics/gasmixtures/zextools_broke.dm
@@ -41,7 +41,7 @@
TOTAL_MOLES(cached_gases, .)
. *= R_IDEAL_GAS_EQUATION * temperature / volume
return
- return 0
+ return FALSE
/datum/gas_mixture/return_temperature() //kelvins
return temperature
@@ -91,11 +91,11 @@
/datum/gas_mixture/archive()
temperature_archived = temperature
gas_archive = gases.Copy()
- return 1
+ return TRUE
/datum/gas_mixture/merge(datum/gas_mixture/giver)
if(!giver)
- return 0
+ return FALSE
//heat transfer
if(abs(temperature - giver.temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER)
@@ -111,7 +111,7 @@
for(var/giver_id in giver_gases)
cached_gases[giver_id] += giver_gases[giver_id]
- return 1
+ return TRUE
/datum/gas_mixture/remove(amount)
var/sum
@@ -172,7 +172,7 @@
//remove all gases not in the sample
cached_gases &= sample_gases
- return 1
+ return TRUE
/datum/gas_mixture/copy_from_turf(turf/model)
parse_gas_string(model.initial_gas_mix)
@@ -182,7 +182,7 @@
if(model.temperature != initial(model.temperature) || model.temperature != initial(model_parent.temperature))
temperature = model.temperature
- return 1
+ return TRUE
/datum/gas_mixture/share(datum/gas_mixture/sharer, atmos_adjacent_turfs = 4)
diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm
index 9f0187746f..abfb7ca899 100644
--- a/code/modules/atmospherics/machinery/airalarm.dm
+++ b/code/modules/atmospherics/machinery/airalarm.dm
@@ -16,10 +16,10 @@
if(min2 != -1 && val <= min2)
return 2
if(max1 != -1 && val >= max1)
- return 1
+ return TRUE
if(min1 != -1 && val <= min1)
- return 1
- return 0
+ return TRUE
+ return FALSE
/datum/tlv/no_checks
min2 = -1
@@ -488,16 +488,16 @@
/obj/machinery/airalarm/proc/shock(mob/user, prb)
if((stat & (NOPOWER))) // unpowered, no shock
- return 0
+ return FALSE
if(!prob(prb))
- return 0 //you lucked out, no shock for you
+ return FALSE //you lucked out, no shock for you
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
s.set_up(5, 1, src)
s.start() //sparks always.
if (electrocute_mob(user, get_area(src), src, 1, TRUE))
- return 1
+ return TRUE
else
- return 0
+ return FALSE
/obj/machinery/airalarm/proc/refresh_all()
var/area/A = get_base_area(src)
@@ -519,7 +519,7 @@
/obj/machinery/airalarm/proc/send_signal(target, list/command, mob/user)//sends signal 'command' to 'target'. Returns 0 if no radio connection, 1 otherwise
if(!radio_connection)
- return 0
+ return FALSE
var/datum/signal/signal = new(command)
signal.data["tag"] = target
@@ -527,7 +527,7 @@
signal.data["user"] = user
radio_connection.post_signal(src, signal, RADIO_FROM_AIRALARM)
- return 1
+ return TRUE
/obj/machinery/airalarm/proc/get_mode_name(mode_value)
switch(mode_value)
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
index cb74b71473..9ed9b39d4d 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm
@@ -214,7 +214,7 @@
if(++reagent_transfer >= 10 * efficiency) // Throttle reagent transfer (higher efficiency will transfer the same amount but consume less from the beaker).
reagent_transfer = 0
- return 1
+ return TRUE
/obj/machinery/atmospherics/components/unary/cryo_cell/process_atmos()
..()
@@ -445,7 +445,7 @@
return // can't ventcrawl in or out of cryo.
/obj/machinery/atmospherics/components/unary/cryo_cell/can_see_pipes()
- return 0 // you can't see the pipe network when inside a cryo cell.
+ return FALSE // you can't see the pipe network when inside a cryo cell.
/obj/machinery/atmospherics/components/unary/cryo_cell/return_temperature()
var/datum/gas_mixture/G = airs[1]
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
index b60cc7bb90..c8f25d6f6a 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm
@@ -84,7 +84,7 @@
update_parents()
else
active_power_usage = idle_power_usage
- return 1
+ return TRUE
/obj/machinery/atmospherics/components/unary/thermomachine/power_change()
..()
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
index b7f0934fd7..e7d917af43 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
@@ -194,7 +194,7 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/receive_signal(datum/signal/signal)
if(!is_operational() || !signal.data["tag"] || (signal.data["tag"] != id_tag) || (signal.data["sigtype"]!="command"))
- return 0
+ return FALSE
var/mob/signal_sender = signal.data["user"]
diff --git a/code/modules/atmospherics/machinery/datum_pipeline.dm b/code/modules/atmospherics/machinery/datum_pipeline.dm
index 1d0c59f789..dbf155b981 100644
--- a/code/modules/atmospherics/machinery/datum_pipeline.dm
+++ b/code/modules/atmospherics/machinery/datum_pipeline.dm
@@ -186,7 +186,7 @@
self_temperature_delta = -heat/total_heat_capacity
sharer_temperature_delta = heat/sharer_heat_capacity
else
- return 1
+ return TRUE
air.set_temperature(air.return_temperature() + self_temperature_delta)
modeled_location.TakeTemperature(sharer_temperature_delta)
diff --git a/code/modules/atmospherics/machinery/other/meter.dm b/code/modules/atmospherics/machinery/other/meter.dm
index e7ea86851b..48d69567af 100644
--- a/code/modules/atmospherics/machinery/other/meter.dm
+++ b/code/modules/atmospherics/machinery/other/meter.dm
@@ -57,18 +57,18 @@
/obj/machinery/meter/process_atmos()
if(!(target?.flags_1 & INITIALIZED_1))
icon_state = "meterX"
- return 0
+ return FALSE
if(stat & (BROKEN|NOPOWER))
icon_state = "meter0"
- return 0
+ return FALSE
use_power(5)
var/datum/gas_mixture/environment = target.return_air()
if(!environment)
icon_state = "meterX"
- return 0
+ return FALSE
var/env_pressure = environment.return_pressure()
if(env_pressure <= 0.15*ONE_ATMOSPHERE)
diff --git a/code/modules/atmospherics/machinery/pipes/pipes.dm b/code/modules/atmospherics/machinery/pipes/pipes.dm
index a514606e4d..beb0988f8d 100644
--- a/code/modules/atmospherics/machinery/pipes/pipes.dm
+++ b/code/modules/atmospherics/machinery/pipes/pipes.dm
@@ -76,7 +76,7 @@
parent = P
/obj/machinery/atmospherics/pipe/zap_act(power, zap_flags)
- return 0 // they're not really machines in the normal sense, probably shouldn't explode
+ return FALSE // they're not really machines in the normal sense, probably shouldn't explode
/obj/machinery/atmospherics/pipe/Destroy()
QDEL_NULL(parent)
@@ -110,7 +110,7 @@
/obj/machinery/atmospherics/pipe/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir)
if(damage_flag == MELEE && damage_amount < 12)
- return 0
+ return FALSE
. = ..()
/obj/machinery/atmospherics/pipe/proc/paint(paint_color)
diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm
index f7bdc173f3..bcd8d381fe 100644
--- a/code/modules/atmospherics/machinery/portable/canister.dm
+++ b/code/modules/atmospherics/machinery/portable/canister.dm
@@ -388,7 +388,7 @@
return
switch(action)
if("relabel")
- var/label = input("New canister label:", name) as null|anything in sortList(label2types)
+ var/label = input("New canister label:", name) as null|anything in sort_list(label2types)
if(label && !..())
var/newtype = label2types[label]
if(newtype)
diff --git a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm
index fcfdd54aa9..3613a59e0a 100644
--- a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm
+++ b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm
@@ -21,7 +21,7 @@
air_contents = new(volume)
air_contents.set_temperature(T20C)
- return 1
+ return TRUE
/obj/machinery/portable_atmospherics/Destroy()
SSair.atmos_machinery -= src
diff --git a/code/modules/awaymissions/mission_code/Cabin.dm b/code/modules/awaymissions/mission_code/Cabin.dm
index b5ff23d75b..51c2c130c8 100644
--- a/code/modules/awaymissions/mission_code/Cabin.dm
+++ b/code/modules/awaymissions/mission_code/Cabin.dm
@@ -123,7 +123,7 @@
/datum/mapGeneratorModule/snow/checkPlaceAtom(turf/T)
if(istype(T, /turf/open/floor/plating/asteroid/snow))
return ..(T)
- return 0
+ return FALSE
/datum/mapGeneratorModule/bottomlayer/snow
spawnableTurfs = list(/turf/open/floor/plating/asteroid/snow/atmosphere = 100)
diff --git a/code/modules/awaymissions/mission_code/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm
index bc7e2cbd08..95b3163256 100644
--- a/code/modules/awaymissions/mission_code/wildwest.dm
+++ b/code/modules/awaymissions/mission_code/wildwest.dm
@@ -168,4 +168,4 @@
to_chat(C, "You're already resurrecting! ")
return
C.apply_status_effect(STATUS_EFFECT_WISH_GRANTERS_GIFT)
- return 1
+ return TRUE
diff --git a/code/modules/balloon_alert/balloon_alert.dm b/code/modules/balloon_alert/balloon_alert.dm
index 0bd7e60dfc..88ddc9031f 100644
--- a/code/modules/balloon_alert/balloon_alert.dm
+++ b/code/modules/balloon_alert/balloon_alert.dm
@@ -48,7 +48,7 @@
balloon_alert.appearance_flags = RESET_ALPHA|RESET_COLOR|RESET_TRANSFORM
balloon_alert.maptext = MAPTEXT("[text] ")
balloon_alert.maptext_x = (BALLOON_TEXT_WIDTH - bound_width) * -0.5
- balloon_alert.maptext_height = WXH_TO_HEIGHT(viewer_client?.MeasureText(text, null, BALLOON_TEXT_WIDTH))
+ WXH_TO_HEIGHT(viewer_client?.MeasureText(text, null, BALLOON_TEXT_WIDTH), balloon_alert.maptext_height)
balloon_alert.maptext_width = BALLOON_TEXT_WIDTH
viewer_client?.images += balloon_alert
diff --git a/code/modules/buildmode/buildmode.dm b/code/modules/buildmode/buildmode.dm
index e0703201a1..09a93f57f8 100644
--- a/code/modules/buildmode/buildmode.dm
+++ b/code/modules/buildmode/buildmode.dm
@@ -136,7 +136,7 @@
build_dir = newdir
close_dirswitch()
dirbutton.update_icon()
- return 1
+ return TRUE
/datum/buildmode/proc/InterceptClickOn(mob/user, params, atom/object)
mode.handle_click(user.client, params, object)
diff --git a/code/modules/buildmode/buttons.dm b/code/modules/buildmode/buttons.dm
index 5c5c0000d1..e29739f5ad 100644
--- a/code/modules/buildmode/buttons.dm
+++ b/code/modules/buildmode/buttons.dm
@@ -25,7 +25,7 @@
else if(pa.Find("right"))
bd.mode.change_settings(usr.client)
update_icon()
- return 1
+ return TRUE
/atom/movable/screen/buildmode/mode/update_icon_state()
icon_state = bd.mode.get_button_iconstate()
@@ -37,7 +37,7 @@
/atom/movable/screen/buildmode/help/Click(location, control, params)
bd.mode.show_help(usr.client)
- return 1
+ return TRUE
/atom/movable/screen/buildmode/bdir
icon_state = "build"
@@ -50,7 +50,7 @@
/atom/movable/screen/buildmode/bdir/Click()
bd.toggle_dirswitch()
update_icon()
- return 1
+ return TRUE
// used to switch between modes
/atom/movable/screen/buildmode/modeswitch
@@ -64,7 +64,7 @@
/atom/movable/screen/buildmode/modeswitch/Click()
bd.change_mode(modetype)
- return 1
+ return TRUE
// used to switch between dirs
/atom/movable/screen/buildmode/dirswitch
@@ -77,7 +77,7 @@
/atom/movable/screen/buildmode/dirswitch/Click()
bd.change_dir(dir)
- return 1
+ return TRUE
/atom/movable/screen/buildmode/quit
icon_state = "buildquit"
@@ -86,4 +86,4 @@
/atom/movable/screen/buildmode/quit/Click()
bd.quit()
- return 1
+ return TRUE
diff --git a/code/modules/cargo/centcom_podlauncher.dm b/code/modules/cargo/centcom_podlauncher.dm
index 595e9c6b1d..022fe105ef 100644
--- a/code/modules/cargo/centcom_podlauncher.dm
+++ b/code/modules/cargo/centcom_podlauncher.dm
@@ -344,7 +344,7 @@
if (temp_pod.effectShrapnel == TRUE) //If already doing custom damage, set back to default (no shrapnel)
temp_pod.effectShrapnel = FALSE
return
- var/shrapnelInput = input("Please enter the type of pellet cloud you'd like to create on landing (Can be any projectile!)", "Projectile Typepath", 0) in sortList(subtypesof(/obj/item/projectile), GLOBAL_PROC_REF(cmp_typepaths_asc))
+ var/shrapnelInput = input("Please enter the type of pellet cloud you'd like to create on landing (Can be any projectile!)", "Projectile Typepath", 0) in sort_list(subtypesof(/obj/item/projectile), GLOBAL_PROC_REF(cmp_typepaths_asc))
if (isnull(shrapnelInput))
return
var/shrapnelMagnitude = input("Enter the magnitude of the pellet cloud. This is usually a value around 1-5. Please note that Ryll-Ryll has asked me to tell you that if you go too crazy with the projectiles you might crash the server. So uh, be gentle!", "Shrapnel Magnitude", 0) as null|num
diff --git a/code/modules/cargo/exports.dm b/code/modules/cargo/exports.dm
index 66713a3053..6ab72f2eb3 100644
--- a/code/modules/cargo/exports.dm
+++ b/code/modules/cargo/exports.dm
@@ -117,7 +117,7 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they
// Checks the amount of exportable in object. Credits in the bill, sheets in the stack, etc.
// Usually acts as a multiplier for a cost, so item that has 0 amount will be skipped in export.
/datum/export/proc/get_amount(obj/O)
- return 1
+ return TRUE
// Checks if the item is fit for export datum.
/datum/export/proc/applies_to(obj/O, allowed_categories = NONE, apply_elastic = TRUE)
diff --git a/code/modules/cargo/exports/materials.dm b/code/modules/cargo/exports/materials.dm
index e84d36d5dc..f6976d7f44 100644
--- a/code/modules/cargo/exports/materials.dm
+++ b/code/modules/cargo/exports/materials.dm
@@ -11,12 +11,12 @@
/datum/export/material/get_amount(obj/O)
if(!material_id)
- return 0
+ return FALSE
if(!isitem(O))
- return 0
+ return FALSE
var/obj/item/I = O
if(!(SSmaterials.GetMaterialRef(material_id) in I.custom_materials))
- return 0
+ return FALSE
var/amount = I.custom_materials[SSmaterials.GetMaterialRef(material_id)]
diff --git a/code/modules/cargo/exports/seeds.dm b/code/modules/cargo/exports/seeds.dm
index 1a2a18c46b..3d3c38fbf3 100644
--- a/code/modules/cargo/exports/seeds.dm
+++ b/code/modules/cargo/exports/seeds.dm
@@ -9,9 +9,9 @@
/datum/export/seed/get_cost(obj/O)
var/obj/item/seeds/S = O
if(!needs_discovery && (S.type in discoveredPlants))
- return 0
+ return FALSE
if(needs_discovery && !(S.type in discoveredPlants))
- return 0
+ return FALSE
return ..() * S.rarity // That's right, no bonus for potency. Send a crappy sample first to "show improvement" later.
/datum/export/seed/sell_object(obj/O)
@@ -31,7 +31,7 @@
var/obj/item/seeds/S = O
var/cost = ..()
if(!cost)
- return 0
+ return FALSE
var/potDiff = (S.potency - discoveredPlants[S.type])
diff --git a/code/modules/cargo/exports/sheets.dm b/code/modules/cargo/exports/sheets.dm
index 058e0cc892..79b22aba8d 100644
--- a/code/modules/cargo/exports/sheets.dm
+++ b/code/modules/cargo/exports/sheets.dm
@@ -6,7 +6,7 @@
var/obj/item/stack/S = O
if(istype(S))
return S.amount
- return 0
+ return FALSE
// Hides
diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm
index c1399ce646..14224cf02e 100644
--- a/code/modules/client/client_defines.dm
+++ b/code/modules/client/client_defines.dm
@@ -134,16 +134,16 @@
var/obj/item/active_mousedown_item = null
///Used in MouseDrag to preserve the original mouse click parameters
var/mouseParams = ""
- ///Used in MouseDrag to preserve the last mouse-entered location.
- var/mouseLocation = null
- ///Used in MouseDrag to preserve the last mouse-entered object.
- var/mouseObject = null
- var/mouseControlObject = null
+ ///Used in MouseDrag to preserve the last mouse-entered location. Weakref
+ var/datum/weakref/mouse_location_ref = null
+ ///Used in MouseDrag to preserve the last mouse-entered object. Weakref
+ var/datum/weakref/mouse_object_ref
+ var/mouse_control_object
/// Messages currently seen by this client
var/list/seen_messages
/// viewsize datum for holding our view size
- var/datum/viewData/view_size
+ var/datum/view_data/view_size
/// our current tab
var/stat_tab
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index ecbc7c12b9..85a65ed814 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -167,8 +167,8 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
/client/proc/is_content_unlocked()
if(!prefs.unlock_content)
to_chat(src, "Become a BYOND member to access member-perks and features, as well as support the engine that makes this game possible. Only 10 bucks for 3 months! Click Here to find out more .")
- return 0
- return 1
+ return FALSE
+ return TRUE
/*
* Call back proc that should be checked in all paths where a client can send messages
*
@@ -199,11 +199,11 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
total_message_count = 0
total_count_reset = 0
cmd_admin_mute(src, mute_type, 1)
- return 1
+ return TRUE
//Otherwise just supress the message
else if(cache >= SPAM_TRIGGER_AUTOMUTE)
- return 1
+ return TRUE
if(CONFIG_GET(flag/automute_on) && !holder && last_message == message)
@@ -211,21 +211,21 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
if(src.last_message_count >= SPAM_TRIGGER_AUTOMUTE)
to_chat(src, "You have exceeded the spam filter limit for identical messages. An auto-mute was applied. ")
cmd_admin_mute(src, mute_type, 1)
- return 1
+ return TRUE
if(src.last_message_count >= SPAM_TRIGGER_WARNING)
to_chat(src, "You are nearing the spam filter limit for identical messages. ")
- return 0
+ return FALSE
else
last_message = message
src.last_message_count = 0
- return 0
+ return FALSE
//This stops files larger than UPLOAD_LIMIT being sent from client to server via input(), client.Import() etc.
/client/AllowUpload(filename, filelength)
if(filelength > UPLOAD_LIMIT)
to_chat(src, "Error: AllowUpload(): File Upload too large. Upload Limit: [UPLOAD_LIMIT/1024]KiB. ")
- return 0
- return 1
+ return FALSE
+ return TRUE
///////////
@@ -393,7 +393,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
to_chat(src, "Because you are an admin, you are being allowed to walk past this limitation, But it is still STRONGLY suggested you upgrade")
else
qdel(src)
- return 0
+ return FALSE
else if (byond_version < cwv) //We have words for this client.
if(CONFIG_GET(flag/client_warn_popup))
var/msg = "Your version of byond may be getting out of date: "
@@ -413,11 +413,11 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
if (!CONFIG_GET(flag/allow_webclient))
to_chat(src, "Web client is disabled")
qdel(src)
- return 0
+ return FALSE
if (CONFIG_GET(flag/webclient_only_byond_members) && !IsByondMember())
to_chat(src, "Sorry, but the web client is restricted to byond members only.")
qdel(src)
- return 0
+ return FALSE
if( (world.address == address || !address) && !GLOB.host )
GLOB.host = key
@@ -881,9 +881,9 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
click_intercept_time = 0 //Reset and return. Next click should work, but not this one.
return
click_intercept_time = 0 //Just reset. Let's not keep re-checking forever.
- var/list/L = params2list(params)
+ var/list/modifiers = params2list(params)
- if(L["drag"])
+ if(modifiers[DRAG])
return
var/mcl = CONFIG_GET(number/minute_click_limit)
@@ -929,6 +929,11 @@ GLOBAL_LIST_INIT(blacklisted_builds, list(
// so that the visual focus indicator matches reality.
winset(src, null, "input.background-color=[COLOR_INPUT_DISABLED]")
+ else
+ winset(src, null, "input.focus=true input.background-color=[COLOR_INPUT_ENABLED]")
+
+ SEND_SIGNAL(src, COMSIG_CLIENT_CLICK, object, location, control, params, usr)
+
..()
/client/proc/add_verbs_from_config()
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index e5cd6690d2..4c992acf54 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -41,10 +41,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/last_custom_holoform = 0
//Cooldowns for saving/loading. These are four are all separate due to loading code calling these one after another
- var/saveprefcooldown
- var/loadprefcooldown
- var/savecharcooldown
- var/loadcharcooldown
+ COOLDOWN_DECLARE(saveprefcooldown)
+ COOLDOWN_DECLARE(loadprefcooldown)
+ COOLDOWN_DECLARE(savecharcooldown)
+ COOLDOWN_DECLARE(loadcharcooldown)
//game-preferences
var/lastchangelog = "" //Saved changlog filesize to detect if there was a change
@@ -65,7 +65,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/screentip_pref = SCREENTIP_PREFERENCE_ENABLED
var/screentip_color = "#ffd391"
var/screentip_images = TRUE
- var/buttons_locked = FALSE
var/hotkeys = FALSE
///Runechat preference. If true, certain messages will be displayed on the map, not ust on the chat area. Boolean.
@@ -268,6 +267,9 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/loadout_errors = 0
+ var/pref_queue
+ var/char_queue
+
/datum/preferences/New(client/C)
parent = C
@@ -1070,8 +1072,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Runechat message char limit: [max_chat_length] "
dat += "See Runechat for non-mobs: [see_chat_non_mob ? "Enabled" : "Disabled"] "
dat += " "
- dat += "Action Buttons: [(buttons_locked) ? "Locked In Place" : "Unlocked"] "
- dat += " "
dat += "PDA Color: [pda_color] Change "
dat += "PDA Style: [pda_style] "
dat += "PDA Reskin: [pda_skin] "
@@ -1429,7 +1429,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
//The job before the current job. I only use this to get the previous jobs color when I'm filling in blank rows.
var/datum/job/lastJob
- for(var/datum/job/job in sortList(SSjob.occupations, GLOBAL_PROC_REF(cmp_job_display_asc)))
+ for(var/datum/job/job in sort_list(SSjob.occupations, GLOBAL_PROC_REF(cmp_job_display_asc)))
index += 1
if((index >= limit) || (job.title in splitJobs))
@@ -1578,7 +1578,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
SetJobPreferenceLevel(job, jpval)
SetChoices(user)
- return 1
+ return TRUE
/datum/preferences/proc/ResetJobs()
@@ -1724,7 +1724,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
UpdateJobPreference(user, href_list["text"], text2num(href_list["level"]))
else
SetChoices(user)
- return 1
+ return TRUE
else if(href_list["preference"] == "trait")
switch(href_list["task"])
@@ -2631,8 +2631,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/pickedui = input(user, "Choose your UI style.", "Character Preference", UI_style) as null|anything in GLOB.available_ui_styles
if(pickedui)
UI_style = pickedui
- if (parent && parent.mob && parent.mob.hud_used)
- parent.mob.hud_used.update_ui_style(ui_style2icon(UI_style))
+ if (pickedui && parent && parent.mob && parent.mob.hud_used)
+ QDEL_NULL(parent.mob.hud_used)
+ parent.mob.create_mob_hud()
+ parent.mob.hud_used.show_hud(1, parent.mob)
if("pda_style")
var/pickedPDAStyle = input(user, "Choose your PDA style.", "Character Preference", pda_style) as null|anything in GLOB.pda_styles
if(pickedPDAStyle)
@@ -2981,7 +2983,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(!length(key_bindings[old_key]))
key_bindings -= old_key
key_bindings[full_key] += list(kb_name)
- key_bindings[full_key] = sortList(key_bindings[full_key])
+ key_bindings[full_key] = sort_list(key_bindings[full_key])
if(href_list["special"]) // special keys need a full reset
user.client.ensure_keys_set(src)
user << browse(null, "window=capturekeypress")
@@ -3001,15 +3003,13 @@ GLOBAL_LIST_EMPTY(preferences_datums)
chat_on_map = !chat_on_map
if("see_chat_non_mob")
see_chat_non_mob = !see_chat_non_mob
- if("action_buttons")
- buttons_locked = !buttons_locked
if("tgui_fancy")
tgui_fancy = !tgui_fancy
if("outline_enabled")
outline_enabled = !outline_enabled
if("outline_color")
var/pickedOutlineColor = input(user, "Choose your outline color.", "General Preference", outline_color) as color|null
- if(pickedOutlineColor != pickedOutlineColor)
+ if(pickedOutlineColor != outline_color)
outline_color = pickedOutlineColor // nullable
if("screentip_pref")
var/choice = input(user, "Choose your screentip preference", "Screentipping?", screentip_pref) as null|anything in GLOB.screentip_pref_options
@@ -3217,6 +3217,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
load_character()
if("changeslot")
+ if(char_queue)
+ deltimer(char_queue) // Do not dare.
if(!load_character(text2num(href_list["num"])))
random_character()
real_name = random_unique_name(gender)
@@ -3333,7 +3335,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
user_gear[LOADOUT_CUSTOM_DESCRIPTION] = new_description
ShowChoices(user)
- return 1
+ return TRUE
/datum/preferences/proc/copy_to(mob/living/carbon/human/character, icon_updates = 1, roundstart_checks = TRUE, initial_spawn = FALSE)
if(be_random_name)
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index f4d0e0a8df..88f9e6c55a 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -401,7 +401,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(istype(parent))
to_chat(parent, "You're attempting to load your preferences a little too fast. Wait half a second, then try again. ")
return FALSE
- loadprefcooldown = world.time + PREF_SAVELOAD_COOLDOWN
+ COOLDOWN_START(src, loadprefcooldown, PREF_LOAD_COOLDOWN)
if(!fexists(path))
return FALSE
@@ -435,7 +435,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["see_chat_non_mob"] >> see_chat_non_mob
S["tgui_fancy"] >> tgui_fancy
S["tgui_lock"] >> tgui_lock
- S["buttons_locked"] >> buttons_locked
S["windowflash"] >> windowflashing
S["be_special"] >> be_special
@@ -513,7 +512,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
see_chat_non_mob = sanitize_integer(see_chat_non_mob, 0, 1, initial(see_chat_non_mob))
tgui_fancy = sanitize_integer(tgui_fancy, 0, 1, initial(tgui_fancy))
tgui_lock = sanitize_integer(tgui_lock, 0, 1, initial(tgui_lock))
- buttons_locked = sanitize_integer(buttons_locked, 0, 1, initial(buttons_locked))
windowflashing = sanitize_integer(windowflashing, 0, 1, initial(windowflashing))
default_slot = sanitize_integer(default_slot, 1, max_save_slots, initial(default_slot))
toggles = sanitize_integer(toggles, 0, 16777215, initial(toggles))
@@ -595,18 +593,20 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(!GLOB.keybindings_by_name[bindname])
modless_key_bindings -= key
-/datum/preferences/proc/save_preferences(bypass_cooldown = FALSE)
+/datum/preferences/proc/save_preferences(bypass_cooldown = FALSE, silent = FALSE)
if(!path)
- return 0
+ return FALSE
if(!bypass_cooldown)
if(world.time < saveprefcooldown)
if(istype(parent))
- to_chat(parent, "You're attempting to save your preferences a little too fast. Wait half a second, then try again. ")
- return 0
- saveprefcooldown = world.time + PREF_SAVELOAD_COOLDOWN
+ queue_save_pref(PREF_SAVE_COOLDOWN, silent)
+ return FALSE
+ COOLDOWN_START(src, saveprefcooldown, PREF_SAVE_COOLDOWN)
+ if(pref_queue)
+ deltimer(pref_queue)
var/savefile/S = new /savefile(path)
if(!S)
- return 0
+ return FALSE
S.cd = "/"
WRITE_FILE(S["version"] , SAVEFILE_VERSION_MAX) //updates (or failing that the sanity checks) will ensure data is not invalid at load. Assume up-to-date
@@ -626,7 +626,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["see_chat_non_mob"], see_chat_non_mob)
WRITE_FILE(S["tgui_fancy"], tgui_fancy)
WRITE_FILE(S["tgui_lock"], tgui_lock)
- WRITE_FILE(S["buttons_locked"], buttons_locked)
WRITE_FILE(S["windowflash"], windowflashing)
WRITE_FILE(S["be_special"], be_special)
WRITE_FILE(S["default_slot"], default_slot)
@@ -676,7 +675,17 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
else
WRITE_FILE(S["unlockable_loadout"], safe_json_encode(list()))
- return 1
+ if(parent && !silent)
+ to_chat(parent, span_notice("Saved preferences!"))
+
+ return TRUE
+
+/datum/preferences/proc/queue_save_pref(save_in, silent)
+ if(parent && !silent)
+ to_chat(parent, span_notice("Saving preferences in [save_in * 0.1] second\s."))
+ if(pref_queue)
+ deltimer(pref_queue)
+ pref_queue = addtimer(CALLBACK(src, PROC_REF(save_preferences), TRUE, silent), save_in, TIMER_STOPPABLE)
/datum/preferences/proc/load_character(slot, bypass_cooldown = FALSE)
if(!path)
@@ -686,7 +695,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(istype(parent))
to_chat(parent, "You're attempting to load your character a little too fast. Wait half a second, then try again. ")
return "SLOW THE FUCK DOWN" //the reason this isn't null is to make sure that people don't have their character slots overridden by random chars if they accidentally double-click a slot
- loadcharcooldown = world.time + PREF_SAVELOAD_COOLDOWN
+ COOLDOWN_START(src, loadcharcooldown, PREF_LOAD_COOLDOWN)
if(!fexists(path))
return FALSE
var/savefile/S = new /savefile(path)
@@ -1084,20 +1093,22 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
cit_character_pref_load(S)
- return 1
+ return TRUE
-/datum/preferences/proc/save_character(bypass_cooldown = FALSE)
+/datum/preferences/proc/save_character(bypass_cooldown = FALSE, silent = FALSE)
if(!path)
- return 0
+ return FALSE
if(!bypass_cooldown)
if(world.time < savecharcooldown)
if(istype(parent))
- to_chat(parent, "You're attempting to save your character a little too fast. Wait half a second, then try again. ")
- return 0
- savecharcooldown = world.time + PREF_SAVELOAD_COOLDOWN
+ queue_save_char(PREF_SAVE_COOLDOWN, silent)
+ return FALSE
+ COOLDOWN_START(src, savecharcooldown, PREF_SAVE_COOLDOWN)
+ if(char_queue)
+ deltimer(char_queue)
var/savefile/S = new /savefile(path)
if(!S)
- return 0
+ return FALSE
S.cd = "/character[default_slot]"
WRITE_FILE(S["version"] , SAVEFILE_VERSION_MAX) //load_character will sanitize any bad data, so assume up-to-date.)
@@ -1281,8 +1292,17 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
cit_character_pref_save(S)
- return 1
+ if(parent && !silent)
+ to_chat(parent, span_notice("Saved character slot!"))
+ return TRUE
+
+/datum/preferences/proc/queue_save_char(save_in, silent)
+ if(parent && !silent)
+ to_chat(parent, span_notice("Saving character in [save_in * 0.1] second\s."))
+ if(char_queue)
+ deltimer(char_queue)
+ char_queue = addtimer(CALLBACK(src, PROC_REF(save_character), TRUE, silent), save_in, TIMER_STOPPABLE)
#undef SAVEFILE_VERSION_MAX
#undef SAVEFILE_VERSION_MIN
diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm
index 93f91ad3a0..3485a45771 100644
--- a/code/modules/client/verbs/ooc.dm
+++ b/code/modules/client/verbs/ooc.dm
@@ -237,7 +237,7 @@ GLOBAL_VAR_INIT(normal_ooc_colour, "#002eb8")
choices["[C.mob]([C])"] = C
else
choices[C] = C
- choices = sortList(choices)
+ choices = sort_list(choices)
var/selection = input("Please, select a player!", "Ignore", null, null) as null|anything in choices
if(!selection || !(selection in choices))
return
diff --git a/code/modules/client/verbs/who.dm b/code/modules/client/verbs/who.dm
index 5786191f4d..fe445973ad 100644
--- a/code/modules/client/verbs/who.dm
+++ b/code/modules/client/verbs/who.dm
@@ -50,7 +50,7 @@
else
Lines += "[C.key] ([round(C.avgping, 1)]ms)"
- for(var/line in sortList(Lines))
+ for(var/line in sort_list(Lines))
msg += "[line]\n"
msg += "Total Players: [length(Lines)] "
diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm
index 70eb975246..f26da5db38 100644
--- a/code/modules/clothing/chameleon.dm
+++ b/code/modules/clothing/chameleon.dm
@@ -17,7 +17,7 @@
var/obj/item/clothing/mask/chameleon/drone/Z = target
Z.chameleon_action.random_look(owner)
- return 1
+ return TRUE
/datum/action/item_action/chameleon/drone/togglehatmask
@@ -65,7 +65,7 @@
qdel(old_headgear)
// where is `ITEM_SLOT_HEAD` defined? WHO KNOWS
D.equip_to_slot(new_headgear, ITEM_SLOT_HEAD)
- return 1
+ return TRUE
/datum/action/chameleon_outfit
@@ -162,8 +162,8 @@
..()
/datum/action/item_action/chameleon/change/proc/initialize_disguises()
- if(button)
- button.name = "Change [chameleon_name] Appearance"
+ name = "Change [chameleon_name] Appearance"
+ UpdateButtons()
chameleon_blacklist |= typecacheof(target.type)
for(var/V in typesof(chameleon_type))
@@ -209,7 +209,7 @@
update_item(picked_item)
var/obj/item/thing = target
thing.update_slot_icon()
- UpdateButtonIcon()
+ UpdateButtons()
/datum/action/item_action/chameleon/change/proc/update_item(obj/item/picked_item)
target.name = initial(picked_item.name)
@@ -245,7 +245,7 @@
return
select_look(owner)
- return 1
+ return TRUE
/datum/action/item_action/chameleon/change/proc/emp_randomise(var/amount = EMP_RANDOMISE_TIME)
START_PROCESSING(SSprocessing, src)
@@ -435,9 +435,9 @@ CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/head/chameleon)
ADD_TRAIT(src, TRAIT_NODROP, ABSTRACT_ITEM_TRAIT)
chameleon_action.random_look()
var/datum/action/item_action/chameleon/drone/togglehatmask/togglehatmask_action = new(src)
- togglehatmask_action.UpdateButtonIcon()
+ togglehatmask_action.UpdateButtons()
var/datum/action/item_action/chameleon/drone/randomise/randomise_action = new(src)
- randomise_action.UpdateButtonIcon()
+ randomise_action.UpdateButtons()
CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/mask/chameleon)
name = "gas mask"
@@ -489,9 +489,9 @@ CHAMELEON_CLOTHING_DEFINE(/obj/item/clothing/mask/chameleon)
ADD_TRAIT(src, TRAIT_NODROP, ABSTRACT_ITEM_TRAIT)
chameleon_action.random_look()
var/datum/action/item_action/chameleon/drone/togglehatmask/togglehatmask_action = new(src)
- togglehatmask_action.UpdateButtonIcon()
+ togglehatmask_action.UpdateButtons()
var/datum/action/item_action/chameleon/drone/randomise/randomise_action = new(src)
- randomise_action.UpdateButtonIcon()
+ randomise_action.UpdateButtons()
/obj/item/clothing/mask/chameleon/drone/attack_self(mob/user)
to_chat(user, "[src] does not have a voice changer. ")
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 3a3f7f863b..e3f4e5213e 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -113,7 +113,7 @@
if(do_after(user, 6 SECONDS, src))
if(S.use(3))
repair(user, params)
- return 1
+ return TRUE
return ..()
// Set the clothing's integrity back to 100%, remove all damage to bodyparts, and generally fix it up
@@ -402,7 +402,7 @@ BLIND // can't see anything
C.head_update(src, forced = 1)
for(var/X in actions)
var/datum/action/A = X
- A.UpdateButtonIcon()
+ A.UpdateButtons()
return TRUE
/obj/item/clothing/proc/visor_toggling() //handles all the actual toggling of flags
@@ -420,8 +420,8 @@ BLIND // can't see anything
/obj/item/clothing/proc/can_use(mob/user)
if(user && ismob(user))
if(!user.incapacitated())
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/item/clothing/obj_destruction(damage_flag)
diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm
index b2a7f91e96..e323b1b000 100644
--- a/code/modules/clothing/glasses/_glasses.dm
+++ b/code/modules/clothing/glasses/_glasses.dm
@@ -121,7 +121,7 @@
/obj/item/clothing/glasses/science/item_action_slot_check(slot, mob/user, datum/action/A)
if(slot == ITEM_SLOT_EYES)
- return 1
+ return TRUE
/obj/item/clothing/glasses/night
name = "night vision goggles"
diff --git a/code/modules/clothing/glasses/engine_goggles.dm b/code/modules/clothing/glasses/engine_goggles.dm
index 461648c270..395eeaeaa6 100644
--- a/code/modules/clothing/glasses/engine_goggles.dm
+++ b/code/modules/clothing/glasses/engine_goggles.dm
@@ -62,7 +62,7 @@
update_icon()
for(var/X in actions)
var/datum/action/A = X
- A.UpdateButtonIcon()
+ A.UpdateButtons()
/obj/item/clothing/glasses/meson/engine/attack_self(mob/user)
toggle_mode(user, TRUE)
@@ -99,7 +99,7 @@
var/strength = round(rad_places[i] / 1000, 0.1)
var/image/pic = image(loc = place)
var/mutable_appearance/MA = new()
- MA.maptext = "[strength]k "
+ MA.maptext = MAPTEXT("[strength]k")
MA.color = "#04e604"
MA.layer = RAD_TEXT_LAYER
MA.plane = GAME_PLANE
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index ff78b51909..4f370866b3 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -389,7 +389,7 @@
set_light(0)
for(var/X in actions)
var/datum/action/A = X
- A.UpdateButtonIcon()
+ A.UpdateButtons()
/obj/item/clothing/head/helmet/durathread
name = "makeshift helmet"
diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm
index be32618c88..d24e004802 100644
--- a/code/modules/clothing/head/misc.dm
+++ b/code/modules/clothing/head/misc.dm
@@ -203,7 +203,7 @@
/obj/item/clothing/head/fedora/suicide_act(mob/user)
if(user.gender == FEMALE)
- return 0
+ return FALSE
var/mob/living/carbon/human/H = user
user.visible_message("[user] is donning [src]! It looks like [user.p_theyre()] trying to be nice to girls. ")
user.say("M'lady.", forced = "fedora suicide")
diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm
index a2d13822f8..1c9b15b398 100644
--- a/code/modules/clothing/masks/gasmask.dm
+++ b/code/modules/clothing/masks/gasmask.dm
@@ -115,7 +115,7 @@
user.update_inv_wear_mask()
for(var/X in actions)
var/datum/action/A = X
- A.UpdateButtonIcon()
+ A.UpdateButtons()
to_chat(user, "Your Clown Mask has now morphed into [choice], all praise the Honkmother! ")
return TRUE
@@ -181,7 +181,7 @@
user.update_inv_wear_mask()
for(var/X in actions)
var/datum/action/A = X
- A.UpdateButtonIcon()
+ A.UpdateButtons()
to_chat(user, "Your Mime Mask has now morphed into [choice]! ")
return TRUE
@@ -274,7 +274,7 @@
user.update_inv_wear_mask()
for(var/X in actions)
var/datum/action/A = X
- A.UpdateButtonIcon()
+ A.UpdateButtons()
to_chat(M, "The Tiki Mask has now changed into the [choice] Mask!")
return TRUE
diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm
index f96fe2ac2a..9f837654a0 100644
--- a/code/modules/clothing/masks/miscellaneous.dm
+++ b/code/modules/clothing/masks/miscellaneous.dm
@@ -109,9 +109,9 @@
user.update_inv_wear_mask()
for(var/X in actions)
var/datum/action/A = X
- A.UpdateButtonIcon()
+ A.UpdateButtons()
to_chat(user, "Your Joy mask now has a [choice] Emotion! ")
- return 1
+ return TRUE
/obj/item/clothing/mask/kitsuneblk
name = "Black Kitsune Mask"
@@ -475,6 +475,6 @@
user.update_inv_wear_mask()
for(var/X in actions)
var/datum/action/A = X
- A.UpdateButtonIcon()
+ A.UpdateButtons()
to_chat(user, "Your paper mask now has a [choice] symbol! ")
- return 1
+ return TRUE
diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm
index 998227df06..304a4a3545 100644
--- a/code/modules/clothing/shoes/magboots.dm
+++ b/code/modules/clothing/shoes/magboots.dm
@@ -36,7 +36,7 @@
user.update_gravity(user.has_gravity())
for(var/X in actions)
var/datum/action/A = X
- A.UpdateButtonIcon()
+ A.UpdateButtons()
/obj/item/clothing/shoes/magboots/negates_gravity()
return clothing_flags & NOSLIP
diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm
index cad9e0a3b3..f5c2c44f58 100644
--- a/code/modules/clothing/spacesuits/chronosuit.dm
+++ b/code/modules/clothing/spacesuits/chronosuit.dm
@@ -91,7 +91,7 @@
if(camera)
camera.remove_target_ui()
camera.forceMove(user)
- teleport_now.UpdateButtonIcon()
+ teleport_now.UpdateButtons()
/obj/item/clothing/suit/space/chronos/proc/chronowalk(atom/location)
var/mob/living/carbon/human/user = src.loc
@@ -105,7 +105,7 @@
if(camera)
camera.remove_target_ui()
- teleport_now.UpdateButtonIcon()
+ teleport_now.UpdateButtons()
var/list/nonsafe_slots = list(ITEM_SLOT_BELT, ITEM_SLOT_BACK)
var/list/exposed = list()
diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm
index 614adb8b1b..e6ed9c3d51 100644
--- a/code/modules/clothing/spacesuits/hardsuit.dm
+++ b/code/modules/clothing/spacesuits/hardsuit.dm
@@ -51,7 +51,7 @@
/obj/item/clothing/head/helmet/space/hardsuit/item_action_slot_check(slot, mob/user, datum/action/A)
if(slot == ITEM_SLOT_HEAD)
- return 1
+ return TRUE
/obj/item/clothing/head/helmet/space/hardsuit/equipped(mob/user, slot)
..()
@@ -159,7 +159,7 @@
/obj/item/clothing/suit/space/hardsuit/item_action_slot_check(slot, mob/user, datum/action/A)
if(slot == ITEM_SLOT_OCLOTHING) //we only give the mob the ability to toggle the helmet if he's wearing the hardsuit.
- return 1
+ return TRUE
//Engineering
/obj/item/clothing/head/helmet/space/hardsuit/engine
@@ -345,7 +345,7 @@
C.head_update(src, forced = 1)
for(var/X in actions)
var/datum/action/A = X
- A.UpdateButtonIcon()
+ A.UpdateButtons()
/obj/item/clothing/head/helmet/space/hardsuit/syndi/proc/toggle_hardsuit_mode(mob/user) //Helmet Toggles Suit Mode
if(linkedsuit)
@@ -937,7 +937,7 @@
set_light(0)
for(var/X in actions)
var/datum/action/A = X
- A.UpdateButtonIcon()
+ A.UpdateButtons()
/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/update_overlays()
. = ..()
diff --git a/code/modules/clothing/suits/reactive_armour.dm b/code/modules/clothing/suits/reactive_armour.dm
index 2f2c861b6b..3804cc5ae7 100644
--- a/code/modules/clothing/suits/reactive_armour.dm
+++ b/code/modules/clothing/suits/reactive_armour.dm
@@ -213,7 +213,7 @@
if(prob(hit_reaction_chance))
if(world.time < reactivearmor_cooldown)
owner.visible_message("The repulse generator is still recharging! ")
- return 0
+ return FALSE
playsound(get_turf(owner),'sound/magic/repulse.ogg', 100, 1)
owner.visible_message("[src] blocks [attack_text], converting the attack into a wave of force! ")
var/turf/T = get_turf(owner)
diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm
index 25cbf27cf6..9fc51b8287 100644
--- a/code/modules/clothing/suits/toggles.dm
+++ b/code/modules/clothing/suits/toggles.dm
@@ -32,7 +32,7 @@
/obj/item/clothing/suit/hooded/item_action_slot_check(slot, mob/user, datum/action/A)
if(slot == ITEM_SLOT_OCLOTHING || slot == ITEM_SLOT_NECK)
- return 1
+ return TRUE
/obj/item/clothing/suit/hooded/equipped(mob/user, slot)
if(slot != ITEM_SLOT_OCLOTHING && slot != ITEM_SLOT_NECK)
@@ -127,7 +127,7 @@
set src in usr
if(!can_use(usr))
- return 0
+ return FALSE
on_toggle(usr)
if(src.suittoggled)
@@ -139,7 +139,7 @@
usr.update_inv_wear_suit()
for(var/X in actions)
var/datum/action/A = X
- A.UpdateButtonIcon()
+ A.UpdateButtons()
/obj/item/clothing/suit/toggle/examine(mob/user)
. = ..()
diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm
index da80479bd3..ebc590185c 100644
--- a/code/modules/clothing/suits/wiz_robe.dm
+++ b/code/modules/clothing/suits/wiz_robe.dm
@@ -315,7 +315,7 @@
/obj/item/clothing/suit/space/hardsuit/shielded/wizard/ComponentInitialize()
. = ..()
- AddElement(/datum/element/spellcasting, SPELL_WIZARD_HAT, ITEM_SLOT_HEAD)
+ AddElement(/datum/element/spellcasting, SPELL_WIZARD_ROBE, ITEM_SLOT_OCLOTHING)
/obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard
name = "battlemage helmet"
@@ -330,7 +330,7 @@
/obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard/ComponentInitialize()
. = ..()
- AddElement(/datum/element/spellcasting, SPELL_WIZARD_ROBE, ITEM_SLOT_OCLOTHING)
+ AddElement(/datum/element/spellcasting, SPELL_WIZARD_HAT, ITEM_SLOT_HEAD)
/obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard/attack_self(mob/user)
return
diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm
index fc4cee1bed..776d2c4a53 100644
--- a/code/modules/clothing/under/_under.dm
+++ b/code/modules/clothing/under/_under.dm
@@ -37,14 +37,14 @@
if((sensordamage || (has_sensor < HAS_SENSORS && has_sensor != NO_SENSORS)) && istype(I, /obj/item/stack/cable_coil))
if(damaged_clothes == CLOTHING_SHREDDED)
to_chat(user,"[src] is too damaged to have its suit sensors repaired! Repair it first. ")
- return 0
+ return FALSE
var/obj/item/stack/cable_coil/C = I
I.use_tool(src, user, 0, 1)
has_sensor = HAS_SENSORS
sensordamage = 0
sensor_mode = sensor_mode_intended
to_chat(user,"You repair the suit sensors on [src] with [C]. ")
- return 1
+ return TRUE
if(!attach_accessory(I, user))
return ..()
@@ -233,13 +233,13 @@
return
if(src.has_sensor == BROKEN_SENSORS)
to_chat(usr, "The sensors have shorted out!")
- return 0
+ return FALSE
if(src.sensor_flags & SENSOR_LOCKED)
to_chat(usr, "The controls are locked.")
- return 0
+ return FALSE
if(src.has_sensor <= NO_SENSORS)
to_chat(usr, "This suit does not have any sensors.")
- return 0
+ return FALSE
var/list/modes = list("Off", "Binary vitals", "Exact vitals", "Tracking beacon")
var/switchMode = input("Select a sensor mode:", "Suit Sensor Mode", modes[sensor_mode + 1]) in modes
@@ -292,10 +292,10 @@
if(src.has_sensor == BROKEN_SENSORS)
to_chat(usr, "The sensors have shorted out!")
- return 0
+ return FALSE
if(src.sensor_flags & SENSOR_LOCKED)
to_chat(usr, "The controls are locked.")
- return 0
+ return FALSE
if(has_sensor <= NO_SENSORS)
to_chat(user, "This suit does not have any sensors.")
return
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index 2071dd6930..1f9c8fd2bd 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -141,7 +141,7 @@
H.visible_message("[H]'s suit automatically extinguishes [H.p_them()]! ","Your suit automatically extinguishes you. ")
H.ExtinguishMob()
new /obj/effect/particle_effect/water(get_turf(H))
- return 0
+ return FALSE
/obj/item/clothing/under/plasmaman/attackby(obj/item/E, mob/user, params)
..()
diff --git a/code/modules/events/holiday/xmas.dm b/code/modules/events/holiday/xmas.dm
index a9bedb3c57..bfc291c970 100644
--- a/code/modules/events/holiday/xmas.dm
+++ b/code/modules/events/holiday/xmas.dm
@@ -29,7 +29,7 @@
other_half.icon_state = "cracker2"
target.put_in_active_hand(other_half)
playsound(user, 'sound/effects/snap.ogg', 50, 1)
- return 1
+ return TRUE
return ..()
/obj/item/clothing/head/festive
diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm
index a48191e8a1..525b49ba6a 100644
--- a/code/modules/events/immovable_rod.dm
+++ b/code/modules/events/immovable_rod.dm
@@ -101,7 +101,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
walk_towards(src, destination, 1)
/obj/effect/immovablerod/ex_act(severity, target, origin)
- return 0
+ return FALSE
/obj/effect/immovablerod/singularity_act()
return
diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm
index 25d5d17d4b..b9ded6b97d 100644
--- a/code/modules/events/pirates.dm
+++ b/code/modules/events/pirates.dm
@@ -458,9 +458,9 @@
/datum/export/pirate/ransom/get_cost(atom/movable/AM)
var/mob/living/carbon/human/H = AM
if(H.stat != CONSCIOUS || !H.mind || !H.mind.assigned_role) //mint condition only
- return 0
+ return FALSE
else if("pirate" in H.faction) //can't ransom your fellow pirates to CentCom!
- return 0
+ return FALSE
else
if(H.mind.assigned_role in GLOB.command_positions)
return 3000
diff --git a/code/modules/events/portal_storm.dm b/code/modules/events/portal_storm.dm
index b1b68fb585..49e60893f3 100644
--- a/code/modules/events/portal_storm.dm
+++ b/code/modules/events/portal_storm.dm
@@ -108,16 +108,16 @@
/datum/round_event/portal_storm/proc/spawn_hostile()
if(!hostile_types || !hostile_types.len)
- return 0
+ return FALSE
return ISMULTIPLE(activeFor, 2)
/datum/round_event/portal_storm/proc/spawn_boss()
if(!boss_types || !boss_types.len)
- return 0
+ return FALSE
if(activeFor == next_boss_spawn)
next_boss_spawn += CEILING(number_of_hostiles / number_of_bosses, 1)
- return 1
+ return TRUE
/datum/round_event/portal_storm/proc/time_to_end()
if(!hostile_types.len && !boss_types.len)
diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm
index 1bbcb0dd92..44703a3b24 100644
--- a/code/modules/events/spacevine.dm
+++ b/code/modules/events/spacevine.dm
@@ -124,7 +124,7 @@
quality = MINOR_NEGATIVE
/datum/spacevine_mutation/fire_proof/process_temperature(obj/structure/spacevine/holder, temp, volume)
- return 1
+ return TRUE
/datum/spacevine_mutation/fire_proof/on_hit(obj/structure/spacevine/holder, mob/hitter, obj/item/I, expected_damage)
if(I && I.damtype == "fire")
diff --git a/code/modules/events/wizard/greentext.dm b/code/modules/events/wizard/greentext.dm
index 1864ad6d20..50b133e0d3 100644
--- a/code/modules/events/wizard/greentext.dm
+++ b/code/modules/events/wizard/greentext.dm
@@ -13,7 +13,7 @@
if(!ishuman(M))
holder_canadates -= M
if(!holder_canadates) //Very unlikely, but just in case
- return 0
+ return FALSE
var/mob/living/carbon/human/H = pick(holder_canadates)
new /obj/item/greentext(H.loc)
diff --git a/code/modules/events/wizard/madness.dm b/code/modules/events/wizard/madness.dm
index de2c30a032..b960b07467 100644
--- a/code/modules/events/wizard/madness.dm
+++ b/code/modules/events/wizard/madness.dm
@@ -13,7 +13,7 @@
var/suggested = pick(strings(REDPILL_FILE, "redpill_questions"))
- forced_secret = (input(usr, "What horrifying truth will you reveal?", "Curse of Madness", sortList(suggested)) as text|null) || suggested
+ forced_secret = (input(usr, "What horrifying truth will you reveal?", "Curse of Madness", sort_list(suggested)) as text|null) || suggested
/datum/round_event/wizard/madness/start()
var/datum/round_event_control/wizard/madness/C = control
diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm
index f4185ccf77..9a62b2a822 100644
--- a/code/modules/food_and_drinks/drinks/drinks.dm
+++ b/code/modules/food_and_drinks/drinks/drinks.dm
@@ -22,14 +22,14 @@
/obj/item/reagent_containers/food/drinks/attack(mob/living/M, mob/user, def_zone)
if(!reagents || !reagents.total_volume)
to_chat(user, "[src] is empty! ")
- return 0
+ return FALSE
if(!canconsume(M, user))
- return 0
+ return FALSE
if (!is_drainable())
to_chat(user, "[src]'s lid hasn't been opened! ")
- return 0
+ return FALSE
if(M == user)
user.visible_message("[user] swallows a gulp of [src]. ", "You swallow a gulp of [src]. ")
@@ -47,7 +47,7 @@
reagents.reaction(M, INGEST, fraction)
reagents.trans_to(M, gulp_size, log = TRUE)
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
- return 1
+ return TRUE
/obj/item/reagent_containers/food/drinks/CheckAttackCooldown(mob/user, atom/target)
var/fast = HAS_TRAIT(user, TRAIT_VORACIOUS) && (user == target)
diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm
index dca12aa4f8..0b55d856f6 100644
--- a/code/modules/food_and_drinks/food/condiment.dm
+++ b/code/modules/food_and_drinks/food/condiment.dm
@@ -37,10 +37,10 @@
if(!reagents || !reagents.total_volume)
to_chat(user, "None of [src] left, oh no! ")
- return 0
+ return FALSE
if(!canconsume(M, user))
- return 0
+ return FALSE
if(M == user)
user.visible_message("[user] swallows some of contents of \the [src]. ", "You swallow some of contents of \the [src]. ")
@@ -57,7 +57,7 @@
reagents.reaction(M, INGEST, fraction)
reagents.trans_to(M, 10, log = TRUE)
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
- return 1
+ return TRUE
/obj/item/reagent_containers/food/condiment/afterattack(obj/target, mob/user , proximity)
. = ..()
diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm
index cb1ed628c4..8f8f48412f 100644
--- a/code/modules/food_and_drinks/food/snacks.dm
+++ b/code/modules/food_and_drinks/food/snacks.dm
@@ -108,10 +108,10 @@ All foods are distributed among various categories. Use common sense.
if(!reagents.total_volume) //Shouldn't be needed but it checks to see if it has anything left in it.
to_chat(user, "None of [src] left, oh no! ")
qdel(src)
- return 0
+ return FALSE
if(iscarbon(M))
if(!canconsume(M, user))
- return 0
+ return FALSE
var/fullness = M.nutrition + 10
for(var/datum/reagent/consumable/C in M.reagents.reagent_list) //we add the nutrition value of what we're currently digesting
@@ -120,7 +120,7 @@ All foods are distributed among various categories. Use common sense.
if(M == user) //If you're eating it yourself.
if(junkiness && M.satiety < -150 && M.nutrition > NUTRITION_LEVEL_STARVING + 50 )
to_chat(M, "You don't feel like eating any more junk food at the moment. ")
- return 0
+ return FALSE
else if(fullness <= 50)
user.visible_message("[user] hungrily takes a [eatverb] from \the [src], gobbling it down! ", "You hungrily take a [eatverb] from \the [src], gobbling it down! ")
else if(fullness > 50 && fullness < 150)
@@ -131,7 +131,7 @@ All foods are distributed among various categories. Use common sense.
user.visible_message("[user] unwillingly takes a [eatverb] of a bit of \the [src]. ", "You unwillingly take a [eatverb] of a bit of \the [src]. ")
else if(fullness > (600 * (1 + M.overeatduration / 2000))) // The more you eat - the more you can eat
user.visible_message("[user] cannot force any more of \the [src] to go down [user.p_their()] throat! ", "You cannot force any more of \the [src] to go down your throat! ")
- return 0
+ return FALSE
else
if(!isbrain(M)) //If you're feeding it to someone else.
if(fullness <= (600 * (1 + M.overeatduration / 1000)))
@@ -140,7 +140,7 @@ All foods are distributed among various categories. Use common sense.
else
M.visible_message("[user] cannot force any more of [src] down [M]'s throat! ", \
"[user] cannot force any more of [src] down [M]'s throat! ")
- return 0
+ return FALSE
if(!do_mob(user, M))
return
@@ -164,9 +164,9 @@ All foods are distributed among various categories. Use common sense.
bitecount++
On_Consume(M)
checkLiked(fraction, M)
- return 1
+ return TRUE
- return 0
+ return FALSE
/obj/item/reagent_containers/food/snacks/CheckAttackCooldown(mob/user, atom/target)
var/fast = HAS_TRAIT(user, TRAIT_VORACIOUS) && (user == target)
@@ -193,26 +193,26 @@ All foods are distributed among various categories. Use common sense.
/obj/item/reagent_containers/food/snacks/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/storage))
..() // -> item/attackby()
- return 0
+ return FALSE
if(istype(W, /obj/item/reagent_containers/food/snacks))
var/obj/item/reagent_containers/food/snacks/S = W
if(custom_food_type && ispath(custom_food_type))
if(S.w_class > WEIGHT_CLASS_SMALL)
to_chat(user, "[S] is too big for [src]! ")
- return 0
+ return FALSE
if(!S.customfoodfilling || istype(W, /obj/item/reagent_containers/food/snacks/customizable) || istype(W, /obj/item/reagent_containers/food/snacks/pizzaslice/custom) || istype(W, /obj/item/reagent_containers/food/snacks/cakeslice/custom))
to_chat(user, "[src] can't be filled with [S]! ")
- return 0
+ return FALSE
if(contents.len >= 20)
to_chat(user, "You can't add more ingredients to [src]! ")
- return 0
+ return FALSE
var/obj/item/reagent_containers/food/snacks/customizable/C = new custom_food_type(get_turf(src))
C.initialize_custom_food(src, S, user)
- return 0
+ return FALSE
var/sharp = W.get_sharpness()
if(sharp)
if(slice(sharp, W, user))
- return 1
+ return TRUE
else
..()
@@ -377,20 +377,20 @@ All foods are distributed among various categories. Use common sense.
..()
if(W.w_class <= WEIGHT_CLASS_SMALL & !istype(W, /obj/item/reagent_containers/food/snacks)) //can't slip snacks inside, they're used for custom foods.
if(W.get_sharpness())
- return 0
+ return FALSE
if(stored_item)
- return 0
+ return FALSE
if(!iscarbon(user))
- return 0
+ return FALSE
if(contents.len >= 20)
to_chat(user, "[src] is full. ")
- return 0
+ return FALSE
to_chat(user, "You slip [W] inside [src]. ")
user.transferItemToLoc(W, src)
add_fingerprint(user)
contents += W
stored_item = 1
- return 1 // no afterattack here
+ return TRUE // no afterattack here
/obj/item/reagent_containers/food/snacks/MouseDrop(atom/over)
var/turf/T = get_turf(src)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm
index 9f36fc058f..964b932453 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm
@@ -141,7 +141,7 @@
to_chat(user, "There is not enough ice cream left! ")
else
to_chat(user, "[O] already has ice cream in it. ")
- return 1
+ return TRUE
if(istype(O, /obj/item/reagent_containers) && !(O.item_flags & ABSTRACT) && O.is_open_container())
. = TRUE //no afterattack
var/obj/item/reagent_containers/B = O
diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm
index ef2676fe83..6cd3a5d161 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm
@@ -82,11 +82,11 @@
user.visible_message("[user] put [O] into [src].", \
"You put [O] into [src].")
user.transferItemToLoc(O, src, TRUE)
- return 1
+ return TRUE
else
if(user.a_intent != INTENT_HARM)
to_chat(user, "That probably won't blend! ")
- return 1
+ return TRUE
else
return ..()
diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
index 08020f708d..854c88401e 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm
@@ -188,7 +188,7 @@
listofitems[md5name]["amount"]++ // The good news is, #30519 made smartfridge UIs non-auto-updating
else
listofitems[md5name] = list("name" = O.name, "type" = O.type, "amount" = 1)
- sortList(listofitems)
+ sort_list(listofitems)
.["contents"] = listofitems
.["name"] = name
diff --git a/code/modules/food_and_drinks/recipes/drinks_recipes.dm b/code/modules/food_and_drinks/recipes/drinks_recipes.dm
index 217a650b30..e967cd4572 100644
--- a/code/modules/food_and_drinks/recipes/drinks_recipes.dm
+++ b/code/modules/food_and_drinks/recipes/drinks_recipes.dm
@@ -605,11 +605,17 @@
required_reagents = list(/datum/reagent/consumable/milk = 1, /datum/reagent/consumable/coco = 1)
mix_message = "The color changes as the mixture blends smoothly."
-/datum/chemical_reaction/eggnog
- name = "eggnog"
+/datum/chemical_reaction/spiked_eggnog
+ name = "spiked eggnog"
id = /datum/reagent/consumable/ethanol/eggnog
results = list(/datum/reagent/consumable/ethanol/eggnog = 15)
- required_reagents = list(/datum/reagent/consumable/ethanol/rum = 5, /datum/reagent/consumable/cream = 5, /datum/reagent/consumable/eggyolk = 5)
+ required_reagents = list(/datum/reagent/consumable/ethanol/rum = 5, /datum/reagent/consumable/eggnog = 10)
+
+/datum/chemical_reaction/eggnog
+ name = "eggnog"
+ id = /datum/reagent/consumable/eggnog
+ results = list(/datum/reagent/consumable/eggnog = 10)
+ required_reagents = list(/datum/reagent/consumable/cream = 5, /datum/reagent/consumable/eggyolk = 5)
/datum/chemical_reaction/narsour
name = "Nar'sour"
diff --git a/code/modules/holiday/halloween/bartholomew.dm b/code/modules/holiday/halloween/bartholomew.dm
index 75703bce7a..62cd9d173d 100644
--- a/code/modules/holiday/halloween/bartholomew.dm
+++ b/code/modules/holiday/halloween/bartholomew.dm
@@ -14,7 +14,7 @@
/obj/item/barthpot/attackby(obj/item/I, mob/user, params)
if(BallTutorial)
- say("Hello and welcome to the annual Citadelstation Spookyball 2021! CENTCOM requisitioned this old hospital as a new colony site two years ago, and we’re back again after a few additions here and there. Next to me you can find all the tools you’ll need to build a nice private house, if you’re here for that kind of thing. The axes will chop trees, and give you wood. Shovels will remove grass and things, which you can use the grass to make beds and backets. The pickaxe will allow you pick out the nearby rocks, if you’re more interested in building a cave dwelling. Finally the umbrella and light sources are because it’s spooky, and it might rain! As for interesting spots; There’s the old abandoned mansion which you can get to by going through the entrance and towards the east. There’s also a mech arena directly south, and a racetrack in the caves to the right of the arena, follow the lanterns. And make sure to explore the caves too! Lots of neat things to find!")
+ say("Hello and welcome to the annual Citadel Station Spooky Ball [time2text(world.realtime, "YYYY")]! CENTCOM requisitioned this old hospital as a new colony site [text2num(time2text(world.realtime,"YYYY")) - 2019] years ago, and we’re back again after a few additions here and there. Next to me you can find all the tools you’ll need to build a nice private house, if you’re here for that kind of thing. The axes will chop trees, and give you wood. Shovels will remove grass and things, which you can use the grass to make beds and backets. The pickaxe will allow you pick out the nearby rocks, if you’re more interested in building a cave dwelling. Finally the umbrella and light sources are because it’s spooky, and it might rain! As for interesting spots; There’s the old abandoned mansion which you can get to by going through the entrance and towards the east. There’s also a mech arena directly south, and a racetrack in the caves to the right of the arena, follow the lanterns. And make sure to explore the caves too! Lots of neat things to find!")
return
if(!active)
say("Meow!")
@@ -24,7 +24,7 @@
if(istype(I, I2))
qdel(I)
new /obj/item/reagent_containers/food/snacks/special_candy(loc)
- to_chat(user, "You add the [I.name] to the pot and watch as it melts into the mixture, a candy crystalising in it's wake. ")
+ to_chat(user, "You add the [I.name] to the pot and watch as it melts into the mixture, a candy crystallizing in it's wake. ")
say("Hooray! Thank you!")
items_list -= I2
return
@@ -32,7 +32,7 @@
/obj/item/barthpot/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
if(BallTutorial)
- say("Hello and welcome to the annual Citadelstation Spookyball 2021! CENTCOM requisitioned this old hospital as a new colony site two years ago, and we’re back again after a few additions here and there. Next to me you can find all the tools you’ll need to build a nice private house, if you’re here for that kind of thing. The axes will chop trees, and give you wood. Shovels will remove grass and things, which you can use the grass to make beds and backets. The pickaxe will allow you pick out the nearby rocks, if you’re more interested in building a cave dwelling. Finally the umbrella and light sources are because it’s spooky, and it might rain! As for interesting spots; There’s the old abandoned mansion which you can get to by going through the entrance and towards the east. There’s also a mech arena directly south, and a racetrack in the caves to the right of the arena, follow the lanterns. And make sure to explore the caves too! Lots of neat things to find!")
+ say("Hello and welcome to the annual Citadel Station Spooky Ball [time2text(world.realtime, "YYYY")]! CENTCOM requisitioned this old hospital as a new colony site [text2num(time2text(world.realtime,"YYYY")) - 2019] years ago, and we’re back again after a few additions here and there. Next to me you can find all the tools you’ll need to build a nice private house, if you’re here for that kind of thing. The axes will chop trees, and give you wood. Shovels will remove grass and things, which you can use the grass to make beds and backets. The pickaxe will allow you pick out the nearby rocks, if you’re more interested in building a cave dwelling. Finally the umbrella and light sources are because it’s spooky, and it might rain! As for interesting spots; There’s the old abandoned mansion which you can get to by going through the entrance and towards the east. There’s also a mech arena directly south, and a racetrack in the caves to the right of the arena, follow the lanterns. And make sure to explore the caves too! Lots of neat things to find!")
return
if(!active)
say("Meow!")
@@ -40,7 +40,7 @@
say("Hello there, I'm Bartholomew, Jacqueline's Familiar.")
sleep(20)
- say("I'm currently seeking items to put into my pot, if we get the right items, it should crystalise into a magic candy!")
+ say("I'm currently seeking items to put into my pot, if we get the right items, it should crystalize into a magic candy!")
if(!iscarbon(user))
say("Though... I'm not sure you can help me.")
diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm
index 239246cd59..e7f33b9ad5 100644
--- a/code/modules/holiday/holidays.dm
+++ b/code/modules/holiday/holidays.dm
@@ -26,7 +26,7 @@
var/i = findtext(name," ")
return copytext(name, 1, i)
-// Return 1 if this holidy should be celebrated today
+// return TRUE if this holiday should be celebrated today
/datum/holiday/proc/shouldCelebrate(dd, mm, yy, ww, ddd)
if(always_celebrate)
return TRUE
@@ -189,12 +189,40 @@
begin_day = 22
begin_month = APRIL
-/datum/holiday/lesbianvisibility
+/datum/holiday/lgbt
+ name = "Pride Week"
+ begin_month = JUNE
+ begin_day = 23
+ end_day = 29
+ //Will take place during pride month for one week. Stonewall was June 28th, so this captures its week.
+
+ var/list/holiday_colors = list(
+ COLOR_PRIDE_PURPLE,
+ COLOR_PRIDE_BLUE,
+ COLOR_PRIDE_GREEN,
+ COLOR_PRIDE_YELLOW,
+ COLOR_PRIDE_ORANGE,
+ COLOR_PRIDE_RED
+ )
+
+/datum/holiday/lgbt/proc/get_floor_tile_color(atom/atom)
+ var/turf/turf = get_turf(atom)
+ return holiday_colors[(turf.y % holiday_colors.len) + 1]
+
+/datum/holiday/lgbt/lesbianvisibility
name = "Lesbian Visibility Day"
begin_day = 26
begin_month = APRIL
-/datum/holiday/lesbianvisibility/greet()
+ holiday_colors = list( //using the 2018 5-pattern flag
+ COLOR_LESBIAN_ORANGERED,
+ COLOR_LESBIAN_SANDYBROWN,
+ COLOR_WHITE,
+ COLOR_LESBIAN_PALEVIOLETRED,
+ COLOR_LESBIAN_DARKMAGENTA
+ )
+
+/datum/holiday/lgbt/lesbianvisibility/greet()
return "Today is Lesbian Visibility Day!"
/datum/holiday/labor
@@ -291,21 +319,29 @@
if(mm == 9)
if(yy/4 == round(yy/4)) //Note: Won't work right on September 12th, 2200 (at least it's a Friday!)
if(dd == 12)
- return 1
+ return TRUE
else
if(dd == 13)
- return 1
- return 0
+ return TRUE
+ return FALSE
/datum/holiday/programmers/getStationPrefix()
return pick("span>","DEBUG: ","null","/list","EVENT PREFIX NOT FOUND") //Portability
-/datum/holiday/bivisibility
+/datum/holiday/lgbt/bivisibility
name = "Bisexual Visibility Day"
begin_day = 23
begin_month = SEPTEMBER
-/datum/holiday/bivisibility/greet()
+ holiday_colors = list(
+ COLOR_BISEXUAL_MEDIUMVIOLETRED,
+ COLOR_BISEXUAL_MEDIUMVIOLETRED,
+ COLOR_BISEXUAL_DARKORCHID,
+ COLOR_BISEXUAL_DARKBLUE,
+ COLOR_BISEXUAL_DARKBLUE
+ )
+
+/datum/holiday/lgbt/bivisibility/greet()
return "Today is Bisexual Visibility Day!"
/datum/holiday/questions
@@ -341,12 +377,18 @@
begin_month = OCTOBER
drone_hat = /obj/item/clothing/head/that
-/datum/holiday/intersexawareness
+/datum/holiday/lgbt/intersexawareness
name = "Intersex Awareness Day"
begin_day = 26
begin_month = OCTOBER
-/datum/holiday/intersexawareness/greet()
+ holiday_colors = list( //Intersex's flag isn't a striped pattern so this is the best we got
+ COLOR_INTERSEX_GOLD,
+ COLOR_INTERSEX_DARKMAGENTA,
+ COLOR_INTERSEX_GOLD
+ )
+
+/datum/holiday/lgbt/intersexawareness/greet()
return "Today is Intersex Awareness Day! It has been [text2num(time2text(world.timeofday, "YYYY")) - 1996] years since the first public protest speaking out against the human rights issues faced by intersex people."
/datum/holiday/halloween
@@ -388,21 +430,35 @@
begin_month = NOVEMBER
drone_hat = /obj/item/reagent_containers/food/snacks/grown/moonflower
-/datum/holiday/transawareness
+/datum/holiday/lgbt/transawareness
name = "Transgender Awareness Week"
begin_day = 13
begin_month = NOVEMBER
end_day = 19
-/datum/holiday/transawareness/greet()
+ holiday_colors = list(
+ COLOR_TRANS_BLUE,
+ COLOR_TRANS_PINK,
+ COLOR_WHITE,
+ COLOR_TRANS_PINK //loops back to blue
+ )
+
+/datum/holiday/lgbt/transawareness/greet()
return "This week is Transgender Awareness Week!"
-/datum/holiday/transremembrance
+/datum/holiday/lgbt/transremembrance
name = "Transgender Day of Remembrance"
begin_day = 20
begin_month = NOVEMBER
-/datum/holiday/transremembrance/greet()
+ holiday_colors = list(
+ COLOR_TRANS_BLUE,
+ COLOR_TRANS_PINK,
+ COLOR_WHITE,
+ COLOR_TRANS_PINK //loops back to blue
+ )
+
+/datum/holiday/lgbt/transremembrance/greet()
return "Today is the Transgender Day of Remembrance."
/datum/holiday/hello
@@ -443,14 +499,21 @@
begin_month = OCTOBER
begin_weekday = MONDAY
-/datum/holiday/aceawareness
+/datum/holiday/lgbt/aceawareness
name = "Asexual Awareness Week"
begin_month = OCTOBER
-/datum/holiday/aceawareness/greet()
+ holiday_colors = list(
+ COLOR_BLACK,
+ COLOR_ACE_DARKGRAY,
+ COLOR_ACE_PURPLE,
+ COLOR_WHITE
+ )
+
+/datum/holiday/lgbt/aceawareness/greet()
return "This week is Asexual Awareness Week!"
-/datum/holiday/aceawareness/shouldCelebrate(dd, mm, yy, ww, ddd) //Ace awareness week falls on the last full week of October.
+/datum/holiday/lgbt/aceawareness/shouldCelebrate(dd, mm, yy, ww, ddd) //Ace awareness week falls on the last full week of October.
if(mm != begin_month)
return FALSE //it's not even the right month
var/daypointer = world.timeofday - ((WEEKDAY2NUM(ddd) - 1) * 24 HOURS)
@@ -478,7 +541,7 @@
begin_month = JUNE
begin_weekday = SUNDAY
-/datum/holiday/pride
+/datum/holiday/pride //Won't be typing this as /lgbt/ because the typing is meant for LGBT holidays that will change the station's decals. Having a full month of pride decals seems a bit long.
name = PRIDE_MONTH
begin_day = 1
begin_month = JUNE
@@ -487,7 +550,7 @@
/datum/holiday/pride/getStationPrefix()
return pick("Pride", "Gay", "Bi", "Trans", "Lesbian", "Ace", "Aro", "Agender", pick("Enby", "Enbie"), "Pan", "Intersex", "Demi", "Poly", "Closeted", "Genderfluid")
-/datum/holiday/stonewall
+/datum/holiday/stonewall //decal patterns covered in "Pride Week"
name = "Stonewall Riots Anniversary"
begin_day = 28
begin_month = JUNE
@@ -495,6 +558,23 @@
/datum/holiday/stonewall/greet() //Not gonna lie, I was fairly tempted to make this use the IC year instead of the IRL year, but I was worried that it would have caused too much confusion.
return "Today marks the [text2num(time2text(world.timeofday, "YYYY")) - 1969]\th anniversary of the riots at the Stonewall Inn!"
+/datum/holiday/lgbt/pan
+ name = "Pansexual and Panromantic Awareness Day"
+ begin_day = 24
+ begin_month = MAY
+
+ holiday_colors = list(
+ COLOR_PAN_DEEPPINK,
+ COLOR_PAN_GOLD,
+ COLOR_PAN_DODGERBLUE
+ )
+
+/datum/holiday/lgbt/pan/greet()
+ return "Today is Pansexual and Panromantic Awareness Day!"
+
+/datum/holiday/lgbt/pan/getStationPrefix()
+ return pick("Pansexual","Panromantic")
+
/datum/holiday/moth
name = "Moth Week"
begin_month = JULY
diff --git a/code/modules/holodeck/area_copy.dm b/code/modules/holodeck/area_copy.dm
index d69b9da768..167974a193 100644
--- a/code/modules/holodeck/area_copy.dm
+++ b/code/modules/holodeck/area_copy.dm
@@ -56,7 +56,7 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars_by_type, typecacheof_assoc_list(list(
// into the new area will not be moved.
if(!A || !src)
- return 0
+ return FALSE
var/list/turfs_src = get_area_turfs(src.type)
var/list/turfs_trg = get_area_turfs(A.type)
diff --git a/code/modules/hydroponics/beekeeping/beebox.dm b/code/modules/hydroponics/beekeeping/beebox.dm
index 28e537acbc..564c7e44a4 100644
--- a/code/modules/hydroponics/beekeeping/beebox.dm
+++ b/code/modules/hydroponics/beekeeping/beebox.dm
@@ -8,22 +8,22 @@
/mob/proc/bee_friendly()
- return 0
+ return FALSE
/mob/living/simple_animal/hostile/poison/bees/bee_friendly()
- return 1
+ return TRUE
/mob/living/carbon/human/bee_friendly()
if(dna && dna.species && dna.species.id == "pod") //bees pollinate plants, duh.
- return 1
+ return TRUE
if (wear_suit && head && istype(wear_suit, /obj/item/clothing) && istype(head, /obj/item/clothing))
var/obj/item/clothing/CS = wear_suit
var/obj/item/clothing/CH = head
if (CS.clothing_flags & CH.clothing_flags & THICKMATERIAL)
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/structure/beebox
diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm
index 65d942ca2b..a338dd8db7 100644
--- a/code/modules/hydroponics/grown.dm
+++ b/code/modules/hydroponics/grown.dm
@@ -53,8 +53,8 @@
if(reagents)
if(bitesize_mod)
bitesize = 1 + round(reagents.total_volume / bitesize_mod)
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/item/reagent_containers/food/snacks/grown/examine(user)
. = ..()
diff --git a/code/modules/hydroponics/grown/cereals.dm b/code/modules/hydroponics/grown/cereals.dm
index 9bfdb2979c..06c1aaf2eb 100644
--- a/code/modules/hydroponics/grown/cereals.dm
+++ b/code/modules/hydroponics/grown/cereals.dm
@@ -105,4 +105,4 @@
var/obj/item/reagent_containers/food/snacks/meat/slab/meatwheat/M = new
qdel(src)
user.put_in_hands(M)
- return 1
+ return TRUE
diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm
index 15908a22a1..fa53159095 100644
--- a/code/modules/hydroponics/grown/misc.dm
+++ b/code/modules/hydroponics/grown/misc.dm
@@ -425,9 +425,10 @@
for(var/datum/reagent/A in reagents.reagent_list)
R += A.type + " ("
R += num2text(A.volume) + "),"
- if(isturf(target) && reagents.reagent_list.len && thrownby)
- log_combat(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]")
- message_admins("[ADMIN_LOOKUPFLW(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] at [ADMIN_VERBOSEJMP(target)].")
+ var/mob/thrown_by = thrownby?.resolve()
+ if(isturf(target) && reagents.reagent_list.len && thrown_by)
+ log_combat(thrown_by, target, "splashed (thrown) [english_list(reagents.reagent_list)]")
+ message_admins("[ADMIN_LOOKUPFLW(thrown_by)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] at [ADMIN_VERBOSEJMP(target)].")
reagents.reaction(M, TOUCH)
log_combat(user, M, "splashed", R)
reagents.clear_reagents()
diff --git a/code/modules/hydroponics/growninedible.dm b/code/modules/hydroponics/growninedible.dm
index 3c59deafdc..60e18a2894 100644
--- a/code/modules/hydroponics/growninedible.dm
+++ b/code/modules/hydroponics/growninedible.dm
@@ -45,8 +45,8 @@
/obj/item/grown/proc/add_juice()
if(reagents)
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/item/grown/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
if(!..()) //was it caught by a mob?
diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm
index a91e3ddfd8..fe688426dc 100644
--- a/code/modules/hydroponics/hydroponics.dm
+++ b/code/modules/hydroponics/hydroponics.dm
@@ -475,7 +475,7 @@
if(!reagent_source.reagents.total_volume)
to_chat(user, "[reagent_source] is empty. ")
- return 1
+ return TRUE
if(reagents.total_volume >= reagents.maximum_volume && !reagent_source.reagents.has_reagent(/datum/reagent/water, 1))
to_chat(user, "[src] is full. ")
@@ -520,11 +520,11 @@
qdel(reagent_source)
lastuser = user
H.update_icon()
- return 1
+ return TRUE
H.update_icon()
if(reagent_source) // If the source wasn't composted and destroyed
reagent_source.update_icon()
- return 1
+ return TRUE
else if(istype(O, /obj/item/seeds) && !istype(O, /obj/item/seeds/sample))
if(!myseed)
@@ -626,7 +626,7 @@
for(var/muties in myseed.mutatelist)
var/obj/item/seeds/another_mut = new muties
fresh_mut_list[another_mut.plantname] = muties
- var/locked_mutation = (input(user, "Select a mutation to lock.", "Plant Mutation Locks") as null|anything in sortList(fresh_mut_list))
+ var/locked_mutation = (input(user, "Select a mutation to lock.", "Plant Mutation Locks") as null|anything in sort_list(fresh_mut_list))
if(!user.canUseTopic(src, BE_CLOSE) || !locked_mutation)
return
myseed.mutatelist = list(fresh_mut_list[locked_mutation])
diff --git a/code/modules/hydroponics/seed_extractor.dm b/code/modules/hydroponics/seed_extractor.dm
index e0e15ac111..ecdc466a0c 100644
--- a/code/modules/hydroponics/seed_extractor.dm
+++ b/code/modules/hydroponics/seed_extractor.dm
@@ -49,9 +49,9 @@
t_prod.forceMove(seedloc)
t_amount++
qdel(O)
- return 1
+ return TRUE
- return 0
+ return FALSE
/obj/machinery/seed_extractor
diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm
index 4b6f76574f..174194a425 100644
--- a/code/modules/integrated_electronics/core/assemblies.dm
+++ b/code/modules/integrated_electronics/core/assemblies.dm
@@ -202,7 +202,7 @@
/obj/item/electronic_assembly/Topic(href, href_list)
if(..())
- return 1
+ return TRUE
if(href_list["ghostscan"])
if((isobserver(usr) && ckeys_allowed_to_scan[usr.ckey]) || IsAdminGhost(usr))
diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm
index 547036f08a..ad8ef4ab21 100644
--- a/code/modules/integrated_electronics/subtypes/input.dm
+++ b/code/modules/integrated_electronics/subtypes/input.dm
@@ -697,11 +697,11 @@
if(isnum(new_code))
code = new_code
if(!signal)
- return 0
+ return FALSE
if(signal.data["code"] != code)
- return 0
+ return FALSE
if(signal.source == src) // Don't trigger ourselves.
- return 0
+ return FALSE
activate_pin(3)
audible_message("[icon2html(src, hearers(src))] *beep* *beep* *beep*", null, hearing_range)
diff --git a/code/modules/integrated_electronics/subtypes/weaponized.dm b/code/modules/integrated_electronics/subtypes/weaponized.dm
index 0458700f44..a576ae123e 100644
--- a/code/modules/integrated_electronics/subtypes/weaponized.dm
+++ b/code/modules/integrated_electronics/subtypes/weaponized.dm
@@ -339,7 +339,7 @@
/obj/item/integrated_circuit/weaponized/proc/attempt_stun(var/mob/living/L,var/stunforce = 70) //Copied from stunbaton code.
if(!L || !isliving(L))
- return 0
+ return FALSE
L.DefaultCombatKnockdown(stunforce)
SEND_SIGNAL(L, COMSIG_LIVING_MINOR_SHOCK)
@@ -352,4 +352,4 @@
var/mob/living/carbon/human/H = L
H.forcesay(GLOB.hit_appends)
- return 1
+ return TRUE
diff --git a/code/modules/jobs/job_exp.dm b/code/modules/jobs/job_exp.dm
index e3dfe3b78b..24cb4bf070 100644
--- a/code/modules/jobs/job_exp.dm
+++ b/code/modules/jobs/job_exp.dm
@@ -4,24 +4,24 @@ GLOBAL_PROTECT(exp_to_update)
// Procs
/datum/job/proc/required_playtime_remaining(client/C)
if(!C)
- return 0
+ return FALSE
if(!CONFIG_GET(flag/use_exp_tracking))
- return 0
+ return FALSE
if(!SSdbcore.Connect())
- return 0
+ return FALSE
if(!exp_requirements || !exp_type)
- return 0
+ return FALSE
if(!job_is_xp_locked(src.title))
- return 0
+ return FALSE
if(CONFIG_GET(flag/use_exp_restrictions_admin_bypass) && check_rights_for(C,R_ADMIN))
- return 0
+ return FALSE
var/isexempt = C.prefs.db_flags & DB_FLAG_EXEMPT
if(isexempt)
- return 0
+ return FALSE
var/my_exp = C.calc_exp_type(get_exp_req_type())
var/job_requirement = get_exp_req_amount()
if(my_exp >= job_requirement)
- return 0
+ return FALSE
else
return (job_requirement - my_exp)
diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm
index edabd65fe7..3558717348 100644
--- a/code/modules/jobs/job_types/_job.dm
+++ b/code/modules/jobs/job_types/_job.dm
@@ -210,15 +210,15 @@
/datum/job/proc/available_in_days(client/C)
if(!C)
- return 0
+ return FALSE
if(!CONFIG_GET(flag/use_age_restriction_for_jobs))
- return 0
+ return FALSE
if(!SSdbcore.Connect())
- return 0 //Without a database connection we can't get a player's age so we'll assume they're old enough for all jobs
+ return FALSE //Without a database connection we can't get a player's age so we'll assume they're old enough for all jobs
if(C.prefs.db_flags & DB_FLAG_EXEMPT)
- return 0
+ return FALSE
if(!isnum(minimal_player_age))
- return 0
+ return FALSE
return max(0, minimal_player_age - C.player_age)
diff --git a/code/modules/jobs/job_types/ai.dm b/code/modules/jobs/job_types/ai.dm
index b77b60f5b5..526f541443 100644
--- a/code/modules/jobs/job_types/ai.dm
+++ b/code/modules/jobs/job_types/ai.dm
@@ -30,8 +30,8 @@
/datum/job/ai/after_spawn(mob/H, client/C, latejoin)
. = ..()
if(latejoin)
- var/obj/structure/AIcore/latejoin_inactive/lateJoinCore
- for(var/obj/structure/AIcore/latejoin_inactive/P in GLOB.latejoin_ai_cores)
+ var/obj/structure/ai_core/latejoin_inactive/lateJoinCore
+ for(var/obj/structure/ai_core/latejoin_inactive/P in GLOB.latejoin_ai_cores)
if(P.is_available())
lateJoinCore = P
GLOB.latejoin_ai_cores -= P
@@ -60,7 +60,7 @@
if(!do_special_check)
return TRUE
for(var/i in GLOB.latejoin_ai_cores)
- var/obj/structure/AIcore/latejoin_inactive/LAI = i
+ var/obj/structure/ai_core/latejoin_inactive/LAI = i
if(istype(LAI))
if(LAI.is_available())
return TRUE
diff --git a/code/modules/keybindings/keybind/admin.dm b/code/modules/keybindings/keybind/admin.dm
index b63221e97a..74b8431f30 100644
--- a/code/modules/keybindings/keybind/admin.dm
+++ b/code/modules/keybindings/keybind/admin.dm
@@ -94,3 +94,16 @@
/datum/keybinding/admin/readmin/down(client/user)
user.readmin()
return TRUE
+
+/datum/keybinding/admin/view_tags
+ hotkey_keys = list("F9")
+ name = "view_tags"
+ full_name = "View Tags"
+ description = "Open the View-Tags menu"
+
+/datum/keybinding/admin/view_tags/down(client/user)
+ . = ..()
+ if(.)
+ return
+ user.holder?.display_tags()
+ return TRUE
diff --git a/code/modules/keybindings/keybind/mob.dm b/code/modules/keybindings/keybind/mob.dm
index 15911d831e..1599073154 100644
--- a/code/modules/keybindings/keybind/mob.dm
+++ b/code/modules/keybindings/keybind/mob.dm
@@ -85,6 +85,6 @@
description = "Immediately examine anything you're hovering your mouse over."
/datum/keybinding/mob/examine_immediate/down(client/user)
- var/atom/A = user.mouseObject
+ var/atom/A = user.mouse_object_ref?.resolve()
if(A)
A.attempt_examinate(user.mob)
diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm
index 4f73b037c8..bd488230c4 100644
--- a/code/modules/library/lib_machines.dm
+++ b/code/modules/library/lib_machines.dm
@@ -574,7 +574,7 @@
if(istype(O, /obj/item/paper))
bind_book(user, O)
else if(default_unfasten_wrench(user, O))
- return 1
+ return TRUE
else
return ..()
diff --git a/code/modules/lighting/lighting_object.dm b/code/modules/lighting/lighting_object.dm
index bd6bfdd177..8c1fbfcd56 100644
--- a/code/modules/lighting/lighting_object.dm
+++ b/code/modules/lighting/lighting_object.dm
@@ -125,7 +125,7 @@
// Variety of overrides so the overlays don't get affected by weird things.
/atom/movable/lighting_object/ex_act(severity, target, origin)
- return 0
+ return FALSE
/atom/movable/lighting_object/singularity_act()
return
diff --git a/code/modules/lighting/lighting_turf.dm b/code/modules/lighting/lighting_turf.dm
index fc9cd0336d..f148fc441e 100644
--- a/code/modules/lighting/lighting_turf.dm
+++ b/code/modules/lighting/lighting_turf.dm
@@ -62,7 +62,7 @@
// Used to get a scaled lumcount.
/turf/proc/get_lumcount(var/minlum = 0, var/maxlum = 1)
if(!lighting_object)
- return 1
+ return TRUE
var/totallums = (lc_topright? (lc_topright.lum_r + lc_topright.lum_g + lc_topright.lum_b) : 0) \
+ (lc_bottomright? (lc_bottomright.lum_r + lc_bottomright.lum_g + lc_bottomright.lum_b) : 0) \
diff --git a/code/modules/mining/equipment/marker_beacons.dm b/code/modules/mining/equipment/marker_beacons.dm
index d8e54ae322..3ec466dad4 100644
--- a/code/modules/mining/equipment/marker_beacons.dm
+++ b/code/modules/mining/equipment/marker_beacons.dm
@@ -31,6 +31,12 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list(
/obj/item/stack/marker_beacon/thirty //and they're bought in stacks of 1, 10, or 30
amount = 30
+/obj/item/stack/marker_beacon/cyborg
+ is_cyborg = TRUE
+ custom_materials = null
+ source = /datum/robot_energy_storage/beacon
+ cost = 1
+
/obj/item/stack/marker_beacon/Initialize(mapload)
. = ..()
update_icon()
diff --git a/code/modules/mining/fulton.dm b/code/modules/mining/fulton.dm
index 18f816699c..13744aa100 100644
--- a/code/modules/mining/fulton.dm
+++ b/code/modules/mining/fulton.dm
@@ -179,13 +179,13 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons)
if(isliving(A))
var/mob/living/L = A
if(L.stat != DEAD)
- return 1
+ return TRUE
for(var/thing in A.GetAllContents())
if(isliving(A))
var/mob/living/L = A
if(L.stat != DEAD)
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/effect/extraction_holder/singularity_pull()
return
diff --git a/code/modules/mining/laborcamp/laborstacker.dm b/code/modules/mining/laborcamp/laborstacker.dm
index 4c18b90ee0..3e4d28d20b 100644
--- a/code/modules/mining/laborcamp/laborstacker.dm
+++ b/code/modules/mining/laborcamp/laborstacker.dm
@@ -28,7 +28,7 @@ GLOBAL_LIST(labor_sheet_values)
if(!initial(sheet.point_value) || (initial(sheet.merge_type) && initial(sheet.merge_type) != sheet_type)) //ignore no-value sheets and x/fifty subtypes
continue
sheet_list += list(list("ore" = initial(sheet.name), "value" = initial(sheet.point_value)))
- GLOB.labor_sheet_values = sortList(sheet_list, GLOBAL_PROC_REF(cmp_sheet_list))
+ GLOB.labor_sheet_values = sort_list(sheet_list, GLOBAL_PROC_REF(cmp_sheet_list))
/proc/cmp_sheet_list(list/a, list/b)
return a["value"] - b["value"]
diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm
index f1dc577180..3234e5b1e1 100644
--- a/code/modules/mining/lavaland/ash_flora.dm
+++ b/code/modules/mining/lavaland/ash_flora.dm
@@ -27,7 +27,7 @@
/obj/structure/flora/ash/proc/harvest(user)
if(harvested)
- return 0
+ return FALSE
var/rand_harvested = rand(harvest_amount_low, harvest_amount_high)
if(rand_harvested)
@@ -46,7 +46,7 @@
desc = harvested_desc
harvested = TRUE
addtimer(CALLBACK(src, PROC_REF(regrow)), rand(regrowth_time_low, regrowth_time_high))
- return 1
+ return TRUE
/obj/structure/flora/ash/proc/regrow()
icon_state = base_icon
diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm
index 69b5de963d..75b647809a 100644
--- a/code/modules/mining/minebot.dm
+++ b/code/modules/mining/minebot.dm
@@ -82,8 +82,7 @@
Field repairs can be done with a welder."
if(stored_gun && stored_gun.max_mod_capacity)
. += "[stored_gun.get_remaining_mod_capacity()]% mod capacity remaining."
- for(var/A in stored_gun.get_modkits())
- var/obj/item/borg/upgrade/modkit/M = A
+ for(var/obj/item/borg/upgrade/modkit/M in stored_gun.modkits)
. += "There is \a [M] installed, using [M.cost]% capacity. "
/mob/living/simple_animal/hostile/mining_drone/welder_act(mob/living/user, obj/item/I)
@@ -136,8 +135,7 @@
if(istype(O, /obj/item/projectile/kinetic))
var/obj/item/projectile/kinetic/K = O
if(K.kinetic_gun)
- for(var/A in K.kinetic_gun.get_modkits())
- var/obj/item/borg/upgrade/modkit/M = A
+ for(var/obj/item/borg/upgrade/modkit/M in K.kinetic_gun.modkits)
if(istype(M, /obj/item/borg/upgrade/modkit/minebot_passthrough))
return TRUE
if(istype(O, /obj/item/projectile/destabilizer))
diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm
index b627d4cb69..514dab55f3 100644
--- a/code/modules/mob/dead/new_player/new_player.dm
+++ b/code/modules/mob/dead/new_player/new_player.dm
@@ -169,10 +169,10 @@
/mob/dead/new_player/Topic(href, href_list[])
if(src != usr)
- return 0
+ return FALSE
if(!client)
- return 0
+ return FALSE
//don't let people get to this unless they are specifically not verified
if(href_list["Month"] && (CONFIG_GET(flag/age_verification) && !check_rights_for(client, R_ADMIN) && !(client.ckey in GLOB.bunker_passthrough)))
@@ -727,7 +727,7 @@
src << browse(dat, "window=manifest;size=387x420;can_close=1")
/mob/dead/new_player/Move()
- return 0
+ return FALSE
/mob/dead/new_player/proc/close_spawn_windows()
diff --git a/code/modules/mob/dead/new_player/poll.dm b/code/modules/mob/dead/new_player/poll.dm
index 9b6e22bc23..6e26b0eb2c 100644
--- a/code/modules/mob/dead/new_player/poll.dm
+++ b/code/modules/mob/dead/new_player/poll.dm
@@ -461,7 +461,7 @@
return
pollid = text2num(pollid)
if (!pollid || pollid < 0)
- return 0
+ return FALSE
//validate the poll is actually the right type of poll and its still active
var/datum/db_query/query_validate_poll = SSdbcore.NewQuery({"
SELECT id
@@ -473,12 +473,12 @@
))
if(!query_validate_poll.warn_execute())
qdel(query_validate_poll)
- return 0
+ return FALSE
if (!query_validate_poll.NextRow())
qdel(query_validate_poll)
- return 0
+ return FALSE
qdel(query_validate_poll)
- return 1
+ return TRUE
/**
* Processes vote form data and saves results to the database for an IRV type poll.
@@ -501,7 +501,7 @@
if(!QDELETED(client) && client.holder)
admin_rank = client.holder.rank.name
if (!vote_valid_check(pollid, client?.holder, POLLTYPE_IRV))
- return 0
+ return FALSE
var/list/special_columns = list(
"datetime" = "NOW()",
@@ -544,7 +544,7 @@
return
//validate the poll
if (!vote_valid_check(pollid, client.holder, POLLTYPE_OPTION))
- return 0
+ return FALSE
var/voted = poll_check_voted(pollid)
if(isnull(voted) || voted) //Failed or already voted.
return
@@ -567,7 +567,7 @@
qdel(query_option_vote)
if(!QDELETED(usr))
usr << browse(null,"window=playerpoll")
- return 1
+ return TRUE
/mob/dead/new_player/proc/log_text_poll_reply(pollid, replytext)
if(!SSdbcore.Connect())
@@ -581,7 +581,7 @@
return
//validate the poll
if (!vote_valid_check(pollid, client.holder, POLLTYPE_TEXT))
- return 0
+ return FALSE
if(!replytext)
to_chat(usr, "The text you entered was blank. Please correct the text and submit again.")
return
@@ -611,7 +611,7 @@
qdel(query_text_vote)
if(!QDELETED(usr))
usr << browse(null,"window=playerpoll")
- return 1
+ return TRUE
/mob/dead/new_player/proc/vote_on_numval_poll(pollid, optionid, rating)
if(!SSdbcore.Connect())
@@ -625,7 +625,7 @@
return
//validate the poll
if (!vote_valid_check(pollid, client.holder, POLLTYPE_RATING))
- return 0
+ return FALSE
var/datum/db_query/query_numval_hasvoted = SSdbcore.NewQuery({"
SELECT id
FROM [format_table_name("poll_vote")]
@@ -655,7 +655,7 @@
qdel(query_numval_vote)
if(!QDELETED(usr))
usr << browse(null,"window=playerpoll")
- return 1
+ return TRUE
/**
* Processes vote form data and saves results to the database for a multiple choice type poll.
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 62df2d25b6..97f9388965 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -233,7 +233,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
var/g_val
var/color_format = length(input_color)
if(color_format != length_char(input_color))
- return 0
+ return FALSE
if(color_format == 3)
r_val = hex2num(copytext(input_color, 1, 2)) * 16
g_val = hex2num(copytext(input_color, 2, 3)) * 16
@@ -243,7 +243,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
g_val = hex2num(copytext(input_color, 3, 5))
b_val = hex2num(copytext(input_color, 5, 7))
else
- return 0 //If the color format is not 3 or 6, you're using an unexpected way to represent a color.
+ return FALSE //If the color format is not 3 or 6, you're using an unexpected way to represent a color.
r_val += (255 - r_val) * 0.4
if(r_val > 255)
@@ -693,32 +693,32 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
var/mob/living/target = input("Your new life begins today!", "Possess Mob", null, null) as null|anything in possessible
if(!target)
- return 0
+ return FALSE
if(ismegafauna(target))
to_chat(src, "This creature is too powerful for you to possess! ")
- return 0
+ return FALSE
if(can_reenter_corpse && mind && mind.current)
if(alert(src, "Your soul is still tied to your former life as [mind.current.name], if you go forward there is no going back to that life. Are you sure you wish to continue?", "Move On", "Yes", "No") == "No")
- return 0
+ return FALSE
if(target.key)
to_chat(src, "Someone has taken this body while you were choosing! ")
- return 0
+ return FALSE
transfer_ckey(target, FALSE)
target.AddElement(/datum/element/ghost_role_eligibility, penalize_on_ghost = FALSE, free_ghosting = TRUE)
target.faction = list("neutral")
- return 1
+ return TRUE
//this is a mob verb instead of atom for performance reasons
//see /mob/verb/examinate() in mob.dm for more info
//overridden here and in /mob/living for different point span classes and sanity checks
/mob/dead/observer/pointed(atom/A as mob|obj|turf in fov_view())
if(!..())
- return 0
+ return FALSE
usr.visible_message("[src] points to [A]. ")
- return 1
+ return TRUE
/mob/dead/observer/verb/view_manifest()
set name = "View Crew Manifest"
@@ -839,7 +839,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
return IsAdminGhost(usr)
/mob/dead/observer/is_literate()
- return 1
+ return TRUE
/mob/dead/observer/vv_edit_var(var_name, var_value)
. = ..()
@@ -947,7 +947,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
// Ghosts have no momentum, being massless ectoplasm
/mob/dead/observer/Process_Spacemove(movement_dir)
- return 1
+ return TRUE
/mob/dead/observer/vv_edit_var(var_name, var_value)
. = ..()
diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm
index 51659a2904..0f90e27cec 100644
--- a/code/modules/mob/inventory.dm
+++ b/code/modules/mob/inventory.dm
@@ -292,10 +292,18 @@
//The following functions are the same save for one small difference
-//for when you want the item to end up on the ground
-//will force move the item to the ground and call the turf's Entered
-/mob/proc/dropItemToGround(obj/item/I, force = FALSE)
- return doUnEquip(I, force, drop_location(), FALSE)
+/**
+ * Used to drop an item (if it exists) to the ground.
+ * * Will pass as TRUE is successfully dropped, or if there is no item to drop.
+ * * Will pass FALSE if the item can not be dropped due to TRAIT_NODROP via doUnEquip()
+ * If the item can be dropped, it will be forceMove()'d to the ground and the turf's Entered() will be called.
+*/
+/mob/proc/dropItemToGround(obj/item/I, force = FALSE, silent = FALSE, invdrop = TRUE)
+ if (isnull(I))
+ return TRUE
+
+ SEND_SIGNAL(src, COMSIG_MOB_DROPPING_ITEM)
+ . = doUnEquip(I, force, drop_location(), FALSE, invdrop = invdrop, silent = silent)
//for when the item will be immediately placed in a loc other than the ground
/mob/proc/transferItemToLoc(obj/item/I, newloc = null, force = FALSE, silent = TRUE)
@@ -371,7 +379,7 @@
//returns 0 if it cannot, 1 if successful
/mob/proc/equip_to_appropriate_slot(obj/item/W, clothing_check = FALSE)
if(!istype(W))
- return 0
+ return FALSE
var/slot_priority = W.slot_equipment_priority
if(!slot_priority)
@@ -388,9 +396,9 @@
for(var/slot in slot_priority)
if(equip_to_slot_if_possible(W, slot, FALSE, TRUE, TRUE, FALSE, clothing_check)) //qdel_on_fail = 0; disable_warning = 1; redraw_mob = 1
- return 1
+ return TRUE
- return 0
+ return FALSE
/**
* Used to return a list of equipped items on a mob; does not include held items (use get_all_gear)
diff --git a/code/modules/mob/living/bloodcrawl.dm b/code/modules/mob/living/bloodcrawl.dm
index 5cc8e40464..f7f4bc427d 100644
--- a/code/modules/mob/living/bloodcrawl.dm
+++ b/code/modules/mob/living/bloodcrawl.dm
@@ -33,7 +33,7 @@
//entry when holding them
// literally only an option for carbons though
to_chat(C, "You may not hold items while blood crawling! ")
- return 0
+ return FALSE
var/obj/item/bloodcrawl/B1 = new(C)
var/obj/item/bloodcrawl/B2 = new(C)
B1.icon_state = "bloodhand_left"
@@ -45,7 +45,7 @@
spawn(0)
bloodpool_sink(B)
src.mob_transforming = FALSE
- return 1
+ return TRUE
/mob/living/proc/bloodpool_sink(obj/effect/decal/cleanable/B)
var/turf/mobloc = get_turf(src.loc)
@@ -89,7 +89,7 @@
var/success = bloodcrawl_consume(victim)
if(!success)
to_chat(src, "You happily devour... nothing? Your meal vanished at some point! ")
- return 1
+ return TRUE
/mob/living/proc/bloodcrawl_consume(mob/living/victim)
to_chat(src, "You begin to feast on [victim]. You can not move while you are doing this. ")
@@ -161,7 +161,7 @@
/mob/living/proc/phasein(obj/effect/decal/cleanable/B)
if(src.mob_transforming)
to_chat(src, "Finish eating first! ")
- return 0
+ return FALSE
B.visible_message("[B] starts to bubble... ")
if(!do_after(src, 20, target = B))
return
@@ -178,4 +178,4 @@
qdel(BC)
qdel(src.holder)
src.holder = null
- return 1
+ return TRUE
diff --git a/code/modules/mob/living/brain/MMI.dm b/code/modules/mob/living/brain/MMI.dm
index f5a2368a60..847d3370c1 100644
--- a/code/modules/mob/living/brain/MMI.dm
+++ b/code/modules/mob/living/brain/MMI.dm
@@ -47,8 +47,20 @@
if(brain)
to_chat(user, "There's already a brain in the MMI! ")
return
- if(!newbrain.brainmob)
- to_chat(user, "You aren't sure where this brain came from, but you're pretty sure it's a useless brain! ")
+ if(newbrain.brainmob?.suiciding)
+ to_chat(user, span_warning("[newbrain] is completely useless."))
+ return
+ if(!newbrain.brainmob?.mind || !newbrain.brainmob)
+ var/install = tgui_alert(user, "[newbrain] is inactive, slot it in anyway?", "Installing Brain", list("Yes", "No"))
+ if(install != "Yes")
+ return
+ if(!user.transferItemToLoc(newbrain, src))
+ return
+ user.visible_message(span_notice("[user] sticks [newbrain] into [src]."), span_notice("[src]'s indicator light turns red as you insert [newbrain]. Its brainwave activity alarm buzzes."))
+ brain = newbrain
+ brain.organ_flags |= ORGAN_FROZEN
+ name = "[initial(name)]: [copytext(newbrain.name, 1, -8)]"
+ update_appearance()
return
if(!user.transferItemToLoc(O, src))
@@ -97,15 +109,15 @@
name = initial(name)
/obj/item/mmi/proc/eject_brain(mob/user)
- brainmob.container = null //Reset brainmob mmi var.
- brainmob.forceMove(brain) //Throw mob into brain.
- brainmob.stat = DEAD
- brainmob.emp_damage = 0
- brainmob.reset_perspective() //so the brainmob follows the brain organ instead of the mmi. And to update our vision
- brainmob.remove_from_alive_mob_list() //Get outta here
- brainmob.add_to_dead_mob_list()
- brain.brainmob = brainmob //Set the brain to use the brainmob
- brainmob = null //Set mmi brainmob var to null
+ if(brain.brainmob)
+ brainmob.container = null //Reset brainmob mmi var.
+ brainmob.forceMove(brain) //Throw mob into brain.
+ brainmob.stat = DEAD
+ brainmob.emp_damage = 0
+ brainmob.reset_perspective() //so the brainmob follows the brain organ instead of the mmi. And to update our vision
+ brain.brainmob = brainmob //Set the brain to use the brainmob
+ log_game("[key_name(user)] has ejected the brain of [key_name(brainmob)] from an MMI at [AREACOORD(src)]")
+ brainmob = null //Set mmi brainmob var to null
if(user)
user.put_in_hands(brain) //puts brain in the user's hand or otherwise drops it on the user's turf
else
@@ -210,6 +222,38 @@
/obj/item/mmi/relaymove(mob/user)
return //so that the MMI won't get a warning about not being able to move if it tries to move
+/obj/item/mmi/proc/brain_check(mob/user)
+ var/mob/living/brain/B = brainmob
+ if(!B)
+ if(user)
+ to_chat(user, span_warning("\The [src] indicates that there is no mind present!"))
+ return FALSE
+ if(brain?.decoy_override)
+ if(user)
+ to_chat(user, span_warning("This [name] does not seem to fit!"))
+ return FALSE
+ if(!B.key || !B.mind)
+ if(user)
+ to_chat(user, span_warning("\The [src] indicates that their mind is completely unresponsive!"))
+ return FALSE
+ if(!B.client)
+ if(user)
+ to_chat(user, span_warning("\The [src] indicates that their mind is currently inactive."))
+ return FALSE
+ if(B.suiciding)
+ if(user)
+ to_chat(user, span_warning("\The [src] indicates that their mind has no will to live!"))
+ return FALSE
+ if(B.stat == DEAD)
+ if(user)
+ to_chat(user, span_warning("\The [src] indicates that the brain is dead!"))
+ return FALSE
+ if(brain?.organ_flags & ORGAN_FAILING)
+ if(user)
+ to_chat(user, span_warning("\The [src] indicates that the brain is damaged!"))
+ return FALSE
+ return TRUE
+
/obj/item/mmi/syndie
name = "Syndicate Man-Machine Interface"
desc = "Syndicate's own brand of MMI. It enforces laws designed to help Syndicate agents achieve their goals upon cyborgs and AIs created with it."
diff --git a/code/modules/mob/living/brain/brain.dm b/code/modules/mob/living/brain/brain.dm
index ca9edead48..a6a74fe4de 100644
--- a/code/modules/mob/living/brain/brain.dm
+++ b/code/modules/mob/living/brain/brain.dm
@@ -64,7 +64,7 @@
/mob/living/brain/can_be_revived()
. = 1
if(!container || health <= HEALTH_THRESHOLD_DEAD)
- return 0
+ return FALSE
/mob/living/brain/fully_replace_character_name(oldname,newname)
..()
diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm
index 1b7207d7eb..df9876d7a1 100644
--- a/code/modules/mob/living/carbon/alien/alien.dm
+++ b/code/modules/mob/living/carbon/alien/alien.dm
@@ -93,7 +93,7 @@
clear_alert("alien_fire")
/mob/living/carbon/alien/reagent_check(datum/reagent/R) //can metabolize all reagents
- return 0
+ return FALSE
/mob/living/carbon/alien/IsAdvancedToolUser()
return has_fine_manipulation
@@ -136,7 +136,7 @@ Des: Removes all infected images from the alien.
return
/mob/living/carbon/alien/canBeHandcuffed()
- return 1
+ return TRUE
/mob/living/carbon/alien/get_standard_pixel_y_offset(lying = 0)
return initial(pixel_y)
diff --git a/code/modules/mob/living/carbon/alien/alien_defense.dm b/code/modules/mob/living/carbon/alien/alien_defense.dm
index 5081fd8a14..7e38c26c8c 100644
--- a/code/modules/mob/living/carbon/alien/alien_defense.dm
+++ b/code/modules/mob/living/carbon/alien/alien_defense.dm
@@ -123,7 +123,7 @@ In all, this is a lot like the monkey code. /N
adjustEarDamage(15,60)
/mob/living/carbon/alien/soundbang_act(intensity = 1, stun_pwr = 20, damage_pwr = 5, deafen_pwr = 15)
- return 0
+ return FALSE
/mob/living/carbon/alien/acid_act(acidpwr, acid_volume)
return 0//aliens are immune to acid.
diff --git a/code/modules/mob/living/carbon/alien/damage_procs.dm b/code/modules/mob/living/carbon/alien/damage_procs.dm
index 1b16537816..8f223e88c4 100644
--- a/code/modules/mob/living/carbon/alien/damage_procs.dm
+++ b/code/modules/mob/living/carbon/alien/damage_procs.dm
@@ -1,6 +1,6 @@
/mob/living/carbon/alien/getToxLoss(toxins_type = TOX_OMNI)
- return 0
+ return FALSE
/mob/living/carbon/alien/adjustToxLoss(amount, updating_health = TRUE, forced = FALSE, toxins_type = TOX_DEFAULT) //alien immune to tox damage
return FALSE
diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
index a5ea6e1c89..ee8c27d1da 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
@@ -32,7 +32,7 @@ Doesn't work on other aliens/AI.*/
return
/obj/effect/proc_holder/alien/fire(mob/living/carbon/user)
- return 1
+ return TRUE
/obj/effect/proc_holder/alien/get_panel_text()
. = ..()
@@ -72,10 +72,10 @@ Doesn't work on other aliens/AI.*/
/obj/effect/proc_holder/alien/plant/fire(mob/living/carbon/user)
if(locate(/obj/structure/alien/weeds/node) in get_turf(user))
to_chat(user, "There's already a weed node here.")
- return 0
+ return FALSE
user.visible_message("[user] has planted some alien weeds! ")
new/obj/structure/alien/weeds/node(user.loc)
- return 1
+ return TRUE
/obj/effect/proc_holder/alien/whisper
name = "Whisper"
@@ -89,7 +89,7 @@ Doesn't work on other aliens/AI.*/
options += Ms
var/mob/living/M = input("Select who to whisper to:","Whisper to?",null) as null|mob in options
if(!M)
- return 0
+ return FALSE
if(M.anti_magic_check(FALSE, FALSE, TRUE, 0))
to_chat(user, "As you try to communicate with [M], you're suddenly stopped by a vision of a massive tinfoil wall that streches beyond visible range. It seems you've been foiled. ")
return FALSE
@@ -108,8 +108,8 @@ Doesn't work on other aliens/AI.*/
var/follow_link_whispee = FOLLOW_LINK(ded, M)
to_chat(ded, "[follow_link_user] [user] Alien Whisper --> [follow_link_whispee] [M] [msg] ")
else
- return 0
- return 1
+ return FALSE
+ return TRUE
/obj/effect/proc_holder/alien/transfer
name = "Transfer Plasma"
@@ -124,7 +124,7 @@ Doesn't work on other aliens/AI.*/
aliens_around.Add(A)
var/mob/living/carbon/M = input("Select who to transfer to:","Transfer plasma to?",null) as mob in aliens_around
if(!M)
- return 0
+ return FALSE
var/amount = input("Amount:", "Transfer Plasma to [M]") as num
if (amount)
amount = min(abs(round(amount)), user.getPlasma())
@@ -153,21 +153,21 @@ Doesn't work on other aliens/AI.*/
if(target in oview(1,user))
if(target.acid_act(200, 100))
user.visible_message("[user] vomits globs of vile stuff all over [target]. It begins to sizzle and melt under the bubbling mess of acid! ")
- return 1
+ return TRUE
else
to_chat(user, "You cannot dissolve this object. ")
- return 0
+ return FALSE
else
to_chat(src, "[target] is too far away. ")
- return 0
+ return FALSE
/obj/effect/proc_holder/alien/acid/fire(mob/living/carbon/alien/user)
var/O = input("Select what to dissolve:","Dissolve",null) as obj|turf in oview(1,user)
if(!O || user.incapacitated())
- return 0
+ return FALSE
else
return corrode(O,user)
@@ -200,7 +200,7 @@ Doesn't work on other aliens/AI.*/
/obj/effect/proc_holder/alien/neurotoxin/update_icon()
action.button_icon_state = "alien_neurotoxin_[active]"
- action.UpdateButtonIcon()
+ action.UpdateButtons()
/obj/effect/proc_holder/alien/neurotoxin/InterceptClickOn(mob/living/caller, params, atom/target)
if(..())
@@ -320,21 +320,21 @@ Doesn't work on other aliens/AI.*/
/mob/living/carbon/proc/getPlasma()
var/obj/item/organ/alien/plasmavessel/vessel = getorgan(/obj/item/organ/alien/plasmavessel)
if(!vessel)
- return 0
+ return FALSE
return vessel.storedPlasma
/mob/living/carbon/proc/adjustPlasma(amount)
var/obj/item/organ/alien/plasmavessel/vessel = getorgan(/obj/item/organ/alien/plasmavessel)
if(!vessel)
- return 0
+ return FALSE
vessel.storedPlasma = max(vessel.storedPlasma + amount,0)
vessel.storedPlasma = min(vessel.storedPlasma, vessel.max_plasma) //upper limit of max_plasma, lower limit of 0
for(var/X in abilities)
var/obj/effect/proc_holder/alien/APH = X
if(APH.has_action)
- APH.action.UpdateButtonIcon()
- return 1
+ APH.action.UpdateButtons()
+ return TRUE
/mob/living/carbon/alien/adjustPlasma(amount)
. = ..()
@@ -343,6 +343,6 @@ Doesn't work on other aliens/AI.*/
/mob/living/carbon/proc/usePlasma(amount)
if(getPlasma() >= amount)
adjustPlasma(-amount)
- return 1
+ return TRUE
- return 0
+ return FALSE
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
index 3e8a5d8bdb..ff8fae2b62 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
@@ -27,18 +27,18 @@
var/obj/item/organ/alien/hivenode/node = user.getorgan(/obj/item/organ/alien/hivenode)
if(!node) //Players are Murphy's Law. We may not expect there to ever be a living xeno with no hivenode, but they _WILL_ make it happen.
to_chat(user, "Without the hivemind, you can't possibly hold the responsibility of leadership! ")
- return 0
+ return FALSE
if(node.recent_queen_death)
to_chat(user, "Your thoughts are still too scattered to take up the position of leadership. ")
- return 0
+ return FALSE
if(!isturf(user.loc))
to_chat(user, "You can't evolve here! ")
- return 0
+ return FALSE
if(!get_alien_type(/mob/living/carbon/alien/humanoid/royal))
var/mob/living/carbon/alien/humanoid/royal/praetorian/new_xeno = new (user.loc)
user.alien_evolve(new_xeno)
- return 1
+ return TRUE
else
to_chat(user, "We already have a living royal! ")
- return 0
+ return FALSE
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm
index 3e0faf44f0..183c17fa3e 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/praetorian.dm
@@ -29,14 +29,14 @@
var/obj/item/organ/alien/hivenode/node = user.getorgan(/obj/item/organ/alien/hivenode)
if(!node) //Just in case this particular Praetorian gets violated and kept by the RD as a replacement for Lamarr.
to_chat(user, "Without the hivemind, you would be unfit to rule as queen! ")
- return 0
+ return FALSE
if(node.recent_queen_death)
to_chat(user, "You are still too burdened with guilt to evolve into a queen. ")
- return 0
+ return FALSE
if(!get_alien_type(/mob/living/carbon/alien/humanoid/royal/queen))
var/mob/living/carbon/alien/humanoid/royal/queen/new_xeno = new (user.loc)
user.alien_evolve(new_xeno)
- return 1
+ return TRUE
else
to_chat(user, "We already have an alive queen. ")
- return 0
+ return FALSE
diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm
index 8177360d4a..c74527a1ab 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid_defense.dm
@@ -19,7 +19,7 @@
playsound(loc, "punch", 25, 1, -1)
visible_message("[user] has [hitverb] [src]! ", \
"[user] has [hitverb] [src]! ", null, COMBAT_MESSAGE_RANGE)
- return 1
+ return TRUE
/mob/living/carbon/alien/humanoid/on_attack_hand(mob/living/carbon/human/M)
. = ..()
diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm
index 7e1c669e49..a5ef90f283 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm
@@ -20,7 +20,7 @@
var/alt_inhands_file = 'icons/mob/alienqueen.dmi'
/mob/living/carbon/alien/humanoid/royal/can_inject(mob/user, error_msg, target_zone, penetrate_thick = FALSE, bypass_immunity = FALSE)
- return 0
+ return FALSE
/mob/living/carbon/alien/humanoid/royal/queen
name = "alien queen"
@@ -90,20 +90,20 @@
var/obj/item/queenpromote/prom
if(get_alien_type(/mob/living/carbon/alien/humanoid/royal/praetorian/))
to_chat(user, "You already have a Praetorian! ")
- return 0
+ return FALSE
else
for(prom in user)
to_chat(user, "You discard [prom]. ")
qdel(prom)
- return 0
+ return FALSE
prom = new (user.loc)
if(!user.put_in_active_hand(prom, 1))
to_chat(user, "You must empty your hands before preparing the parasite. ")
- return 0
+ return FALSE
else //Just in case telling the player only once is not enough!
to_chat(user, "Use the royal parasite on one of your children to promote her to Praetorian! ")
- return 0
+ return FALSE
/obj/item/queenpromote
name = "\improper royal parasite"
diff --git a/code/modules/mob/living/carbon/alien/larva/inventory.dm b/code/modules/mob/living/carbon/alien/larva/inventory.dm
index b07bd180f6..5b49c3abb0 100644
--- a/code/modules/mob/living/carbon/alien/larva/inventory.dm
+++ b/code/modules/mob/living/carbon/alien/larva/inventory.dm
@@ -1,3 +1,3 @@
//can't unequip since it can't equip anything
-/mob/living/carbon/alien/larva/doUnEquip(obj/item/W, silent = FALSE)
+/mob/living/carbon/alien/larva/doUnEquip(obj/item/W, invdrop, silent = FALSE)
return
diff --git a/code/modules/mob/living/carbon/alien/larva/larva_defense.dm b/code/modules/mob/living/carbon/alien/larva/larva_defense.dm
index 5832996a2c..e40bb96b62 100644
--- a/code/modules/mob/living/carbon/alien/larva/larva_defense.dm
+++ b/code/modules/mob/living/carbon/alien/larva/larva_defense.dm
@@ -30,7 +30,7 @@
"[user] has pummeled [src]! ", null, COMBAT_MESSAGE_RANGE)
adjustBruteLoss(5 + rand(1,9))
new /datum/forced_movement(src, get_step_away(user,src, 30), 1)
- return 1
+ return TRUE
/mob/living/carbon/alien/larva/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect)
if(!no_effect && !visual_effect_icon)
diff --git a/code/modules/mob/living/carbon/alien/larva/powers.dm b/code/modules/mob/living/carbon/alien/larva/powers.dm
index 7204759db5..567f52de54 100644
--- a/code/modules/mob/living/carbon/alien/larva/powers.dm
+++ b/code/modules/mob/living/carbon/alien/larva/powers.dm
@@ -17,7 +17,7 @@
user.layer = MOB_LAYER
user.visible_message("[user] slowly peeks up from the ground...", \
"You stop hiding. ")
- return 1
+ return TRUE
/obj/effect/proc_holder/alien/larva_evolve
@@ -57,7 +57,7 @@
new_xeno = new /mob/living/carbon/alien/humanoid/drone(L.loc)
L.alien_evolve(new_xeno)
- return 0
+ return FALSE
else
to_chat(user, "You are not fully grown. ")
- return 0
+ return FALSE
diff --git a/code/modules/mob/living/carbon/alien/life.dm b/code/modules/mob/living/carbon/alien/life.dm
index b56c897b03..f0abf405e9 100644
--- a/code/modules/mob/living/carbon/alien/life.dm
+++ b/code/modules/mob/living/carbon/alien/life.dm
@@ -9,7 +9,7 @@
if(!breath || (breath.total_moles() == 0))
//Aliens breathe in vaccuum
- return 0
+ return FALSE
var/toxins_used = 0
var/tox_detect_threshold = 0.02
diff --git a/code/modules/mob/living/carbon/alien/screen.dm b/code/modules/mob/living/carbon/alien/screen.dm
index 4d90fd4b32..1f8902a584 100644
--- a/code/modules/mob/living/carbon/alien/screen.dm
+++ b/code/modules/mob/living/carbon/alien/screen.dm
@@ -1,7 +1,7 @@
/mob/living/carbon/alien/proc/updatePlasmaDisplay()
if(hud_used) //clientless aliens
- hud_used.alien_plasma_display.maptext = "[round(getPlasma())]
"
+ hud_used.alien_plasma_display.maptext = MAPTEXT("[round(getPlasma())]
")
/mob/living/carbon/alien/larva/updatePlasmaDisplay()
return
diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm
index 220b3efde4..8342c4e948 100644
--- a/code/modules/mob/living/carbon/alien/special/facehugger.dm
+++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm
@@ -97,12 +97,12 @@
/obj/item/clothing/mask/facehugger/on_found(mob/finder)
if(stat == CONSCIOUS)
return HasProximity(finder)
- return 0
+ return FALSE
/obj/item/clothing/mask/facehugger/HasProximity(atom/movable/AM as mob|obj)
if(CanHug(AM) && Adjacent(AM))
return Leap(AM)
- return 0
+ return FALSE
/obj/item/clothing/mask/facehugger/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback)
if(!..())
@@ -256,7 +256,7 @@
return FALSE
if(ismonkey(M))
- return 1
+ return TRUE
var/mob/living/carbon/C = M
if(ishuman(C) && !(ITEM_SLOT_MASK in C.dna.species.no_equip))
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 419a75eff2..fba96230b1 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -125,8 +125,8 @@
take_bodypart_damage(10 + 5 * extra_speed, check_armor = TRUE, wound_bonus = extra_speed * 5)
victim.DefaultCombatKnockdown(20)
DefaultCombatKnockdown(20)
- visible_message("[src] crashes into [victim] [extra_speed ? "really hard" : ""], knocking them both over! ",\
- "You violently crash into [victim] [extra_speed ? "extra hard" : ""]! ")
+ visible_message("[src] crashes into [victim][extra_speed ? " really hard" : ""], knocking them both over! ",\
+ "You violently crash into [victim][extra_speed ? " extra hard" : ""]! ")
playsound(src,'sound/weapons/punch1.ogg',50,1)
@@ -134,33 +134,35 @@
/mob/living/carbon/proc/toggle_throw_mode()
if(stat)
return
- if(in_throw_mode)
+ if(throw_mode)
throw_mode_off()
else
throw_mode_on()
/mob/living/carbon/proc/throw_mode_off()
- in_throw_mode = 0
+ throw_mode = FALSE
if(client && hud_used)
hud_used.throw_icon.icon_state = "act_throw_off"
/mob/living/carbon/proc/throw_mode_on()
- in_throw_mode = 1
+ throw_mode = TRUE
if(client && hud_used)
hud_used.throw_icon.icon_state = "act_throw_on"
/mob/proc/throw_item(atom/target)
SEND_SIGNAL(src, COMSIG_MOB_THROW, target)
- return
+ SEND_GLOBAL_SIGNAL(COMSIG_GLOB_CARBON_THROW_THING, src, target)
+ return TRUE
/mob/living/carbon/throw_item(atom/target)
+ . = ..()
throw_mode_off()
if(!target || !isturf(loc))
- return
+ return FALSE
if(istype(target, /atom/movable/screen))
- return
+ return FALSE
//CIT CHANGES - makes it impossible to throw while in stamina softcrit
if(IS_STAMCRIT(src))
@@ -170,65 +172,62 @@
var/random_turn = a_intent == INTENT_HARM
//END OF CIT CHANGES
- var/obj/item/I = get_active_held_item()
-
var/atom/movable/thrown_thing
- var/mob/living/throwable_mob
+ var/obj/item/held_item = get_active_held_item()
+ var/verb_text = pick("throw", "toss", "hurl", "chuck", "fling")
+ if(prob(0.5))
+ verb_text = "yeet"
- if(istype(I, /obj/item/clothing/head/mob_holder))
- var/obj/item/clothing/head/mob_holder/holder = I
- if(holder.held_mob)
- throwable_mob = holder.held_mob
- holder.release()
-
- if(!I || throwable_mob)
- if(!throwable_mob && pulling && isliving(pulling) && grab_state >= GRAB_AGGRESSIVE)
- throwable_mob = pulling
-
- if(throwable_mob && !throwable_mob.buckled)
- thrown_thing = throwable_mob
- if(pulling)
+ var/neckgrab_throw = FALSE
+ if(!held_item)
+ if(pulling && isliving(pulling) && grab_state >= GRAB_AGGRESSIVE)
+ var/mob/living/throwable_mob = pulling
+ if(!throwable_mob.buckled)
+ thrown_thing = throwable_mob
+ if(grab_state >= GRAB_NECK)
+ neckgrab_throw = TRUE
stop_pulling()
- if(HAS_TRAIT(src, TRAIT_PACIFISM))
- to_chat(src, "You gently let go of [throwable_mob]. ")
- return
- if(!UseStaminaBuffer(STAM_COST_THROW_MOB * ((throwable_mob.mob_size+1)**2), TRUE))
- return
- var/turf/start_T = get_turf(loc) //Get the start and target tile for the descriptors
- var/turf/end_T = get_turf(target)
- if(start_T && end_T)
- log_combat(src, throwable_mob, "thrown", addition="grab from tile in [AREACOORD(start_T)] towards tile at [AREACOORD(end_T)]")
-
- else if(!(I.item_flags & ABSTRACT) && !HAS_TRAIT(I, TRAIT_NODROP))
- thrown_thing = I
- dropItemToGround(I)
-
- if(HAS_TRAIT(src, TRAIT_PACIFISM) && I.throwforce)
- to_chat(src, "You set [I] down gently on the ground. ")
- return
-
- if(!UseStaminaBuffer(I.getweight(src, STAM_COST_THROW_MULT, SKILL_THROW_STAM_COST), warn = TRUE))
- return
-
- if(thrown_thing)
- var/power_throw = 0
- if(HAS_TRAIT(src, TRAIT_HULK))
- power_throw++
- if(pulling && grab_state >= GRAB_NECK)
- power_throw++
- visible_message("[src] throws [thrown_thing][power_throw ? " really hard!" : "."] ", \
- "You throw [thrown_thing][power_throw ? " really hard!" : "."] ")
- log_message("has thrown [thrown_thing] [power_throw ? "really hard" : ""]", LOG_ATTACK)
- do_attack_animation(target, no_effect = 1)
- playsound(loc, 'sound/weapons/punchmiss.ogg', 50, 1, -1)
- newtonian_move(get_dir(target, src))
- thrown_thing.safe_throw_at(target, thrown_thing.throw_range, thrown_thing.throw_speed + power_throw, src, null, null, null, move_force, random_turn)
+ if(HAS_TRAIT(src, TRAIT_PACIFISM))
+ to_chat(src, span_notice("You gently let go of [throwable_mob]."))
+ return FALSE
+ if(!UseStaminaBuffer(STAM_COST_THROW_MOB * ((throwable_mob.mob_size+1)**2), TRUE))
+ return FALSE
+ else
+ thrown_thing = held_item.on_thrown(src, target)
+ if(!thrown_thing)
+ return FALSE
+ if(isliving(thrown_thing))
+ var/turf/start_T = get_turf(loc) //Get the start and target tile for the descriptors
+ var/turf/end_T = get_turf(target)
+ if(start_T && end_T)
+ log_combat(src, thrown_thing, "thrown", addition="grab from tile in [AREACOORD(start_T)] towards tile at [AREACOORD(end_T)]")
+ var/power_throw = 0
+ if(HAS_TRAIT(src, TRAIT_HULK))
+ power_throw++
+ if(HAS_TRAIT(src, TRAIT_DWARF))
+ power_throw--
+ if(HAS_TRAIT(thrown_thing, TRAIT_DWARF))
+ power_throw++
+ if(neckgrab_throw)
+ power_throw++
+ if(isitem(thrown_thing))
+ var/obj/item/thrown_item = thrown_thing
+ if(thrown_item.throw_verb)
+ verb_text = thrown_item.throw_verb
+ visible_message(span_danger("[src] [verb_text][plural_s(verb_text)] [thrown_thing][power_throw ? " really hard!" : "."]"), \
+ span_danger("You [verb_text] [thrown_thing][power_throw ? " really hard!" : "."]"))
+ log_message("has thrown [thrown_thing] [power_throw > 0 ? "really hard" : ""]", LOG_ATTACK)
+ do_attack_animation(target, no_effect = 1)
+ var/extra_throw_range = 0 // HAS_TRAIT(src, TRAIT_THROWINGARM) ? 2 : 0
+ playsound(loc, 'sound/weapons/punchmiss.ogg', 50, 1, -1)
+ newtonian_move(get_dir(target, src))
+ thrown_thing.safe_throw_at(target, thrown_thing.throw_range + extra_throw_range, max(1,thrown_thing.throw_speed + power_throw), src, null, null, null, move_force, random_turn)
/mob/living/carbon/restrained(ignore_grab)
. = (handcuffed || (!ignore_grab && pulledby && pulledby.grab_state >= GRAB_AGGRESSIVE))
/mob/living/carbon/proc/canBeHandcuffed()
- return 0
+ return FALSE
/mob/living/carbon/Topic(href, href_list)
..()
@@ -451,7 +450,7 @@
/mob/living/carbon/attack_ui(slot)
if(!has_hand_for_held_index(active_hand_index))
- return 0
+ return FALSE
return ..()
/mob/living/carbon/proc/vomit(lost_nutrition = 10, blood = FALSE, stun = TRUE, distance = 1, message = TRUE, vomit_type = VOMIT_TOXIC, harm = TRUE, force = FALSE, purge_ratio = 0.1)
@@ -892,7 +891,7 @@
/mob/living/carbon/can_be_revived()
. = ..()
if(!getorgan(/obj/item/organ/brain) && (!mind || !mind.has_antag_datum(/datum/antagonist/changeling)))
- return 0
+ return FALSE
/mob/living/carbon/harvest(mob/living/user)
if(QDELETED(src))
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index a7f205624d..e6aa6abf45 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -48,22 +48,30 @@
if(affecting && affecting.dismemberable && affecting.get_damage() >= (affecting.max_damage - P.dismemberment))
affecting.dismember(P.damtype)
-/mob/living/carbon/catch_item(obj/item/I, skip_throw_mode_check = FALSE)
- . = ..()
- if(!HAS_TRAIT(src, TRAIT_AUTO_CATCH_ITEM) && !skip_throw_mode_check && !in_throw_mode)
+/mob/living/carbon/proc/can_catch_item(skip_throw_mode_check)
+ . = FALSE
+ if(!HAS_TRAIT(src, TRAIT_AUTO_CATCH_ITEM) && !skip_throw_mode_check && !throw_mode)
return
- if(incapacitated())
+ if(get_active_held_item())
return
- if (get_active_held_item())
- if (HAS_TRAIT_FROM(src, TRAIT_AUTO_CATCH_ITEM,RISING_BASS_TRAIT))
- visible_message("[src] chops [I] out of the air! ")
+ if(HAS_TRAIT(src, TRAIT_HANDS_BLOCKED))
+ return
+ return TRUE
+
+/mob/living/carbon/hitby(atom/movable/AM, skipcatch, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)
+ if(!skipcatch && can_catch_item() && isitem(AM) && isturf(AM.loc))
+ var/obj/item/I = AM
+ I.attack_hand(src)
+ if(get_active_held_item() == I) //if our attack_hand() picks up the item...
+ visible_message(span_warning("[src] catches [I]!"), \
+ span_userdanger("You catch [I] in mid-air!"))
+ throw_mode_off()
return TRUE
- return
- I.attack_hand(src)
- if(get_active_held_item() == I) //if our attack_hand() picks up the item...
- visible_message("[src] catches [I]! ") //catch that sucker!
- throw_mode_off()
+ if(isitem(AM) && HAS_TRAIT_FROM(src, TRAIT_AUTO_CATCH_ITEM, RISING_BASS_TRAIT))
+ visible_message(span_warning("[src] chops [AM] out of the air!"), \
+ span_userdanger("You chop [AM] out of the air!"))
return TRUE
+ return ..()
/mob/living/carbon/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1)
var/totitemdamage = pre_attacked_by(I, user) * damage_multiplier
diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm
index e70b1bcc92..a1ce8d2095 100644
--- a/code/modules/mob/living/carbon/carbon_movement.dm
+++ b/code/modules/mob/living/carbon/carbon_movement.dm
@@ -7,24 +7,24 @@
/mob/living/carbon/Process_Spacemove(movement_dir = 0)
if(..())
- return 1
+ return TRUE
if(!isturf(loc))
- return 0
+ return FALSE
// Do we have a jetpack implant (and is it on)?
var/obj/item/organ/cyberimp/chest/thrusters/T = getorganslot(ORGAN_SLOT_THRUSTERS)
if(istype(T) && movement_dir && T.allow_thrust(0.01))
- return 1
+ return TRUE
var/obj/item/I = get_jetpack()
if(istype(I, /obj/item/tank/jetpack))
var/obj/item/tank/jetpack/J = I
if((movement_dir || J.stabilizers) && J.allow_thrust(0.01, src))
- return 1
+ return TRUE
else if(istype(I, /obj/item/mod/module/jetpack))
var/obj/item/mod/module/jetpack/J = I
if((movement_dir || J.stabilizers) && J.allow_thrust())
- return 1
+ return TRUE
/mob/living/carbon/Moved()
. = ..()
diff --git a/code/modules/mob/living/carbon/carbon_update_icons.dm b/code/modules/mob/living/carbon/carbon_update_icons.dm
index cd9cd5db4c..6b1b6e222e 100644
--- a/code/modules/mob/living/carbon/carbon_update_icons.dm
+++ b/code/modules/mob/living/carbon/carbon_update_icons.dm
@@ -13,7 +13,7 @@
/mob/living/carbon/regenerate_icons()
if(mob_transforming)
- return 1
+ return TRUE
update_inv_hands()
update_inv_handcuffed()
update_inv_legcuffed()
diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm
index 85c188d2ab..df0515196e 100644
--- a/code/modules/mob/living/carbon/damage_procs.dm
+++ b/code/modules/mob/living/carbon/damage_procs.dm
@@ -4,7 +4,7 @@
SEND_SIGNAL(src, COMSIG_MOB_APPLY_DAMAGE, damage, damagetype, def_zone)
var/hit_percent = (100-blocked)/100
if(!forced && hit_percent <= 0)
- return 0
+ return FALSE
var/obj/item/bodypart/BP = null
if(!spread_damage)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index a4de8cccc1..2a40de3c97 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -478,17 +478,17 @@
return
if(is_mouth_covered())
to_chat(src, "Remove your mask first! ")
- return 0
+ return FALSE
if(C.is_mouth_covered())
to_chat(src, "Remove [p_their()] mask first! ")
- return 0
+ return FALSE
if(C.cpr_time < world.time + 30)
visible_message("[src] is trying to perform CPR on [C.name]! ", \
"You try to perform CPR on [C.name]... Hold still! ")
if(!do_mob(src, C))
to_chat(src, "You fail to perform CPR on [C]! ")
- return 0
+ return FALSE
var/they_breathe = !HAS_TRAIT(C, TRAIT_NOBREATH)
var/they_lung = C.getorganslot(ORGAN_SLOT_LUNGS)
@@ -671,7 +671,7 @@
"You try to throw up, but there's nothing in your stomach! ")
if(stun)
DefaultCombatKnockdown(200)
- return 1
+ return TRUE
..()
/mob/living/carbon/human/vv_get_dropdown()
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 5941efe087..7c0e6f4db8 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -1,6 +1,6 @@
/mob/living/carbon/human/getarmor(def_zone, type)
if(HAS_TRAIT(src, TRAIT_ARMOR_BROKEN)) //trait that makes it act as if you have no armor at all, you take natural damage from all sources
- return 0
+ return FALSE
var/armorval = 0
var/organnum = 0
@@ -22,7 +22,7 @@
/mob/living/carbon/human/proc/checkarmor(obj/item/bodypart/def_zone, d_type)
if(!d_type || !def_zone)
- return 0
+ return FALSE
var/protection = 0
var/list/body_parts = list(head, wear_mask, wear_suit, w_uniform, back, gloves, shoes, belt, s_store, glasses, ears, wear_id, wear_neck) //Everything but pockets. Pockets are l_store and r_store. (if pockets were allowed, putting something armored, gloves or hats for example, would double up on the armor)
for(var/bp in body_parts)
@@ -68,12 +68,16 @@
/mob/living/carbon/human/proc/check_martial_melee_block()
if(mind)
- if(mind.martial_art && prob(mind.martial_art.block_chance) && mind.martial_art.can_use(src) && in_throw_mode && !incapacitated(FALSE, TRUE))
+ if(mind.martial_art && prob(mind.martial_art.block_chance) && mind.martial_art.can_use(src) && throw_mode && !incapacitated(FALSE, TRUE))
return TRUE
return FALSE
/mob/living/carbon/human/hitby(atom/movable/AM, skipcatch = FALSE, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)
- return dna?.species?.spec_hitby(AM, src) || ..()
+ if(dna?.species)
+ var/spec_return = dna.species.spec_hitby(AM, src)
+ if(spec_return)
+ return spec_return
+ return ..()
/mob/living/carbon/human/grabbedby(mob/living/carbon/user, supress_message = 0)
if(user == src && pulling && !pulling.anchored && grab_state >= GRAB_AGGRESSIVE && (HAS_TRAIT(src, TRAIT_FAT)) && ismonkey(pulling))
@@ -89,7 +93,7 @@
/mob/living/carbon/human/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1)
if(!I || !user)
- return 0
+ return FALSE
var/obj/item/bodypart/affecting
if(user == src)
@@ -121,7 +125,7 @@
"[user] [hulk_verb_continous] you! ", null, COMBAT_MESSAGE_RANGE, null, user,
"You [hulk_verb_simple] [src]! ")
apply_damage(15, BRUTE, wound_bonus=10)
- return 1
+ return TRUE
/mob/living/carbon/human/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
. = ..()
@@ -164,7 +168,7 @@
if(..()) //successful monkey bite, this handles disease contraction.
var/damage = rand(1, 3)
apply_damage(damage, BRUTE, affecting, run_armor_check(affecting, MELEE))
- return 1
+ return TRUE
/mob/living/carbon/human/attack_alien(mob/living/carbon/alien/humanoid/M)
. = ..()
@@ -179,7 +183,7 @@
visible_message("[M] has lunged at [src]! ", \
"[M] has lunged at you! ", target = M, \
target_message = "You have lunged at [src]! ")
- return 0
+ return FALSE
var/obj/item/bodypart/affecting = get_bodypart(ran_zone(M.zone_selected))
if(!affecting)
affecting = get_bodypart(BODY_ZONE_CHEST)
@@ -191,7 +195,7 @@
target_message = "You have slashed at [src]! ")
log_combat(M, src, "attacked")
if(!dismembering_strike(M, M.zone_selected)) //Dismemberment successful
- return 1
+ return TRUE
apply_damage(damage, BRUTE, affecting, armor_block)
if(M.a_intent == INTENT_DISARM) //Always drop item in hand, if no item, get stun instead.
@@ -248,7 +252,7 @@
var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
if(!dam_zone) //Dismemberment successful
- return 1
+ return TRUE
var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone))
if(!affecting)
@@ -525,7 +529,7 @@
for(var/obj/item/I in inventory_items_to_kill)
I.acid_act(acidpwr, acid_volume)
- return 1
+ return TRUE
/mob/living/carbon/human/singularity_act()
var/gain = 20
@@ -817,7 +821,7 @@
to_chat(src, "\t There is \a [I] stuck to your [LB.name]! ")
else
to_chat(src, "\t There is \a [I] embedded in your [LB.name]! ")
-
+
/mob/living/carbon/human/damage_clothes(damage_amount, damage_type = BRUTE, damage_flag = 0, def_zone)
if(damage_type != BRUTE && damage_type != BURN)
diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm
index 2c58da29c9..8029ebdeab 100644
--- a/code/modules/mob/living/carbon/human/human_helpers.dm
+++ b/code/modules/mob/living/carbon/human/human_helpers.dm
@@ -103,11 +103,11 @@
/mob/living/carbon/human/can_track(mob/living/user)
if(wear_id && istype(wear_id.GetID(), /obj/item/card/id/syndicate))
- return 0
+ return FALSE
if(istype(head, /obj/item/clothing/head))
var/obj/item/clothing/head/hat = head
if(hat.blockTracking)
- return 0
+ return FALSE
return ..()
diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm
index 141fbb89d7..4e9c58e1a4 100644
--- a/code/modules/mob/living/carbon/human/human_movement.dm
+++ b/code/modules/mob/living/carbon/human/human_movement.dm
@@ -11,14 +11,14 @@
/mob/living/carbon/human/slip(knockdown_amount, obj/O, lube)
if(HAS_TRAIT(src, TRAIT_NOSLIPALL))
- return 0
+ return FALSE
if (!(lube & GALOSHES_DONT_HELP))
if(HAS_TRAIT(src, TRAIT_NOSLIPWATER))
- return 0
+ return FALSE
if(shoes && istype(shoes, /obj/item/clothing))
var/obj/item/clothing/CS = shoes
if (CS.clothing_flags & NOSLIP)
- return 0
+ return FALSE
if (lube & SLIDE_ICE)
if(shoes && istype(shoes, /obj/item/clothing))
var/obj/item/clothing/CS = shoes
@@ -32,7 +32,7 @@
if(shoes && istype(shoes, /obj/item/clothing))
var/obj/item/clothing/S = shoes
if (S.clothing_flags & NOSLIP)
- return 0
+ return FALSE
return ..()
/mob/living/carbon/human/mob_has_gravity()
diff --git a/code/modules/mob/living/carbon/human/innate_abilities/blobform.dm b/code/modules/mob/living/carbon/human/innate_abilities/blobform.dm
index 482268f8f5..177444503b 100644
--- a/code/modules/mob/living/carbon/human/innate_abilities/blobform.dm
+++ b/code/modules/mob/living/carbon/human/innate_abilities/blobform.dm
@@ -37,7 +37,7 @@
to_chat(owner, "There's something stuck to your hand, stopping you from transforming!")
return
if(IsAvailable())
- UpdateButtonIcon()
+ UpdateButtons()
var/mutcolor = owner.get_ability_property(INNATE_ABILITY_SLIME_BLOBFORM, PROPERTY_BLOBFORM_COLOR) || ("#" + H.dna.features["mcolor"])
if(!is_puddle)
if(CHECK_MOBILITY(H, MOBILITY_USE)) //if we can use items, we can turn into a puddle
@@ -78,7 +78,7 @@
owner.update_antag_overlays()
transforming = FALSE
- UpdateButtonIcon()
+ UpdateButtons()
else
detransform()
else
@@ -109,4 +109,4 @@
squeak.RemoveComponent()
H.regenerate_icons()
transforming = FALSE
- UpdateButtonIcon()
+ UpdateButtons()
diff --git a/code/modules/mob/living/carbon/human/innate_abilities/limb_regeneration.dm b/code/modules/mob/living/carbon/human/innate_abilities/limb_regeneration.dm
index 6f3809c232..71b15bda2d 100644
--- a/code/modules/mob/living/carbon/human/innate_abilities/limb_regeneration.dm
+++ b/code/modules/mob/living/carbon/human/innate_abilities/limb_regeneration.dm
@@ -12,7 +12,7 @@
var/mob/living/carbon/human/H = owner
var/list/limbs_to_heal = H.get_missing_limbs()
if(limbs_to_heal.len < 1)
- return 0
+ return FALSE
var/mode = H.get_ability_property(INNATE_ABILITY_LIMB_REGROWTH, PROPERTY_LIMB_REGROWTH_USAGE_TYPE)
switch(mode)
if(REGROWTH_USES_BLOOD)
@@ -20,7 +20,7 @@
return TRUE
else
return FALSE
- return 0
+ return FALSE
/datum/action/innate/ability/limb_regrowth/Activate()
var/mob/living/carbon/human/H = owner
diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm
index 2dce987449..ace5cbaa6f 100644
--- a/code/modules/mob/living/carbon/human/inventory.dm
+++ b/code/modules/mob/living/carbon/human/inventory.dm
@@ -282,9 +282,9 @@
else
O = outfit
if(!istype(O))
- return 0
+ return FALSE
if(!O)
- return 0
+ return FALSE
return O.equip(src, visualsOnly, preference_source)
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 4221df31f6..bd32a08d9a 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -223,7 +223,7 @@
if(cold)
//CITADEL EDIT Mandatory for vore code.
if(istype(loc, /obj/item/dogborg/sleeper) || isbelly(loc) || ismob(loc))
- return 1 //freezing to death in sleepers ruins fun.
+ return TRUE //freezing to death in sleepers ruins fun.
//END EDIT
temperature = max(temperature, 2.7) //There is an occasional bug where the temperature is miscalculated in ares with a small amount of gas on them, so this is necessary to ensure that that bug does not affect this calculation. Space's temperature is 2.7K and most suits that are intended to protect against any cold, protect down to 2.0K.
var/thermal_protection_flags = cold ? get_cold_protection_flags(temperature) : get_heat_protection_flags(temperature)
@@ -254,7 +254,7 @@
if(missing_body_parts_flags & HAND_RIGHT)
max_protection -= THERMAL_PROTECTION_HAND_RIGHT
if(max_protection == 0) //Is it even a man if it doesn't have a body at all? Early return to avoid division by zero.
- return 1
+ return TRUE
var/thermal_protection = 0
if(thermal_protection_flags)
diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm
index 22cb10026b..7c4ba5e719 100644
--- a/code/modules/mob/living/carbon/human/say.dm
+++ b/code/modules/mob/living/carbon/human/say.dm
@@ -84,7 +84,7 @@
ears.talk_into(src, message, message_mode, spans, language)
return ITALICS | REDUCE_RANGE
- return 0
+ return FALSE
/mob/living/carbon/human/get_alt_name()
if(name != GetVoice())
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index d9424d972b..3ad1101c96 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -321,8 +321,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
//Please override this locally if you want to define when what species qualifies for what rank if human authority is enforced.
/datum/species/proc/qualifies_for_rank(rank, list/features) //SPECIES JOB RESTRICTIONS
//if(rank in GLOB.command_positions) Left as an example: The format qualifies for rank takes.
- // return 0 //It returns false when it runs the proc so they don't get jobs from the global list.
- return 1 //It returns 1 to say they are a-okay to continue.
+ // return FALSE //It returns false when it runs the proc so they don't get jobs from the global list.
+ return TRUE //It returns 1 to say they are a-okay to continue.
/**
* Corrects organs in a carbon, removing ones it doesn't need and adding ones it does.
@@ -1589,7 +1589,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
H.throw_alert("nutrition", /atom/movable/screen/alert/starving)
/datum/species/proc/update_health_hud(mob/living/carbon/human/H)
- return 0
+ return FALSE
/datum/species/proc/handle_mutations_and_radiation(mob/living/carbon/human/H)
. = FALSE
@@ -1645,7 +1645,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
target.help_shake_act(user)
if(target != user)
log_combat(user, target, "shaked")
- return 1
+ return TRUE
else
var/we_breathe = !HAS_TRAIT(user, TRAIT_NOBREATH)
var/we_lung = user.getorganslot(ORGAN_SLOT_LUNGS)
@@ -1661,12 +1661,12 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(target.check_martial_melee_block())
target.visible_message("[target] blocks [user]'s grab attempt! ", target = user, \
target_message = "[target] blocks your grab attempt! ")
- return 0
+ return FALSE
if(attacker_style && attacker_style.grab_act(user,target))
- return 1
+ return TRUE
else
target.grabbedby(user)
- return 1
+ return TRUE
/datum/species/proc/harm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style, attackchain_flags = NONE)
if(!attacker_style && HAS_TRAIT(user, TRAIT_PACIFISM))
@@ -1929,11 +1929,11 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(user != H)
var/list/block_return = list()
if(H.mob_run_block(I, totitemdamage, "the [I.name]", ((attackchain_flags & ATTACK_IS_PARRY_COUNTERATTACK)? ATTACK_TYPE_PARRY_COUNTERATTACK : NONE) | ATTACK_TYPE_MELEE, I.armour_penetration, user, affecting.body_zone, block_return) & BLOCK_SUCCESS)
- return 0
+ return FALSE
totitemdamage = block_calculate_resultant_damage(totitemdamage, block_return)
if(H.check_martial_melee_block())
H.visible_message("[H] blocks [I]! ")
- return 0
+ return FALSE
var/hit_area
@@ -1958,7 +1958,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
I.do_stagger_action(H, user, totitemdamage)
if(!totitemdamage)
- return 0 //item force is zero
+ return FALSE //item force is zero
var/bloody = 0
if(((I.damtype == BRUTE) && I.force && prob(25 + (I.force * 2))))
@@ -2167,7 +2167,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
var/hit_percent = (100-(blocked+armor))/100
hit_percent = (hit_percent * (100-H.physiology.damage_resistance))/100
if(!forced && hit_percent <= 0)
- return 0
+ return FALSE
var/obj/item/bodypart/BP = null
if(!spread_damage)
@@ -2224,7 +2224,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(BRAIN)
var/damage_amount = forced ? damage : damage * hit_percent * H.physiology.brain_mod
H.adjustOrganLoss(ORGAN_SLOT_BRAIN, damage_amount)
- return 1
+ return TRUE
/datum/species/proc/on_hit(obj/item/projectile/P, mob/living/carbon/human/H)
// called when hit by a projectile
diff --git a/code/modules/mob/living/carbon/human/species_types/arachnid.dm b/code/modules/mob/living/carbon/human/species_types/arachnid.dm
index d0ed3490f8..fabd9072c8 100644
--- a/code/modules/mob/living/carbon/human/species_types/arachnid.dm
+++ b/code/modules/mob/living/carbon/human/species_types/arachnid.dm
@@ -43,7 +43,7 @@
/datum/species/arachnid/check_weakness(obj/item/weapon, mob/living/attacker)
if(istype(weapon, /obj/item/melee/flyswatter))
return 9 //flyswatters deal 10x damage to arachnids
- return 0
+ return FALSE
/datum/species/arachnid/on_species_gain(mob/living/carbon/human/H, datum/species/old_species)
. = ..()
diff --git a/code/modules/mob/living/carbon/human/species_types/flypeople.dm b/code/modules/mob/living/carbon/human/species_types/flypeople.dm
index 86720289fe..fdd8434acc 100644
--- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm
@@ -37,4 +37,4 @@
/datum/species/fly/check_weakness(obj/item/weapon, mob/living/attacker)
if(istype(weapon, /obj/item/melee/flyswatter))
return 29 //Flyswatters deal 30x damage to flypeople.
- return 0
+ return FALSE
diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm
index 238a870279..23a0286d75 100644
--- a/code/modules/mob/living/carbon/human/species_types/golems.dm
+++ b/code/modules/mob/living/carbon/human/species_types/golems.dm
@@ -419,8 +419,9 @@
var/obj/item/I
if(istype(AM, /obj/item))
I = AM
- if(I.thrownby == H) //No throwing stuff at yourself to trigger the teleport
- return 0
+ var/mob/thrown_by = I.thrownby?.resolve()
+ if(thrown_by == H) //No throwing stuff at yourself to trigger the teleport
+ return FALSE
else
reactive_teleport(H)
@@ -462,8 +463,8 @@
/datum/action/innate/unstable_teleport/IsAvailable(silent = FALSE)
if(..())
if(world.time > last_teleport + cooldown)
- return 1
- return 0
+ return TRUE
+ return FALSE
/datum/action/innate/unstable_teleport/Activate()
var/mob/living/carbon/human/H = owner
@@ -479,9 +480,9 @@
spark_system.start()
do_teleport(H, get_turf(H), 12, asoundin = 'sound/weapons/emitter2.ogg', channel = TELEPORT_CHANNEL_BLUESPACE)
last_teleport = world.time
- UpdateButtonIcon() //action icon looks unavailable
- sleep(cooldown + 5)
- UpdateButtonIcon() //action icon looks available again
+ UpdateButtons() //action icon looks unavailable
+ //action icon looks available again
+ addtimer(CALLBACK(src, .proc/UpdateButtons), cooldown + 5)
//honk
@@ -545,7 +546,7 @@
if(istype(AM, /obj/item))
I = AM
if(I.thrownby == H) //No throwing stuff at yourself to make bananas
- return 0
+ return FALSE
else
new/obj/item/grown/bananapeel/specialpeel(get_turf(H))
last_banana = world.time
diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
index ad95cd645d..98dc00a2f4 100644
--- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm
@@ -82,7 +82,7 @@
var/datum/action/innate/ability/regrowth = H.ability_actions[INNATE_ABILITY_LIMB_REGROWTH]
if(regrowth)
- regrowth.UpdateButtonIcon()
+ regrowth.UpdateButtons()
return FALSE // to let living/handle_blood know that the species is handling blood instead
@@ -183,8 +183,8 @@
if(..())
var/mob/living/carbon/human/H = owner
if(H.blood_volume >= BLOOD_VOLUME_SLIME_SPLIT)
- return 1
- return 0
+ return TRUE
+ return FALSE
/datum/action/innate/split_body/Activate()
var/mob/living/carbon/human/H = owner
@@ -472,9 +472,9 @@
/datum/species/jelly/luminescent/proc/update_slime_actions()
integrate_extract.update_name()
- integrate_extract.UpdateButtonIcon()
- extract_minor.UpdateButtonIcon()
- extract_major.UpdateButtonIcon()
+ integrate_extract.UpdateButtons()
+ extract_minor.UpdateButtons()
+ extract_major.UpdateButtons()
/datum/species/jelly/luminescent/proc/update_glow(mob/living/carbon/C, intensity)
if(intensity)
@@ -514,7 +514,7 @@
name = "Eject Extract"
desc = "Eject your current slime extract."
-/datum/action/innate/integrate_extract/UpdateButtonIcon(status_only, force)
+/datum/action/innate/integrate_extract/UpdateButton(atom/movable/screen/movable/action_button/button, status_only, force)
if(!species || !species.current_extract)
button_icon_state = "slimeconsume"
else
diff --git a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm
index 3b7ca3fa0a..0235be3268 100644
--- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm
+++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm
@@ -70,7 +70,7 @@
H.equipOutfit(O, visualsOnly)
H.internal = H.get_item_for_held_index(2)
H.update_internals_hud_icon(1)
- return 0
+ return FALSE
/datum/species/plasmaman/random_name(gender,unique,lastname)
if(unique)
diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
index 812ae12955..5a29818ed4 100644
--- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
@@ -129,7 +129,7 @@
return ..()
/obj/item/organ/heart/nightmare/Stop()
- return 0
+ return FALSE
/obj/item/organ/heart/nightmare/on_death()
if(!owner)
diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm
index dadf169c35..9b2db8b106 100644
--- a/code/modules/mob/living/carbon/life.dm
+++ b/code/modules/mob/living/carbon/life.dm
@@ -156,7 +156,7 @@
failed_last_breath = 1
throw_alert("not_enough_oxy", /atom/movable/screen/alert/not_enough_oxy)
- return 0
+ return FALSE
var/safe_oxy_min = 16
var/safe_oxy_max = 50
@@ -312,7 +312,7 @@
//BREATH TEMPERATURE
handle_breath_temperature(breath)
- return 1
+ return TRUE
//Fourth and final link in a breath chain
/mob/living/carbon/proc/handle_breath_temperature(datum/gas_mixture/breath)
@@ -660,7 +660,7 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put
//used in human and monkey handle_environment()
/mob/living/carbon/proc/natural_bodytemperature_stabilization()
if(HAS_TRAIT(src, TRAIT_COLDBLOODED) || HAS_TRAIT(src, TRAIT_ROBOTIC_ORGANISM))
- return 0 //Return 0 as your natural temperature. Species proc handle_environment() will adjust your temperature based on this.
+ return FALSE //return FALSE as your natural temperature. Species proc handle_environment() will adjust your temperature based on this.
var/body_temperature_difference = BODYTEMP_NORMAL - bodytemperature
switch(bodytemperature)
@@ -675,7 +675,7 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put
/mob/living/carbon/proc/get_cooling_efficiency()
if(!HAS_TRAIT(src, TRAIT_ROBOTIC_ORGANISM))
- return 1
+ return TRUE
var/integration_bonus = min(blood_volume * SYNTH_INTEGRATION_COOLANT_CAP, integrating_blood * SYNTH_INTEGRATION_COOLANT_PENALTY) //Integration blood somewhat helps, though only at 40% impact and to a cap of 25% of current blood level.
var/blood_effective_volume = blood_volume + integration_bonus
@@ -691,7 +691,7 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put
return suitlink //If you are wearing full EVA or lavaland hazard gear (on lavaland), assume it has been made to accomodate your cooling needs.
var/datum/gas_mixture/environment = loc.return_air()
if(!environment)
- return 0
+ return FALSE
var/pressure = environment.return_pressure()
var/heat = environment.return_temperature()
@@ -711,12 +711,18 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put
var/turf/T = get_turf(src)
if(istype(head_item, /obj/item/clothing/head/helmet/space) && istype(suit_item, /obj/item/clothing/suit/space))
- return 1
+ return TRUE
+
+ if(istype(head_item, /obj/item/clothing/head/mod) && istype(suit_item, /obj/item/clothing/suit/mod))
+ var/obj/item/clothing/suit/mod/modsuit = suit_item
+ var/obj/item/mod/control/mod_control = modsuit.mod
+ if(mod_control && mod_control.active)
+ return TRUE
if(T && is_mining_level(T.z) && istype(head_item, /obj/item/clothing/head/hooded/explorer) && istype(suit_item, /obj/item/clothing/suit/hooded/explorer))
- return 1
+ return TRUE
- return 0
+ return FALSE
/////////
//LIVER//
diff --git a/code/modules/mob/living/carbon/monkey/combat.dm b/code/modules/mob/living/carbon/monkey/combat.dm
index cd0af34cd6..c95459fdd1 100644
--- a/code/modules/mob/living/carbon/monkey/combat.dm
+++ b/code/modules/mob/living/carbon/monkey/combat.dm
@@ -27,7 +27,7 @@
// taken from /mob/living/carbon/human/interactive/
/mob/living/carbon/monkey/proc/walk2derpless(target)
if(!target || IsStandingStill())
- return 0
+ return FALSE
if(myPath.len <= 0)
myPath = get_path_to(src, target, 250, 1)
@@ -39,14 +39,14 @@
if(myPath.len >= 1)
walk_to(src,myPath[1],0,5)
myPath -= myPath[1]
- return 1
+ return TRUE
// failed to path correctly so just try to head straight for a bit
walk_to(src,get_turf(target),0,5)
sleep(1)
walk_to(src,0)
- return 0
+ return FALSE
// taken from /mob/living/carbon/human/interactive/
/mob/living/carbon/monkey/proc/IsDeadOrIncap(checkDead = TRUE)
@@ -396,12 +396,13 @@
retaliate(Proj.firer)
return ..()
-/mob/living/carbon/monkey/hitby(atom/movable/AM, skipcatch = FALSE, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)
- if(istype(AM, /obj/item))
- var/obj/item/I = AM
- if(I.throwforce < src.health && I.thrownby && ishuman(I.thrownby))
- var/mob/living/carbon/human/H = I.thrownby
- retaliate(H)
+/mob/living/carbon/monkey/hitby(atom/movable/hitting_atom, skipcatch = FALSE, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)
+ if(istype(hitting_atom, /obj/item))
+ var/obj/item/item_hitby = hitting_atom
+ var/mob/thrown_by = item_hitby.thrownby?.resolve()
+ if(item_hitby.throwforce < src.health && thrown_by && ishuman(thrown_by))
+ var/mob/living/carbon/human/human_throwee = thrown_by
+ retaliate(human_throwee)
..()
/mob/living/carbon/monkey/Crossed(atom/movable/AM)
diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm
index a7bc0c11d5..e9afb6eef9 100644
--- a/code/modules/mob/living/carbon/monkey/life.dm
+++ b/code/modules/mob/living/carbon/monkey/life.dm
@@ -137,7 +137,7 @@
/mob/living/carbon/monkey/has_smoke_protection()
if(wear_mask)
if(wear_mask.clothing_flags & BLOCK_GAS_SMOKE_EFFECT)
- return 1
+ return TRUE
/mob/living/carbon/monkey/handle_fire()
. = ..()
diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm
index bb35ff082b..4cdf1f1aeb 100644
--- a/code/modules/mob/living/carbon/monkey/monkey.dm
+++ b/code/modules/mob/living/carbon/monkey/monkey.dm
@@ -171,8 +171,8 @@ GLOBAL_LIST_INIT(strippable_monkey_items, create_strippable_list(list(
/mob/living/carbon/monkey/IsVocal()
if(!getorganslot(ORGAN_SLOT_LUNGS))
- return 0
- return 1
+ return FALSE
+ return TRUE
/mob/living/carbon/monkey/can_use_guns(obj/item/G)
return TRUE
diff --git a/code/modules/mob/living/carbon/monkey/monkey_defense.dm b/code/modules/mob/living/carbon/monkey/monkey_defense.dm
index 80d968b229..f0796e2c54 100644
--- a/code/modules/mob/living/carbon/monkey/monkey_defense.dm
+++ b/code/modules/mob/living/carbon/monkey/monkey_defense.dm
@@ -114,7 +114,7 @@
if(!affecting)
affecting = get_bodypart(BODY_ZONE_CHEST)
if(!dismembering_strike(M, affecting.body_zone)) //Dismemberment successful
- return 1
+ return TRUE
apply_damage(damage, BRUTE, affecting)
else
@@ -159,7 +159,7 @@
damage = rand(20, 40)
var/dam_zone = dismembering_strike(M, pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
if(!dam_zone) //Dismemberment successful
- return 1
+ return TRUE
var/obj/item/bodypart/affecting = get_bodypart(ran_zone(dam_zone))
if(!affecting)
affecting = get_bodypart(BODY_ZONE_CHEST)
diff --git a/code/modules/mob/living/carbon/say.dm b/code/modules/mob/living/carbon/say.dm
index 67c29b4211..9838d6f9b9 100644
--- a/code/modules/mob/living/carbon/say.dm
+++ b/code/modules/mob/living/carbon/say.dm
@@ -9,9 +9,9 @@
/mob/living/carbon/can_speak_vocal(message)
if(silent)
- return 0
+ return FALSE
if(get_selected_language() == /datum/language/signlanguage && handcuffed)
- return 0
+ return FALSE
return ..()
/mob/living/carbon/could_speak_language(datum/language/language)
diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm
index fcb0ffcefa..76e620b204 100644
--- a/code/modules/mob/living/damage_procs.dm
+++ b/code/modules/mob/living/damage_procs.dm
@@ -17,7 +17,7 @@
/mob/living/proc/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, spread_damage = FALSE, wound_bonus = 0, bare_wound_bonus = 0, sharpness = SHARP_NONE)
var/hit_percent = (100-blocked)/100
if(!damage || (hit_percent <= 0))
- return 0
+ return FALSE
var/damage_amount = forced ? damage : damage * hit_percent
switch(damagetype)
if(BRUTE)
@@ -32,7 +32,7 @@
adjustCloneLoss(damage_amount, forced = forced)
if(STAMINA)
adjustStaminaLoss(damage_amount, forced = forced)
- return 1
+ return TRUE
/mob/living/proc/apply_damage_type(damage = 0, damagetype = BRUTE) //like apply damage except it always uses the damage procs
switch(damagetype)
@@ -67,7 +67,7 @@
/mob/living/proc/apply_damages(brute = 0, burn = 0, tox = 0, oxy = 0, clone = 0, def_zone = null, blocked = FALSE, stamina = 0, brain = 0)
if(blocked >= 100)
- return 0
+ return FALSE
if(brute)
apply_damage(brute, BRUTE, def_zone, blocked)
if(burn)
@@ -82,12 +82,12 @@
apply_damage(stamina, STAMINA, def_zone, blocked)
if(brain)
apply_damage(brain, BRAIN, def_zone, blocked)
- return 1
+ return TRUE
/mob/living/proc/apply_effect(effect = 0,effecttype = EFFECT_STUN, blocked = FALSE, knockdown_stamoverride, knockdown_stammax)
var/hit_percent = (100-blocked)/100
if(!effect || (hit_percent <= 0))
- return 0
+ return FALSE
switch(effecttype)
if(EFFECT_STUN)
Stun(effect * hit_percent)
@@ -109,7 +109,7 @@
if(EFFECT_JITTER)
if((status_flags & CANSTUN) && !HAS_TRAIT(src, TRAIT_STUNIMMUNE))
jitteriness = max(jitteriness,(effect * hit_percent))
- return 1
+ return TRUE
/mob/living/proc/apply_effects(stun = 0, knockdown = 0, unconscious = 0, irradiate = 0, slur = 0, stutter = 0, eyeblur = 0, drowsy = 0, blocked = 0, stamina = 0, jitter = 0, kd_stamoverride, kd_stammax)
@@ -163,7 +163,7 @@
/mob/living/proc/setOxyLoss(amount, updating_health = TRUE, forced = FALSE)
if(status_flags & GODMODE)
- return 0
+ return FALSE
oxyloss = amount
if(updating_health)
updatehealth()
@@ -179,7 +179,7 @@
affected_by = TOX_SYSCORRUPT
if(toxins_type != affected_by)
- return 0
+ return FALSE
else
return toxloss
diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm
index d59978d993..69a6972194 100644
--- a/code/modules/mob/living/emote.dm
+++ b/code/modules/mob/living/emote.dm
@@ -489,7 +489,7 @@
if(E.can_run_emote(user, status_check = FALSE))
keys += E.key
- keys = sortList(keys)
+ keys = sort_list(keys)
for(var/emote in keys)
if(LAZYLEN(message) > 1)
diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm
index f4f8060fb3..af911bd2a4 100644
--- a/code/modules/mob/living/life.dm
+++ b/code/modules/mob/living/life.dm
@@ -133,7 +133,7 @@
if(fire_stacks < 0) //If we've doused ourselves in water to avoid fire, dry off slowly
fire_stacks = min(0, fire_stacks + 1)//So we dry ourselves back to default, nonflammable.
if(!on_fire)
- return 1
+ return TRUE
if(fire_stacks > 0)
adjust_fire_stacks(-0.1) //the fire is slowly consumed
else
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index f6a2f1cb38..cd2bc3b38b 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -243,7 +243,7 @@
// If there's no dir_to_target then the player is on the same turf as the atom they're trying to push.
// This can happen when a player is stood on the same turf as a directional window. All attempts to push
- // the window will fail as get_dir will return 0 and the player will be unable to move the window when
+ // the window will fail as get_dir will return FALSE and the player will be unable to move the window when
// it should be pushable.
// In this scenario, we will use the facing direction of the /mob/living attempting to push the atom as
// a fallback.
@@ -636,7 +636,7 @@
if(mind)
for(var/S in mind.spell_list)
var/obj/effect/proc_holder/spell/spell = S
- spell.updateButtonIcon()
+ spell.UpdateButton()
//proc used to remove all immobilisation effects + reset stamina
/mob/living/proc/remove_CC(should_update_mobility = TRUE)
@@ -683,7 +683,7 @@
/mob/living/proc/can_be_revived()
. = 1
if(health <= HEALTH_THRESHOLD_DEAD)
- return 0
+ return FALSE
/mob/living/proc/update_damage_overlays()
return
@@ -1051,27 +1051,27 @@
//basic fast checks go first. When overriding this proc, I recommend calling ..() at the end.
var/turf/T = get_turf(src)
if(!T)
- return 0
+ return FALSE
if(is_centcom_level(T.z)) //dont detect mobs on centcom
- return 0
+ return FALSE
if(is_away_level(T.z))
- return 0
+ return FALSE
if(user != null && src == user)
- return 0
+ return FALSE
if(invisibility || alpha == 0)//cloaked
- return 0
+ return FALSE
if(digitalcamo || digitalinvis)
- return 0
+ return FALSE
// Now, are they viewable by a camera? (This is last because it's the most intensive check)
if(!near_camera(src))
- return 0
+ return FALSE
- return 1
+ return TRUE
//used in datum/reagents/reaction() proc
/mob/living/proc/get_permeability_protection(list/target_zones)
- return 0
+ return FALSE
/mob/living/proc/harvest(mob/living/user) //used for extra objects etc. in butchering
return
@@ -1120,7 +1120,7 @@
/mob/living/proc/check_weakness(obj/item/weapon, mob/living/attacker)
if(mind && mind.has_antag_datum(/datum/antagonist/devil))
return check_devil_bane_multiplier(weapon, attacker)
- return 1
+ return TRUE
/mob/living/proc/check_acedia()
if(mind && mind.has_objective(/datum/objective/sintouched/acedia))
diff --git a/code/modules/mob/living/living_active_parry.dm b/code/modules/mob/living/living_active_parry.dm
index cd5208ba57..8740f86b20 100644
--- a/code/modules/mob/living/living_active_parry.dm
+++ b/code/modules/mob/living/living_active_parry.dm
@@ -241,7 +241,7 @@
// before doing anything, check if the user moused over them properly
if(!client)
return BLOCK_NONE
- var/found = attacker == client.mouseObject
+ var/found = attacker == client.mouse_object_ref?.resolve()
if(!found)
for(var/i in client.moused_over_objects)
if(i == object)
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index 817c877a82..9d3d95cb23 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -20,15 +20,15 @@
/mob/living/proc/getarmor(def_zone, type)
- return 0
+ return FALSE
//this returns the mob's protection against eye damage (number between -1 and 2) from bright lights
/mob/living/proc/get_eye_protection()
- return 0
+ return FALSE
//this returns the mob's protection against ear damage (0:no protection; 1: some ear protection; 2: has no ears)
/mob/living/proc/get_ear_protection()
- return 0
+ return FALSE
/mob/living/proc/is_mouth_covered(head_only = 0, mask_only = 0)
return FALSE
@@ -96,7 +96,7 @@
return P.on_hit(src, final_percent, def_zone) ? BULLET_ACT_HIT : BULLET_ACT_BLOCK
/mob/living/proc/check_projectile_dismemberment(obj/item/projectile/P, def_zone)
- return 0
+ return FALSE
/obj/item/proc/get_volume_by_throwforce_and_or_w_class()
if(throwforce && w_class)
@@ -104,50 +104,53 @@
else if(w_class)
return clamp(w_class * 8, 20, 100) // Multiply the item's weight class by 8, then clamp the value between 20 and 100
else
- return 0
-
-/mob/living/proc/catch_item(obj/item/I, skip_throw_mode_check = FALSE)
- return FALSE
+ return FALSE
/mob/living/hitby(atom/movable/AM, skipcatch, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)
- // Throwingdatum can be null if someone had an accident() while slipping with an item in hand.
- var/obj/item/I
- var/throwpower = 30
- if(isitem(AM))
- I = AM
- throwpower = I.throwforce
- var/impacting_zone = ran_zone(BODY_ZONE_CHEST, 65)//Hits a random part of the body, geared towards the chest
- var/list/block_return = list()
- var/total_damage = AM.throwforce
- if(mob_run_block(AM, throwpower, "\the [AM.name]", ATTACK_TYPE_THROWN, 0, throwingdatum?.thrower, impacting_zone, block_return) & BLOCK_SUCCESS)
+ if(!isitem(AM))
+ // Filled with made up numbers for non-items.
+ if(mob_run_block(AM, 30, "\the [AM.name]", ATTACK_TYPE_PROJECTILE, 0, throwingdatum.thrower, throwingdatum.thrower.zone_selected, list()))
+ hitpush = FALSE
+ skipcatch = TRUE
+ blocked = TRUE
+ else
+ playsound(loc, 'sound/weapons/genhit.ogg', 50, TRUE, -1) //Item sounds are handled in the item itself
+ return ..()
+
+ var/obj/item/thrown_item = AM
+ if(thrown_item.thrownby == WEAKREF(src)) //No throwing stuff at yourself to trigger hit reactions
+ return ..()
+
+ if(mob_run_block(AM, thrown_item.throwforce, "\the [thrown_item.name]", ATTACK_TYPE_PROJECTILE, 0, throwingdatum.thrower, throwingdatum.thrower.zone_selected, list()))
hitpush = FALSE
skipcatch = TRUE
blocked = TRUE
- total_damage = block_calculate_resultant_damage(total_damage, block_return)
- if(I)
- var/nosell_hit = SEND_SIGNAL(I, COMSIG_MOVABLE_IMPACT_ZONE, src, impacting_zone, throwingdatum, FALSE, blocked)
- if(nosell_hit)
- skipcatch = TRUE
- hitpush = FALSE
- if(!skipcatch && isturf(I.loc) && catch_item(I))
- return TRUE
- var/dtype = BRUTE
- dtype = I.damtype
+ var/zone = ran_zone(BODY_ZONE_CHEST, 65)//Hits a random part of the body, geared towards the chest
+ var/nosell_hit = SEND_SIGNAL(thrown_item, COMSIG_MOVABLE_IMPACT_ZONE, src, zone, blocked, throwingdatum) // TODO: find a better way to handle hitpush and skipcatch for humans
+ if(nosell_hit)
+ skipcatch = TRUE
+ hitpush = FALSE
- if(!blocked)
- if(!nosell_hit)
- visible_message("[src] is hit by [I]! ", \
- "You're hit by [I]! ")
- if(!I.throwforce)
- return
- var/armor = run_armor_check(impacting_zone, MELEE, "Your armor has protected your [parse_zone(impacting_zone)].", "Your armor has softened hit to your [parse_zone(impacting_zone)].",I.armour_penetration)
- apply_damage(I.throwforce, dtype, impacting_zone, armor, sharpness=I.get_sharpness(), wound_bonus=(nosell_hit * CANT_WOUND))
- else
- return 1
- else
- playsound(loc, 'sound/weapons/genhit.ogg', 50, 1, -1)
- ..()
+ if(blocked)
+ return TRUE
+
+ var/mob/thrown_by = thrown_item.thrownby?.resolve()
+ if(thrown_by)
+ log_combat(thrown_by, src, "threw and hit", thrown_item)
+ if(nosell_hit)
+ return ..()
+ visible_message(span_danger("[src] is hit by [thrown_item]!"), \
+ span_userdanger("You're hit by [thrown_item]!"))
+ if(!thrown_item.throwforce)
+ return
+ var/armor = run_armor_check(zone, MELEE, "Your armor has protected your [parse_zone(zone)].", "Your armor has softened hit to your [parse_zone(zone)].", thrown_item.armour_penetration, "", FALSE)
+ apply_damage(thrown_item.throwforce, thrown_item.damtype, zone, armor, sharpness = thrown_item.get_sharpness(), wound_bonus = (nosell_hit * CANT_WOUND))
+ if(QDELETED(src)) //Damage can delete the mob.
+ return
+ if(lying) // physics says it's significantly harder to push someone by constantly chucking random furniture at them if they are down on the floor.
+ hitpush = FALSE
+ return ..()
/mob/living/fire_act()
adjust_fire_stacks(3)
@@ -199,11 +202,11 @@
if(GRAB_NECK)
log_combat(user, src, "attempted to strangle", addition="kill grab")
if(!do_mob(user, src, grab_upgrade_time))
- return 0
+ return FALSE
if(!user.pulling || user.pulling != src || user.grab_state != old_grab_state || user.a_intent != INTENT_GRAB)
- return 0
+ return FALSE
if(user.voremode && user.grab_state == GRAB_AGGRESSIVE)
- return 0
+ return FALSE
user.setGrabState(user.grab_state + 1)
switch(user.grab_state)
if(GRAB_AGGRESSIVE)
@@ -237,7 +240,7 @@
if(!buckled && !density)
Move(user.loc)
user.set_pull_offsets(src, grab_state)
- return 1
+ return TRUE
/mob/living/on_attack_hand(mob/user, act_intent = user.a_intent, attackchain_flags)
..() //Ignoring parent return value here.
@@ -299,7 +302,7 @@
M.visible_message("\The [M] [M.friendly_verb_continuous] [src]! ",
"You [M.friendly_verb_simple] [src]! ", target = src,
target_message = "\The [M] [M.friendly_verb_continuous] you! ")
- return 0
+ return FALSE
else
if(HAS_TRAIT(M, TRAIT_PACIFISM))
to_chat(M, "You don't want to hurt anyone! ")
@@ -307,7 +310,7 @@
var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
var/list/return_list = list()
if(mob_run_block(M, damage, "the [M.name]", ATTACK_TYPE_MELEE, M.armour_penetration, M, check_zone(M.zone_selected), return_list) & BLOCK_SUCCESS)
- return 0
+ return FALSE
damage = block_calculate_resultant_damage(damage, return_list)
if(M.attack_sound)
playsound(src, M.attack_sound, 50, 1, 1)
@@ -415,7 +418,7 @@
/mob/living/acid_act(acidpwr, acid_volume)
take_bodypart_damage(acidpwr * min(1, acid_volume * 0.1))
- return 1
+ return TRUE
///As the name suggests, this should be called to apply electric shocks.
/mob/living/proc/electrocute_act(shock_damage, source, siemens_coeff = 1, flags = NONE)
@@ -515,7 +518,7 @@
//called when the mob receives a loud bang
/mob/living/proc/soundbang_act()
- return 0
+ return FALSE
//to damage the clothes worn by a mob
/mob/living/proc/damage_clothes(damage_amount, damage_type = BRUTE, damage_flag = 0, def_zone)
diff --git a/code/modules/mob/living/living_mobility.dm b/code/modules/mob/living/living_mobility.dm
index a0f4844db4..155f1dbc89 100644
--- a/code/modules/mob/living/living_mobility.dm
+++ b/code/modules/mob/living/living_mobility.dm
@@ -16,6 +16,7 @@
/mob/living/proc/update_resting(update_mobility = TRUE)
if(update_mobility)
update_mobility()
+ update_rest_hud_icon()
//Force mob to rest, does NOT do stamina damage.
//It's really not recommended to use this proc to give feedback, hence why silent is defaulting to true.
diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm
index fcab9344d9..a09ecb0b54 100644
--- a/code/modules/mob/living/living_movement.dm
+++ b/code/modules/mob/living/living_movement.dm
@@ -81,7 +81,7 @@
if (!buckled.anchored)
return buckled.Move(newloc, direct)
else
- return 0
+ return FALSE
var/old_direction = dir
var/turf/T = loc
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index e5fb2510ed..d2efbd1713 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -208,7 +208,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
if(radio_return & REDUCE_RANGE)
message_range = 1
if(radio_return & NOPASS)
- return 1
+ return TRUE
//No screams in space, unless you're next to someone.
var/turf/T = get_turf(src)
@@ -226,7 +226,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
succumb()
to_chat(src, compose_message(src, language, message, null, spans, message_mode))
- return 1
+ return TRUE
/mob/living/compose_message(atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode, face_name = FALSE, atom/movable/source)
. = ..()
@@ -358,23 +358,23 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
/mob/living/can_speak(message) //For use outside of Say()
if(can_speak_basic(message) && can_speak_vocal(message))
- return 1
+ return TRUE
/mob/living/proc/can_speak_basic(message, ignore_spam = FALSE) //Check BEFORE handling of xeno and ling channels
if(client)
if(client.prefs.muted & MUTE_IC)
to_chat(src, "You cannot speak in IC (muted). ")
- return 0
+ return FALSE
if(!ignore_spam && client.handle_spam_prevention(message,MUTE_IC))
- return 0
+ return FALSE
- return 1
+ return TRUE
/mob/living/proc/can_speak_vocal(message) //Check AFTER handling of xeno and ling channels
var/obj/item/bodypart/leftarm = get_bodypart(BODY_ZONE_L_ARM)
var/obj/item/bodypart/rightarm = get_bodypart(BODY_ZONE_R_ARM)
if(HAS_TRAIT(src, TRAIT_MUTE) && get_selected_language() != /datum/language/signlanguage)
- return 0
+ return FALSE
if (get_selected_language() == /datum/language/signlanguage)
var/left_disabled = FALSE
@@ -390,15 +390,15 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
else
right_disabled = TRUE
if (left_disabled && right_disabled) // We want this to only return false if both arms are either missing or disabled since you could technically sign one-handed.
- return 0
+ return FALSE
if(is_muzzled())
- return 0
+ return FALSE
if(!IsVocal())
- return 0
+ return FALSE
- return 1
+ return TRUE
/mob/living/proc/get_key(message)
var/key = message[1]
@@ -468,9 +468,9 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
return ITALICS | REDUCE_RANGE
if(MODE_BINARY)
- return ITALICS | REDUCE_RANGE //Does not return 0 since this is only reached by humans, not borgs or AIs.
+ return ITALICS | REDUCE_RANGE //Does not return FALSE since this is only reached by humans, not borgs or AIs.
- return 0
+ return FALSE
/mob/living/say_mod(input, message_mode)
. = ..()
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 08098b818f..64b17b2622 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -30,6 +30,7 @@
d_hud = DATA_HUD_DIAGNOSTIC_ADVANCED
mob_size = MOB_SIZE_LARGE
has_field_of_vision = FALSE //Vision through cameras.
+ var/battery = 200 //emergency power if the AI's APC is off
var/list/network = list("ss13")
var/obj/machinery/camera/current
var/list/connected_robots = list()
@@ -46,7 +47,7 @@
var/obj/item/multitool/aiMulti
var/mob/living/simple_animal/bot/Bot
var/tracking = FALSE //this is 1 if the AI is currently tracking somebody, but the track has not yet been completed.
- var/datum/effect_system/spark_spread/spark_system//So they can initialize sparks whenever/N
+ var/datum/effect_system/spark_spread/spark_system //So they can initialize sparks whenever/N
var/obj/machinery/status_display/controlled_display
//MALFUNCTION
@@ -83,7 +84,7 @@
var/cooldown = 0
var/acceleration = 1
- var/obj/structure/AIcore/deactivated/linked_core //For exosuit control
+ var/obj/structure/ai_core/deactivated/linked_core //For exosuit control
var/mob/living/silicon/robot/deployed_shell = null //For shell control
var/datum/action/innate/deploy_shell/deploy_action = new
var/datum/action/innate/deploy_last_shell/redeploy_action = new
@@ -105,11 +106,17 @@
///remember AI's last location
var/atom/lastloc
interaction_range = INFINITY
+ ///whether its mmi is a posibrain or regular mmi when going ai mob to ai core structure
+ var/posibrain_inside = TRUE
+ ///whether its cover is opened, so you can wirecut it for deconstruction
+ var/opened = FALSE
+ ///whether AI is anchored or not, used for checks
+ var/is_anchored = TRUE
/mob/living/silicon/ai/Initialize(mapload, datum/ai_laws/L, mob/target_ai)
. = ..()
if(!target_ai) //If there is no player/brain inside.
- new/obj/structure/AIcore/deactivated(loc) //New empty terminal.
+ new/obj/structure/ai_core/deactivated(loc) //New empty terminal.
return INITIALIZE_HINT_QDEL //Delete AI.
ADD_TRAIT(src, TRAIT_NO_TELEPORT, src)
@@ -125,6 +132,8 @@
mind.store_memory("As an AI, you must obey your silicon laws above all else. Your objectives will consider you to be dead.")
to_chat(src, "You have been installed as an AI! ")
to_chat(src, "You must obey your silicon laws above all else. Your objectives will consider you to be dead. ")
+ if(!mind.has_ever_been_ai)
+ mind.has_ever_been_ai = TRUE
to_chat(src, "You are playing the station's AI. The AI cannot move, but can interact with many objects while viewing them (through cameras). ")
to_chat(src, "To look at other parts of the station, click on yourself to get a camera menu. ")
@@ -237,6 +246,8 @@
. += text("Systems nonfunctional")
return
. += text("System integrity: [(health + 100) * 0.5]%")
+ if(isturf(loc)) //only show if we're "in" a core
+ . += "Backup Power: [battery * 0.5]%"
. += text("Connected cyborgs: [length(connected_robots)]")
for(var/r in connected_robots)
var/mob/living/silicon/robot/connected_robot = r
@@ -333,18 +344,64 @@
if(!isturf(loc)) // if their location isn't a turf
return // stop
if(incapacitated())
- return
- var/is_anchored = FALSE
- if(move_resist == MOVE_FORCE_OVERPOWERING)
+ if(battery < 50)
+ to_chat(src, span_warning("Insufficient backup power!"))
+ return
+ battery = battery - 50
+ to_chat(src, span_notice("You route power from your backup battery to move the bolts."))
+ flip_anchored()
+ to_chat(src, "You are now [is_anchored ? "" : "un"]anchored. ")
+
+/mob/living/silicon/ai/proc/flip_anchored()
+ if(is_anchored)
+ is_anchored = !is_anchored
move_resist = MOVE_FORCE_NORMAL
+ status_flags |= CANPUSH
REMOVE_TRAIT(src, TRAIT_NO_TELEPORT, src)
else
- is_anchored = TRUE
+ is_anchored = !is_anchored
move_resist = MOVE_FORCE_OVERPOWERING
+ status_flags &= ~CANPUSH
ADD_TRAIT(src, TRAIT_NO_TELEPORT, src)
- to_chat(src, "You are now [is_anchored ? "" : "un"]anchored. ")
- // the message in the [] will change depending whether or not the AI is anchored
+/mob/living/silicon/ai/proc/ai_mob_to_structure()
+ disconnect_shell()
+ ShutOffDoomsdayDevice()
+ var/obj/structure/ai_core/deactivated/ai_core = new(get_turf(src), /* skip_mmi_creation = */ TRUE)
+ if(make_mmi_drop_and_transfer(ai_core.core_mmi, the_core = ai_core))
+ qdel(src)
+ return ai_core
+
+/mob/living/silicon/ai/proc/make_mmi_drop_and_transfer(obj/item/mmi/the_mmi, the_core)
+ var/mmi_type
+ if(posibrain_inside)
+ mmi_type = new/obj/item/mmi/posibrain(src, /* autoping = */ FALSE)
+ else
+ mmi_type = new/obj/item/mmi(src)
+ if(hack_software)
+ new/obj/item/malf_upgrade(get_turf(src))
+ the_mmi = mmi_type
+ the_mmi.brain = new /obj/item/organ/brain(the_mmi)
+ the_mmi.brain.organ_flags |= ORGAN_FROZEN
+ the_mmi.brain.name = "[real_name]'s brain"
+ the_mmi.name = "[initial(the_mmi.name)]: [real_name]"
+ the_mmi.brainmob = new /mob/living/brain(the_mmi)
+ the_mmi.brainmob.name = src.real_name
+ the_mmi.brainmob.real_name = src.real_name
+ the_mmi.brainmob.container = the_mmi
+ the_mmi.brainmob.suiciding = suiciding
+ if(the_core)
+ var/obj/structure/ai_core/core = the_core
+ core.core_mmi = the_mmi
+ the_mmi.forceMove(the_core)
+ else
+ the_mmi.forceMove(get_turf(src))
+ if(the_mmi.brainmob.stat == DEAD && !suiciding)
+ the_mmi.brainmob.stat = CONSCIOUS
+ if(mind)
+ mind.transfer_to(the_mmi.brainmob)
+ the_mmi.update_appearance()
+ return TRUE
// AIs are immobile
/mob/living/silicon/ai/update_mobility()
@@ -427,18 +484,30 @@
return
if (href_list["ai_take_control"]) //Mech domination
- var/obj/vehicle/sealed/mecha/M = locate(href_list["ai_take_control"])
+ var/obj/vehicle/sealed/mecha/M = locate(href_list["ai_take_control"]) in GLOB.mechas_list
+ if (!M)
+ return
+
+ var/mech_has_controlbeacon = FALSE
+ for(var/obj/item/mecha_parts/mecha_tracking/ai_control/A in M.trackers)
+ mech_has_controlbeacon = TRUE
+ break
+ if(!can_dominate_mechs && !mech_has_controlbeacon)
+ message_admins("Warning: possible href exploit by [key_name(usr)] - attempted control of a mecha without can_dominate_mechs or a control beacon in the mech.")
+ usr.log_message("possibly attempting href exploit - attempted control of a mecha without can_dominate_mechs or a control beacon in the mech.", LOG_ADMIN)
+ return
+
if(controlled_equipment)
- to_chat(src, "You are already loaded into an onboard computer! ")
+ to_chat(src, span_warning("You are already loaded into an onboard computer!"))
return
if(!GLOB.cameranet.checkCameraVis(M))
- to_chat(src, "Exosuit is no longer near active cameras. ")
+ to_chat(src, span_warning("Exosuit is no longer near active cameras."))
return
if(!isturf(loc))
- to_chat(src, "You aren't in your core! ")
+ to_chat(src, span_warning("You aren't in your core!"))
return
if(M)
- M.transfer_ai(AI_MECH_HACK,src, usr) //Called om the mech itself.
+ M.transfer_ai(AI_MECH_HACK, src, usr) //Called on the mech itself.
/mob/living/silicon/ai/proc/switchCamera(obj/machinery/camera/C)
@@ -549,7 +618,7 @@
queueAlarm(text("--- [] alarm detected in []! (No Camera)", class, home.name), class)
if (viewalerts)
ai_alerts()
- return 1
+ return TRUE
/mob/living/silicon/ai/freeCamera(area/home, obj/machinery/camera/cam)
for(var/class in alarms)
@@ -825,17 +894,19 @@
to_chat(user, "No intelligence patterns detected. " )
return
ShutOffDoomsdayDevice()
- new /obj/structure/AIcore/deactivated(loc)//Spawns a deactivated terminal at AI location.
+ var/obj/structure/ai_core/new_core = new /obj/structure/ai_core/deactivated(loc, posibrain_inside)//Spawns a deactivated terminal at AI location.
+ new_core.circuit.battery = battery
ai_restore_power()//So the AI initially has power.
- control_disabled = 1//Can't control things remotely if you're stuck in a card!
- radio_enabled = 0 //No talking on the built-in radio for you either!
+ control_disabled = TRUE //Can't control things remotely if you're stuck in a card!
+ interaction_range = 0
+ radio_enabled = FALSE //No talking on the built-in radio for you either!
forceMove(card)
card.AI = src
to_chat(src, "You have been downloaded to a mobile storage device. Remote device connection severed.")
to_chat(user, "Transfer successful : [name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory.")
/mob/living/silicon/ai/can_buckle()
- return 0
+ return FALSE
/mob/living/silicon/ai/incapacitated(ignore_restraints, ignore_grab)
if(aiRestorePowerRoutine)
@@ -1063,7 +1134,7 @@
// Sends an announcement the AI has cryoed.
var/obj/machinery/announcement_system/announcer = pick(GLOB.announcement_systems)
announcer.announce("CRYOSTORAGE", src.real_name, announce_rank, list())
- new /obj/structure/AIcore/latejoin_inactive(loc)
+ new /obj/structure/ai_core/latejoin_inactive(loc)
if(src.mind)
//Handle job slot/tater cleanup.
if(src.mind.assigned_role == "AI")
diff --git a/code/modules/mob/living/silicon/ai/ai_defense.dm b/code/modules/mob/living/silicon/ai/ai_defense.dm
index b8a0a15e70..6cf3d5a68a 100644
--- a/code/modules/mob/living/silicon/ai/ai_defense.dm
+++ b/code/modules/mob/living/silicon/ai/ai_defense.dm
@@ -2,7 +2,7 @@
. = ..()
if(!.)
return FALSE
- if(I.force && I.damtype != STAMINA && stat != DEAD) //only sparks if real damage is dealt.
+ if(I.force && I.damtype != STAMINA && stat != DEAD && !QDELETED(src)) //only sparks if real damage is dealt.
spark_system.start()
/mob/living/silicon/ai/attack_slime(mob/living/simple_animal/slime/user)
@@ -12,8 +12,8 @@
if (stat != DEAD)
adjustBruteLoss(60)
updatehealth()
- return 1
- return 0
+ return TRUE
+ return FALSE
/mob/living/silicon/ai/emp_act(severity)
. = ..()
@@ -48,3 +48,105 @@
/mob/living/silicon/ai/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0)
return // no eyes, no flashing
+
+/mob/living/silicon/ai/emag_act(mob/user, obj/item/card/emag/emag_card) ///emags access panel lock, so you can crowbar it without robotics access or consent
+ . = ..()
+ if(emagged)
+ balloon_alert(user, "access panel lock already shorted!")
+ return
+ balloon_alert(user, "access panel lock shorted")
+ var/message = (user ? "[user] shorts out your access panel lock!" : "Your access panel lock was short circuited!")
+ to_chat(src, span_warning(message))
+ do_sparks(3, FALSE, src) // just a bit of extra "oh shit" to the ai - might grab its attention
+ emagged = TRUE
+ return TRUE
+
+/mob/living/silicon/ai/wrench_act(mob/living/user, obj/item/tool)
+ . = ..()
+ if(user.a_intent == INTENT_HARM)
+ return
+ balloon_alert(user, "[!is_anchored ? "tightening" : "loosening"] bolts...")
+ balloon_alert(src, "bolts being [!is_anchored ? "tightened" : "loosened"]...")
+ if(!tool.use_tool(src, user, 4 SECONDS))
+ return TRUE
+ flip_anchored()
+ balloon_alert(user, "bolts [is_anchored ? "tightened" : "loosened"]")
+ balloon_alert(src, "bolts [is_anchored ? "tightened" : "loosened"]")
+ return TRUE
+
+/mob/living/silicon/ai/crowbar_act(mob/living/user, obj/item/tool)
+ . = ..()
+ if(user.a_intent == INTENT_HARM)
+ return
+ if(!is_anchored)
+ balloon_alert(user, "bolt it down first!")
+ return TRUE
+ if(opened)
+ if(emagged)
+ balloon_alert(user, "access panel lock damaged!")
+ return TRUE
+ balloon_alert(user, "closing access panel...")
+ balloon_alert(src, "access panel being closed...")
+ if(!tool.use_tool(src, user, 5 SECONDS))
+ return TRUE
+ balloon_alert(src, "access panel closed")
+ balloon_alert(user, "access panel closed")
+ opened = FALSE
+ return TRUE
+ if(stat == DEAD)
+ to_chat(user, span_warning("The access panel looks damaged, you try dislodging the cover."))
+ else
+ var/consent
+ var/consent_override = FALSE
+ if(ishuman(user))
+ var/mob/living/carbon/human/human_user = user
+ if(human_user.wear_id)
+ var/list/access = human_user.wear_id.GetAccess()
+ if(ACCESS_ROBOTICS in access)
+ consent_override = TRUE
+ if(mind)
+ consent = tgui_alert(src, "[user] is attempting to open your access panel, unlock the cover?", "AI Access Panel", list("Yes", "No"))
+ if(consent == "No" && !consent_override && !emagged)
+ to_chat(user, span_notice("[src] refuses to unlock its access panel."))
+ return TRUE
+ if(consent != "Yes" && (consent_override || emagged))
+ to_chat(user, span_warning("[src] refuses to unlock its access panel...so you[!emagged ? " swipe your ID and " : " "]open it anyway!"))
+ else
+ if(!consent_override && !emagged)
+ to_chat(user, span_notice("[src] did not respond to your request to unlock its access panel cover lock."))
+ return TRUE
+ else
+ to_chat(user, span_notice("[src] did not respond to your request to unlock its access panel cover lock. You[!emagged ? " swipe your ID and " : " "]open it anyway."))
+
+ balloon_alert(user, "prying open access panel...")
+ balloon_alert(src, "access panel being pried open...")
+ if(!tool.use_tool(src, user, (stat == DEAD ? 40 SECONDS : 5 SECONDS)))
+ return TRUE
+ balloon_alert(src, "access panel opened")
+ balloon_alert(user, "access panel opened")
+ opened = TRUE
+ return TRUE
+
+/mob/living/silicon/ai/wirecutter_act(mob/living/user, obj/item/tool)
+ . = ..()
+ if(user.a_intent == INTENT_HARM)
+ return
+ if(!is_anchored)
+ balloon_alert(user, "bolt it down first!")
+ return TRUE
+ if(!opened)
+ balloon_alert(user, "open the access panel first!")
+ return TRUE
+ balloon_alert(src, "neural network being disconnected...")
+ balloon_alert(user, "disconnecting neural network...")
+ if(!tool.use_tool(src, user, (stat == DEAD ? 40 SECONDS : 5 SECONDS)))
+ return TRUE
+ if(IS_MALF_AI(src))
+ to_chat(user, span_userdanger("The voltage inside the wires rises dramatically!"))
+ user.electrocute_act(120, src)
+ opened = FALSE
+ return TRUE
+ to_chat(src, span_danger("You feel incredibly confused and disorientated."))
+ var/atom/ai_structure = ai_mob_to_structure()
+ ai_structure.balloon_alert(user, "disconnected neural network")
+ return TRUE
diff --git a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm
index a3ffd460dd..4a60c93960 100644
--- a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm
+++ b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm
@@ -177,8 +177,8 @@ GLOBAL_DATUM_INIT(cameranet, /datum/cameranet, new)
if(chunk.changed)
chunk.hasChanged(1) // Update now, no matter if it's visible or not.
if(chunk.visibleTurfs[position])
- return 1
- return 0
+ return TRUE
+ return FALSE
/datum/cameranet/proc/stat_entry()
if(!statclick)
diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm
index bce18462b2..be1ac47abd 100644
--- a/code/modules/mob/living/silicon/ai/freelook/eye.dm
+++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm
@@ -115,7 +115,7 @@
return TRUE
/mob/camera/aiEye/Move()
- return 0
+ return FALSE
/mob/camera/aiEye/proc/GetViewerClient()
if(ai)
diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm
index 465ecf4783..1506442158 100644
--- a/code/modules/mob/living/silicon/ai/life.dm
+++ b/code/modules/mob/living/silicon/ai/life.dm
@@ -28,11 +28,15 @@
// Handle power damage (oxy)
if(aiRestorePowerRoutine)
// Lost power
- adjustOxyLoss(1)
+ if (!battery)
+ to_chat(src, span_warning("Your backup battery's output drops below usable levels. It takes only a moment longer for your systems to fail, corrupted and unusable."))
+ adjustOxyLoss(200)
+ else
+ battery--
else
// Gain Power
- if(getOxyLoss())
- adjustOxyLoss(-1)
+ if (battery < 200)
+ battery++
if(!lacks_power())
var/area/home = get_area(src)
diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm
index 76eaa6ad0d..e23eb842ea 100644
--- a/code/modules/mob/living/silicon/ai/say.dm
+++ b/code/modules/mob/living/silicon/ai/say.dm
@@ -187,8 +187,8 @@
SEND_SOUND(M, voice)
else
SEND_SOUND(only_listener, voice)
- return 1
- return 0
+ return TRUE
+ return FALSE
#undef VOX_DELAY
#endif
diff --git a/code/modules/mob/living/silicon/damage_procs.dm b/code/modules/mob/living/silicon/damage_procs.dm
index b50aeb5f48..bff842cd04 100644
--- a/code/modules/mob/living/silicon/damage_procs.dm
+++ b/code/modules/mob/living/silicon/damage_procs.dm
@@ -2,14 +2,14 @@
/mob/living/silicon/apply_damage(damage = 0,damagetype = BRUTE, def_zone = null, blocked = FALSE, forced = FALSE, wound_bonus = 0, bare_wound_bonus = 0, sharpness = SHARP_NONE)
var/hit_percent = (100-blocked)/100
if(!damage || (!forced && hit_percent <= 0))
- return 0
+ return FALSE
var/damage_amount = forced ? damage : damage * hit_percent
switch(damagetype)
if(BRUTE)
adjustBruteLoss(damage_amount, forced = forced)
if(BURN)
adjustFireLoss(damage_amount, forced = forced)
- return 1
+ return TRUE
/mob/living/silicon/apply_effect(effect = 0,effecttype = EFFECT_STUN, blocked = FALSE)
diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm
index 25d1215d37..cf995f07f0 100644
--- a/code/modules/mob/living/silicon/pai/pai.dm
+++ b/code/modules/mob/living/silicon/pai/pai.dm
@@ -230,7 +230,7 @@
/datum/action/innate/pai/Trigger()
if(!ispAI(owner))
- return 0
+ return FALSE
P = owner
/datum/action/innate/pai/software
diff --git a/code/modules/mob/living/silicon/pai/personality.dm b/code/modules/mob/living/silicon/pai/personality.dm
index 62f2ed7047..2225485da0 100644
--- a/code/modules/mob/living/silicon/pai/personality.dm
+++ b/code/modules/mob/living/silicon/pai/personality.dm
@@ -12,7 +12,7 @@
/datum/paiCandidate/proc/savefile_save(mob/user)
if(IsGuestKey(user.key))
- return 0
+ return FALSE
var/savefile/F = new /savefile(src.savefile_path(user))
@@ -24,7 +24,7 @@
WRITE_FILE(F["version"], 1)
- return 1
+ return TRUE
// loads the savefile corresponding to the mob's ckey
// if silent=true, report incompatible savefiles
@@ -33,12 +33,12 @@
/datum/paiCandidate/proc/savefile_load(mob/user, silent = TRUE)
if (IsGuestKey(user.key))
- return 0
+ return FALSE
var/path = savefile_path(user)
if (!fexists(path))
- return 0
+ return FALSE
var/savefile/F = new /savefile(path)
@@ -52,10 +52,10 @@
fdel(path)
if (!silent)
alert(user, "Your savefile was incompatible with this version and was deleted.")
- return 0
+ return FALSE
F["name"] >> src.name
F["description"] >> src.description
F["role"] >> src.role
F["comments"] >> src.comments
- return 1
+ return TRUE
diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm
index 04665401c5..ad7bc79278 100644
--- a/code/modules/mob/living/silicon/pai/software.dm
+++ b/code/modules/mob/living/silicon/pai/software.dm
@@ -206,12 +206,12 @@
var/count = 0
while(!isliving(M))
if(!M || !M.loc)
- return 0 //For a runtime where M ends up in nullspace (similar to bluespace but less colourful)
+ return FALSE //For a runtime where M ends up in nullspace (similar to bluespace but less colourful)
M = M.loc
count++
if(count >= 6)
to_chat(src, "You are not being carried by anyone!")
- return 0
+ return FALSE
spawn CheckDNA(M, src)
if("pdamessage")
diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm
index 559ffbbc08..146088f6e2 100644
--- a/code/modules/mob/living/silicon/robot/inventory.dm
+++ b/code/modules/mob/living/silicon/robot/inventory.dm
@@ -351,7 +351,7 @@
if(module_active)
return held_items.Find(module_active)
- return 0
+ return FALSE
/**
* Selects the module in the slot module_num.
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 051401f366..88b8a8c7c2 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -28,11 +28,13 @@
inv2 = new /atom/movable/screen/robot/module2()
inv3 = new /atom/movable/screen/robot/module3()
+ ident = rand(1, 999)
+
if(!shell)
aiPDA = new/obj/item/pda/ai(src)
aiPDA.owner = real_name
aiPDA.ownjob = "Cyborg"
- aiPDA.name = real_name + " (" + aiPDA.ownjob + ")"
+ aiPDA.name = real_name + " ([aiPDA.ownjob])"
previous_health = health
@@ -59,26 +61,29 @@
update_icons()
. = ..()
+ //If this body is meant to be a borg controlled by the AI player
//If this body is meant to be a borg controlled by the AI player
if(shell)
- make_shell()
-
- //MMI stuff. Held togheter by magic. ~Miauw
- else if(!mmi || !mmi.brainmob)
- mmi = new (src)
- mmi.brain = new /obj/item/organ/brain(mmi)
- mmi.brain.organ_flags |= ORGAN_FROZEN
- mmi.brain.name = "[real_name]'s brain"
- mmi.icon_state = "mmi_full"
- mmi.name = "Man-Machine Interface: [real_name]"
- mmi.brainmob = new(mmi)
- mmi.brainmob.name = src.real_name
- mmi.brainmob.real_name = src.real_name
- mmi.brainmob.container = mmi
+ var/obj/item/borg/upgrade/ai/board = new(src)
+ make_shell(board)
+ add_to_upgrades(board)
+ else
+ //MMI stuff. Held togheter by magic. ~Miauw
+ if(!mmi?.brainmob)
+ mmi = new (src)
+ mmi.brain = new /obj/item/organ/brain(mmi)
+ mmi.brain.organ_flags |= ORGAN_FROZEN
+ mmi.brain.name = "[real_name]'s brain"
+ mmi.icon_state = "mmi_full"
+ mmi.name = "[initial(mmi.name)]: [real_name]"
+ mmi.brainmob = new(mmi)
+ mmi.brainmob.name = src.real_name
+ mmi.brainmob.real_name = src.real_name
+ mmi.brainmob.container = mmi
+ mmi.update_appearance()
INVOKE_ASYNC(src, .proc/updatename)
- playsound(loc, 'sound/voice/liveagain.ogg', 75, TRUE)
aicamera = new/obj/item/camera/siliconcam/robot_camera(src)
toner = tonermax
diag_hud_set_borgcell()
@@ -157,7 +162,7 @@
if(BORG_SEC_AVAILABLE)
modulelist["Security"] = /obj/item/robot_module/security
- var/input_module = input("Please, select a module!", "Robot", null, null) as null|anything in sortList(modulelist)
+ var/input_module = input("Please, select a module!", "Robot", null, null) as null|anything in sort_list(modulelist)
if(!input_module || module.type != /obj/item/robot_module)
return
@@ -266,7 +271,7 @@
if(source.z != z)
return
if(stat == DEAD)
- return 1
+ return TRUE
var/list/our_sort = alarms[class]
for(var/areaname in our_sort)
if (areaname == home.name)
@@ -274,7 +279,7 @@
var/list/sources = alarm[3]
if (!(source in sources))
sources += source
- return 1
+ return TRUE
var/obj/machinery/camera/cam = null
var/list/our_cams = null
@@ -330,194 +335,145 @@
return FALSE
return ISINRANGE(T1.x, T0.x - interaction_range, T0.x + interaction_range) && ISINRANGE(T1.y, T0.y - interaction_range, T0.y + interaction_range)
-/mob/living/silicon/robot/proc/attempt_welder_repair(obj/item/W, mob/user)
- if(!W.tool_behaviour == TOOL_WELDER)
- return
- if(!getBruteLoss())
- to_chat(user, "[src] is already in good condition! ")
- return
- if(!W.tool_start_check(user, amount=0)) //The welder has 1u of fuel consumed by it's afterattack, so we don't need to worry about taking any away.
- return
- user.DelayNextAction(CLICK_CD_MELEE)
- if(src == user)
- to_chat(user, "You start fixing yourself... ")
- if(!W.use_tool(src, user, 50))
- return
- adjustBruteLoss(-10)
- else
- to_chat(user, "You start fixing [src]... ")
- if(!do_after(user, 30, target = src))
- return
- adjustBruteLoss(-30)
- updatehealth()
- add_fingerprint(user)
- visible_message("[user] has fixed some of the dents on [src]. ")
-
-/mob/living/silicon/robot/proc/attempt_cable_repair(obj/item/stack/cable_coil/W, mob/user)
- if (getFireLoss() > 0 || getToxLoss() > 0)
- user.DelayNextAction(CLICK_CD_MELEE)
- if(src == user)
- to_chat(user, "You start fixing yourself... ")
- if(!W.use_tool(src, user, 50, 1, skill_gain_mult = TRIVIAL_USE_TOOL_MULT))
- to_chat(user, "You need more cable to repair [src]! ")
- return
- adjustFireLoss(-10)
- adjustToxLoss(-10)
- else
- to_chat(user, "You start fixing [src]... ")
- if(!W.use_tool(src, user, 30, 1))
- to_chat(user, "You need more cable to repair [src]! ")
- return
- adjustFireLoss(-30)
- adjustToxLoss(-30)
- updatehealth()
- user.visible_message("[user] has fixed some of the burnt wires on [src].", "You fix some of the burnt wires on [src]. ")
- else
- to_chat(user, "The wires seem fine, there's no need to fix them.")
-
/mob/living/silicon/robot/attackby(obj/item/W, mob/user, params)
- if(W.tool_behaviour == TOOL_WELDER && (user.a_intent != INTENT_HARM || user == src))
- INVOKE_ASYNC(src, .proc/attempt_welder_repair, W, user)
- return
-
- else if(istype(W, /obj/item/stack/cable_coil) && wiresexposed)
- INVOKE_ASYNC(src, .proc/attempt_cable_repair, W, user)
- return
-
- else if(W.tool_behaviour == TOOL_CROWBAR) // crowbar means open or close the cover
- if(opened)
- to_chat(user, "You close the cover. ")
- opened = 0
- update_icons()
- else
- if(locked)
- to_chat(user, "The cover is locked and cannot be opened! ")
+ if(istype(W, /obj/item/stack/cable_coil) && wiresexposed)
+ user.DelayNextAction(CLICK_CD_MELEE)
+ if (getFireLoss() > 0 || getToxLoss() > 0)
+ if(src == user)
+ to_chat(user, span_notice("You start fixing yourself..."))
+ if(!W.use_tool(src, user, 5 SECONDS, 1, skill_gain_mult = TRIVIAL_USE_TOOL_MULT))
+ to_chat(user, span_warning("You need more cable to repair [src]!"))
+ return
+ adjustFireLoss(-10)
+ adjustToxLoss(-10)
else
- to_chat(user, "You open the cover. ")
- opened = 1
- update_icons()
+ to_chat(user, span_notice("You start fixing [src]..."))
+ if(!W.use_tool(src, user, 3 SECONDS, 1))
+ to_chat(user, span_warning("You need more cable to repair [src]!"))
+ adjustFireLoss(-30)
+ adjustToxLoss(-30)
+ updatehealth()
+ user.visible_message(span_notice("[user] has fixed some of the burnt wires on [src]."), span_notice("You fix some of the burnt wires on [src]."))
+ else
+ to_chat(user, span_warning("The wires seem fine, there's no need to fix them."))
+ return
- else if(istype(W, /obj/item/stock_parts/cell) && opened) // trying to put a cell inside
+ if(istype(W, /obj/item/stock_parts/cell) && opened) // trying to put a cell inside
if(wiresexposed)
- to_chat(user, "Close the cover first! ")
+ to_chat(user, span_warning("Close the cover first!"))
else if(cell)
- to_chat(user, "There is a power cell already installed! ")
+ to_chat(user, span_warning("There is a power cell already installed!"))
else
if(!user.transferItemToLoc(W, src))
return
cell = W
- to_chat(user, "You insert the power cell. ")
+ to_chat(user, span_notice("You insert the power cell."))
update_icons()
diag_hud_set_borgcell()
+ return
- else if(is_wire_tool(W))
+ if(is_wire_tool(W))
if (wiresexposed)
wires.interact(user)
else
- to_chat(user, "You can't reach the wiring! ")
+ to_chat(user, span_warning("You can't reach the wiring!"))
+ return
- else if(W.tool_behaviour == TOOL_SCREWDRIVER && opened && !cell) // haxing
- wiresexposed = !wiresexposed
- to_chat(user, "The wires have been [wiresexposed ? "exposed" : "unexposed"]")
- update_icons()
-
- else if((W.tool_behaviour == TOOL_SCREWDRIVER) && opened && cell) // radio
- if(shell)
- to_chat(user, "You cannot seem to open the radio compartment") //Prevent AI radio key theft
- else if(radio)
- radio.attackby(W,user)//Push it to the radio to let it handle everything
- else
- to_chat(user, "Unable to locate a radio! ")
- update_icons()
-
- else if(W.tool_behaviour == TOOL_WRENCH && opened && !cell) //Deconstruction. The flashes break from the fall, to prevent this from being a ghetto reset module.
- if(!locked_down)
- to_chat(user, "[src]'s bolts spark! Maybe you should lock them down first! ")
- spark_system.start()
- return
- else
- to_chat(user, "You start to unfasten [src]'s securing bolts... ")
- if(W.use_tool(src, user, 50, volume=50) && !cell)
- user.visible_message("[user] deconstructs [src]!", "You unfasten the securing bolts, and [src] falls to pieces! ")
- deconstruct()
-
- else if(istype(W, /obj/item/aiModule))
- var/obj/item/aiModule/MOD = W
+ if(istype(W, /obj/item/ai_module))
+ var/obj/item/ai_module/MOD = W
if(!opened)
- to_chat(user, "You need access to the robot's insides to do that! ")
+ to_chat(user, span_warning("You need access to the robot's insides to do that!"))
return
if(wiresexposed)
- to_chat(user, "You need to close the wire panel to do that! ")
+ to_chat(user, span_warning("You need to close the wire panel to do that!"))
return
if(!cell)
- to_chat(user, "You need to install a power cell to do that! ")
+ to_chat(user, span_warning("You need to install a power cell to do that!"))
return
if(shell) //AI shells always have the laws of the AI
- to_chat(user, "[src] is controlled remotely! You cannot upload new laws this way! ")
+ to_chat(user, span_warning("[src] is controlled remotely! You cannot upload new laws this way!"))
return
- if(emagged || (connected_ai && lawupdate)) //Can't be sure which, metagamers
- emote("buzz-[user.name]")
+ if(connected_ai && lawupdate)
+ to_chat(user, span_warning("[src] is receiving laws remotely from a synced AI!"))
+ return
+ if(emagged)
+ to_chat(user, span_warning("The law interface glitches out!"))
+ emote("buzz")
return
if(!mind) //A player mind is required for law procs to run antag checks.
- to_chat(user, "[src] is entirely unresponsive! ")
+ to_chat(user, span_warning("[src] is entirely unresponsive!"))
return
MOD.install(laws, user) //Proc includes a success mesage so we don't need another one
return
- else if(istype(W, /obj/item/encryptionkey/) && opened)
+ if(istype(W, /obj/item/encryptionkey) && opened)
if(radio)//sanityyyyyy
radio.attackby(W,user)//GTFO, you have your own procs
else
- to_chat(user, "Unable to locate a radio! ")
+ to_chat(user, span_warning("Unable to locate a radio!"))
+ return
- else if (istype(W, /obj/item/card/id)||istype(W, /obj/item/pda)) // trying to unlock the interface with an ID card
- if(emagged)//still allow them to open the cover
- to_chat(user, "The interface seems slightly damaged. ")
+ if (W.GetID()) // trying to unlock the interface with an ID card
if(opened)
- to_chat(user, "You must close the cover to swipe an ID card! ")
+ to_chat(user, span_warning("You must close the cover to swipe an ID card!"))
else
if(allowed(usr))
locked = !locked
- to_chat(user, "You [ locked ? "lock" : "unlock"] [src]'s cover. ")
+ to_chat(user, span_notice("You [ locked ? "lock" : "unlock"] [src]'s cover."))
update_icons()
+ if(emagged)
+ to_chat(user, span_notice("The cover interface glitches out for a split second."))
+ logevent("ChÃ¥vÃis cover lock has been [locked ? "engaged" : "released"]") //ChÃ¥vÃis: see above line
+ else
+ logevent("Chassis cover lock has been [locked ? "engaged" : "released"]")
else
- to_chat(user, "Access denied. ")
+ to_chat(user, span_danger("Access denied."))
+ return
- else if(istype(W, /obj/item/borg/upgrade/))
+ if(istype(W, /obj/item/borg/upgrade))
var/obj/item/borg/upgrade/U = W
if(!opened)
- to_chat(user, "You must access the borg's internals! ")
- else if(!src.module && U.require_module)
- to_chat(user, "The borg must choose a module before it can be upgraded! ")
- else if(U.locked)
- to_chat(user, "The upgrade is locked and cannot be used yet! ")
- else
- if(!user.temporarilyRemoveItemFromInventory(U))
- return
- if(U.action(src))
- to_chat(user, "You apply the upgrade to [src]. ")
- if(U.one_use)
- U.afterInstall(src)
- qdel(U)
- else
- U.forceMove(src)
- upgrades += U
- U.afterInstall(src)
- else
- to_chat(user, "Upgrade error. ")
- U.forceMove(drop_location())
+ to_chat(user, span_warning("You must access the cyborg's internals!"))
+ return
+ if(!module && U.require_module)
+ to_chat(user, span_warning("The cyborg must choose a model before it can be upgraded!"))
+ return
+ if(U.locked)
+ to_chat(user, span_warning("The upgrade is locked and cannot be used yet!"))
+ return
+ if(!user.canUnEquip(U))
+ to_chat(user, span_warning("The upgrade is stuck to you and you can't seem to let go of it!"))
+ return
+ apply_upgrade(U, user)
+ return
- else if(istype(W, /obj/item/toner))
+ if(istype(W, /obj/item/toner))
if(toner >= tonermax)
- to_chat(user, "The toner level of [src] is at its highest level possible! ")
- else
- if(!user.temporarilyRemoveItemFromInventory(W))
- return
- toner = tonermax
- qdel(W)
- to_chat(user, "You fill the toner level of [src] to its max capacity. ")
- else
- return ..()
+ to_chat(user, span_warning("The toner level of [src] is at its highest level possible!"))
+ return
+ if(!user.temporarilyRemoveItemFromInventory(W))
+ return
+ toner = tonermax
+ qdel(W)
+ to_chat(user, span_notice("You fill the toner level of [src] to its max capacity."))
+ return
+
+ if(istype(W, /obj/item/flashlight))
+ if(!opened)
+ to_chat(user, span_warning("You need to open the panel to repair the headlamp!"))
+ return
+ if(lamp_functional)
+ to_chat(user, span_warning("The headlamp is already functional!"))
+ return
+ if(!user.temporarilyRemoveItemFromInventory(W))
+ to_chat(user, span_warning("[W] seems to be stuck to your hand. You'll have to find a different light."))
+ return
+ lamp_functional = TRUE
+ qdel(W)
+ to_chat(user, span_notice("You replace the headlamp bulbs."))
+ return
+
+ return ..()
/mob/living/silicon/robot/crowbar_act(mob/living/user, obj/item/I) //TODO: make fucking everything up there in that attackby() proc use the proper tool_act() procs. But honestly, who has time for that? 'cause I know for sure that you, the person reading this, sure as hell doesn't.
var/validbreakout = FALSE
@@ -1023,7 +979,7 @@
ionpulse = FALSE
revert_shell()
- return 1
+ return TRUE
/mob/living/silicon/robot/proc/has_module()
if(!module || module.type == /obj/item/robot_module)
@@ -1064,29 +1020,45 @@
*Checking Exited() to detect if a hat gets up and walks off.
*Drones and pAIs might do this, after all.
*/
-/mob/living/silicon/robot/Exited(atom/A)
- if(hat && hat == A)
+/mob/living/silicon/robot/Exited(atom/movable/gone)
+ . = ..()
+ if(hat == gone)
hat = null
if(!QDELETED(src)) //Don't update icons if we are deleted.
update_icons()
- return ..()
-///Use this to add upgrades to robots. It'll register signals for when the upgrade is moved or deleted, if not single use.
-/mob/living/silicon/robot/proc/add_to_upgrades(obj/item/borg/upgrade/new_upgrade, mob/user)
+ if(gone == cell)
+ cell = null
+
+ if(gone == mmi)
+ mmi = null
+
+///Called when a mob uses an upgrade on an open borg. Checks to make sure the upgrade can be applied
+/mob/living/silicon/robot/proc/apply_upgrade(obj/item/borg/upgrade/new_upgrade, mob/user, admin_added)
+ if(!admin_added && isnull(user))
+ return FALSE
if(new_upgrade in upgrades)
return FALSE
- if(!user.temporarilyRemoveItemFromInventory(new_upgrade)) //calling the upgrade's dropped() proc /before/ we add action buttons
+ if(!admin_added && !user.temporarilyRemoveItemFromInventory(new_upgrade)) //calling the upgrade's dropped() proc /before/ we add action buttons
return FALSE
if(!new_upgrade.action(src, user))
- to_chat(user, "Upgrade error. ")
- new_upgrade.forceMove(loc) //gets lost otherwise
+ to_chat(user, span_danger("Upgrade error."))
+ if(admin_added)
+ qdel(new_upgrade)
+ else
+ new_upgrade.forceMove(loc) //gets lost otherwise
return FALSE
- to_chat(user, "You apply the upgrade to [src]. ")
+ to_chat(user, span_notice("You apply the upgrade to [src]."))
+ add_to_upgrades(new_upgrade)
+ return TRUE
+
+///Moves the upgrade inside the robot and registers relevant signals.
+/mob/living/silicon/robot/proc/add_to_upgrades(obj/item/borg/upgrade/new_upgrade)
to_chat(src, "----------------\nNew hardware detected...Identified as \"[new_upgrade] \"...Setup complete.\n----------------")
if(new_upgrade.one_use)
logevent("Firmware [new_upgrade] run successfully.")
qdel(new_upgrade)
- return FALSE
+ return
upgrades += new_upgrade
new_upgrade.forceMove(src)
RegisterSignal(new_upgrade, COMSIG_MOVABLE_MOVED, PROC_REF(remove_from_upgrades))
@@ -1117,15 +1089,17 @@
* * board - B.O.R.I.S. module board used for transforming the cyborg into AI shell
*/
/mob/living/silicon/robot/proc/make_shell(obj/item/borg/upgrade/ai/board)
- if(!board)
- upgrades |= new /obj/item/borg/upgrade/ai(src)
+ if(isnull(board))
+ stack_trace("make_shell was called without a board argument! This is never supposed to happen!")
+ return FALSE
+
shell = TRUE
braintype = "AI Shell"
name = "Empty AI Shell-[ident]"
real_name = name
GLOB.available_ai_shells |= src
if(!QDELETED(builtInCamera))
- builtInCamera.c_tag = real_name //update the camera name too
+ builtInCamera.c_tag = real_name //update the camera name too
diag_hud_set_aishell()
notify_ai(AI_SHELL)
@@ -1328,7 +1302,7 @@
switch(choice)
if("Resting")
update_icons()
- return 0
+ return FALSE
if("Sitting")
sitting = 1
if("Belly up")
diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm
index d5a1058a61..f8217945db 100644
--- a/code/modules/mob/living/silicon/robot/robot_defense.dm
+++ b/code/modules/mob/living/silicon/robot/robot_defense.dm
@@ -94,6 +94,76 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real
apply_status_effect(/datum/status_effect/vtec_disabled, time)
update_movespeed()
+/mob/living/silicon/robot/welder_act(mob/living/user, obj/item/tool)
+ if(user.a_intent == INTENT_HARM)
+ return FALSE
+ . = TRUE
+ if (!getBruteLoss())
+ to_chat(user, span_warning("[src] is already in good condition!"))
+ return
+ if (!tool.tool_start_check(user, amount=0)) //The welder has 1u of fuel consumed by it's afterattack, so we don't need to worry about taking any away.
+ return
+ user.DelayNextAction(CLICK_CD_MELEE)
+ if(src == user)
+ to_chat(user, span_notice("You start fixing yourself..."))
+ if(!tool.use_tool(src, user, 50))
+ return
+ adjustBruteLoss(-10)
+ else
+ to_chat(user, span_notice("You start fixing [src]..."))
+ if(!do_after(user, 3 SECONDS, target = src))
+ return
+ adjustBruteLoss(-30)
+ updatehealth()
+ add_fingerprint(user)
+ visible_message(span_notice("[user] has fixed some of the dents on [src]."))
+
+/mob/living/silicon/robot/crowbar_act(mob/living/user, obj/item/tool)
+ . = TRUE
+ if(opened)
+ to_chat(user, span_notice("You close the cover."))
+ opened = FALSE
+ update_icons()
+ else
+ if(locked)
+ to_chat(user, span_warning("The cover is locked and cannot be opened!"))
+ else
+ to_chat(user, span_notice("You open the cover."))
+ opened = TRUE
+ update_icons()
+
+ return TRUE
+
+/mob/living/silicon/robot/screwdriver_act(mob/living/user, obj/item/tool)
+ if(!opened)
+ return FALSE
+ . = TRUE
+ if(!cell) // haxing
+ wiresexposed = !wiresexposed
+ to_chat(user, span_notice("The wires have been [wiresexposed ? "exposed" : "unexposed"]."))
+ else // radio
+ if(shell)
+ to_chat(user, span_warning("You cannot seem to open the radio compartment!")) //Prevent AI radio key theft
+ else if(radio)
+ radio.screwdriver_act(user, tool) // Push it to the radio to let it handle everything
+ else
+ to_chat(user, span_warning("Unable to locate a radio!"))
+ update_icons()
+
+/mob/living/silicon/robot/wrench_act(mob/living/user, obj/item/tool)
+ if(!(opened && !cell)) // Deconstruction. The flashes break from the fall, to prevent this from being a ghetto reset module.
+ return FALSE
+ . = TRUE
+ if(!locked_down)
+ to_chat(user, span_boldannounce("[src]'s bolts spark! Maybe you should lock them down first!"))
+ spark_system.start()
+ return
+ to_chat(user, span_notice("You start to unfasten [src]'s securing bolts..."))
+ if(tool.use_tool(src, user, 5 SECONDS, volume = 50) && !cell)
+ user.visible_message(span_notice("[user] deconstructs [src]!"), span_notice("You unfasten the securing bolts, and [src] falls to pieces!"))
+ deconstruct()
+ return
+
/mob/living/silicon/robot/fire_act()
if(!on_fire) //Silicons don't gain stacks from hotspots, but hotspots can ignite them
IgniteMob()
diff --git a/code/modules/mob/living/silicon/robot/robot_defines.dm b/code/modules/mob/living/silicon/robot/robot_defines.dm
index 612298e526..b54473f7a6 100644
--- a/code/modules/mob/living/silicon/robot/robot_defines.dm
+++ b/code/modules/mob/living/silicon/robot/robot_defines.dm
@@ -50,7 +50,6 @@
var/obj/item/stock_parts/cell/cell = /obj/item/stock_parts/cell/high ///If this is a path, this gets created as an object in Initialize.
var/opened = FALSE
- var/emagged = FALSE
var/emag_cooldown = 0
var/wiresexposed = FALSE
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index 9315efe6bc..bd019c6da8 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -86,7 +86,7 @@
if(!(m in R.held_items))
. += m
-/obj/item/robot_module/proc/get_or_create_estorage(var/storage_type)
+/obj/item/robot_module/proc/get_or_create_estorage(storage_type)
for(var/datum/robot_energy_storage/S in storages)
if(istype(S, storage_type))
return S
@@ -95,42 +95,9 @@
/obj/item/robot_module/proc/add_module(obj/item/I, nonstandard, requires_rebuild)
rad_flags |= RAD_NO_CONTAMINATE
- if(istype(I, /obj/item/stack))
- var/obj/item/stack/S = I
-
- if(is_type_in_list(S, list(/obj/item/stack/sheet/metal, /obj/item/stack/rods, /obj/item/stack/tile/plasteel)))
- if(S.custom_materials?.len && S.custom_materials[SSmaterials.GetMaterialRef(/datum/material/iron)])
- S.cost = S.custom_materials[SSmaterials.GetMaterialRef(/datum/material/iron)] * 0.25
- S.source = get_or_create_estorage(/datum/robot_energy_storage/metal)
-
- else if(istype(S, /obj/item/stack/sheet/glass))
- S.cost = 500
- S.source = get_or_create_estorage(/datum/robot_energy_storage/glass)
-
- else if(istype(S, /obj/item/stack/sheet/rglass/cyborg))
- var/obj/item/stack/sheet/rglass/cyborg/G = S
- G.source = get_or_create_estorage(/datum/robot_energy_storage/metal)
- G.glasource = get_or_create_estorage(/datum/robot_energy_storage/glass)
-
- else if(istype(S, /obj/item/stack/medical))
- S.cost = 250
- S.source = get_or_create_estorage(/datum/robot_energy_storage/medical)
-
- else if(istype(S, /obj/item/stack/cable_coil))
- S.cost = 1
- S.source = get_or_create_estorage(/datum/robot_energy_storage/wire)
-
- else if(istype(S, /obj/item/stack/marker_beacon))
- S.cost = 1
- S.source = get_or_create_estorage(/datum/robot_energy_storage/beacon)
-
- else if(istype(S, /obj/item/stack/packageWrap))
- S.cost = 1
- S.source = get_or_create_estorage(/datum/robot_energy_storage/wrapping_paper)
-
- if(S && S.source)
- S.set_custom_materials(null)
- S.is_cyborg = 1
+ var/obj/item/stack/S = I
+ if(istype(I, /obj/item/stack) && !S.is_cyborg) // Now handled in the type itself
+ stack_trace("Non-cyborg variant of /obj/item/stack added to a cyborg's modules.")
if(I.loc != src)
I.forceMove(src)
@@ -380,7 +347,7 @@
var/image/bad_snowflake = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "alina-med")
bad_snowflake.pixel_x = -16
med_icons["Alina"] = bad_snowflake
- med_icons = sortList(med_icons)
+ med_icons = sort_list(med_icons)
var/med_borg_icon = show_radial_menu(R, R , med_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE)
switch(med_borg_icon)
if("Default")
@@ -498,7 +465,7 @@
var/image/bad_snowflake = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "alina-eng")
bad_snowflake.pixel_x = -16
engi_icons["Alina"] = bad_snowflake
- engi_icons = sortList(engi_icons)
+ engi_icons = sort_list(engi_icons)
var/engi_borg_icon = show_radial_menu(R, R , engi_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE)
switch(engi_borg_icon)
if("Default")
@@ -595,7 +562,7 @@
var/image/bad_snowflake = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "alina-sec")
bad_snowflake.pixel_x = -16
sec_icons["Alina"] = bad_snowflake
- sec_icons = sortList(sec_icons)
+ sec_icons = sort_list(sec_icons)
var/sec_borg_icon = show_radial_menu(R, R , sec_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE)
switch(sec_borg_icon)
if("Default")
@@ -681,7 +648,7 @@
/obj/item/robot_module/peacekeeper/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
- var/static/list/peace_icons = sortList(list(
+ var/static/list/peace_icons = sort_list(list(
"Default" = image(icon = 'icons/mob/robots.dmi', icon_state = "peace"),
"Borgi" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "borgi"),
"Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "whitespider")
@@ -852,7 +819,7 @@
var/image/bad_snowflake = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "alina-sec")
bad_snowflake.pixel_x = -16
service_icons["Alina"] = bad_snowflake
- service_icons = sortList(service_icons)
+ service_icons = sort_list(service_icons)
var/service_robot_icon = show_radial_menu(R, R , service_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE)
switch(service_robot_icon)
if("(Service) Waitress")
@@ -935,9 +902,9 @@
/obj/item/gps/cyborg,
/obj/item/gripper/mining,
/obj/item/cyborg_clamp,
- /obj/item/stack/marker_beacon,
+ /obj/item/stack/marker_beacon/cyborg,
/obj/item/destTagger,
- /obj/item/stack/packageWrap,
+ /obj/item/stack/packageWrap/cyborg,
/obj/item/card/id/miningborg)
emag_modules = list(/obj/item/borg/stun)
ratvar_modules = list(
@@ -966,7 +933,7 @@
var/image/wide = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = L[a])
wide.pixel_x = -16
mining_icons[a] = wide
- mining_icons = sortList(mining_icons)
+ mining_icons = sort_list(mining_icons)
var/mining_borg_icon = show_radial_menu(R, R , mining_icons, custom_check = CALLBACK(src, PROC_REF(check_menu), R), radius = 42, require_near = TRUE)
switch(mining_borg_icon)
if("Lavaland")
@@ -1056,7 +1023,7 @@
/obj/item/surgicaldrill,
/obj/item/scalpel,
/obj/item/bonesetter,
- /obj/item/stack/medical/bone_gel,
+ /obj/item/stack/medical/bone_gel/cyborg,
/obj/item/melee/transforming/energy/sword/cyborg/saw,
/obj/item/roller/robo,
/obj/item/card/emag,
@@ -1128,10 +1095,10 @@
if (energy >= amount)
energy -= amount
if (energy == 0)
- return 1
+ return TRUE
return 2
else
- return 0
+ return FALSE
/datum/robot_energy_storage/proc/add_charge(amount)
energy = min(energy + amount, max_energy)
@@ -1191,7 +1158,7 @@
/obj/item/surgicaldrill,
/obj/item/scalpel,
/obj/item/bonesetter,
- /obj/item/stack/medical/bone_gel,
+ /obj/item/stack/medical/bone_gel/cyborg,
/obj/item/melee/transforming/energy/sword/cyborg/saw,
/obj/item/roller/robo,
/obj/item/stack/medical/gauze/cyborg,
diff --git a/code/modules/mob/living/silicon/robot/robot_movement.dm b/code/modules/mob/living/silicon/robot/robot_movement.dm
index 23500688ae..538f3c513f 100644
--- a/code/modules/mob/living/silicon/robot/robot_movement.dm
+++ b/code/modules/mob/living/silicon/robot/robot_movement.dm
@@ -1,6 +1,6 @@
/mob/living/silicon/robot/Process_Spacemove(movement_dir = 0)
if(ionpulse())
- return 1
+ return TRUE
return ..()
/mob/living/silicon/robot/mob_negates_gravity()
diff --git a/code/modules/mob/living/silicon/say.dm b/code/modules/mob/living/silicon/say.dm
index fbc1eb4eb9..298f5d5e00 100644
--- a/code/modules/mob/living/silicon/say.dm
+++ b/code/modules/mob/living/silicon/say.dm
@@ -24,10 +24,10 @@
to_chat(M, "[link] [rendered] ")
/mob/living/silicon/binarycheck()
- return 1
+ return TRUE
/mob/living/silicon/lingcheck()
- return 0 //Borged or AI'd lings can't speak on the ling channel.
+ return FALSE //Borged or AI'd lings can't speak on the ling channel.
/mob/living/silicon/radio(message, message_mode, list/spans, language)
. = ..()
@@ -44,7 +44,7 @@
radio.talk_into(src, message, message_mode, spans, language)
return ITALICS | REDUCE_RANGE
- return 0
+ return FALSE
/mob/living/silicon/get_message_mode(message)
. = ..()
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index 83ce09b315..f58b27a537 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -44,6 +44,8 @@
var/obj/machinery/camera/builtInCamera = null
var/updating = FALSE //portable camera camerachunk update
+ ///Whether we have been emagged
+ var/emagged = FALSE
var/hack_software = FALSE //Will be able to use hacking actions
var/interaction_range = 7 //wireless control range
@@ -362,12 +364,12 @@
to_chat(src, "Automatic announcements [Autochan == "None" ? "will not use the radio." : "set to [Autochan]."] ")
/mob/living/silicon/put_in_hand_check() // This check is for borgs being able to receive items, not put them in others' hands.
- return 0
+ return FALSE
// The src mob is trying to place an item on someone
// But the src mob is a silicon!! Disable.
/mob/living/silicon/stripPanelEquip(obj/item/what, mob/who, slot)
- return 0
+ return FALSE
/mob/living/silicon/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) //Secbots won't hunt silicon units
@@ -432,7 +434,7 @@
return ..()
/mob/living/silicon/is_literate()
- return 1
+ return TRUE
/mob/living/silicon/get_inactive_held_item()
return FALSE
diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm
index e1a179ea52..771eeca2ce 100644
--- a/code/modules/mob/living/silicon/silicon_defense.dm
+++ b/code/modules/mob/living/silicon/silicon_defense.dm
@@ -95,7 +95,7 @@
for(var/mob/living/M in buckled_mobs)
unbuckle_mob(M)
M.electrocute_act(shock_damage/100, source, siemens_coeff, flags) //Hard metal shell conducts!
- return 0 //So borgs they don't die trying to fix wiring
+ return FALSE //So borgs they don't die trying to fix wiring
/mob/living/silicon/emp_act(severity)
. = ..()
diff --git a/code/modules/mob/living/simple_animal/animal_defense.dm b/code/modules/mob/living/simple_animal/animal_defense.dm
index e605ffde31..05ee1554db 100644
--- a/code/modules/mob/living/simple_animal/animal_defense.dm
+++ b/code/modules/mob/living/simple_animal/animal_defense.dm
@@ -57,7 +57,7 @@
if(.) //successful larva bite
var/damage = rand(1, 3)
attack_threshold_check(damage)
- return 1
+ return TRUE
if (M.a_intent == INTENT_HELP)
if (health > 0)
visible_message("[M.name] [response_help_continuous] [src]. ", \
diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm
index c3ae3898dd..864e42d1e1 100644
--- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm
+++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm
@@ -349,8 +349,8 @@
/mob/living/simple_animal/bot/ed209/proc/check_for_weapons(var/obj/item/slot_item)
if(slot_item && (slot_item.item_flags & NEEDS_PERMIT))
- return 1
- return 0
+ return TRUE
+ return FALSE
/mob/living/simple_animal/bot/ed209/explode()
walk_to(src,0)
diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm
index 8cd1cd519d..683a06fab0 100644
--- a/code/modules/mob/living/simple_animal/bot/floorbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/floorbot.dm
@@ -284,9 +284,9 @@
/mob/living/simple_animal/bot/floorbot/proc/is_hull_breach(turf/t) //Ignore space tiles not considered part of a structure, also ignores shuttle docking areas.
var/area/t_area = get_area(t)
if(t_area && (t_area.name == "Space" || findtext(t_area.name, "huttle")))
- return 0
+ return FALSE
else
- return 1
+ return TRUE
//Floorbots, having several functions, need sort out special conditions here.
/mob/living/simple_animal/bot/floorbot/process_scan(scan_target)
diff --git a/code/modules/mob/living/simple_animal/bot/honkbot.dm b/code/modules/mob/living/simple_animal/bot/honkbot.dm
index 7ba1e72024..27eb3be938 100644
--- a/code/modules/mob/living/simple_animal/bot/honkbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/honkbot.dm
@@ -138,13 +138,14 @@
bike_horn(A)
-/mob/living/simple_animal/bot/honkbot/hitby(atom/movable/AM, skipcatch = FALSE, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)
- if(istype(AM, /obj/item))
+/mob/living/simple_animal/bot/honkbot/hitby(atom/movable/hitting_atom, skipcatch = FALSE, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)
+ if(istype(hitting_atom, /obj/item))
playsound(src, honksound, 50, TRUE, -1)
- var/obj/item/I = AM
- if(I.throwforce < health && I.thrownby && (istype(I.thrownby, /mob/living/carbon/human)))
- var/mob/living/carbon/human/H = I.thrownby
- retaliate(H)
+ var/obj/item/item_hitby = hitting_atom
+ var/mob/thrown_by = item_hitby.thrownby?.resolve()
+ if(item_hitby.throwforce < src.health && thrown_by && ishuman(thrown_by))
+ var/mob/living/carbon/human/human_throwee = thrown_by
+ retaliate(human_throwee)
..()
/mob/living/simple_animal/bot/honkbot/proc/bike_horn() //use bike_horn
diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm
index d1013a5f4e..8ce84f5de9 100644
--- a/code/modules/mob/living/simple_animal/bot/secbot.dm
+++ b/code/modules/mob/living/simple_animal/bot/secbot.dm
@@ -351,12 +351,13 @@
..()
-/mob/living/simple_animal/bot/secbot/hitby(atom/movable/AM, skipcatch = FALSE, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)
- if(istype(AM, /obj/item))
- var/obj/item/I = AM
- if(I.throwforce < src.health && I.thrownby && ishuman(I.thrownby))
- var/mob/living/carbon/human/H = I.thrownby
- retaliate(H)
+/mob/living/simple_animal/bot/secbot/hitby(atom/movable/hitting_atom, skipcatch = FALSE, hitpush = TRUE, blocked = FALSE, datum/thrownthing/throwingdatum)
+ if(istype(hitting_atom, /obj/item))
+ var/obj/item/item_hitby = hitting_atom
+ var/mob/thrown_by = item_hitby.thrownby?.resolve()
+ if(item_hitby.throwforce < src.health && thrown_by && ishuman(thrown_by))
+ var/mob/living/carbon/human/human_throwee = thrown_by
+ retaliate(human_throwee)
..()
diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm
index 7d37039fa1..4539c594a1 100644
--- a/code/modules/mob/living/simple_animal/constructs.dm
+++ b/code/modules/mob/living/simple_animal/constructs.dm
@@ -44,6 +44,9 @@
var/can_repair_constructs = FALSE
var/can_repair_self = FALSE
var/runetype
+ var/datum/action/innate/cult/create_rune/our_rune
+ /// Theme controls color. THEME_CULT is red THEME_WIZARD is purple and THEME_HOLY is blue
+ var/theme = "cult"
var/datum/mind/original_mind
/mob/living/simple_animal/hostile/construct/Initialize(mapload)
@@ -51,24 +54,26 @@
update_health_hud()
var/spellnum = 1
for(var/spell in construct_spells)
- var/the_spell = new spell(null)
- AddSpell(the_spell)
- var/obj/effect/proc_holder/spell/S = mob_spell_list[spellnum]
var/pos = 2+spellnum*31
if(construct_spells.len >= 4)
pos -= 31*(construct_spells.len - 4)
- S.action.button.screen_loc = "6:[pos],4:-2"
- S.action.button.moved = "6:[pos],4:-2"
+ var/obj/effect/proc_holder/spell/the_spell = new spell(null)
+ the_spell?.action.default_button_position ="6:[pos],4:-2"
+ AddSpell(the_spell)
spellnum++
if(runetype)
- var/datum/action/innate/cult/create_rune/CR = new runetype(src)
- CR.Grant(src)
var/pos = 2+spellnum*31
- CR.button.screen_loc = "6:[pos],4:-2"
- CR.button.moved = "6:[pos],4:-2"
+ if(construct_spells.len >= 4)
+ pos -= 31*(construct_spells.len - 4)
+ our_rune = new runetype(src)
+ our_rune.default_button_position = "6:[pos],4:-2" // Set the default position to this random position
+ our_rune.Grant(src)
+ if(icon_state)
+ add_overlay("glow_[icon_state]_[theme]")
/mob/living/simple_animal/hostile/construct/Destroy()
original_mind = null
+ QDEL_NULL(our_rune)
. = ..()
/mob/living/simple_animal/hostile/construct/death()
@@ -274,17 +279,17 @@
if(isconstruct(A)) //is it a construct?
var/mob/living/simple_animal/hostile/construct/C = A
if(C.health < C.maxHealth) //is it hurt? let's go heal it if it is
- return 1
+ return TRUE
else
- return 0
+ return FALSE
else
- return 0
+ return FALSE
/mob/living/simple_animal/hostile/construct/builder/CanAttack(atom/the_target)
if(see_invisible < the_target.invisibility)//Target's invisible to us, forget it
- return 0
+ return FALSE
if(Found(the_target) || ..()) //If we Found it or Can_Attack it normally, we Can_Attack it as long as it wasn't invisible
- return 1 //as a note this shouldn't be added to base hostile mobs because it'll mess up retaliate hostile mobs
+ return TRUE //as a note this shouldn't be added to base hostile mobs because it'll mess up retaliate hostile mobs
/mob/living/simple_animal/hostile/construct/builder/MoveToTarget(var/list/possible_targets)
..()
@@ -292,7 +297,7 @@
var/mob/living/L = target
if(isconstruct(L) && L.health >= L.maxHealth) //is this target an unhurt construct? stop trying to heal it
LoseTarget()
- return 0
+ return FALSE
if(L.health <= melee_damage_lower+melee_damage_upper) //ey bucko you're hurt as fuck let's go hit you
retreat_distance = null
minimum_distance = 1
diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm
index e4d042a4cc..08612ccc7f 100644
--- a/code/modules/mob/living/simple_animal/friendly/dog.dm
+++ b/code/modules/mob/living/simple_animal/friendly/dog.dm
@@ -670,7 +670,7 @@ GLOBAL_LIST_INIT(strippable_corgi_items, create_strippable_list(list(
vocal_pitch = 0.6
/mob/living/simple_animal/pet/dog/corgi/puppy/void/Process_Spacemove(movement_dir = 0)
- return 1 //Void puppies can navigate space.
+ return TRUE //Void puppies can navigate space.
//LISA! SQUEEEEEEEEE~
diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
index 6b524f6114..bb638ea104 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
@@ -276,7 +276,7 @@
return ..()
/mob/living/simple_animal/drone/mob_negates_gravity()
- return 1
+ return TRUE
/mob/living/simple_animal/drone/mob_has_gravity()
return ..() || mob_negates_gravity()
@@ -286,10 +286,10 @@
/mob/living/simple_animal/drone/bee_friendly()
// Why would bees pay attention to drones?
- return 1
+ return TRUE
/mob/living/simple_animal/drone/electrocute_act(shock_damage, source, siemens_coeff = 1, flags = NONE)
- return 0 //So they don't die trying to fix wiring
+ return FALSE //So they don't die trying to fix wiring
/mob/living/simple_animal/drone/can_see_reagents()
. = ..()
diff --git a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm
index 4acbd41977..e983335a22 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm
@@ -176,7 +176,7 @@
/mob/living/simple_animal/drone/cogscarab/get_armor_effectiveness()
if(GLOB.ratvar_awakens)
- return 1
+ return TRUE
return ..()
/mob/living/simple_animal/drone/cogscarab/triggerAlarm(class, area/A, O, obj/alarmsource)
diff --git a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm
index b7545de517..7cd3919490 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm
@@ -85,7 +85,7 @@
return (armorval * get_armor_effectiveness()) //armor is reduced for tiny fragile drones
/mob/living/simple_animal/drone/proc/get_armor_effectiveness()
- return 0 //multiplier for whatever head armor you wear as a drone
+ return FALSE //multiplier for whatever head armor you wear as a drone
/mob/living/simple_animal/drone/proc/update_drone_hack(hack, clockwork)
if(!istype(src) || !mind)
diff --git a/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm b/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm
index 4c112858da..c956e19a85 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm
@@ -15,22 +15,22 @@
if(I == internal_storage)
internal_storage = null
update_inv_internal_storage()
- return 1
- return 0
+ return TRUE
+ return FALSE
/mob/living/simple_animal/drone/can_equip(obj/item/I, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE, clothing_check = FALSE, list/return_warning)
switch(slot)
if(ITEM_SLOT_HEAD)
if(head)
- return 0
+ return FALSE
if(!((I.slot_flags & ITEM_SLOT_HEAD) || (I.slot_flags & ITEM_SLOT_MASK)))
- return 0
- return 1
+ return FALSE
+ return TRUE
if(ITEM_SLOT_DEX_STORAGE)
if(internal_storage)
- return 0
- return 1
+ return FALSE
+ return TRUE
..()
diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
index 7893f7b26b..d53d596505 100644
--- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
+++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
@@ -95,7 +95,7 @@
/mob/living/simple_animal/hostile/retaliate/goat/attackby(obj/item/O, mob/user, params)
if(stat == CONSCIOUS && istype(O, /obj/item/reagent_containers/glass))
udder.milkAnimal(O, user)
- return 1
+ return TRUE
else
return ..()
@@ -159,7 +159,7 @@
/mob/living/simple_animal/cow/attackby(obj/item/O, mob/user, params)
if(stat == CONSCIOUS && istype(O, /obj/item/reagent_containers/glass))
udder.milkAnimal(O, user)
- return 1
+ return TRUE
else
return ..()
diff --git a/code/modules/mob/living/simple_animal/gremlin/gremlin.dm b/code/modules/mob/living/simple_animal/gremlin/gremlin.dm
index 117cb50717..371ff612a6 100644
--- a/code/modules/mob/living/simple_animal/gremlin/gremlin.dm
+++ b/code/modules/mob/living/simple_animal/gremlin/gremlin.dm
@@ -228,7 +228,7 @@ GLOBAL_LIST(bad_gremlin_items)
return ..()
/mob/living/simple_animal/hostile/gremlin/IsAdvancedToolUser()
- return 1
+ return TRUE
/mob/living/simple_animal/hostile/gremlin/proc/divide()
//Health is halved and then reduced by 2. A new gremlin is spawned with the same health as the parent
diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm
index 6faf8f0db5..4c8872ffbf 100644
--- a/code/modules/mob/living/simple_animal/guardian/guardian.dm
+++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm
@@ -257,7 +257,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
resulthealth = round((abs(HEALTH_THRESHOLD_DEAD - summoner.health) / abs(HEALTH_THRESHOLD_DEAD - summoner.maxHealth)) * 100)
else
resulthealth = round((summoner.health / summoner.maxHealth) * 100, 0.5)
- hud_used.healths.maptext = "[resulthealth]%
"
+ hud_used.healths.maptext = MAPTEXT("[resulthealth]%
")
/mob/living/simple_animal/hostile/guardian/adjustHealth(amount, updating_health = TRUE, forced = FALSE) //The spirit is invincible, but passes on damage to the summoner
. = amount
diff --git a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm
index 1fd1e623db..7bc2121e78 100644
--- a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm
+++ b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm
@@ -41,21 +41,21 @@
..() //lose items, then return
//SLOT HANDLING BULLSHIT FOR INTERNAL STORAGE
-/mob/living/simple_animal/hostile/guardian/dextrous/doUnEquip(obj/item/I, force, silent = FALSE)
+/mob/living/simple_animal/hostile/guardian/dextrous/doUnEquip(obj/item/I, force, invdrop, silent = FALSE)
if(..())
update_inv_hands()
if(I == internal_storage)
internal_storage = null
update_inv_internal_storage()
- return 1
- return 0
+ return TRUE
+ return FALSE
/mob/living/simple_animal/hostile/guardian/dextrous/can_equip(obj/item/I, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE, clothing_check = FALSE, list/return_warning)
switch(slot)
if(ITEM_SLOT_DEX_STORAGE)
if(internal_storage)
- return 0
- return 1
+ return FALSE
+ return TRUE
..()
/mob/living/simple_animal/hostile/guardian/dextrous/equip_to_slot(obj/item/I, slot)
diff --git a/code/modules/mob/living/simple_animal/guardian/types/protector.dm b/code/modules/mob/living/simple_animal/guardian/types/protector.dm
index 00d56edd55..605c23227e 100644
--- a/code/modules/mob/living/simple_animal/guardian/types/protector.dm
+++ b/code/modules/mob/living/simple_animal/guardian/types/protector.dm
@@ -29,7 +29,7 @@
/mob/living/simple_animal/hostile/guardian/protector/ToggleMode()
if(cooldown > world.time)
- return 0
+ return FALSE
cooldown = world.time + 10
if(toggle)
cut_overlays()
diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm b/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm
index 1dedf8cd29..88f25eb5ce 100644
--- a/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bosses/boss.dm
@@ -143,7 +143,7 @@
var/datum/action/boss/AB = ab
if(!boss.client && (!AB.req_statuses || (boss.AIStatus in AB.req_statuses)) && prob(AB.usage_probability) && AB.Trigger())
break
- AB.UpdateButtonIcon(TRUE)
+ AB.UpdateButtons(TRUE)
/datum/boss_active_timed_battle/Destroy()
diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
index 23a0d44d56..f2e64ddf95 100644
--- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
+++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
@@ -246,7 +246,7 @@
/mob/living/simple_animal/hostile/poison/giant_spider/handle_automated_action()
if(!..()) //AIStatus is off
- return 0
+ return FALSE
if(AIStatus == AI_IDLE)
//1% chance to skitter madly away
if(!busy && prob(1))
@@ -255,7 +255,7 @@
spawn(50)
stop_automated_movement = 0
walk(src,0)
- return 1
+ return TRUE
/mob/living/simple_animal/hostile/poison/giant_spider/nurse/proc/GiveUp(C)
spawn(100)
@@ -336,7 +336,7 @@
if(L.blood_volume && (L.stat != DEAD || !consumed_mobs[L.tag])) //if they're not dead, you can consume them anyway
consumed_mobs[L.tag] = TRUE
fed++
- lay_eggs.UpdateButtonIcon(TRUE)
+ lay_eggs.UpdateButtons(TRUE)
visible_message("[src] sticks a proboscis into [L] and sucks a viscous substance out. ","You suck the nutriment out of [L], feeding you enough to lay a cluster of eggs. ")
L.death() //you just ate them, they're dead.
else
@@ -402,7 +402,7 @@
/obj/effect/proc_holder/wrap/update_icon()
action.button_icon_state = "wrap_[active]"
- action.UpdateButtonIcon()
+ action.UpdateButtons()
/obj/effect/proc_holder/wrap/Trigger(mob/living/simple_animal/hostile/poison/giant_spider/nurse/user)
if(!istype(user))
@@ -418,7 +418,7 @@
else
message = "You prepare to wrap something in a cocoon. Left-click your target to start wrapping! "
add_ranged_ability(user, message, TRUE)
- return 1
+ return TRUE
/obj/effect/proc_holder/wrap/InterceptClickOn(mob/living/caller, params, atom/target)
if(..())
@@ -450,11 +450,11 @@
/datum/action/innate/spider/lay_eggs/IsAvailable(silent = FALSE)
if(..())
if(!istype(owner, /mob/living/simple_animal/hostile/poison/giant_spider/nurse))
- return 0
+ return FALSE
var/mob/living/simple_animal/hostile/poison/giant_spider/nurse/S = owner
if(S.fed)
- return 1
- return 0
+ return TRUE
+ return FALSE
/datum/action/innate/spider/lay_eggs/Activate()
if(!istype(owner, /mob/living/simple_animal/hostile/poison/giant_spider/nurse))
@@ -482,7 +482,7 @@
C.poison_per_bite = S.poison_per_bite
C.faction = S.faction.Copy()
S.fed--
- UpdateButtonIcon(TRUE)
+ UpdateButtons(TRUE)
S.busy = SPIDER_IDLE
S.stop_automated_movement = FALSE
diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm
index c13f1ad2a6..01d846c5bb 100644
--- a/code/modules/mob/living/simple_animal/hostile/hostile.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm
@@ -86,7 +86,7 @@
/mob/living/simple_animal/hostile/handle_automated_action()
if(AIStatus == AI_OFF)
- return 0
+ return FALSE
var/list/possible_targets = ListTargets() //we look around for potential targets and make it a list for later use.
if(environment_smash)
@@ -98,7 +98,7 @@
if(!MoveToTarget(possible_targets)) //if we lose our target
if(AIShouldSleep(possible_targets)) // we try to acquire a new one
toggle_ai(AI_IDLE) // otherwise we go idle
- return 1
+ return TRUE
/mob/living/simple_animal/hostile/handle_automated_movement()
. = ..()
@@ -273,7 +273,7 @@
if(target != null)
GainPatience()
Aggro()
- return 1
+ return TRUE
//What we do after closing in
/mob/living/simple_animal/hostile/proc/MeleeAction(patience = TRUE)
@@ -295,12 +295,12 @@
stop_automated_movement = 1
if(!target || !CanAttack(target))
LoseTarget()
- return 0
+ return FALSE
if(target in possible_targets)
var/turf/T = get_turf(src)
if(target.z != T.z)
LoseTarget()
- return 0
+ return FALSE
var/target_distance = get_dist(targets_from,target)
if(ranged) //We ranged? Shoot at em
if(!target.Adjacent(targets_from) && ranged_cooldown <= world.time) //But make sure they're not in range for a melee attack and our range attack is off cooldown
@@ -310,7 +310,7 @@
return TRUE
if(!Process_Spacemove()) //Drifting
walk(src,0)
- return 1
+ return TRUE
if(retreat_distance != null) //If we have a retreat distance, check if we need to run from our target
if(target_distance <= retreat_distance) //If target's closer than our retreat distance, run
walk_away(src,target,retreat_distance,move_to_delay)
@@ -325,8 +325,8 @@
if(rapid_melee > 1 && target_distance <= melee_queue_distance)
MeleeAction(FALSE)
in_melee = FALSE //If we're just preparing to strike do not enter sidestep mode
- return 1
- return 0
+ return TRUE
+ return FALSE
if(environment_smash)
if(target.loc != null && get_dist(targets_from, target.loc) <= vision_range) //We can't see our target, but he's in our vision range still
if(ranged_ignores_vision && ranged_cooldown <= world.time) //we can't see our target... but we can fire at them!
@@ -334,12 +334,12 @@
if((environment_smash & ENVIRONMENT_SMASH_WALLS) || (environment_smash & ENVIRONMENT_SMASH_RWALLS)) //If we're capable of smashing through walls, forget about vision completely after finding our target
Goto(target,move_to_delay,minimum_distance)
FindHidden()
- return 1
+ return TRUE
else
if(FindHidden())
- return 1
+ return TRUE
LoseTarget()
- return 0
+ return FALSE
/mob/living/simple_animal/hostile/proc/Goto(target, delay, minimum_distance)
if(target == src.target)
@@ -530,7 +530,7 @@
Goto(A,move_to_delay,minimum_distance)
if(A.Adjacent(targets_from))
A.attack_animal(src)
- return 1
+ return TRUE
/mob/living/simple_animal/hostile/RangedAttack(atom/A, params) //Player firing
if(ranged && ranged_cooldown <= world.time)
diff --git a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm
index 0f6c10d817..8463e252ad 100644
--- a/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mecha_pilot.dm
@@ -70,7 +70,7 @@
/mob/living/simple_animal/hostile/syndicate/mecha_pilot/proc/enter_mecha(obj/vehicle/sealed/mecha/M)
if(!M)
- return 0
+ return FALSE
target = null //Target was our mecha, so null it out
M.aimob_enter_mech(src)
targets_from = M
@@ -95,7 +95,7 @@
/mob/living/simple_animal/hostile/syndicate/mecha_pilot/proc/exit_mecha(obj/vehicle/sealed/mecha/M)
if(!M)
- return 0
+ return FALSE
mecha.aimob_exit_mech(src)
allow_movement_on_non_turfs = FALSE
@@ -280,7 +280,7 @@
/mob/living/simple_animal/hostile/syndicate/mecha_pilot/EscapeConfinement()
if(mecha && loc == mecha)
- return 0
+ return FALSE
..()
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
index 01abea9e96..1f30ebac2d 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
@@ -153,7 +153,7 @@ Difficulty: Hard
if(is_enraged())
visible_message("[src] deflects the projectile; [p_they()] can't be hit with ranged weapons while enraged! ", "You deflect the projectile! ")
playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 300, 1)
- return 0
+ return FALSE
return ..()
/mob/living/simple_animal/hostile/megafauna/bubblegum/ex_act(severity, target, origin)
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
index 49db738233..9f13b980b6 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
@@ -203,7 +203,7 @@ Difficulty: Medium
if(!any_attack)
for(var/obj/effect/temp_visual/drakewall/D in drakewalls)
qdel(D)
- return 0 // nothing to attack in the arena time for enraged attack if we still have a target
+ return FALSE // nothing to attack in the arena time for enraged attack if we still have a target
for(var/turf/T in turfs)
if(!(T in empty))
new /obj/effect/temp_visual/lava_warning(T)
@@ -211,7 +211,7 @@ Difficulty: Medium
new /obj/effect/temp_visual/lava_safe(T)
amount--
sleep(24)
- return 1 // attack finished completely
+ return TRUE // attack finished completely
/mob/living/simple_animal/hostile/megafauna/dragon/proc/arena_escape_enrage() // you ran somehow / teleported away from my arena attack now i'm mad fucker
SetRecoveryTime(80)
diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm
index 6370fae0e3..28be4c4865 100644
--- a/code/modules/mob/living/simple_animal/hostile/mimic.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm
@@ -143,8 +143,8 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca
/mob/living/simple_animal/hostile/mimic/copy/proc/CheckObject(obj/O)
if((isitem(O) || isstructure(O)) && !is_type_in_list(O, GLOB.protected_objects))
- return 1
- return 0
+ return TRUE
+ return FALSE
/mob/living/simple_animal/hostile/mimic/copy/proc/CopyObject(obj/O, mob/living/user, destroy_original = 0)
if(destroy_original || CheckObject(O))
@@ -176,7 +176,7 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca
faction += "[REF(creator)]" // very unique
if(destroy_original)
qdel(O)
- return 1
+ return TRUE
/mob/living/simple_animal/hostile/mimic/copy/DestroySurroundings()
if(destroy_objects)
@@ -197,11 +197,11 @@ GLOBAL_LIST_INIT(protected_objects, list(/obj/structure/table, /obj/structure/ca
/mob/living/simple_animal/hostile/mimic/copy/machine/CanAttack(atom/the_target)
if(the_target == creator) // Don't attack our creator AI.
- return 0
+ return FALSE
if(iscyborg(the_target))
var/mob/living/silicon/robot/R = the_target
if(R.connected_ai == creator) // Only attack robots that aren't synced to our creator AI.
- return 0
+ return FALSE
return ..()
/mob/living/simple_animal/hostile/mimic/copy/ranged
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm
index 4e11ca4897..423a8f6002 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm
@@ -72,19 +72,48 @@ While using this makes the system rely on OnFire, it still gives options for tim
icon_icon = 'icons/mob/actions/actions_elites.dmi'
button_icon_state = ""
background_icon_state = "bg_default"
- var/mob/living/simple_animal/hostile/asteroid/elite/M
var/chosen_message
var/chosen_attack_num = 0
+/datum/action/innate/elite_attack/CreateButton()
+ var/atom/movable/screen/movable/action_button/button = ..()
+ button.maptext = ""
+ button.maptext_x = 8
+ button.maptext_y = 0
+ button.maptext_width = 24
+ button.maptext_height = 12
+ return button
+
+/datum/action/innate/elite_attack/process()
+ if(owner == null)
+ STOP_PROCESSING(SSfastprocess, src)
+ qdel(src)
+ return
+ UpdateButtons()
+
+/datum/action/innate/elite_attack/UpdateButton(atom/movable/screen/movable/action_button/button, status_only = FALSE, force = FALSE)
+ . = ..()
+ if(!.)
+ return
+ if(status_only)
+ return
+ var/mob/living/simple_animal/hostile/asteroid/elite/elite_owner = owner
+ var/timeleft = max(elite_owner.ranged_cooldown - world.time, 0)
+ if(timeleft == 0)
+ button.maptext = ""
+ else
+ button.maptext = "[round(timeleft/10, 0.1)] "
+
/datum/action/innate/elite_attack/Grant(mob/living/L)
if(istype(L, /mob/living/simple_animal/hostile/asteroid/elite))
- M = L
+ START_PROCESSING(SSfastprocess, src)
return ..()
return FALSE
/datum/action/innate/elite_attack/Activate()
- M.chosen_attack = chosen_attack_num
- to_chat(M, chosen_message)
+ var/mob/living/simple_animal/hostile/asteroid/elite/elite_owner = owner
+ elite_owner.chosen_attack = chosen_attack_num
+ to_chat(elite_owner, chosen_message)
/mob/living/simple_animal/hostile/asteroid/elite/updatehealth()
. = ..()
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm
index e9be18f0cb..2463431ad3 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm
@@ -50,7 +50,7 @@
if(!stat)
Aggro()
if(T.throwforce <= 20)
- visible_message("The [T.name] [throw_message] [src.name]! ")
+ visible_message(span_notice("The [T.name] [throw_message] [src.name]!"))
return
..()
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm
index 92eb310595..1db137c0f9 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm
@@ -39,7 +39,7 @@
for(var/mob/living/simple_animal/hostile/retaliate/H in around)
if(faction_check_mob(H) && !attack_same && !H.attack_same)
H.enemies |= enemies
- return 0
+ return FALSE
/mob/living/simple_animal/hostile/retaliate/adjustHealth(amount, updating_health = TRUE, forced = FALSE)
. = ..()
diff --git a/code/modules/mob/living/simple_animal/hostile/sharks.dm b/code/modules/mob/living/simple_animal/hostile/sharks.dm
index af61149130..a101680cc1 100644
--- a/code/modules/mob/living/simple_animal/hostile/sharks.dm
+++ b/code/modules/mob/living/simple_animal/hostile/sharks.dm
@@ -36,7 +36,7 @@
faction = list("shark")
/mob/living/simple_animal/hostile/shark/Process_Spacemove(var/movement_dir = 0)
- return 1 //No drifting in space for space sharks....either!
+ return TRUE //No drifting in space for space sharks....either!
/mob/living/simple_animal/hostile/shark/FindTarget()
. = ..()
diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm
index 9356c962fd..c32c06bbcb 100644
--- a/code/modules/mob/living/simple_animal/hostile/statue.dm
+++ b/code/modules/mob/living/simple_animal/hostile/statue.dm
@@ -78,7 +78,7 @@
if(can_be_seen(NewLoc))
if(client)
to_chat(src, "You cannot move, there are eyes on you! ")
- return 0
+ return FALSE
return ..()
/mob/living/simple_animal/hostile/statue/BiologicalLife(delta_time, times_fired)
@@ -136,7 +136,7 @@
// Cannot talk
/mob/living/simple_animal/hostile/statue/say(message, bubble_type, var/list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null)
- return 0
+ return FALSE
// Turn to dust when gibbed
@@ -150,7 +150,7 @@
if(isliving(the_target))
var/mob/living/L = the_target
if(!L.client && !L.ckey)
- return 0
+ return FALSE
return ..()
// Don't attack your creator if there is one
@@ -228,4 +228,4 @@
/mob/living/simple_animal/hostile/statue/restrained(ignore_grab)
. = ..()
if(can_be_seen(loc))
- return 1
+ return TRUE
diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm
index 0c24dd36fa..8bf897b0cf 100644
--- a/code/modules/mob/living/simple_animal/parrot.dm
+++ b/code/modules/mob/living/simple_animal/parrot.dm
@@ -188,7 +188,7 @@
ears.talk_into(src, message, message_mode, spans, language)
return ITALICS | REDUCE_RANGE
- return 0
+ return FALSE
GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
/datum/strippable_item/parrot_headset,
@@ -627,12 +627,12 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
parrot_state = PARROT_WANDER
parrot_stuck = 0
parrot_lastmove = null
- return 1
+ return TRUE
else
parrot_lastmove = null
else
parrot_lastmove = src.loc
- return 0
+ return FALSE
/mob/living/simple_animal/parrot/proc/attempt_item_theft()
//Search for item to steal
@@ -710,7 +710,7 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
if(held_item)
to_chat(src, "You are already holding [held_item]! ")
- return 1
+ return TRUE
for(var/obj/item/I in view(1,src))
//Make sure we're not already holding it and it's small enough
@@ -726,7 +726,7 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
return held_item
to_chat(src, "There is nothing of interest to take! ")
- return 0
+ return FALSE
/mob/living/simple_animal/parrot/proc/steal_from_mob()
set name = "Steal from mob"
@@ -738,7 +738,7 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
if(held_item)
to_chat(src, "You are already holding [held_item]! ")
- return 1
+ return TRUE
var/obj/item/stolen_item = null
@@ -755,7 +755,7 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
return held_item
to_chat(src, "There is nothing of interest to take! ")
- return 0
+ return FALSE
/mob/living/simple_animal/parrot/verb/drop_held_item_player()
set name = "Drop held item"
@@ -780,7 +780,7 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
if(!held_item)
if(src == usr) //So that other mobs wont make this message appear when they're bludgeoning you.
to_chat(src, "You have nothing to drop! ")
- return 0
+ return FALSE
//parrots will eat crackers instead of dropping them
@@ -790,7 +790,7 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
if(health < maxHealth)
adjustBruteLoss(-10)
emote("me", EMOTE_VISIBLE, "[src] eagerly downs the cracker.")
- return 1
+ return TRUE
if(!drop_gently)
@@ -800,13 +800,13 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list(
G.prime()
to_chat(src, "You let go of [held_item]!")
held_item = null
- return 1
+ return TRUE
to_chat(src, "You drop [held_item].")
held_item.forceMove(drop_location())
held_item = null
- return 1
+ return TRUE
/mob/living/simple_animal/parrot/proc/perch_player()
set name = "Sit"
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index f226a911d8..3eb2f8bb0f 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -215,7 +215,7 @@
if(Process_Spacemove(anydir))
Move(get_step(src, anydir), anydir)
turns_since_move = 0
- return 1
+ return TRUE
/mob/living/simple_animal/proc/handle_automated_speech(var/override)
set waitfor = FALSE
@@ -587,7 +587,7 @@
//ANIMAL RIDING
-/mob/living/simple_animal/user_buckle_mob(mob/living/M, mob/user)
+/mob/living/simple_animal/user_buckle_mob(mob/living/M, mob/user, check_loc)
var/datum/component/riding/riding_datum = GetComponent(/datum/component/riding)
if(riding_datum)
if(user.incapacitated())
diff --git a/code/modules/mob/living/simple_animal/slime/life.dm b/code/modules/mob/living/simple_animal/slime/life.dm
index 274af333fc..42a419db23 100644
--- a/code/modules/mob/living/simple_animal/slime/life.dm
+++ b/code/modules/mob/living/simple_animal/slime/life.dm
@@ -620,11 +620,11 @@
/mob/living/simple_animal/slime/proc/will_hunt(hunger = -1) // Check for being stopped from feeding and chasing
if (docile)
- return 0
+ return FALSE
if (hunger == 2 || rabid || attacked)
- return 1
+ return TRUE
if (Leader)
- return 0
+ return FALSE
if (holding_still)
- return 0
- return 1
+ return FALSE
+ return TRUE
diff --git a/code/modules/mob/living/simple_animal/slime/powers.dm b/code/modules/mob/living/simple_animal/slime/powers.dm
index d93993bf1f..3624c00e6d 100644
--- a/code/modules/mob/living/simple_animal/slime/powers.dm
+++ b/code/modules/mob/living/simple_animal/slime/powers.dm
@@ -16,16 +16,16 @@
var/mob/living/simple_animal/slime/S = owner
if(needs_growth == GROWTH_NEEDED)
if(S.amount_grown >= SLIME_EVOLUTION_THRESHOLD)
- return 1
- return 0
- return 1
+ return TRUE
+ return FALSE
+ return TRUE
/mob/living/simple_animal/slime/verb/Feed()
set category = "Slime"
set desc = "This will let you feed on any valid creature in the surrounding area. This should also be used to halt the feeding process."
if(stat)
- return 0
+ return FALSE
var/list/choices = list()
for(var/mob/living/C in fov_view(1,src))
@@ -34,10 +34,10 @@
var/mob/living/M = input(src,"Who do you wish to feed on?") in null|choices
if(!M)
- return 0
+ return FALSE
if(CanFeedon(M))
Feedon(M)
- return 1
+ return TRUE
/datum/action/innate/slime/feed
name = "Feed"
diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm
index dc9d6ff6a3..f37ecfe7e6 100644
--- a/code/modules/mob/living/simple_animal/slime/slime.dm
+++ b/code/modules/mob/living/simple_animal/slime/slime.dm
@@ -252,7 +252,7 @@
Feedon(Food)
return ..()
-/mob/living/simple_animal/slime/doUnEquip(obj/item/W, silent = FALSE)
+/mob/living/simple_animal/slime/doUnEquip(obj/item/W, invdrop, silent = FALSE)
return
/mob/living/simple_animal/slime/start_pulling(atom/movable/AM, state, force = move_force, supress_message = FALSE)
@@ -326,7 +326,7 @@
if(M.a_intent == INTENT_HELP || M.a_intent == INTENT_DISARM)
for(var/datum/surgery/S in surgeries)
if(S.next_step(M,M.a_intent))
- return 1
+ return TRUE
if(..()) //successful attack
attacked += 10
@@ -343,7 +343,7 @@
if(user.a_intent == INTENT_HELP || user.a_intent == INTENT_DISARM)
for(var/datum/surgery/S in surgeries)
if(S.next_step(user,user.a_intent))
- return 1
+ return TRUE
if(istype(W, /obj/item/stack/sheet/mineral/plasma) && !stat) //Let's you feed slimes plasma.
if (user in Friends)
++Friends[user]
@@ -478,10 +478,10 @@
docile = 1
/mob/living/simple_animal/slime/can_unbuckle()
- return 0
+ return FALSE
/mob/living/simple_animal/slime/can_buckle()
- return 0
+ return FALSE
/mob/living/simple_animal/slime/get_mob_buckling_height(mob/seat)
if(..())
diff --git a/code/modules/mob/living/status_procs.dm b/code/modules/mob/living/status_procs.dm
index 498ca19a39..831e8f317b 100644
--- a/code/modules/mob/living/status_procs.dm
+++ b/code/modules/mob/living/status_procs.dm
@@ -29,7 +29,7 @@
var/datum/status_effect/incapacitating/stun/S = IsStun()
if(S)
return S.duration - world.time
- return 0
+ return FALSE
/mob/living/proc/Stun(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration
if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_STUN, amount, updating, ignore_canstun) & COMPONENT_NO_STUN)
@@ -86,7 +86,7 @@
var/datum/status_effect/incapacitating/knockdown/K = IsKnockdown()
if(K)
return K.duration - world.time
- return 0
+ return FALSE
/mob/living/proc/Knockdown(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration
if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_KNOCKDOWN, amount, updating, ignore_canstun) & COMPONENT_NO_STUN)
@@ -142,7 +142,7 @@
var/datum/status_effect/incapacitating/immobilized/I = IsImmobilized()
if(I)
return I.duration - world.time
- return 0
+ return FALSE
/mob/living/proc/Immobilize(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration
if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_IMMOBILIZE, amount, updating, ignore_canstun) & COMPONENT_NO_STUN)
@@ -198,7 +198,7 @@
var/datum/status_effect/incapacitating/paralyzed/P = IsParalyzed(FALSE)
if(P)
return P.duration - world.time
- return 0
+ return FALSE
/mob/living/proc/Paralyze(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration
if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_PARALYZE, amount, updating, ignore_canstun) & COMPONENT_NO_STUN)
@@ -254,7 +254,7 @@
var/datum/status_effect/incapacitating/dazed/I = IsDazed()
if(I)
return I.duration - world.time
- return 0
+ return FALSE
/mob/living/proc/Daze(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration
if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_DAZE, amount, updating, ignore_canstun) & COMPONENT_NO_STUN)
@@ -310,7 +310,7 @@
var/datum/status_effect/staggered/I = IsStaggered()
if(I)
return I.duration - world.time
- return 0
+ return FALSE
/mob/living/proc/Stagger(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration
if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_STAGGER, amount, updating, ignore_canstun) & COMPONENT_NO_STUN)
@@ -417,7 +417,7 @@
var/datum/status_effect/incapacitating/unconscious/U = IsUnconscious()
if(U)
return U.duration - world.time
- return 0
+ return FALSE
/mob/living/proc/Unconscious(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration
if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_UNCONSCIOUS, amount, updating, ignore_canstun) & COMPONENT_NO_STUN)
@@ -464,7 +464,7 @@
var/datum/status_effect/incapacitating/sleeping/S = IsSleeping()
if(S)
return S.duration - world.time
- return 0
+ return FALSE
/mob/living/proc/Sleeping(amount, updating = TRUE, ignore_canstun = FALSE) //Can't go below remaining duration
if(SEND_SIGNAL(src, COMSIG_LIVING_STATUS_SLEEP, amount, updating, ignore_canstun) & COMPONENT_NO_STUN)
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 533da0d9d9..784400a818 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -62,7 +62,7 @@
set hidden = 1
if(!loc)
- return 0
+ return FALSE
var/datum/gas_mixture/environment = loc.return_air()
@@ -369,27 +369,6 @@
var/msg = "[src] makes eye contact with you. "
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), examined_mob, msg), 3)
-//same as above
-//note: ghosts can point, this is intended
-//visible_message will handle invisibility properly
-//overridden here and in /mob/dead/observer for different point span classes and sanity checks
-/mob/verb/pointed(atom/A as mob|obj|turf in fov_view())
- set name = "Point To"
- set category = "Object"
-
- if(!src || !isturf(src.loc) || !(A in view(src.loc)))
- return FALSE
- if(istype(A, /obj/effect/temp_visual/point))
- return FALSE
-
- var/tile = get_turf(A)
- if (!tile)
- return FALSE
-
- new /obj/effect/temp_visual/point(A,invisibility)
- SEND_SIGNAL(src, COMSIG_MOB_POINTED, A)
- return TRUE
-
/mob/proc/can_resist()
return FALSE //overridden in living.dm
@@ -677,7 +656,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
return
/mob/proc/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) //For sec bot threat assessment
- return 0
+ return FALSE
/mob/proc/get_ghost(even_if_they_cant_reenter = 0)
if(mind)
@@ -750,7 +729,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
if(isliving(seat))
var/mob/living/L = seat
if(L.mob_size <= MOB_SIZE_SMALL) //being on top of a small mob doesn't put you very high.
- return 0
+ return FALSE
return 9
//can the mob be buckled to something by default?
@@ -804,7 +783,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
/mob/proc/fully_replace_character_name(oldname,newname)
log_message("[src] name changed from [oldname] to [newname]", LOG_OWNERSHIP)
if(!newname)
- return 0
+ return FALSE
real_name = newname
name = newname
if(mind)
@@ -822,7 +801,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
// Only update if this player is a target
if(obj.target && obj.target.current && obj.target.current.real_name == name)
obj.update_explanation_text()
- return 1
+ return TRUE
//Updates GLOB.data_core records with new name , see mob/living/carbon/human
/mob/proc/replace_records_name(oldname,newname)
@@ -881,7 +860,7 @@ GLOBAL_VAR_INIT(exploit_warn_spam_prevention, 0)
client.mouse_pointer_icon = client.mouse_override_icon
/mob/proc/is_literate()
- return 0
+ return FALSE
/mob/proc/can_hold_items()
return FALSE
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index 138a3b9662..0b22ae25ec 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -100,7 +100,7 @@
var/research_scanner = 0 //For research scanner equipped mobs. Enable to show research data when examining.
- var/in_throw_mode = 0
+ var/throw_mode = 0
var/job = null//Living
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index cdad94cf3f..ea7900ebac 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -38,9 +38,9 @@
/proc/above_neck(zone)
var/list/zones = list(BODY_ZONE_HEAD, BODY_ZONE_PRECISE_MOUTH, BODY_ZONE_PRECISE_EYES)
if(zones.Find(zone))
- return 1
+ return TRUE
else
- return 0
+ return FALSE
/**
* Convert random parts of a passed in message to stars
@@ -269,7 +269,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
var/mob/M = i
if(M.real_name == msg)
return M
- return 0
+ return FALSE
/mob/proc/first_name()
var/static/regex/firstname = new("^\[^\\s-\]+") //First word before whitespace or "-"
@@ -364,7 +364,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
return FALSE
/mob/proc/reagent_check(datum/reagent/R) // utilized in the species code
- return 1
+ return TRUE
/proc/notify_ghosts(message, ghost_sound, enter_link, atom/source, mutable_appearance/alert_overlay, action = NOTIFY_JUMP, flashwindow = TRUE, ignore_mapload = TRUE, ignore_key, ignore_dnr_observers = FALSE, header) //Easy notification of ghosts.
if(ignore_mapload && SSatoms.initialized != INITIALIZATION_INNEW_REGULAR) //don't notify for objects created during a map load
@@ -407,7 +407,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
H.update_damage_overlays()
user.visible_message("[user] has fixed some of the [dam ? "dents on" : "burnt wires in"] [H]'s [affecting.name].", \
"You fix some of the [dam ? "dents on" : "burnt wires in"] [H]'s [affecting.name]. ")
- return 1 //successful heal
+ return TRUE //successful heal
else
to_chat(user, "[affecting] is already in good condition! ")
@@ -478,9 +478,9 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
/mob/proc/is_flying(mob/M = src)
if(M.movement_type & FLYING)
- return 1
+ return TRUE
else
- return 0
+ return FALSE
/mob/proc/click_random_mob()
var/list/nearby_mobs = list()
diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm
index e39a9a976f..71f711e987 100644
--- a/code/modules/mob/say.dm
+++ b/code/modules/mob/say.dm
@@ -154,7 +154,7 @@
return TRUE
/mob/proc/hivecheck()
- return 0
+ return FALSE
/mob/proc/lingcheck()
return LINGHIVE_NONE
diff --git a/code/modules/mob/say_readme.dm b/code/modules/mob/say_readme.dm
index 6b0eb187ad..3a61bfee1a 100644
--- a/code/modules/mob/say_readme.dm
+++ b/code/modules/mob/say_readme.dm
@@ -128,7 +128,7 @@ global procs
handle_inherent_channels(message, message_mode)
If message_mode is MODE_BINARY, MODE_ALIEN or MODE_CHANGELING (or, for AIs, MODE_HOLOPAD), this will
- handle speaking in those modes. Return 1 to exit say().
+ handle speaking in those modes. return TRUE to exit say().
treat_message(message)
What it says on the tin. Treats the message according to masks, mutantraces, mutations, etc.
@@ -143,7 +143,7 @@ global procs
ITALICS = add italics to the message
REDUCE_RANGE = reduce the message range to one tile.
- Return 0 if no radio was spoken into.
+ return FALSE if no radio was spoken into.
IMPORTANT: remember to call ..() and check for ..()'s return value properly!
============================RADIOS=============================
diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm
index 8fed4b88e2..48faeafd48 100644
--- a/code/modules/mob/transform_procs.dm
+++ b/code/modules/mob/transform_procs.dm
@@ -603,35 +603,35 @@
//Bad mobs! - Remember to add a comment explaining what's wrong with the mob
if(!MP)
- return 0 //Sanity, this should never happen.
+ return FALSE //Sanity, this should never happen.
if(ispath(MP, /mob/living/simple_animal/hostile/construct))
- return 0 //Verbs do not appear for players.
+ return FALSE //Verbs do not appear for players.
//Good mobs!
if(ispath(MP, /mob/living/simple_animal/pet/cat))
- return 1
+ return TRUE
if(ispath(MP, /mob/living/simple_animal/pet/dog/corgi))
- return 1
+ return TRUE
if(ispath(MP, /mob/living/simple_animal/crab))
- return 1
+ return TRUE
if(ispath(MP, /mob/living/simple_animal/hostile/carp))
- return 1
+ return TRUE
if(ispath(MP, /mob/living/simple_animal/hostile/mushroom))
- return 1
+ return TRUE
if(ispath(MP, /mob/living/simple_animal/hostile/construct/shade))
- return 1
+ return TRUE
if(ispath(MP, /mob/living/simple_animal/hostile/killertomato))
- return 1
+ return TRUE
if(ispath(MP, /mob/living/simple_animal/mouse))
- return 1 //It is impossible to pull up the player panel for mice (Fixed! - Nodrak)
+ return TRUE //It is impossible to pull up the player panel for mice (Fixed! - Nodrak)
if(ispath(MP, /mob/living/simple_animal/hostile/bear))
- return 1 //Bears will auto-attack mobs, even if they're player controlled (Fixed! - Nodrak)
+ return TRUE //Bears will auto-attack mobs, even if they're player controlled (Fixed! - Nodrak)
if(ispath(MP, /mob/living/simple_animal/parrot))
- return 1 //Parrots are no longer unfinished! -Nodrak
+ return TRUE //Parrots are no longer unfinished! -Nodrak
//Not in here? Must be untested!
- return 0
+ return FALSE
#undef TRANSFORMATION_DURATION
diff --git a/code/modules/mod/mod_activation.dm b/code/modules/mod/mod_activation.dm
index 42e9a3dff0..10e91eccb2 100644
--- a/code/modules/mod/mod_activation.dm
+++ b/code/modules/mod/mod_activation.dm
@@ -17,7 +17,7 @@
var/obj/item/part = locate(part_reference) in mod_parts
if(!istype(part) || user.incapacitated())
return
- if((active && part != helmet) || activating) // SKYRAT EDIT - Let the hair flow - ORIGINAL: if(active || activating)
+ if(active || activating)
balloon_alert(user, "deactivate the suit first!")
playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
return
@@ -217,9 +217,8 @@
/// Finishes the suit's activation, starts processing
/obj/item/mod/control/proc/finish_activation(on)
- icon_state = "[skin]-control[on ? "-sealed" : ""]"
- slowdown = on ? slowdown_active : slowdown_inactive
- if(on)
+ active = on
+ if(active)
for(var/obj/item/mod/module/module as anything in modules)
module.on_suit_activation()
START_PROCESSING(SSobj, src)
@@ -227,19 +226,23 @@
for(var/obj/item/mod/module/module as anything in modules)
module.on_suit_deactivation()
STOP_PROCESSING(SSobj, src)
- wearer.update_equipment_speed_mods()
- active = on
+ update_speed()
+ update_icon_state()
wearer.update_inv_back()
+/obj/item/mod/control/update_icon_state()
+ icon_state = "[skin]-control[active ? "-sealed" : ""]"
+ return ..()
+
/// Quickly deploys all the suit parts and if successful, seals them and turns on the suit. Intended mostly for outfits.
/obj/item/mod/control/proc/quick_activation()
var/seal = TRUE
- for(var/obj/item/part in mod_parts)
+ for(var/obj/item/part as anything in mod_parts)
if(!deploy(null, part))
seal = FALSE
if(!seal)
return
- for(var/obj/item/part in mod_parts)
+ for(var/obj/item/part as anything in mod_parts)
seal_part(part, seal = TRUE)
finish_activation(on = TRUE)
diff --git a/code/modules/mod/mod_clothes.dm b/code/modules/mod/mod_clothes.dm
index a7e4c0cb1d..b5d2d6a883 100644
--- a/code/modules/mod/mod_clothes.dm
+++ b/code/modules/mod/mod_clothes.dm
@@ -1,4 +1,4 @@
-/obj/item/clothing/head/helmet/space/mod
+/obj/item/clothing/head/mod
name = "MOD helmet"
desc = "A helmet for a MODsuit."
icon = 'icons/obj/clothing/modsuit/mod_clothing.dmi'
@@ -12,27 +12,27 @@
cold_protection = HEAD
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
- clothing_flags = THICKMATERIAL
+ clothing_flags = THICKMATERIAL|ALLOWINTERNALS
resistance_flags = NONE
flash_protect = 0
- clothing_flags = NONE
flags_inv = HIDEFACIALHAIR
flags_cover = NONE
visor_flags = THICKMATERIAL|STOPSPRESSUREDAMAGE
visor_flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT
visor_flags_cover = HEADCOVERSMOUTH|HEADCOVERSEYES
+ item_flags = IMMUTABLE_SLOW
var/alternate_layer = NECK_LAYER
var/obj/item/mod/control/mod
mutantrace_variation = STYLE_MUZZLE
-/obj/item/clothing/head/helmet/space/mod/Destroy()
+/obj/item/clothing/head/mod/Destroy()
if(!QDELETED(mod))
mod.helmet = null
mod.mod_parts -= src
QDEL_NULL(mod)
return ..()
-/obj/item/clothing/suit/space/mod
+/obj/item/clothing/suit/mod
name = "MOD chestplate"
desc = "A chestplate for a MODsuit."
icon = 'icons/obj/clothing/modsuit/mod_clothing.dmi'
@@ -51,12 +51,13 @@
flags_inv = HIDETAUR
visor_flags = STOPSPRESSUREDAMAGE
visor_flags_inv = HIDEJUMPSUIT
+ item_flags = IMMUTABLE_SLOW
allowed = list(/obj/item/flashlight, /obj/item/tank/internals)
resistance_flags = NONE
var/obj/item/mod/control/mod
mutantrace_variation = STYLE_DIGITIGRADE
-/obj/item/clothing/suit/space/mod/Destroy()
+/obj/item/clothing/suit/mod/Destroy()
if(!QDELETED(mod))
mod.chestplate = null
mod.mod_parts -= src
@@ -78,6 +79,7 @@
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
clothing_flags = THICKMATERIAL
resistance_flags = NONE
+ item_flags = IMMUTABLE_SLOW
var/obj/item/mod/control/mod
var/obj/item/clothing/overslot
mutantrace_variation = STYLE_NO_ANTHRO_ICON
@@ -114,7 +116,7 @@
min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT
clothing_flags = THICKMATERIAL
resistance_flags = NONE
- item_flags = NONE
+ item_flags = IMMUTABLE_SLOW
var/obj/item/mod/control/mod
var/obj/item/clothing/overslot
mutantrace_variation = STYLE_DIGITIGRADE
diff --git a/code/modules/mod/mod_construction.dm b/code/modules/mod/mod_construction.dm
index 11eef7cb11..4558f9fbfc 100644
--- a/code/modules/mod/mod_construction.dm
+++ b/code/modules/mod/mod_construction.dm
@@ -7,14 +7,26 @@
name = "MOD helmet"
icon_state = "helmet"
+/obj/item/mod/construction/helmet/examine(mob/user)
+ . = ..()
+ . += span_notice("You could insert it into a MOD shell ...")
+
/obj/item/mod/construction/chestplate
name = "MOD chestplate"
icon_state = "chestplate"
+/obj/item/mod/construction/chestplate/examine(mob/user)
+ . = ..()
+ . += span_notice("You could insert it into a MOD shell ...")
+
/obj/item/mod/construction/gauntlets
name = "MOD gauntlets"
icon_state = "gauntlets"
+/obj/item/mod/construction/gauntlets/examine(mob/user)
+ . = ..()
+ . += span_notice("You could insert these into a MOD shell ...")
+
/obj/item/mod/construction/boots
name = "MOD boots"
icon_state = "boots"
@@ -45,15 +57,15 @@
qdel(src)
/obj/item/mod/construction/armor
- name = "MOD armor plates"
- desc = "Armor plates used to finish a MOD."
+ name = "MOD external plating"
+ desc = "External plating used to finish a MOD control unit."
icon_state = "standard-plating"
var/datum/mod_theme/theme = /datum/mod_theme
/obj/item/mod/construction/armor/Initialize(mapload)
. = ..()
var/datum/mod_theme/used_theme = GLOB.mod_themes[theme]
- name = "MOD [used_theme.name] armor plates"
+ name = "MOD [used_theme.name] external plating"
desc = "[desc] [used_theme.desc]"
icon_state = "[used_theme.default_skin]-plating"
diff --git a/code/modules/mod/mod_control.dm b/code/modules/mod/mod_control.dm
index 03361fdaef..8e003dde7f 100644
--- a/code/modules/mod/mod_control.dm
+++ b/code/modules/mod/mod_control.dm
@@ -16,7 +16,6 @@
w_class = WEIGHT_CLASS_BULKY
slot_flags = ITEM_SLOT_BACK
strip_delay = 10 SECONDS
- slowdown = 2
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, FIRE = 25, ACID = 25, WOUND = 10, RAD = 0)
actions_types = list(
/datum/action/item_action/mod/deploy,
@@ -62,14 +61,16 @@
var/slowdown_inactive = 2
/// Slowdown of the MOD when active.
var/slowdown_active = 1
+ /// Extended description of the theme.
+ var/extended_desc
/// How long this MOD takes each part to seal.
var/activation_step_time = MOD_ACTIVATION_STEP_TIME
/// MOD cell.
var/obj/item/stock_parts/cell/cell
/// MOD helmet.
- var/obj/item/clothing/head/helmet/space/mod/helmet
+ var/obj/item/clothing/head/mod/helmet
/// MOD chestplate.
- var/obj/item/clothing/suit/space/mod/chestplate
+ var/obj/item/clothing/suit/mod/chestplate
/// MOD gauntlets.
var/obj/item/clothing/gloves/mod/gauntlets
/// MOD boots.
@@ -96,9 +97,9 @@
if(new_theme)
theme = new_theme
theme = GLOB.mod_themes[theme]
+ extended_desc = theme.extended_desc
slowdown_inactive = theme.slowdown_inactive
slowdown_active = theme.slowdown_active
- slowdown = slowdown_inactive
complexity_max = theme.complexity_max
skin = new_skin || theme.default_skin
ui_theme = theme.ui_theme
@@ -107,10 +108,10 @@
wires = new /datum/wires/mod(src)
if(ispath(cell))
cell = new cell(src)
- helmet = new /obj/item/clothing/head/helmet/space/mod(src)
+ helmet = new /obj/item/clothing/head/mod(src)
helmet.mod = src
mod_parts += helmet
- chestplate = new /obj/item/clothing/suit/space/mod(src)
+ chestplate = new /obj/item/clothing/suit/mod(src)
chestplate.mod = src
mod_parts += chestplate
gauntlets = new /obj/item/clothing/gloves/mod(src)
@@ -134,6 +135,7 @@
piece.icon_state = "[skin]-[initial(piece.icon_state)]"
piece.item_state = "[skin]-[initial(piece.item_state)]"
update_flags()
+ update_speed()
for(var/obj/item/mod/module/module as anything in initial_modules)
module = new module(src)
install(module)
@@ -176,6 +178,10 @@
QDEL_NULL(cell)
return ..()
+/obj/item/mod/control/examine_more(mob/user)
+ . = ..()
+ . += extended_desc
+
/obj/item/mod/control/process(delta_time)
if(seconds_electrified > MACHINE_NOT_ELECTRIFIED)
seconds_electrified--
@@ -543,6 +549,11 @@
else
wearer.throw_alert("mod_charge", /atom/movable/screen/alert/emptycell)
+/obj/item/mod/control/proc/update_speed()
+ for(var/obj/item/part as anything in mod_parts)
+ part.slowdown = (active ? slowdown_active : slowdown_inactive) / length(mod_parts)
+ wearer?.update_equipment_speed_mods()
+
/obj/item/mod/control/proc/power_off()
balloon_alert(wearer, "no power!")
toggle_activate(wearer, force_deactivate = TRUE)
diff --git a/code/modules/mod/mod_theme.dm b/code/modules/mod/mod_theme.dm
index 050badf5d9..fe949449d2 100644
--- a/code/modules/mod/mod_theme.dm
+++ b/code/modules/mod/mod_theme.dm
@@ -11,6 +11,12 @@
var/name = "standard"
/// Description added to the MOD.
var/desc = "A civilian class suit by Nakamura Engineering, doesn't offer much other than slightly quicker movement."
+ /// Extended description on examine_more
+ var/extended_desc = "A third-generation, modular civilian class suit by Nakamura Engineering, \
+ this suit is a staple across the galaxy for civilian applications. These suits are oxygenated, \
+ spaceworthy, resistant to fire and chemical threats, and are immunized against everything between \
+ a sneeze and a bioweapon. However, their combat applications are incredibly minimal due to no \
+ armor plating being installed by default, and their actuators only lead to slightly greater speed than normal."
/// Default skin of the MOD.
var/default_skin = "standard"
/// Armor shared across the MOD pieces.
@@ -35,6 +41,8 @@
var/slowdown_active = 0.75
/// Theme used by the MOD TGUI.
var/ui_theme = "ntos"
+ /// Allowed items in the chestplate's suit storage.
+ var/list/allowed = list(/obj/item/flashlight, /obj/item/tank/internals)
/// List of inbuilt modules. These are different from the pre-equipped suits, you should mainly use these for unremovable modules with 0 complexity.
var/list/inbuilt_modules = list()
/// Modules blacklisted from the MOD.
@@ -45,7 +53,7 @@
HELMET_LAYER = NECK_LAYER,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = NONE,
- SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR,
SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
@@ -68,7 +76,7 @@
HELMET_LAYER = null,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = THICKMATERIAL,
- SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
),
@@ -91,6 +99,11 @@
/datum/mod_theme/engineering
name = "engineering"
desc = "An engineer-fit suit with heat and shock resistance. Nakamura Engineering's classic."
+ extended_desc = "A classic by Nakamura Engineering, and surely their claim to fame. This model is an \
+ improvement upon the first-generation prototype models from before the Void War, boasting an array of features. \
+ The modular flexibility of the base design has been combined with an blast-dampening insulated inner layer and \
+ a shock-resistant outer layer, making the suit nigh-invulnerable against even the extremes of high-voltage electricity. \
+ However, the capacity for modification remains the same as civilian-grade suits."
default_skin = "engineering"
armor = list(MELEE = 10, BULLET = 5, LASER = 20, ENERGY = 10, BOMB = 10, BIO = 100, FIRE = 100, ACID = 25, WOUND = 10, RAD = 20)
resistance_flags = FIRE_PROOF
@@ -103,7 +116,7 @@
HELMET_LAYER = NECK_LAYER,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = NONE,
- SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR,
SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
@@ -127,6 +140,11 @@
/datum/mod_theme/atmospheric
name = "atmospheric"
desc = "An atmospheric-resistant suit by Nakamura Engineering, offering extreme heat resistance compared to the engineer suit."
+ extended_desc = "A modified version of the Nakamura Engineering industrial model. This one has been \
+ augmented with the latest in heat-resistant alloys, paired with a series of advanced heatsinks. \
+ Additionally, the materials used to construct this suit have rendered it extremely hardy against \
+ corrosive gasses and liquids, useful in the world of pipes. \
+ However, the capacity for modification remains the same as civilian-grade suits."
default_skin = "atmospheric"
armor = list(MELEE = 10, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 10, BIO = 100, FIRE = 100, ACID = 75, WOUND = 10, RAD = 0)
resistance_flags = FIRE_PROOF
@@ -138,7 +156,7 @@
HELMET_LAYER = NECK_LAYER,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = NONE,
- SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDESNOUT,
SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR,
UNSEALED_COVER = HEADCOVERSMOUTH,
@@ -163,6 +181,11 @@
/datum/mod_theme/advanced
name = "advanced"
desc = "An advanced version of Nakamura Engineering's classic suit, shining with a white, acid and fire resistant polish."
+ extended_desc = "The flagship version of the Nakamura Engineering industrial model, and their latest product. \
+ Combining all the features of their other industrial model suits inside, with blast resistance almost approaching \
+ some EOD suits, the outside has been coated with a white polish rumored to be a corporate secret. \
+ The paint used is almost entirely immune to corrosives, and certainly looks damn fine. \
+ These come pre-installed with magnetic boots, using an advanced system to toggle them on or off as the user walks."
default_skin = "advanced"
armor = list(MELEE = 15, BULLET = 5, LASER = 20, ENERGY = 15, BOMB = 50, BIO = 100, FIRE = 100, ACID = 90, WOUND = 10, RAD = 35)
resistance_flags = FIRE_PROOF
@@ -176,7 +199,7 @@
HELMET_LAYER = NECK_LAYER,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = NONE,
- SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR,
SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
@@ -200,6 +223,13 @@
/datum/mod_theme/mining
name = "mining"
desc = "A high-power Nanotrasen mining suit, supporting more complexity at a bigger drain."
+ extended_desc = "A high-powered Nanotrasen-designed suit, based off the work of Nakamura Engineering. \
+ While initial designs were built for the rigors of asteroid mining, given blast resistance through inbuilt ceramics, \
+ mining teams have since heavily tweaked the suit themselves. Aftermarket armor plating has been added, \
+ giving way to incredible protection against corrosives and thermal protection good enough for volcanic environments. \
+ The systems have been upgraded as well, giving space for further modification down the line. \
+ However, all of this has proven to be straining on the cell and the actuators of the suit, \
+ making it demand more power in exchange."
default_skin = "mining"
armor = list(MELEE = 15, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 30, BIO = 100, FIRE = 100, ACID = 75, WOUND = 15, RAD = 0)
resistance_flags = FIRE_PROOF
@@ -211,7 +241,7 @@
HELMET_LAYER = null,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = THICKMATERIAL,
- SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEEARS|HIDEHAIR|HIDESNOUT,
SEALED_INVISIBILITY = HIDEMASK|HIDEEYES|HIDEFACE,
SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
@@ -235,6 +265,12 @@
/datum/mod_theme/medical
name = "medical"
desc = "A lightweight suit by DeForest Medical Corporation, allows for easier movement."
+ extended_desc = "A lightweight suit produced by the DeForest Medical Corporation, based off the work of \
+ Nakamura Engineering. The latest in technology has been employed in this suit to render it immunized against \
+ allergens, airborne toxins, and regular pathogens. The primary asset of this suit is the speed, \
+ fusing high-powered servos and actuators with a carbon-fiber construction. While there's very little armor used, \
+ it is incredibly acid-resistant. It is slightly more demanding of power than civilian-grade models, \
+ and weak against fingers tapping the glass."
default_skin = "medical"
armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 10, BIO = 100, FIRE = 60, ACID = 75, WOUND = 5, RAD = 0)
cell_drain = DEFAULT_CHARGE_DRAIN * 1.5
@@ -245,7 +281,7 @@
HELMET_LAYER = NECK_LAYER,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = NONE,
- SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR,
SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
@@ -268,7 +304,7 @@
HELMET_LAYER = NECK_LAYER,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = NONE,
- SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR,
SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
@@ -292,6 +328,12 @@
/datum/mod_theme/rescue
name = "rescue"
desc = "An advanced version of DeForest Medical Corporation's medical suit, designed for quick rescue of bodies from the most dangerous environments."
+ extended_desc = "An upgraded, armor-plated version of DeForest Medical Corporation's medical suit, \
+ designed for quick rescue of bodies from the most dangerous environments. The same advanced leg servos \
+ as the base version are seen here, giving paramedics incredible speed, but the same servos are also in the arms. \
+ Users are capable of quickly hauling even the heaviest crewmembers using this suit, \
+ all while being entirely immune against chemical and thermal threats. \
+ It is slightly more demanding of power than civilian-grade models, and weak against fingers tapping the glass."
default_skin = "rescue"
armor = list(MELEE = 10, BULLET = 10, LASER = 5, ENERGY = 5, BOMB = 10, BIO = 100, FIRE = 100, ACID = 100, WOUND = 5, RAD = 0)
resistance_flags = FIRE_PROOF|ACID_PROOF
@@ -305,7 +347,7 @@
HELMET_LAYER = NECK_LAYER,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = NONE,
- SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR,
SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
@@ -329,20 +371,28 @@
/datum/mod_theme/research
name = "research"
desc = "A private military EOD suit by Aussec Armory, intended for explosive research. Bulky, but expansive."
+ extended_desc = "A private military EOD suit by Aussec Armory, based off the work of Nakamura Engineering. \
+ This suit is intended for explosive research, built incredibly bulky and well-covering. \
+ Featuring an inbuilt chemical scanning array, this suit uses two layers of plastitanium armor, \
+ sandwiching an inert layer to dissipate kinetic energy into the suit and away from the user; \
+ outperforming even the best conventional EOD suits. However, despite its immunity against even \
+ missiles and artillery, the armor is no more effective than standard suits against \
+ other weapon types and physical damage; and all the explosive resistance mostly working to keep the user intact, \
+ not alive. The user will also find narrow doorframes nigh-impossible to surmount."
default_skin = "research"
armor = list(MELEE = 20, BULLET = 15, LASER = 5, ENERGY = 5, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100, WOUND = 15, RAD = 0)
resistance_flags = FIRE_PROOF|ACID_PROOF
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
complexity_max = DEFAULT_MAX_COMPLEXITY + 5
- slowdown_inactive = 2
- slowdown_active = 1.5
+ slowdown_inactive = 1.75
+ slowdown_active = 1.25
inbuilt_modules = list(/obj/item/mod/module/reagent_scanner/advanced)
skins = list(
"research" = list(
HELMET_LAYER = null,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = THICKMATERIAL,
- SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
),
@@ -365,6 +415,14 @@
/datum/mod_theme/security
name = "security"
desc = "An Apadyne Technologies security suit, offering shock protection and quicker speed, at the cost of carrying capacity."
+ extended_desc = "An Apadyne Technologies classic, this model of MODsuit has been designed for quick response to \
+ hostile situations. These suits have been layered with plating worthy enough for fires or corrosive environments, \
+ and come with composite cushioning and an advanced honeycomb structure underneath the hull to ensure protection \
+ against broken bones or possible avulsions. The suit's legs have been given more rugged actuators, \
+ allowing the suit to do more work in carrying the weight. Lastly, these have been given a shock-absorbing \
+ insulating layer on the gauntlets, making sure the user isn't under risk of electricity. \
+ However, the systems used in these suits are more than a few years out of date, \
+ leading to an overall lower capacity for modules."
default_skin = "security"
armor = list(MELEE = 15, BULLET = 15, LASER = 15, ENERGY = 15, BOMB = 25, BIO = 100, FIRE = 75, ACID = 75, WOUND = 15, RAD = 0)
siemens_coefficient = 0
@@ -376,7 +434,7 @@
HELMET_LAYER = null,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = THICKMATERIAL,
- SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEEARS|HIDEHAIR|HIDESNOUT,
SEALED_INVISIBILITY = HIDEMASK|HIDEEYES|HIDEFACE,
UNSEALED_COVER = HEADCOVERSMOUTH,
@@ -401,6 +459,12 @@
/datum/mod_theme/safeguard
name = "safeguard"
desc = "An Apadyne Technologies advanced security suit, offering greater speed and fire protection than the standard security model."
+ extended_desc = "An Apadyne Technologies advanced security suit, and their latest model. This variant has \
+ ditched the presence of a reinforced glass visor entirely, replacing it with a 'blast visor' utilizing a \
+ small camera on the left side to display the outside to the user. The plating on the suit has been \
+ dramatically increased, especially in the pauldrons, giving the wearer an imposing silhouette. \
+ Heatsinks line the sides of the suit, and greater technology has been used in insulating it against \
+ both corrosive environments and sudden impacts to the user's joints."
default_skin = "safeguard"
armor = list(MELEE = 15, BULLET = 15, LASER = 15, ENERGY = 15, BOMB = 40, BIO = 100, FIRE = 100, ACID = 95, WOUND = 15, RAD = 0)
resistance_flags = FIRE_PROOF
@@ -414,7 +478,7 @@
HELMET_LAYER = null,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = THICKMATERIAL,
- SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
),
@@ -437,6 +501,15 @@
/datum/mod_theme/magnate
name = "magnate"
desc = "A fancy, very protective suit for Nanotrasen's captains. Shock, fire and acid-proof while also having a large capacity and high speed."
+ extended_desc = "They say it costs four hundred thousand credits to run this MODsuit... for twelve seconds. \
+ The Magnate suit is designed for protection, comfort, and luxury for Nanotrasen Captains. \
+ The onboard air filters have been preprogrammed with an additional five hundred different fragrances that can \
+ be pumped into the helmet, all of highly-endangered flowers. A bespoke Tralex mechanical clock has been placed \
+ in the wrist, and the Magnate package comes with carbon-fibre cufflinks to wear underneath. \
+ My God, it even has a granite trim. The double-classified paint that's been painstakingly applied to the hull \
+ provides protection against shock, fire, and the strongest acids. Onboard systems employ meta-positronic learning \
+ and bluespace processing to allow for a wide array of onboard modules to be supported, and only the best actuators \
+ have been employed for speed. The resemblance to a Gorlex Marauder helmet is purely coincidental."
default_skin = "magnate"
armor = list(MELEE = 20, BULLET = 15, LASER = 15, ENERGY = 15, BOMB = 50, BIO = 100, FIRE = 100, ACID = 100, WOUND = 15, RAD = 0)
resistance_flags = FIRE_PROOF|ACID_PROOF
@@ -450,7 +523,7 @@
HELMET_LAYER = NECK_LAYER,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = NONE,
- SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR,
SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
@@ -474,17 +547,23 @@
/datum/mod_theme/cosmohonk
name = "cosmohonk"
desc = "A suit by Honk Ltd. Protects against low humor environments. Most of the tech went to lower the power cost."
+ extended_desc = "The Cosmohonk MODsuit was originally designed for interstellar comedy in low-humor environments. \
+ It utilizes tungsten electro-ceramic casing and chromium bipolars, coated in zirconium-boron paint underneath \
+ a dermatiraelian subspace alloy. Despite the glaringly obvious optronic vacuum drive pedals, \
+ this particular model does not employ manganese bipolar capacitor cleaners, thank the Honkmother. \
+ All you know is that this suit is mysteriously power-efficient, and far too colorful for the Mime to steal."
default_skin = "cosmohonk"
armor = list(MELEE = 5, BULLET = 5, LASER = 20, ENERGY = 20, BOMB = 10, BIO = 100, FIRE = 60, ACID = 30, WOUND = 5, RAD = 0)
cell_drain = DEFAULT_CHARGE_DRAIN * 0.25
slowdown_inactive = 1.75
slowdown_active = 1.25
+ /*inbuilt_modules = list(/obj/item/mod/module/waddle)*/ // Waddling element not ported, commented for now as it is a prerequisite.
skins = list(
"cosmohonk" = list(
HELMET_LAYER = NECK_LAYER,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = THICKMATERIAL,
- SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEEARS|HIDEHAIR,
SEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEYES|HIDEFACE|HIDESNOUT,
SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
@@ -508,6 +587,13 @@
/datum/mod_theme/syndicate
name = "syndicate"
desc = "A suit designed by Gorlex Marauders, offering armor ruled illegal in most of Spinward Stellar."
+ extended_desc = "An advanced combat suit adorned in a sinister crimson red color scheme, produced and manufactured \
+ for special mercenary operations. The build is a streamlined layering consisting of shaped Plasteel, \
+ and composite ceramic, while the under suit is lined with a lightweight Kevlar and durathread hybrid weave \
+ to provide ample protection to the user where the plating doesn't, with an illegal onboard cell powered \
+ ablative shield module to provide resistance against conventional energy firearms. \
+ A small tag hangs off of it reading; 'Property of the Gorlex Marauders, with assistance from Cybersun Industries. \
+ All rights reserved, tampering with suit will void warranty."
default_skin = "syndicate"
armor = list(MELEE = 15, BULLET = 20, LASER = 15, ENERGY = 15, BOMB = 35, BIO = 100, FIRE = 50, ACID = 90, WOUND = 25, RAD = 0)
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
@@ -521,7 +607,7 @@
HELMET_LAYER = NECK_LAYER,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = NONE,
- SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR,
SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
@@ -545,6 +631,12 @@
/datum/mod_theme/elite
name = "elite"
desc = "An elite suit upgraded by Cybersun Industries, offering upgraded armor values."
+ extended_desc = "An evolution of the syndicate suit, featuring a bulkier build and a matte black color scheme, \
+ this suit is only produced for high ranking Syndicate officers and elite strike teams. \
+ It comes built with a secondary layering of ceramic and Kevlar into the plating providing it with \
+ exceptionally better protection along with fire and acid proofing. A small tag hangs off of it reading; \
+ 'Property of the Gorlex Marauders, with assistance from Cybersun Industries. \
+ All rights reserved, tampering with suit will void life expectancy.'"
default_skin = "elite"
armor = list(MELEE = 35, BULLET = 30, LASER = 35, ENERGY = 35, BOMB = 55, BIO = 100, FIRE = 100, ACID = 100, WOUND = 25, RAD = 0)
resistance_flags = FIRE_PROOF|ACID_PROOF
@@ -559,7 +651,7 @@
HELMET_LAYER = null,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = NONE,
- SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR,
SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
@@ -583,6 +675,13 @@
/datum/mod_theme/enchanted
name = "enchanted"
desc = "The Wizard Federation's relatively low-tech MODsuit. Is very protective, though."
+ extended_desc = "The Wizard Federation's relatively low-tech MODsuit. This armor employs not \
+ plasteel or carbon fibre, but space dragon scales for its protection. Recruits are expected to \
+ gather these themselves, but the effort is well worth it, the suit being well-armored against threats \
+ both mundane and mystic. Rather than wholly relying on the suit's cell, which would surely perish \
+ under the load, several naturally-occurring bluespace gemstones have been utilized as \
+ supplementary means of power. The hood and platform boots are of unknown usage, but it's speculated that \
+ wizards trend towards the dramatic."
default_skin = "enchanted"
armor = list(MELEE = 40, BULLET = 40, LASER = 50, ENERGY = 50, BOMB = 35, BIO = 100, FIRE = 100, ACID = 100, WOUND = 30, RAD = 0)
resistance_flags = FIRE_PROOF|ACID_PROOF
@@ -598,7 +697,7 @@
HELMET_LAYER = null,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = THICKMATERIAL,
- SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
),
@@ -621,12 +720,22 @@
/datum/mod_theme/prototype
name = "prototype"
desc = "A prototype modular suit powered by locomotives. While it is comfortable and has a big capacity, it remains very bulky and power-inefficient."
+ extended_desc = "This is a prototype powered exoskeleton, a design not seen in hundreds of years, the first \
+ post-void war era modular suit to ever be safely utilized by an operator. This ancient clunker is still functional, \
+ though it's missing several modern-day luxuries from updated Nakamura Engineering designs. \
+ Primarily, the suit's myoelectric suit layer is entirely non-existant, and the servos do very little to \
+ help distribute the weight evenly across the wearer's body, making it slow and bulky to move in. \
+ Additionally, the armor plating never finished production aside from the shoulders, forearms, and helmet; \
+ making it useless against direct attacks. The internal heads-up display is rendered in nearly unreadable cyan, \
+ as the visor suggests, leaving the user unable to see long distances. \
+ However, the way the helmet retracts is pretty cool."
default_skin = "prototype"
armor = list(MELEE = 20, BULLET = 5, LASER = 10, ENERGY = 10, BOMB = 50, BIO = 100, FIRE = 100, ACID = 75, WOUND = 5, RAD = 0)
resistance_flags = FIRE_PROOF
- complexity_max = DEFAULT_MAX_COMPLEXITY + 10
- slowdown_inactive = 2.5
- slowdown_active = 2
+ complexity_max = DEFAULT_MAX_COMPLEXITY + 5
+ cell_drain = DEFAULT_CHARGE_DRAIN * 2
+ slowdown_inactive = 2
+ slowdown_active = 1.5
ui_theme = "hackerman"
inbuilt_modules = list(/obj/item/mod/module/kinesis)
skins = list(
@@ -634,7 +743,7 @@
HELMET_LAYER = null,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = THICKMATERIAL,
- SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
),
@@ -657,6 +766,11 @@
/datum/mod_theme/responsory
name = "responsory"
desc = "A high-speed rescue suit by Nanotrasen, intended for its' emergency response teams."
+ extended_desc = "A streamlined suit of Nanotrasen design, these sleek black suits are only worn by \
+ elite emergency response personnel to help save the day. While the slim and nimble design of the suit \
+ cuts the ceramics and ablatives in it down, dropping the protection, \
+ it keeps the wearer safe from the harsh void of space while sacrificing no speed whatsoever. \
+ While wearing it you feel an extreme deference to darkness. "
default_skin = "responsory"
armor = list(MELEE = 50, BULLET = 40, LASER = 50, ENERGY = 50, BOMB = 50, BIO = 100, FIRE = 100, ACID = 90, WOUND = 10, RAD = 0)
resistance_flags = FIRE_PROOF
@@ -669,7 +783,7 @@
HELMET_LAYER = NECK_LAYER,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = NONE,
- SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR,
SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
@@ -692,7 +806,7 @@
HELMET_LAYER = null,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = THICKMATERIAL,
- SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
),
@@ -715,6 +829,12 @@
/datum/mod_theme/apocryphal
name = "apocryphal"
desc = "A high-tech, only technically legal, armored suit created by a collaboration effort between Nanotrasen and Apadyne Technologies."
+ extended_desc = "A bulky and only legal by technicality suit, this ominous black and red MODsuit is only worn by \
+ Nanotrasen Black Ops teams. If you can see this suit, you fucked up. A collaborative joint effort between \
+ Apadyne and Nanotrasen the construction and modules gives the user robust protection against \
+ anything that can be thrown at it, along with acute combat awareness tools for it's wearer. \
+ Whether the wearer uses it or not is up to them. \
+ There seems to be a little inscription on the wrist that reads; \'squiddie', d'aww."
default_skin = "apocryphal"
armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 60, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100, WOUND = 25, RAD = 0)
resistance_flags = FIRE_PROOF|ACID_PROOF
@@ -726,7 +846,7 @@
HELMET_LAYER = null,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = THICKMATERIAL,
- SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEEARS|HIDEHAIR,
SEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEYES|HIDEFACE|HIDESNOUT,
SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
@@ -750,6 +870,11 @@
/datum/mod_theme/corporate
name = "corporate"
desc = "A fancy, high-tech suit for Nanotrasen's high ranking officers."
+ extended_desc = "An even more costly version of the Magnate model, the corporate suit is a thermally insulated, \
+ anti-corrosion coated suit for high-ranking CentCom Officers, deploying pristine protective armor and \
+ advanced actuators, feeling practically weightless when turned on. Scraping the paint of this suit is \
+ counted as a war-crime and reason for immediate execution in over fifty Nanotrasen space stations. \
+ The resemblance to a Gorlex Marauder helmet is purely coincidental."
default_skin = "corporate"
armor = list(MELEE = 50, BULLET = 40, LASER = 50, ENERGY = 50, BOMB = 50, BIO = 100, FIRE = 100, ACID = 100, WOUND = 15, RAD = 0)
resistance_flags = FIRE_PROOF|ACID_PROOF
@@ -762,7 +887,7 @@
HELMET_LAYER = null,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = THICKMATERIAL,
- SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEEARS|HIDEHAIR|HIDESNOUT,
SEALED_INVISIBILITY = HIDEMASK|HIDEEYES|HIDEFACE,
SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
@@ -786,6 +911,9 @@
/datum/mod_theme/debug
name = "debug"
desc = "Strangely nostalgic."
+ extended_desc = "An advanced suit that has dual ion engines powerful enough to grant a humanoid flight. \
+ Contains an internal self-recharging high-current capacitor for short, powerful bo- \
+ Oh wait, this is not actually a flight suit. Fuck."
default_skin = "debug"
armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100, WOUND = 0, RAD = 25)
resistance_flags = FIRE_PROOF|ACID_PROOF
@@ -798,7 +926,7 @@
HELMET_LAYER = null,
HELMET_FLAGS = list(
UNSEALED_CLOTHING = THICKMATERIAL,
- SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE|ALLOWINTERNALS|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEEARS|HIDEHAIR|HIDESNOUT,
SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE,
UNSEALED_COVER = HEADCOVERSMOUTH,
@@ -823,6 +951,10 @@
/datum/mod_theme/administrative
name = "administrative"
desc = "A suit made of adminium. Who comes up with these stupid mineral names?"
+ extended_desc = "Yeah, okay, I guess you can call that an event. What I consider an event is something actually \
+ fun and engaging for the players- instead, most were sitting out, dead or gibbed, while the lucky few got to \
+ have all the fun. If this continues to be a pattern for your \"events\" (Admin Abuse) \
+ there will be an admin complaint. You have been warned."
default_skin = "debug"
armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100, WOUND = 100, RAD = 100)
resistance_flags = INDESTRUCTIBLE|LAVA_PROOF|FIRE_PROOF|UNACIDABLE|ACID_PROOF
@@ -835,7 +967,7 @@
"debug" = list(
HELMET_LAYER = null,
HELMET_FLAGS = list(
- UNSEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE,
+ UNSEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|ALLOWINTERNALS,
UNSEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEEARS|HIDEHAIR|HIDESNOUT,
SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE,
UNSEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES,
diff --git a/code/modules/mod/mod_types.dm b/code/modules/mod/mod_types.dm
index 565dcdc2f8..a1492750af 100644
--- a/code/modules/mod/mod_types.dm
+++ b/code/modules/mod/mod_types.dm
@@ -72,6 +72,7 @@
/obj/item/mod/module/storage,
/obj/item/mod/module/flashlight,
/obj/item/mod/module/health_analyzer,
+ /*/obj/item/mod/module/injector,*/ //Injector module unported as of now.
)
/obj/item/mod/control/pre_equipped/research
@@ -172,31 +173,41 @@
/obj/item/mod/module/holster,
)
var/insignia_type = /obj/item/mod/module/insignia
+ var/additional_module
/obj/item/mod/control/pre_equipped/responsory/Initialize(mapload, new_theme, new_skin)
initial_modules.Insert(1, insignia_type)
+ if(additional_module)
+ initial_modules.Add(additional_module)
return ..()
/obj/item/mod/control/pre_equipped/responsory/commander
insignia_type = /obj/item/mod/module/insignia/commander
+ additional_module = /obj/item/mod/module/noslip
/obj/item/mod/control/pre_equipped/responsory/security
insignia_type = /obj/item/mod/module/insignia/security
+ additional_module = /obj/item/mod/module/gps
/obj/item/mod/control/pre_equipped/responsory/engineer
insignia_type = /obj/item/mod/module/insignia/engineer
+ additional_module = /obj/item/mod/module/rad_protection
/obj/item/mod/control/pre_equipped/responsory/medic
insignia_type = /obj/item/mod/module/insignia/medic
+ additional_module = /obj/item/mod/module/quick_carry
/obj/item/mod/control/pre_equipped/responsory/janitor
insignia_type = /obj/item/mod/module/insignia/janitor
+ additional_module = /obj/item/mod/module/clamp
/obj/item/mod/control/pre_equipped/responsory/clown
insignia_type = /obj/item/mod/module/insignia/clown
+ additional_module = /obj/item/mod/module/bikehorn
/obj/item/mod/control/pre_equipped/responsory/chaplain
insignia_type = /obj/item/mod/module/insignia/chaplain
+ /*additional_module = /obj/item/mod/module/injector*/ //Injector module unported as of now.
/obj/item/mod/control/pre_equipped/responsory/inquisitory
initial_modules = list(
@@ -211,15 +222,19 @@
/obj/item/mod/control/pre_equipped/responsory/inquisitory/commander
insignia_type = /obj/item/mod/module/insignia/commander
+ additional_module = /obj/item/mod/module/noslip
/obj/item/mod/control/pre_equipped/responsory/inquisitory/security
insignia_type = /obj/item/mod/module/insignia/security
+ additional_module = /obj/item/mod/module/gps
/obj/item/mod/control/pre_equipped/responsory/inquisitory/medic
insignia_type = /obj/item/mod/module/insignia/medic
+ additional_module = /obj/item/mod/module/quick_carry
/obj/item/mod/control/pre_equipped/responsory/inquisitory/chaplain
insignia_type = /obj/item/mod/module/insignia/chaplain
+ /*additional_module = /obj/item/mod/module/injector*/ //Injector module unported as of now.
/obj/item/mod/control/pre_equipped/apocryphal
theme = /datum/mod_theme/apocryphal
@@ -250,6 +265,7 @@
/obj/item/mod/module/bikehorn,
/obj/item/mod/module/rad_protection,
/obj/item/mod/module/tether,
+ /*/obj/item/mod/module/injector,*/ //Injector module unported as of now.
) //one of every type of module, for testing if they all work correctly
/obj/item/mod/control/pre_equipped/administrative
diff --git a/code/modules/mod/modules/modules.dm b/code/modules/mod/modules/modules.dm
index 0e0da3572b..2d0ee4a3e1 100644
--- a/code/modules/mod/modules/modules.dm
+++ b/code/modules/mod/modules/modules.dm
@@ -1,3 +1,15 @@
+//Magic Nullifier
+/obj/item/mod/module/anti_magic
+ name = "MOD magic nullifier module"
+ desc = "A series of obsidian rods installed into critical points around the suit, \
+ vibrated at a certain low frequency to enable them to resonate. \
+ This creates a low-range, yet strong, magic nullification field around the user, \
+ aided by a full replacement of the suit's normal coolant with holy water. \
+ Spells will spall right off this field, though it'll do nothing to help others believe you about all this."
+ icon_state = "magic_nullifier"
+ removable = FALSE
+ incompatible_modules = list(/obj/item/mod/module/anti_magic)
+
/obj/item/mod/module/anti_magic/on_suit_activation()
ADD_TRAIT(mod.wearer, TRAIT_ANTIMAGIC, MOD_TRAIT)
ADD_TRAIT(mod.wearer, TRAIT_HOLY, MOD_TRAIT)
@@ -94,3 +106,21 @@
/obj/item/mod/module/insignia/chaplain
color = "#f0a00c"
+
+/obj/item/mod/module/noslip
+ name = "MOD anti slip module"
+ desc = "These are a modified variant of standard magnetic boots, utilizing piezoelectric crystals on the soles. \
+ The two plates on the bottom of the boots automatically extend and magnetize as the user steps; \
+ a pull that's too weak to offer them the ability to affix to a hull, but just strong enough to \
+ protect against the fact that you didn't read the wet floor sign. Honk Co. has come out numerous times \
+ in protest of these modules being legal."
+ icon_state = "noslip"
+ complexity = 1
+ idle_power_cost = DEFAULT_CHARGE_DRAIN * 0.1
+ incompatible_modules = list(/obj/item/mod/module/noslip)
+
+/obj/item/mod/module/noslip/on_suit_activation()
+ ADD_TRAIT(mod.wearer, TRAIT_NOSLIPWATER, MOD_TRAIT)
+
+/obj/item/mod/module/noslip/on_suit_deactivation()
+ REMOVE_TRAIT(mod.wearer, TRAIT_NOSLIPWATER, MOD_TRAIT)
diff --git a/code/modules/mod/modules/modules_service.dm b/code/modules/mod/modules/modules_service.dm
index 85ebfea132..3b220e3322 100644
--- a/code/modules/mod/modules/modules_service.dm
+++ b/code/modules/mod/modules/modules_service.dm
@@ -64,3 +64,33 @@
spark_effect_two.set_up(2, 1, microwave_target_loc)
spark_effect_two.start()
drain_power(use_power_cost)
+
+//Waddle
+
+//Waddling element not yet portee, commented out for now.
+/*
+/obj/item/mod/module/waddle
+ name = "MOD waddle module"
+ desc = "Some of the most primitive technology in use by HonkCo. This module works off an automatic intention system, \
+ utilizing its sensitivity to the pilot's often-limited brainwaves to directly read their next step, \
+ affecting the boots they're installed in. Employing a twin-linked gravitonic drive to create \
+ miniaturized etheric blasts of space-time beneath the user's feet, this enables them to... \
+ to waddle around, bouncing to and fro with a pep in their step."
+ icon_state = "waddle"
+ idle_power_cost = DEFAULT_CHARGE_DRAIN * 0.2
+ removable = FALSE
+ incompatible_modules = list(/obj/item/mod/module/waddle)
+
+/obj/item/mod/module/waddle/on_suit_activation()
+ mod.AddComponent(/datum/component/squeak, list('sound/effects/clownstep1.ogg'=1,'sound/effects/clownstep2.ogg'=1), 50, falloff_exponent = 20) //die off quick please
+ mod.wearer.AddElement(/datum/element/waddling)
+ if(is_clown_job(mod.wearer.mind?.assigned_role))
+ SEND_SIGNAL(mod.wearer, COMSIG_ADD_MOOD_EVENT, "clownshoes", /datum/mood_event/clownshoes)
+
+/obj/item/mod/module/waddle/on_suit_deactivation()
+ qdel(mod.GetComponent(/datum/component/squeak))
+ mod.wearer.RemoveElement(/datum/element/waddling)
+ if(is_clown_job(mod.wearer.mind?.assigned_role))
+ SEND_SIGNAL(mod.wearer, COMSIG_CLEAR_MOOD_EVENT, "clownshoes")
+
+*/
diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm
index e2345a6384..267691be39 100644
--- a/code/modules/modular_computers/computers/item/computer.dm
+++ b/code/modules/modular_computers/computers/item/computer.dm
@@ -392,7 +392,7 @@
if(network_card)
return network_card.get_signal(specific_action)
else
- return 0
+ return FALSE
/obj/item/modular_computer/proc/add_log(text)
if(!get_ntnet_status())
@@ -454,7 +454,7 @@
var/obj/item/computer_hardware/H = all_components[h]
component_names.Add(H.name)
- var/choice = input(user, "Which component do you want to uninstall?", "Computer maintenance", null) as null|anything in sortList(component_names)
+ var/choice = input(user, "Which component do you want to uninstall?", "Computer maintenance", null) as null|anything in sort_list(component_names)
if(!choice)
return
diff --git a/code/modules/modular_computers/computers/item/computer_power.dm b/code/modules/modular_computers/computers/item/computer_power.dm
index f31c3c82cc..7c741507b5 100644
--- a/code/modules/modular_computers/computers/item/computer_power.dm
+++ b/code/modules/modular_computers/computers/item/computer_power.dm
@@ -24,7 +24,7 @@
var/obj/item/computer_hardware/battery/battery_module = all_components[MC_CELL]
if(battery_module?.battery)
return battery_module.battery.give(amount)
- return 0
+ return FALSE
/obj/item/modular_computer/get_cell()
var/obj/item/computer_hardware/battery/battery_module = all_components[MC_CELL]
diff --git a/code/modules/modular_computers/computers/item/computer_ui.dm b/code/modules/modular_computers/computers/item/computer_ui.dm
index 93324bffe8..f6aed4996b 100644
--- a/code/modules/modular_computers/computers/item/computer_ui.dm
+++ b/code/modules/modular_computers/computers/item/computer_ui.dm
@@ -170,7 +170,7 @@
active_program = P
P.alert_pending = FALSE
update_appearance()
- return 1
+ return TRUE
if("PC_toggle_light")
return toggle_flashlight()
diff --git a/code/modules/modular_computers/file_system/program.dm b/code/modules/modular_computers/file_system/program.dm
index dc0cdda5d1..264ee0bd2f 100644
--- a/code/modules/modular_computers/file_system/program.dm
+++ b/code/modules/modular_computers/file_system/program.dm
@@ -72,7 +72,7 @@
/datum/computer_file/program/proc/generate_network_log(text)
if(computer)
return computer.add_log(text)
- return 0
+ return FALSE
/**
*Runs when the device is used to attack an atom in non-combat mode.
@@ -99,7 +99,7 @@
/datum/computer_file/program/proc/get_signal(specific_action = 0)
if(computer)
return computer.get_ntnet_status(specific_action)
- return 0
+ return FALSE
// Called by Process() on device that runs us, once every tick.
/datum/computer_file/program/proc/process_tick(delta_time)
@@ -161,7 +161,7 @@
return computer.get_header_data()
return list()
-// This is performed on program startup. May be overridden to add extra logic. Remember to include ..() call. Return 1 on success, 0 on failure.
+// This is performed on program startup. May be overridden to add extra logic. Remember to include ..() call. return TRUE on success, 0 on failure.
// When implementing new program based device, use this to run the program.
/datum/computer_file/program/proc/run_program(mob/living/user)
if(can_run(user, 1))
@@ -198,7 +198,7 @@
if(card_holder)
ID = card_holder.GetID()
generate_network_log("Connection closed -- Program ID: [filename] User:[ID?"[ID.registered_name]":"None"]")
- return 1
+ return TRUE
/datum/computer_file/program/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
diff --git a/code/modules/modular_computers/file_system/programs/alarm.dm b/code/modules/modular_computers/file_system/programs/alarm.dm
index 80c0c4dfa8..88d52646ac 100644
--- a/code/modules/modular_computers/file_system/programs/alarm.dm
+++ b/code/modules/modular_computers/file_system/programs/alarm.dm
@@ -23,7 +23,7 @@
program_icon_state = "alert-green"
ui_header = "alarm_green.gif"
update_computer_icon()
- return 1
+ return TRUE
/datum/computer_file/program/alarm_monitor/ui_data(mob/user)
var/list/data = get_header_data()
diff --git a/code/modules/modular_computers/file_system/programs/configurator.dm b/code/modules/modular_computers/file_system/programs/configurator.dm
index cf5d950c0f..567ff436a6 100644
--- a/code/modules/modular_computers/file_system/programs/configurator.dm
+++ b/code/modules/modular_computers/file_system/programs/configurator.dm
@@ -27,7 +27,7 @@
// No computer connection, we can't get data from that.
if(!movable)
- return 0
+ return FALSE
var/list/data = get_header_data()
diff --git a/code/modules/modular_computers/hardware/_hardware.dm b/code/modules/modular_computers/hardware/_hardware.dm
index b1a44c4cc5..20995502ae 100644
--- a/code/modules/modular_computers/hardware/_hardware.dm
+++ b/code/modules/modular_computers/hardware/_hardware.dm
@@ -51,11 +51,11 @@
var/obj/item/stack/S = I
if(obj_integrity == max_integrity)
to_chat(user, span_warning("\The [src] doesn't seem to require repairs."))
- return 1
+ return TRUE
if(S.use(1))
to_chat(user, span_notice("You patch up \the [src] with a bit of \the [I]."))
obj_integrity = min(obj_integrity + 10, max_integrity)
- return 1
+ return TRUE
if(try_insert(I, user))
return TRUE
diff --git a/code/modules/modular_computers/hardware/network_card.dm b/code/modules/modular_computers/hardware/network_card.dm
index 074e158dbf..229b16c99d 100644
--- a/code/modules/modular_computers/hardware/network_card.dm
+++ b/code/modules/modular_computers/hardware/network_card.dm
@@ -34,16 +34,16 @@
// 0 - No signal, 1 - Low signal, 2 - High signal. 3 - Wired Connection
/obj/item/computer_hardware/network_card/proc/get_signal(specific_action = 0)
if(!holder) // Hardware is not installed in anything. No signal. How did this even get called?
- return 0
+ return FALSE
if(!check_functionality())
- return 0
+ return FALSE
if(ethernet) // Computer is connected via wired connection.
return 3
if(!SSnetworks.station_network || !SSnetworks.station_network.check_function(specific_action)) // NTNet is down and we are not connected via wired connection. No signal.
- return 0
+ return FALSE
if(holder)
@@ -53,12 +53,12 @@
if(long_range)
return 2
else
- return 1
+ return TRUE
if(long_range) // Computer is not on station, but it has upgraded network card. Low signal.
- return 1
+ return TRUE
- return 0 // Computer is not on station and does not have upgraded network card. No signal.
+ return FALSE // Computer is not on station and does not have upgraded network card. No signal.
/obj/item/computer_hardware/network_card/advanced
diff --git a/code/modules/modular_computers/hardware/recharger.dm b/code/modules/modular_computers/hardware/recharger.dm
index e8c479db47..8e9183ead2 100644
--- a/code/modules/modular_computers/hardware/recharger.dm
+++ b/code/modules/modular_computers/hardware/recharger.dm
@@ -95,5 +95,5 @@
charge_rate = 100000
/obj/item/computer_hardware/recharger/lambda/use_power(amount, charging=0)
- return 1
+ return TRUE
diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm
index 5fc415b2b6..1dfea6ac1a 100644
--- a/code/modules/movespeed/_movespeed_modifier.dm
+++ b/code/modules/movespeed/_movespeed_modifier.dm
@@ -199,7 +199,7 @@ GLOBAL_LIST_EMPTY(movespeed_modification_cache)
/mob/proc/get_config_multiplicative_speed(floating = FALSE)
var/list/read = floating? GLOB.mob_config_movespeed_type_lookup_floating : GLOB.mob_config_movespeed_type_lookup
if(!islist(read) || !read[type])
- return 0
+ return FALSE
else
return read[type]
diff --git a/code/modules/newscaster/newspaper.dm b/code/modules/newscaster/newspaper.dm
index 0afb36a7e7..0142e84e26 100644
--- a/code/modules/newscaster/newspaper.dm
+++ b/code/modules/newscaster/newspaper.dm
@@ -113,17 +113,17 @@
/obj/item/newspaper/proc/notContent(list/L)
if(!L.len)
- return 0
+ return FALSE
for(var/i=L.len;i>0;i--)
var/num = abs(L[i])
if(creationTime <= num)
continue
else
if(L[i] > 0)
- return 1
+ return TRUE
else
- return 0
- return 0
+ return FALSE
+ return FALSE
/obj/item/newspaper/Topic(href, href_list)
var/mob/living/U = usr
diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm
index f46d4bf029..d9f6607209 100644
--- a/code/modules/paperwork/contract.dm
+++ b/code/modules/paperwork/contract.dm
@@ -189,31 +189,31 @@
/obj/item/paper/contract/infernal/proc/attempt_signature(mob/living/carbon/human/user, blood = 0)
if(!user.IsAdvancedToolUser() || !user.is_literate())
to_chat(user, "You don't know how to read or write. ")
- return 0
+ return FALSE
if(user.mind != target)
to_chat(user, "Your signature simply slides off the sheet, it seems this contract is not meant for you to sign. ")
- return 0
+ return FALSE
if(user.mind.soulOwner == owner)
to_chat(user, "This devil already owns your soul, you may not sell it to [owner.p_them()] again. ")
- return 0
+ return FALSE
if(signed)
to_chat(user, "This contract has already been signed. It may not be signed again. ")
- return 0
+ return FALSE
if(!user.mind.hasSoul)
to_chat(user, "You do not possess a soul. ")
- return 0
+ return FALSE
if(HAS_TRAIT(user, TRAIT_DUMB))
to_chat(user, "You quickly scrawl 'your name' on the contract. ")
signIncorrectly()
- return 0
+ return FALSE
if (contractType == CONTRACT_REVIVE)
to_chat(user, "You are already alive, this contract would do nothing. ")
- return 0
+ return FALSE
else
to_chat(user, "You quickly scrawl your name on the contract ")
if(fulfillContract(target.current, blood)<=0)
to_chat(user, "But it seemed to have no effect, perhaps even Hell itself cannot grant this boon? ")
- return 1
+ return TRUE
@@ -221,7 +221,7 @@
if (target == M.mind && M.stat == DEAD && M.mind.soulOwner == M.mind)
if (cooldown)
to_chat(user, "Give [M] a chance to think through the contract, don't rush [M.p_them()]. ")
- return 0
+ return FALSE
cooldown = TRUE
var/mob/living/carbon/human/H = M
var/mob/dead/observer/ghost = H.get_ghost()
diff --git a/code/modules/paperwork/ticketmachine.dm b/code/modules/paperwork/ticketmachine.dm
index 68d52fad35..86cf6f8ff9 100644
--- a/code/modules/paperwork/ticketmachine.dm
+++ b/code/modules/paperwork/ticketmachine.dm
@@ -142,7 +142,7 @@
maptext_x = 10
if(100)
maptext_x = 8
- maptext = "[current_number]" //Finally, apply the maptext
+ maptext = MAPTEXT("[current_number]") //Finally, apply the maptext
/obj/machinery/ticket_machine/attackby(obj/item/I, mob/user, params)
..()
@@ -182,11 +182,7 @@
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 100, FALSE)
ticket_number ++
to_chat(user, "You take a ticket from [src], looks like you're ticket number #[ticket_number]... ")
- var/obj/item/ticket_machine_ticket/theirticket = new /obj/item/ticket_machine_ticket(get_turf(src))
- theirticket.name = "Ticket #[ticket_number]"
- theirticket.maptext = "[ticket_number] "
- theirticket.saved_maptext = "[ticket_number] "
- theirticket.ticket_number = ticket_number
+ var/obj/item/ticket_machine_ticket/theirticket = new /obj/item/ticket_machine_ticket(get_turf(src), ticket_number)
theirticket.source = src
theirticket.owner = user
user.put_in_hands(theirticket)
@@ -211,10 +207,25 @@
w_class = WEIGHT_CLASS_TINY
resistance_flags = FLAMMABLE
max_integrity = 50
+ var/number
var/saved_maptext = null
var/mob/living/carbon/owner
var/obj/machinery/ticket_machine/source
- var/ticket_number
+
+/obj/item/ticket_machine_ticket/Initialize(mapload, num)
+ . = ..()
+ number = num
+ if(!isnull(num))
+ name += " #[num]"
+ saved_maptext = MAPTEXT(num)
+ maptext = saved_maptext
+
+/obj/item/ticket_machine_ticket/examine(mob/user)
+ . = ..()
+ if(!isnull(number))
+ . += span_notice("The ticket reads shimmering text that tells you that you are number [number] in queue.")
+ if(source)
+ . += span_notice("Below that, you can see that you are [number - source.current_number] spot\s away from being served.")
/obj/item/ticket_machine_ticket/attack_hand(mob/user)
. = ..()
@@ -233,7 +244,7 @@
/obj/item/ticket_machine_ticket/Destroy()
if(owner && source)
source.ticket_holders -= owner
- source.tickets[ticket_number] = null
+ source.tickets[number] = null
owner = null
source = null
return ..()
diff --git a/code/modules/point/point.dm b/code/modules/point/point.dm
new file mode 100644
index 0000000000..cfadf391c5
--- /dev/null
+++ b/code/modules/point/point.dm
@@ -0,0 +1,110 @@
+#define POINT_TIME (2.5 SECONDS)
+
+/**
+ * Point at an atom
+ *
+ * Intended to enable and standardise the pointing animation for all atoms
+ *
+ * Not intended as a replacement for the mob verb
+ */
+/atom/movable/proc/point_at(atom/pointed_atom)
+ if(!isturf(loc))
+ return
+
+ if (pointed_atom in src)
+ create_point_bubble(pointed_atom)
+ return
+
+ var/turf/tile = get_turf(pointed_atom)
+ if (!tile)
+ return
+
+ var/turf/our_tile = get_turf(src)
+ var/obj/visual = new /obj/effect/temp_visual/point(our_tile, invisibility)
+
+ animate(visual, pixel_x = (tile.x - our_tile.x) * world.icon_size + pointed_atom.pixel_x, pixel_y = (tile.y - our_tile.y) * world.icon_size + pointed_atom.pixel_y, time = 1.7, easing = EASE_OUT)
+
+/atom/movable/proc/create_point_bubble(atom/pointed_atom)
+ var/obj/effect/thought_bubble_effect = new
+
+ var/mutable_appearance/thought_bubble = mutable_appearance(
+ 'icons/effects/effects.dmi',
+ "thought_bubble",
+ layer = POINT_LAYER,
+ appearance_flags = KEEP_APART,
+ )
+
+ var/mutable_appearance/pointed_atom_appearance = new(pointed_atom.appearance)
+ pointed_atom_appearance.blend_mode = BLEND_INSET_OVERLAY
+ pointed_atom_appearance.plane = thought_bubble.plane
+ pointed_atom_appearance.layer = FLOAT_LAYER
+ pointed_atom_appearance.pixel_x = 0
+ pointed_atom_appearance.pixel_y = 0
+ thought_bubble.overlays += pointed_atom_appearance
+
+ var/hover_outline_index = pointed_atom.get_filter_index(HOVER_OUTLINE_FILTER)
+ if (!isnull(hover_outline_index))
+ pointed_atom_appearance.filters.Cut(hover_outline_index, hover_outline_index + 1)
+
+ thought_bubble.pixel_x = 16
+ thought_bubble.pixel_y = 32
+ thought_bubble.alpha = 200
+ thought_bubble.mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+
+ var/mutable_appearance/point_visual = mutable_appearance(
+ 'icons/mob/screen_gen.dmi',
+ "arrow",
+ plane = thought_bubble.plane,
+ )
+
+ thought_bubble.overlays += point_visual
+
+ // vis_contents is used to preserve mouse opacity
+ thought_bubble_effect.appearance = thought_bubble
+ vis_contents += thought_bubble_effect
+
+ QDEL_IN(thought_bubble_effect, POINT_TIME)
+
+/obj/effect/temp_visual/point
+ name = "pointer"
+ icon = 'icons/mob/screen_gen.dmi'
+ icon_state = "arrow"
+ layer = POINT_LAYER
+ duration = POINT_TIME
+
+/obj/effect/temp_visual/point/Initialize(mapload, set_invis = 0)
+ . = ..()
+ var/atom/old_loc = loc
+ abstract_move(get_turf(src))
+ pixel_x = old_loc.pixel_x
+ pixel_y = old_loc.pixel_y
+ invisibility = set_invis
+
+#undef POINT_TIME
+
+/**
+ * Point at an atom
+ *
+ * mob verbs are faster than object verbs. See
+ * [this byond forum post](https://secure.byond.com/forum/?post=1326139&page=2#comment8198716)
+ * for why this isn't atom/verb/pointed()
+ *
+ * note: ghosts can point, this is intended
+ *
+ * visible_message will handle invisibility properly
+ *
+ * overridden here and in /mob/dead/observer for different point span classes and sanity checks
+ */
+/mob/verb/pointed(atom/target as mob|obj|turf in fov_view())
+ set name = "Point To"
+ set category = "Object"
+
+ if(client && !(target in view(client.view, src)))
+ return FALSE
+ if(istype(target, /obj/effect/temp_visual/point))
+ return FALSE
+
+ point_at(target)
+
+ SEND_SIGNAL(src, COMSIG_MOB_POINTED, target)
+ return TRUE
diff --git a/code/modules/power/antimatter/control.dm b/code/modules/power/antimatter/control.dm
index 1157738dd0..b948f4b8be 100644
--- a/code/modules/power/antimatter/control.dm
+++ b/code/modules/power/antimatter/control.dm
@@ -197,23 +197,23 @@
/obj/machinery/power/am_control_unit/proc/add_shielding(obj/machinery/am_shielding/AMS, AMS_linking = 0)
if(!istype(AMS))
- return 0
+ return FALSE
if(!anchored)
- return 0
+ return FALSE
if(!AMS_linking && !AMS.link_control(src))
- return 0
+ return FALSE
linked_shielding.Add(AMS)
update_shield_icons = 1
- return 1
+ return TRUE
/obj/machinery/power/am_control_unit/proc/remove_shielding(obj/machinery/am_shielding/AMS)
if(!istype(AMS))
- return 0
+ return FALSE
linked_shielding.Remove(AMS)
update_shield_icons = 2
if(active)
toggle_power()
- return 1
+ return TRUE
/obj/machinery/power/am_control_unit/proc/check_stability()//TODO: make it break when low also might want to add a way to fix it like a part or such that can be replaced
if(stability <= 0)
diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm
index 89621514c8..868116dc62 100644
--- a/code/modules/power/antimatter/shielding.dm
+++ b/code/modules/power/antimatter/shielding.dm
@@ -80,7 +80,7 @@
/obj/machinery/am_shielding/CanPass(atom/movable/mover, turf/target)
- return 0
+ return FALSE
/obj/machinery/am_shielding/process()
@@ -167,12 +167,12 @@
//Call this to link a detected shilding unit to the controller
/obj/machinery/am_shielding/proc/link_control(obj/machinery/power/am_control_unit/AMC)
if(!istype(AMC))
- return 0
+ return FALSE
if(control_unit && control_unit != AMC)
return 0//Already have one
control_unit = AMC
control_unit.add_shielding(src,1)
- return 1
+ return TRUE
//Scans cards for shields or the control unit and if all there it
@@ -186,8 +186,8 @@
found_am_device = 1
break
if(!found_am_device)
- return 0
- return 1
+ return FALSE
+ return TRUE
/obj/machinery/am_shielding/proc/setup_core()
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index 33198e5813..162f8d4a44 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -860,7 +860,7 @@
/obj/machinery/power/apc/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir)
if(damage_flag == MELEE && damage_amount < 10 && (!(stat & BROKEN) || malfai))
- return 0
+ return FALSE
. = ..()
@@ -1343,7 +1343,7 @@
if(terminal)
return terminal.surplus()
else
- return 0
+ return FALSE
/obj/machinery/power/apc/add_load(amount)
if(terminal && terminal.powernet)
@@ -1353,7 +1353,7 @@
if(terminal)
return terminal.avail(amount)
else
- return 0
+ return FALSE
/obj/machinery/power/apc/process()
if(icon_update_needed)
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index 4e4ff27919..8b21a27a14 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -198,12 +198,12 @@ By design, d1 is the smallest direction and d2 is the highest
// shock the user with probability prb
/obj/structure/cable/proc/shock(mob/user, prb, siemens_coeff = 1)
if(!prob(prb))
- return 0
+ return FALSE
if (electrocute_mob(user, powernet, src, siemens_coeff))
do_sparks(5, TRUE, src)
- return 1
+ return TRUE
else
- return 0
+ return FALSE
/obj/structure/cable/singularity_pull(S, current_size)
..()
@@ -235,13 +235,13 @@ By design, d1 is the smallest direction and d2 is the highest
if(powernet)
return clamp(powernet.avail-powernet.load, 0, powernet.avail)
else
- return 0
+ return FALSE
/obj/structure/cable/proc/avail(amount)
if(powernet)
return amount ? powernet.avail >= amount : powernet.avail
else
- return 0
+ return FALSE
/obj/structure/cable/proc/add_delayedload(amount)
if(powernet)
@@ -251,13 +251,13 @@ By design, d1 is the smallest direction and d2 is the highest
if(powernet)
return clamp(powernet.newavail - powernet.delayedload, 0, powernet.newavail)
else
- return 0
+ return FALSE
/obj/structure/cable/proc/newavail()
if(powernet)
return powernet.newavail
else
- return 0
+ return FALSE
/////////////////////////////////////////////////
// Cable laying helpers
@@ -515,8 +515,9 @@ By design, d1 is the smallest direction and d2 is the highest
used_skills = list(/datum/skill/level/job/wiring)
/obj/item/stack/cable_coil/cyborg
- is_cyborg = 1
+ is_cyborg = TRUE
custom_materials = null
+ source = /datum/robot_energy_storage/wire
cost = 1
/obj/item/stack/cable_coil/cyborg/attack_self(mob/user)
@@ -572,7 +573,7 @@ By design, d1 is the smallest direction and d2 is the highest
return ..()
-/obj/item/stack/cable_coil/update_icon()
+/obj/item/stack/cable_coil/update_icon_state()
icon_state = "[initial(item_state)][amount < 3 ? amount : ""]"
name = "cable [amount < 3 ? "piece" : "coil"]"
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index 6d1da2bc20..51710affc0 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -76,13 +76,13 @@
/obj/item/stock_parts/cell/use(amount, can_explode = TRUE)
if(rigged && amount > 0 && can_explode)
explode()
- return 0
+ return FALSE
if(charge < amount)
- return 0
+ return FALSE
charge -= amount
if(!istype(loc, /obj/machinery/power/apc))
SSblackbox.record_feedback("tally", "cell_used", 1, type)
- return 1
+ return TRUE
// recharge the cell
/obj/item/stock_parts/cell/proc/give(amount)
@@ -90,7 +90,7 @@
return
if(rigged && amount > 0)
explode()
- return 0
+ return FALSE
if(maxcharge < amount)
amount = maxcharge
var/power_used = min(maxcharge-charge,amount)
@@ -182,7 +182,7 @@
if(charge >= 1000)
return clamp(round(charge/10000), 10, 90) + rand(-5,5)
else
- return 0
+ return FALSE
/obj/item/stock_parts/cell/get_part_rating()
return rating * maxcharge
@@ -298,7 +298,7 @@
chargerate = 30000
/obj/item/stock_parts/cell/infinite/use()
- return 1
+ return TRUE
/obj/item/stock_parts/cell/infinite/abductor
name = "void core"
diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm
index c2dd77290a..24e7581966 100644
--- a/code/modules/power/power.dm
+++ b/code/modules/power/power.dm
@@ -44,13 +44,13 @@
if(powernet)
return clamp(powernet.avail-powernet.load, 0, powernet.avail)
else
- return 0
+ return FALSE
/obj/machinery/power/proc/avail(amount)
if(powernet)
return amount ? powernet.avail >= amount : powernet.avail
else
- return 0
+ return FALSE
/obj/machinery/power/proc/add_delayedload(amount)
if(powernet)
@@ -60,13 +60,13 @@
if(powernet)
return clamp(powernet.newavail - powernet.delayedload, 0, powernet.newavail)
else
- return 0
+ return FALSE
/obj/machinery/power/proc/newavail()
if(powernet)
return powernet.newavail
else
- return 0
+ return FALSE
/obj/machinery/power/proc/disconnect_terminal() // machines without a terminal will just return, no harm no fowl.
return
@@ -105,7 +105,7 @@
addStaticPower(-value, powerchannel)
/obj/machinery/proc/power_change()
- //SIGNAL_HANDLER
+ SHOULD_NOT_SLEEP(TRUE)
//SHOULD_CALL_PARENT(TRUE)
if(stat & BROKEN)
@@ -309,17 +309,17 @@
//No animations will be performed by this proc.
/proc/electrocute_mob(mob/living/M, power_source, obj/source, siemens_coeff = 1, dist_check = FALSE)
if(!istype(M) || ismecha(M.loc))
- return 0 //feckin mechs are dumb
+ return FALSE //feckin mechs are dumb
if(dist_check)
if(!in_range(source,M))
- return 0
+ return FALSE
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.gloves)
var/obj/item/clothing/gloves/G = H.gloves
if(G.siemens_coefficient == 0)
SEND_SIGNAL(M, COMSIG_LIVING_SHOCK_PREVENTED, power_source, source, siemens_coeff, dist_check)
- return 0 //to avoid spamming with insulated glvoes on
+ return FALSE //to avoid spamming with insulated glvoes on
var/area/source_area
if(istype(power_source, /area))
@@ -342,12 +342,12 @@
if (apc.terminal)
PN = apc.terminal.powernet
else if (!power_source)
- return 0
+ return FALSE
else
log_admin("ERROR: /proc/electrocute_mob([M], [power_source], [source]): wrong power_source")
- return 0
+ return FALSE
if (!cell && !PN)
- return 0
+ return FALSE
var/PN_damage = 0
var/cell_damage = 0
if (PN)
diff --git a/code/modules/power/powernet.dm b/code/modules/power/powernet.dm
index ff69adc894..a8b52ca84a 100644
--- a/code/modules/power/powernet.dm
+++ b/code/modules/power/powernet.dm
@@ -98,4 +98,4 @@
if(avail >= 1000)
return clamp(round(avail/10000), 10, 90) + rand(-5,5)
else
- return 0
+ return FALSE
diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm
index 8f9a7805c6..0f6bd1aee7 100644
--- a/code/modules/power/singularity/emitter.dm
+++ b/code/modules/power/singularity/emitter.dm
@@ -383,7 +383,7 @@
auto.Remove(buckled_mob)
. = ..()
-/obj/machinery/power/emitter/prototype/user_buckle_mob(mob/living/M, mob/living/carbon/user)
+/obj/machinery/power/emitter/prototype/user_buckle_mob(mob/living/M, mob/living/carbon/user, check_loc)
if(user.incapacitated() || !istype(user))
return
for(var/atom/movable/A in get_turf(src))
@@ -426,7 +426,7 @@
for(var/obj/item/I in U.held_items)
if(istype(I, /obj/item/turret_control))
qdel(I)
- UpdateButtonIcon()
+ UpdateButtons()
return
else
playsound(PE,'sound/mecha/mechmove01.ogg', 50, TRUE)
@@ -443,7 +443,7 @@
else //Entries in the list should only ever be items or null, so if it's not an item, we can assume it's an empty hand
var/obj/item/turret_control/TC = new /obj/item/turret_control()
U.put_in_hands(TC)
- UpdateButtonIcon()
+ UpdateButtons()
/obj/item/turret_control
diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm
index 567ac00487..fba18c70dc 100644
--- a/code/modules/power/singularity/field_generator.dm
+++ b/code/modules/power/singularity/field_generator.dm
@@ -76,7 +76,7 @@ field_generator power level display
if(get_dist(src, user) <= 1)//Need to actually touch the thing to turn it on
if(active >= FG_CHARGING)
to_chat(user, "You are unable to turn off [src] once it is online! ")
- return 1
+ return TRUE
else
user.visible_message("[user] turns on [src].", \
"You turn on [src]. ", \
@@ -157,7 +157,7 @@ field_generator power level display
/obj/machinery/field/generator/blob_act(obj/structure/blob/B)
if(active)
- return 0
+ return FALSE
else
..()
@@ -207,25 +207,25 @@ field_generator power level display
if(draw_power(round(power_draw/2,1)))
check_power_level()
- return 1
+ return TRUE
else
visible_message("The [name] shuts down! ", "You hear something shutting down. ")
turn_off()
investigate_log("ran out of power and deactivated ", INVESTIGATE_SINGULO)
power = 0
check_power_level()
- return 0
+ return FALSE
//This could likely be better, it tends to start loopin if you have a complex generator loop setup. Still works well enough to run the engine fields will likely recode the field gens and fields sometime -Mport
/obj/machinery/field/generator/proc/draw_power(draw = 0, failsafe = FALSE, obj/machinery/field/generator/G = null, obj/machinery/field/generator/last = null)
if((G && (G == src)) || (failsafe >= 8))//Loopin, set fail
- return 0
+ return FALSE
else
failsafe++
if(power >= draw)//We have enough power
power -= draw
- return 1
+ return TRUE
else//Need more power
draw -= power
@@ -236,14 +236,14 @@ field_generator power level display
continue
if(G)//Another gen is askin for power and we dont have it
if(FG.draw_power(draw,failsafe,G,src))//Can you take the load
- return 1
+ return TRUE
else
- return 0
+ return FALSE
else//We are askin another for power
if(FG.draw_power(draw,failsafe,src,src))
- return 1
+ return TRUE
else
- return 0
+ return FALSE
/obj/machinery/field/generator/proc/start_fields()
@@ -266,22 +266,22 @@ field_generator power level display
/obj/machinery/field/generator/proc/setup_field(NSEW)
var/turf/T = loc
if(!istype(T))
- return 0
+ return FALSE
var/obj/machinery/field/generator/G = null
var/steps = 0
if(!NSEW)//Make sure its ran right
- return 0
+ return FALSE
for(var/dist in 0 to 7) // checks out to 8 tiles away for another generator
T = get_step(T, NSEW)
if(T.density)//We cant shoot a field though this
- return 0
+ return FALSE
G = locate(/obj/machinery/field/generator) in T
if(G)
steps -= 1
if(!G.active)
- return 0
+ return FALSE
break
for(var/TC in T.contents)
@@ -289,12 +289,12 @@ field_generator power level display
if(ismob(A))
continue
if(A.density)
- return 0
+ return FALSE
steps++
if(!G)
- return 0
+ return FALSE
T = loc
for(var/dist in 0 to steps) // creates each field tile
diff --git a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
index 6938352d16..a101521927 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_accelerator.dm
@@ -141,8 +141,8 @@
/obj/structure/particle_accelerator/proc/connect_master(obj/O)
if(O.dir == dir)
master = O
- return 1
- return 0
+ return TRUE
+ return FALSE
///////////
// PARTS //
diff --git a/code/modules/power/singularity/particle_accelerator/particle_emitter.dm b/code/modules/power/singularity/particle_accelerator/particle_emitter.dm
index fc7cca55e6..bfcb53db7c 100644
--- a/code/modules/power/singularity/particle_accelerator/particle_emitter.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle_emitter.dm
@@ -21,8 +21,8 @@
/obj/structure/particle_accelerator/particle_emitter/proc/set_delay(delay)
if(delay >= 0)
fire_delay = delay
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/structure/particle_accelerator/particle_emitter/proc/emit_particle(strength = 0)
if((last_shot + fire_delay) <= world.time)
@@ -39,5 +39,5 @@
if(3)
P = new/obj/effect/accelerated_particle/powerful(T)
P.setDir(dir)
- return 1
- return 0
+ return TRUE
+ return FALSE
diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm
index 29fd68d034..b1f8efae6e 100644
--- a/code/modules/power/singularity/singularity.dm
+++ b/code/modules/power/singularity/singularity.dm
@@ -57,7 +57,7 @@
return ..()
else
last_failed_movement = direct
- return 0
+ return FALSE
/obj/singularity/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
consume(user)
@@ -74,10 +74,10 @@
/obj/singularity/attackby(obj/item/W, mob/user, params)
consume(user)
- return 1
+ return TRUE
/obj/singularity/Process_Spacemove() //The singularity stops drifting for no man!
- return 0
+ return FALSE
/obj/singularity/blob_act(obj/structure/blob/B)
return
@@ -235,18 +235,18 @@
dissipate = 0
if(current_size == allowed_size)
investigate_log("grew to size [current_size] ", INVESTIGATE_SINGULO)
- return 1
+ return TRUE
else if(current_size < (--temp_allowed_size))
expand(temp_allowed_size)
else
- return 0
+ return FALSE
/obj/singularity/proc/check_energy()
if(energy <= 0)
investigate_log("collapsed.", INVESTIGATE_SINGULO)
qdel(src)
- return 0
+ return FALSE
switch(energy)//Some of these numbers might need to be changed up later -Mport
if(1 to 199)
allowed_size = STAGE_ONE
@@ -263,7 +263,7 @@
allowed_size = STAGE_FIVE
if(current_size != allowed_size)
expand()
- return 1
+ return TRUE
/obj/singularity/proc/eat()
@@ -296,7 +296,7 @@
/obj/singularity/proc/move(force_move = 0)
if(!move_self)
- return 0
+ return FALSE
var/movement_dir = pick(GLOB.alldirs - last_failed_movement)
@@ -321,7 +321,7 @@
/obj/singularity/proc/check_turfs_in(direction = 0, step = 0)
if(!direction)
- return 0
+ return FALSE
var/steps = 0
if(!step)
switch(current_size)
@@ -342,7 +342,7 @@
for(var/i = 1 to steps)
T = get_step(T,direction)
if(!isturf(T))
- return 0
+ return FALSE
turfs.Add(T)
var/dir2 = 0
var/dir3 = 0
@@ -357,35 +357,35 @@
for(var/j = 1 to steps-1)
T2 = get_step(T2,dir2)
if(!isturf(T2))
- return 0
+ return FALSE
turfs.Add(T2)
for(var/k = 1 to steps-1)
T = get_step(T,dir3)
if(!isturf(T))
- return 0
+ return FALSE
turfs.Add(T)
for(var/turf/T3 in turfs)
if(isnull(T3))
continue
if(!can_move(T3))
- return 0
- return 1
+ return FALSE
+ return TRUE
/obj/singularity/proc/can_move(turf/T)
if(!T)
- return 0
+ return FALSE
if((locate(/obj/machinery/field/containment) in T)||(locate(/obj/machinery/shieldwall) in T))
- return 0
+ return FALSE
else if(locate(/obj/machinery/field/generator) in T)
var/obj/machinery/field/generator/G = locate(/obj/machinery/field/generator) in T
if(G && G.active)
- return 0
+ return FALSE
else if(locate(/obj/machinery/shieldwallgen) in T)
var/obj/machinery/shieldwallgen/S = locate(/obj/machinery/shieldwallgen) in T
if(S && S.active)
- return 0
- return 1
+ return FALSE
+ return TRUE
/obj/singularity/proc/event()
@@ -397,11 +397,11 @@
mezzer()
if(3,4) //Sets all nearby mobs on fire
if(current_size < STAGE_SIX)
- return 0
+ return FALSE
combust_mobs()
else
- return 0
- return 1
+ return FALSE
+ return TRUE
/obj/singularity/proc/combust_mobs()
diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm
index 3ce38db3c2..ef5d331402 100644
--- a/code/modules/power/solar.dm
+++ b/code/modules/power/solar.dm
@@ -264,7 +264,7 @@
tracker = TRUE
qdel(W)
user.visible_message("[user] inserts the electronics into the solar assembly.", "You insert the electronics into the solar assembly. ")
- return 1
+ return TRUE
else
if(W.tool_behaviour == TOOL_CROWBAR)
new /obj/item/electronics/tracker(src.loc)
diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm
index 880c288fb9..c456887460 100644
--- a/code/modules/power/supermatter/supermatter.dm
+++ b/code/modules/power/supermatter/supermatter.dm
@@ -720,7 +720,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
if(damage > explosion_point)
countdown()
- return 1
+ return TRUE
/obj/machinery/power/supermatter_crystal/bullet_act(obj/item/projectile/Proj)
var/turf/L = loc
diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm
index 13cd2db385..3ef0eea7fe 100644
--- a/code/modules/power/tesla/coil.dm
+++ b/code/modules/power/tesla/coil.dm
@@ -194,6 +194,6 @@
if(anchored && !panel_open)
flick("grounding_rodhit", src)
zap_buckle_check(power)
- return 0
+ return FALSE
else
. = ..()
diff --git a/code/modules/procedural_mapping/mapGenerator.dm b/code/modules/procedural_mapping/mapGenerator.dm
index 323f74d0ef..3592e3bb1f 100644
--- a/code/modules/procedural_mapping/mapGenerator.dm
+++ b/code/modules/procedural_mapping/mapGenerator.dm
@@ -37,7 +37,7 @@
//Returns the map
/datum/mapGenerator/proc/defineRegion(turf/Start, turf/End, replace = 0)
if(!checkRegion(Start, End))
- return 0
+ return FALSE
if(replace)
undefineRegion()
@@ -49,7 +49,7 @@
//Returns the map
/datum/mapGenerator/proc/defineCircularRegion(turf/Start, turf/End, replace = 0)
if(!checkRegion(Start, End))
- return 0
+ return FALSE
var/centerX = max(abs((End.x+Start.x)/2),1)
var/centerY = max(abs((End.y+Start.y)/2),1)
@@ -92,7 +92,7 @@
. = 1
if(!Start || !End)
- return 0 //Just bail
+ return FALSE //Just bail
if(Start.x > world.maxx || End.x > world.maxx)
. = 0
diff --git a/code/modules/procedural_mapping/mapGeneratorModule.dm b/code/modules/procedural_mapping/mapGeneratorModule.dm
index 3a78d8385e..790d98576e 100644
--- a/code/modules/procedural_mapping/mapGeneratorModule.dm
+++ b/code/modules/procedural_mapping/mapGeneratorModule.dm
@@ -28,7 +28,7 @@
//Place a spawnable atom or turf on this turf
/datum/mapGeneratorModule/proc/place(turf/T)
if(!T)
- return 0
+ return FALSE
var/clustering = 0
var/skipLoopIteration = FALSE
@@ -107,7 +107,7 @@
/datum/mapGeneratorModule/proc/checkPlaceAtom(turf/T)
. = 1
if(!T)
- return 0
+ return FALSE
if(T.density)
. = 0
for(var/atom/A in T)
diff --git a/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm b/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm
index 18607b919a..6f5efc32c7 100644
--- a/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm
+++ b/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm
@@ -61,8 +61,8 @@
for(var/direction in list(SOUTH,EAST,WEST,NORTH))
if (get_step(T,direction) in mother.map)
continue
- return 1
- return 0
+ return TRUE
+ return FALSE
/datum/mapGenerator/repressurize
modules = list(/datum/mapGeneratorModule/bottomLayer/repressurize)
diff --git a/code/modules/procedural_mapping/mapGenerators/cellular.dm b/code/modules/procedural_mapping/mapGenerators/cellular.dm
index 5fc1344dc4..cf0423d2fd 100644
--- a/code/modules/procedural_mapping/mapGenerators/cellular.dm
+++ b/code/modules/procedural_mapping/mapGenerators/cellular.dm
@@ -78,10 +78,10 @@
value -= old_state[i][j]
if(value in b_rule)
- return 1
+ return TRUE
if(value in s_rule)
return old_state[i][j]
- return 0
+ return FALSE
/datum/mapGenerator/ca/caves
b_rule = list(5,6,7,8)
diff --git a/code/modules/projectiles/ammunition/_firing.dm b/code/modules/projectiles/ammunition/_firing.dm
index 437b7dcc5a..4190db7803 100644
--- a/code/modules/projectiles/ammunition/_firing.dm
+++ b/code/modules/projectiles/ammunition/_firing.dm
@@ -19,7 +19,7 @@
user.DelayNextAction(considered_action = TRUE, immediate = FALSE)
user.newtonian_move(get_dir(target, user))
update_icon()
- return 1
+ return TRUE
/obj/item/ammo_casing/proc/ready_proj(atom/target, mob/living/user, quiet, zone_override = "", fired_from)
if (!BB)
@@ -52,7 +52,7 @@
/obj/item/ammo_casing/proc/throw_proj(atom/target, turf/targloc, mob/living/user, params, spread)
var/turf/curloc = get_turf(user)
if (!istype(targloc) || !istype(curloc) || !BB)
- return 0
+ return FALSE
var/firing_dir
if(BB.firer)
@@ -68,7 +68,7 @@
BB.preparePixelProjectile(target, user, params, spread)
BB.fire(null, direct_target)
BB = null
- return 1
+ return TRUE
/obj/item/ammo_casing/proc/spread(turf/target, turf/current, distro)
var/dx = abs(target.x - current.x)
diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm
index e44fcb38c8..3a84a6106c 100644
--- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm
+++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm
@@ -51,12 +51,12 @@
/obj/item/ammo_box/proc/give_round(obj/item/ammo_casing/R, replace_spent = 0)
// Boxes don't have a caliber type, magazines do. Not sure if it's intended or not, but if we fail to find a caliber, then we fall back to ammo_type.
if(!R || (caliber && R.caliber != caliber) || (!caliber && R.type != ammo_type))
- return 0
+ return FALSE
if (stored_ammo.len < max_ammo)
stored_ammo += R
R.forceMove(src)
- return 1
+ return TRUE
//for accessibles magazines (e.g internal ones) when full, start replacing spent ammo
else if(replace_spent)
@@ -67,12 +67,12 @@
stored_ammo += R
R.forceMove(src)
- return 1
+ return TRUE
- return 0
+ return FALSE
/obj/item/ammo_box/proc/can_load(mob/user)
- return 1
+ return TRUE
/obj/item/ammo_box/attackby(obj/item/A, mob/user, params, silent = FALSE, replace_spent = 0)
var/num_loaded = 0
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index d782db3a8a..ba5ac2a9e4 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -137,12 +137,12 @@
burst_size = 1
- sortList(fire_select_modes, GLOBAL_PROC_REF(cmp_numeric_asc))
+ sort_list(fire_select_modes, GLOBAL_PROC_REF(cmp_numeric_asc))
if(fire_select_modes.len > 1)
firemode_action = new(src)
firemode_action.button_icon_state = "fireselect_[fire_select]"
- firemode_action.UpdateButtonIcon()
+ firemode_action.UpdateButtons()
/obj/item/gun/ComponentInitialize()
. = ..()
@@ -219,7 +219,7 @@
playsound(user, 'sound/weapons/empty.ogg', 100, TRUE)
update_appearance()
firemode_action.button_icon_state = "fireselect_[fire_select]"
- firemode_action.UpdateButtonIcon()
+ firemode_action.UpdateButtons()
return TRUE
/obj/item/gun/equipped(mob/living/user, slot)
@@ -670,7 +670,7 @@
update_icon()
for(var/X in actions)
var/datum/action/A = X
- A.UpdateButtonIcon()
+ A.UpdateButtons()
/obj/item/gun/update_overlays()
. = ..()
@@ -756,7 +756,7 @@
/datum/action/item_action/toggle_scope_zoom/IsAvailable(silent = FALSE)
. = ..()
- if(!.)
+ if(!. && owner)
var/obj/item/gun/G = target
G.zoom(owner, owner.dir, FALSE)
@@ -807,7 +807,7 @@
return ..()
/obj/item/gun/proc/getinaccuracy(mob/living/user, bonus_spread, stamloss)
- return 0 // Replacement TBD: Exponential curved aim instability system.
+ return FALSE // Replacement TBD: Exponential curved aim instability system.
/*
if(inaccuracy_modifier == 0)
diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm
index 83fecc65b4..0f3ea67580 100644
--- a/code/modules/projectiles/guns/ballistic.dm
+++ b/code/modules/projectiles/guns/ballistic.dm
@@ -48,8 +48,8 @@
/obj/item/gun/ballistic/can_shoot()
if(!magazine || !magazine.ammo_count(0))
- return 0
- return 1
+ return FALSE
+ return TRUE
/obj/item/gun/ballistic/attackby(obj/item/A, mob/user, params)
..()
@@ -68,7 +68,7 @@
playsound(src, "gun_insert_empty_magazine", 70, 1)
A.update_icon()
update_icon()
- return 1
+ return TRUE
else
to_chat(user, "You cannot seem to get \the [src] out of your hands! ")
return
@@ -89,7 +89,7 @@
to_chat(user, "You screw [S] onto [src]. ")
install_suppressor(A)
return
- return 0
+ return FALSE
/obj/item/gun/ballistic/proc/install_suppressor(obj/item/suppressor/S)
// this proc assumes that the suppressor is already inside src
@@ -205,7 +205,7 @@
slot_flags |= ITEM_SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally)
sawn_off = TRUE
update_icon()
- return 1
+ return TRUE
/// is something supposed to happen here?
/obj/item/gun/ballistic/proc/on_sawoff(mob/user)
diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm
index 4d08520246..0bb1c3cada 100644
--- a/code/modules/projectiles/guns/ballistic/automatic.dm
+++ b/code/modules/projectiles/guns/ballistic/automatic.dm
@@ -52,7 +52,7 @@
chamber_round()
A.update_icon()
update_icon()
- return 1
+ return TRUE
else
to_chat(user, "You cannot seem to get \the [src] out of your hands! ")
diff --git a/code/modules/projectiles/guns/ballistic/magweapon.dm b/code/modules/projectiles/guns/ballistic/magweapon.dm
index f3a11eb179..cdb88f754a 100644
--- a/code/modules/projectiles/guns/ballistic/magweapon.dm
+++ b/code/modules/projectiles/guns/ballistic/magweapon.dm
@@ -37,13 +37,13 @@
/obj/item/gun/ballistic/automatic/magrifle/can_shoot()
if(QDELETED(cell))
- return 0
+ return FALSE
var/obj/item/ammo_casing/caseless/magnetic/shot = chambered
if(!shot)
- return 0
+ return FALSE
if(cell.charge < shot.energy_cost * burst_size)
- return 0
+ return FALSE
. = ..()
/obj/item/gun/ballistic/automatic/magrifle/shoot_live_shot(mob/living/user, pointblank = FALSE, mob/pbtarget, message = 1, stam_cost = 0)
diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm
index 0b92e63ca6..4841179185 100644
--- a/code/modules/projectiles/guns/ballistic/shotgun.dm
+++ b/code/modules/projectiles/guns/ballistic/shotgun.dm
@@ -37,7 +37,7 @@
/obj/item/gun/ballistic/shotgun/can_shoot()
if(!chambered)
- return 0
+ return FALSE
return (chambered.BB ? 1 : 0)
/obj/item/gun/ballistic/shotgun/attack_self(mob/living/user)
@@ -67,7 +67,7 @@
pump_unload(M)
pump_reload(M)
update_icon() //I.E. fix the desc
- return 1
+ return TRUE
/obj/item/gun/ballistic/shotgun/proc/pump_unload(mob/M)
if(chambered)//We have a shell in the chamber
@@ -77,7 +77,7 @@
/obj/item/gun/ballistic/shotgun/proc/pump_reload(mob/M)
if(!magazine.ammo_count())
- return 0
+ return FALSE
var/obj/item/ammo_casing/AC = magazine.get_round() //load next casing.
chambered = AC
@@ -147,7 +147,7 @@
pump_unload(M)
bolt_open = !bolt_open
update_icon() //I.E. fix the desc
- return 1
+ return TRUE
/obj/item/gun/ballistic/shotgun/boltaction/attackby(obj/item/A, mob/user, params)
if(!bolt_open)
diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
index 5f62e96256..e9b3695db9 100644
--- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
+++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
@@ -57,25 +57,24 @@
. = ..()
if(max_mod_capacity)
. += "[get_remaining_mod_capacity()]% mod capacity remaining."
- for(var/A in get_modkits())
- var/obj/item/borg/upgrade/modkit/M = A
+ for(var/obj/item/borg/upgrade/modkit/M in modkits)
. += "There is \a [M] installed, using [M.cost]% capacity. "
/obj/item/gun/energy/kinetic_accelerator/crowbar_act(mob/living/user, obj/item/I)
. = TRUE
if(modkits.len)
- to_chat(user, "You pry the modifications out. ")
+ to_chat(user, span_notice("You pry all the modifications out."))
I.play_tool_sound(src, 100)
for(var/obj/item/borg/upgrade/modkit/M in modkits)
- M.uninstall(src)
+ M.forceMove(drop_location()) //uninstallation handled in Exited(), or /mob/living/silicon/robot/remove_from_upgrades() for borgs
else
- to_chat(user, "There are no modifications currently installed. ")
+ to_chat(user, span_notice("There are no modifications currently installed."))
-/obj/item/gun/energy/kinetic_accelerator/Exited(atom/movable/AM)
- . = ..()
- if((AM in modkits) && istype(AM, /obj/item/borg/upgrade/modkit))
- var/obj/item/borg/upgrade/modkit/M = AM
- M.uninstall(src, FALSE)
+/obj/item/gun/energy/kinetic_accelerator/Exited(atom/movable/gone)
+ if(gone in modkits)
+ var/obj/item/borg/upgrade/modkit/MK = gone
+ MK.uninstall(src)
+ return ..()
/obj/item/gun/energy/kinetic_accelerator/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/borg/upgrade/modkit))
@@ -86,20 +85,13 @@
/obj/item/gun/energy/kinetic_accelerator/proc/get_remaining_mod_capacity()
var/current_capacity_used = 0
- for(var/A in get_modkits())
- var/obj/item/borg/upgrade/modkit/M = A
+ for(var/obj/item/borg/upgrade/modkit/M in modkits)
current_capacity_used += M.cost
return max_mod_capacity - current_capacity_used
-/obj/item/gun/energy/kinetic_accelerator/proc/get_modkits()
- . = list()
- for(var/A in modkits)
- . += A
-
/obj/item/gun/energy/kinetic_accelerator/proc/modify_projectile(obj/item/projectile/kinetic/K)
K.kinetic_gun = src //do something special on-hit, easy!
- for(var/A in get_modkits())
- var/obj/item/borg/upgrade/modkit/M = A
+ for(var/obj/item/borg/upgrade/modkit/M in modkits)
M.modify_projectile(K)
/obj/item/gun/energy/kinetic_accelerator/cyborg
@@ -211,7 +203,7 @@
/obj/item/gun/energy/kinetic_accelerator/getstamcost(mob/living/carbon/user)
if(user && !lavaland_equipment_pressure_check(get_turf(user)))
- return 0
+ return FALSE
else
return ..()
@@ -259,7 +251,7 @@
if(!target_turf)
target_turf = get_turf(src)
if(kinetic_gun) //hopefully whoever shot this was not very, very unfortunate.
- var/list/mods = kinetic_gun.get_modkits()
+ var/list/mods = kinetic_gun.modkits
for(var/obj/item/borg/upgrade/modkit/M in mods)
M.projectile_strike_predamage(src, target_turf, target, kinetic_gun)
for(var/obj/item/borg/upgrade/modkit/M in mods)
@@ -278,7 +270,7 @@
icon = 'icons/obj/objects.dmi'
icon_state = "modkit"
w_class = WEIGHT_CLASS_SMALL
- require_module = 1
+ require_module = TRUE
module_type = list(/obj/item/robot_module/miner)
module_flags = BORG_MODULE_MINER
var/denied_type = null
@@ -298,26 +290,24 @@
else
..()
-/obj/item/borg/upgrade/modkit/afterInstall(mob/living/silicon/robot/R)
- for(var/obj/item/gun/energy/kinetic_accelerator/H in R.module.modules)
- if(install(H, R)) //It worked
- return
- to_chat(R, "Upgrade error - Aborting Kinetic Accelerator linking. ") //No applicable KA found, insufficient capacity, or some other problem.
+/obj/item/borg/upgrade/modkit/action(mob/living/silicon/robot/R)
+ . = ..()
+ if (.)
+ for(var/obj/item/gun/energy/kinetic_accelerator/H in R.module.modules)
+ return install(H, usr, FALSE)
-/obj/item/borg/upgrade/modkit/proc/install(obj/item/gun/energy/kinetic_accelerator/KA, mob/user)
+/obj/item/borg/upgrade/modkit/proc/install(obj/item/gun/energy/kinetic_accelerator/KA, mob/user, transfer_to_loc = TRUE)
. = TRUE
- if(src in KA.modkits) // Sanity check to prevent installing the same modkit twice thanks to occasional click/lag delays.
- return FALSE
if(minebot_upgrade)
if(minebot_exclusive && !istype(KA.loc, /mob/living/simple_animal/hostile/mining_drone))
- to_chat(user, "The modkit you're trying to install is only rated for minebot use. ")
+ to_chat(user, span_notice("The modkit you're trying to install is only rated for minebot use."))
return FALSE
else if(istype(KA.loc, /mob/living/simple_animal/hostile/mining_drone))
- to_chat(user, "The modkit you're trying to install is not rated for minebot use. ")
+ to_chat(user, span_notice("The modkit you're trying to install is not rated for minebot use."))
return FALSE
if(denied_type)
var/number_of_denied = 0
- for(var/A in KA.get_modkits())
+ for(var/A in KA.modkits)
var/obj/item/borg/upgrade/modkit/M = A
if(istype(M, denied_type))
number_of_denied++
@@ -326,21 +316,25 @@
break
if(KA.get_remaining_mod_capacity() >= cost)
if(.)
- if(!user.transferItemToLoc(src, KA))
- return FALSE
- to_chat(user, "You install the modkit. ")
- playsound(loc, 'sound/items/screwdriver.ogg', 100, 1)
+ if(transfer_to_loc && !user.transferItemToLoc(src, KA))
+ return
+ to_chat(user, span_notice("You install the modkit."))
+ playsound(loc, 'sound/items/screwdriver.ogg', 100, TRUE)
KA.modkits += src
else
- to_chat(user, "The modkit you're trying to install would conflict with an already installed modkit. Use a crowbar to remove existing modkits. ")
+ to_chat(user, span_notice("The modkit you're trying to install would conflict with an already installed modkit. Use a crowbar to remove existing modkits."))
else
- to_chat(user, "You don't have room([KA.get_remaining_mod_capacity()]% remaining, [cost]% needed) to install this modkit. Use a crowbar to remove existing modkits. ")
+ to_chat(user, span_notice("You don't have room([KA.get_remaining_mod_capacity()]% remaining, [cost]% needed) to install this modkit. Use a crowbar to remove existing modkits."))
. = FALSE
-/obj/item/borg/upgrade/modkit/proc/uninstall(obj/item/gun/energy/kinetic_accelerator/KA, forcemove = TRUE)
+/obj/item/borg/upgrade/modkit/deactivate(mob/living/silicon/robot/R, user = usr)
+ . = ..()
+ if (.)
+ for(var/obj/item/gun/energy/kinetic_accelerator/KA in R.module.modules)
+ uninstall(KA)
+
+/obj/item/borg/upgrade/modkit/proc/uninstall(obj/item/gun/energy/kinetic_accelerator/KA)
KA.modkits -= src
- if(forcemove)
- forceMove(get_turf(KA))
/obj/item/borg/upgrade/modkit/proc/modify_projectile(obj/item/projectile/kinetic/K)
@@ -467,6 +461,7 @@
/obj/item/borg/upgrade/modkit/minebot_passthrough
name = "minebot passthrough"
desc = "Causes kinetic accelerator shots to pass through minebots."
+ denied_type = /obj/item/borg/upgrade/modkit/minebot_passthrough // If you have something cost zero, you can keep adding forever, why
cost = 0
//Tendril-unique modules
diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm
index 4192f038c2..eaa0dae83d 100644
--- a/code/modules/projectiles/guns/magic.dm
+++ b/code/modules/projectiles/guns/magic.dm
@@ -66,12 +66,12 @@
/obj/item/gun/magic/process()
charge_tick++
if(charge_tick < recharge_rate || charges >= max_charges)
- return 0
+ return FALSE
charge_tick = 0
charges++
if(charges == 1)
recharge_newshot()
- return 1
+ return TRUE
/obj/item/gun/magic/shoot_with_empty_chamber(mob/living/user as mob|obj)
to_chat(user, "The [name] whizzles quietly. ")
diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm
index 7cc025f387..4548719a20 100644
--- a/code/modules/projectiles/guns/misc/beam_rifle.dm
+++ b/code/modules/projectiles/guns/misc/beam_rifle.dm
@@ -200,7 +200,9 @@
else
P.color = rgb(0, 255, 0)
var/turf/curloc = get_turf(src)
- var/turf/targloc = get_turf(current_user.client.mouseObject)
+
+ var/atom/target_atom = current_user.client.mouse_object_ref?.resolve()
+ var/turf/targloc = get_turf(target_atom)
if(!istype(targloc))
if(!istype(curloc))
return
@@ -293,7 +295,9 @@
process_aim()
if(fire_check() && can_trigger_gun(M))
sync_ammo()
- do_fire(M.client.mouseObject, M, FALSE, M.client.mouseParams, M.zone_selected)
+ var/atom/target = M.client.mouse_object_ref?.resolve()
+ if(target)
+ afterattack(target, M, FALSE, M.client.mouseParams)
stop_aiming()
QDEL_LIST(current_tracers)
return ..()
@@ -469,7 +473,7 @@
return 0.5
if(istype(target, /obj/structure/blob))
return 0.65 //CIT CHANGE.
- return 1
+ return TRUE
/obj/item/projectile/beam/beam_rifle/proc/handle_impact(atom/target)
if(isobj(target))
diff --git a/code/modules/projectiles/guns/misc/blastcannon.dm b/code/modules/projectiles/guns/misc/blastcannon.dm
index a88f395561..3372f70444 100644
--- a/code/modules/projectiles/guns/misc/blastcannon.dm
+++ b/code/modules/projectiles/guns/misc/blastcannon.dm
@@ -72,20 +72,20 @@
//returns the third value of a bomb blast
/obj/item/gun/blastcannon/proc/calculate_bomb()
if(!istype(bomb) || !istype(bomb.tank_one) || !istype(bomb.tank_two))
- return 0
+ return FALSE
var/datum/gas_mixture/temp = new(max(reaction_volume_mod, 0))
bomb.merge_gases(temp)
if(prereaction)
temp.react(src)
var/prereaction_pressure = temp.return_pressure()
if(prereaction_pressure < TANK_FRAGMENT_PRESSURE)
- return 0
+ return FALSE
for(var/i in 1 to reaction_cycles)
temp.react(src)
var/pressure = temp.return_pressure()
qdel(temp)
if(pressure < TANK_FRAGMENT_PRESSURE)
- return 0
+ return FALSE
return ((pressure - TANK_FRAGMENT_PRESSURE) / TANK_FRAGMENT_SCALE)
/obj/item/gun/blastcannon/afterattack(atom/target, mob/user, flag, params)
diff --git a/code/modules/projectiles/guns/misc/medbeam.dm b/code/modules/projectiles/guns/misc/medbeam.dm
index 4a64317fd9..a4ee003d7b 100644
--- a/code/modules/projectiles/guns/misc/medbeam.dm
+++ b/code/modules/projectiles/guns/misc/medbeam.dm
@@ -87,7 +87,7 @@
if(mounted)
user_turf = get_turf(user)
else if(!istype(user_turf))
- return 0
+ return FALSE
var/obj/dummy = new(user_turf)
dummy.pass_flags |= PASSTABLE|PASSGLASS|PASSGRILLE //Grille/Glass so it can be used through common windows
for(var/turf/turf in getline(user_turf,target))
@@ -95,18 +95,18 @@
continue //Mechs are dense and thus fail the check
if(turf.density)
qdel(dummy)
- return 0
+ return FALSE
for(var/atom/movable/AM in turf)
if(!AM.CanPass(dummy,turf,1))
qdel(dummy)
- return 0
+ return FALSE
for(var/obj/effect/ebeam/medical/B in turf)// Don't cross the str-beams!
if(B.owner.origin != current_beam.origin)
explosion(B.loc,0,3,5,8)
qdel(dummy)
- return 0
+ return FALSE
qdel(dummy)
- return 1
+ return TRUE
/obj/item/gun/medbeam/proc/on_beam_hit(var/mob/living/target)
return
diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm
index 8de7633a79..7ced76918c 100644
--- a/code/modules/projectiles/guns/misc/syringe_gun.dm
+++ b/code/modules/projectiles/guns/misc/syringe_gun.dm
@@ -38,18 +38,18 @@
/obj/item/gun/syringe/attack_self(mob/living/user)
if(!syringes.len)
to_chat(user, "[src] is empty! ")
- return 0
+ return FALSE
var/obj/item/reagent_containers/syringe/S = syringes[syringes.len]
if(!S)
- return 0
+ return FALSE
S.forceMove(user.loc)
syringes.Remove(S)
to_chat(user, "You unload [S] from \the [src]. ")
- return 1
+ return TRUE
/obj/item/gun/syringe/attackby(obj/item/A, mob/user, params, show_msg = TRUE)
if(istype(A, /obj/item/reagent_containers/syringe))
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index 0aee51bb84..aa90ea470a 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -939,12 +939,10 @@
var/y = text2num(screen_loc_Y[1]) * 32 + text2num(screen_loc_Y[2]) - 32
//Calculate the "resolution" of screen based on client's view and world's icon size. This will work if the user can view more tiles than average.
- var/list/screenview = getviewsize(user.client.view)
- var/screenviewX = screenview[1] * world.icon_size
- var/screenviewY = screenview[2] * world.icon_size
+ var/list/screenview = view_to_pixels(user.client.view)
- var/ox = round(screenviewX/2) - user.client.pixel_x //"origin" x
- var/oy = round(screenviewY/2) - user.client.pixel_y //"origin" y
+ var/ox = round(screenview[1] / 2) - user.client.pixel_x //"origin" x
+ var/oy = round(screenview[2] / 2) - user.client.pixel_y //"origin" y
angle = arctan(y - oy, x - ox)
return list(angle, p_x, p_y)
diff --git a/code/modules/reagents/chem_splash.dm b/code/modules/reagents/chem_splash.dm
index b16392ecd1..36d75bf7dd 100644
--- a/code/modules/reagents/chem_splash.dm
+++ b/code/modules/reagents/chem_splash.dm
@@ -73,6 +73,6 @@
splash_holder.reaction(A, TOUCH, fraction)
qdel(splash_holder)
- return 1
+ return TRUE
diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm
index dfe3fdec26..312f3caace 100644
--- a/code/modules/reagents/chemistry/holder.dm
+++ b/code/modules/reagents/chemistry/holder.dm
@@ -552,7 +552,7 @@
fermiIsReacting = FALSE
SSblackbox.record_feedback("tally", "fermi_chem", 1, ("[Ferm] explosion"))
Ferm.FermiExplode(src, my_atom, volume = total_volume, temp = chem_temp, pH = pH)
- return 0
+ return FALSE
//This is just to calc the on_reaction multiplier, and is a candidate for removal.
for(var/B in cached_required_reagents)
@@ -561,11 +561,11 @@
targetVol = cached_results[P]*multiplier
if(!((chem_temp <= C.ExplodeTemp) && (chem_temp >= C.OptimalTempMin)))
- return 0 //Not hot enough
+ return FALSE //Not hot enough
if(! ((pH >= (C.OptimalpHMin - C.ReactpHLim)) && (pH <= (C.OptimalpHMax + C.ReactpHLim)) ))//To prevent pointless reactions
- return 0
+ return FALSE
if (fermiIsReacting)
- return 0
+ return FALSE
else
START_PROCESSING(SSprocessing, src)
selected_reaction.on_reaction(src, my_atom, multiplier)
@@ -581,7 +581,7 @@
fermiIsReacting = FALSE
SSblackbox.record_feedback("tally", "fermi_chem", 1, ("[Ferm] explosion"))
Ferm.FermiExplode(src, my_atom, volume = total_volume, temp = chem_temp, pH = pH)
- return 0
+ return FALSE
for(var/B in cached_required_reagents) //
multiplier = min(multiplier, round((get_reagent_amount(B) / cached_required_reagents[B]), CHEMICAL_QUANTISATION_LEVEL))
@@ -621,7 +621,7 @@
while(reaction_occurred)
update_total()
- return 0
+ return FALSE
/datum/reagents/process()
var/datum/chemical_reaction/C = fermiReactID
@@ -838,7 +838,7 @@
update_total()
if(my_atom)
my_atom.on_reagent_change(DEL_REAGENT)
- return 1
+ return TRUE
/datum/reagents/proc/update_total()
var/list/cached_reagents = reagent_list
@@ -853,7 +853,7 @@
total_volume += R.volume
if(!reagent_list || !total_volume)
pH = REAGENT_NORMAL_PH
- return 0
+ return FALSE
/datum/reagents/proc/clear_reagents()
var/list/cached_reagents = reagent_list
@@ -861,7 +861,7 @@
var/datum/reagent/R = reagent
del_reagent(R.type)
pH = REAGENT_NORMAL_PH
- return 0
+ return FALSE
/datum/reagents/proc/reaction(atom/A, method = TOUCH, volume_modifier = 1, show_message = 1, from_gas = 0)
var/react_type
@@ -1075,9 +1075,9 @@
if(round(R.volume, CHEMICAL_QUANTISATION_LEVEL) >= amount)
return R
else
- return 0
+ return FALSE
- return 0
+ return FALSE
/datum/reagents/proc/get_reagent_amount(reagent)
var/list/cached_reagents = reagent_list
@@ -1086,7 +1086,7 @@
if (R.type == reagent)
return round(R.volume, CHEMICAL_QUANTISATION_LEVEL)
- return 0
+ return FALSE
/datum/reagents/proc/get_reagents()
var/list/names = list()
@@ -1099,7 +1099,7 @@
/datum/reagents/proc/remove_all_type(reagent_type, amount, strict = 0, safety = 1) // Removes all reagent of X type. @strict set to 1 determines whether the childs of the type are included.
if(!isnum(amount))
- return 1
+ return TRUE
var/list/cached_reagents = reagent_list
var/has_removed_reagent = 0
diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
index 92e938ff8d..06d1604fce 100644
--- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
@@ -94,16 +94,16 @@
/obj/machinery/chem_dispenser/Initialize(mapload)
. = ..()
- dispensable_reagents = sortList(dispensable_reagents, GLOBAL_PROC_REF(cmp_reagents_asc))
+ dispensable_reagents = sort_list(dispensable_reagents, GLOBAL_PROC_REF(cmp_reagents_asc))
if(emagged_reagents)
- emagged_reagents = sortList(emagged_reagents, GLOBAL_PROC_REF(cmp_reagents_asc))
+ emagged_reagents = sort_list(emagged_reagents, GLOBAL_PROC_REF(cmp_reagents_asc))
if(upgrade_reagents)
- upgrade_reagents = sortList(upgrade_reagents, GLOBAL_PROC_REF(cmp_reagents_asc))
+ upgrade_reagents = sort_list(upgrade_reagents, GLOBAL_PROC_REF(cmp_reagents_asc))
if(upgrade_reagents2)
- upgrade_reagents2 = sortList(upgrade_reagents2, GLOBAL_PROC_REF(cmp_reagents_asc))
+ upgrade_reagents2 = sort_list(upgrade_reagents2, GLOBAL_PROC_REF(cmp_reagents_asc))
if(upgrade_reagents3)
- upgrade_reagents3 = sortList(upgrade_reagents3, GLOBAL_PROC_REF(cmp_reagents_asc))
- dispensable_reagents = sortList(dispensable_reagents, GLOBAL_PROC_REF(cmp_reagents_asc))
+ upgrade_reagents3 = sort_list(upgrade_reagents3, GLOBAL_PROC_REF(cmp_reagents_asc))
+ dispensable_reagents = sort_list(dispensable_reagents, GLOBAL_PROC_REF(cmp_reagents_asc))
create_reagents(200, NO_REACT)
update_icon()
diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm
index 0e53b0796b..8986d39008 100644
--- a/code/modules/reagents/chemistry/machinery/chem_master.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_master.dm
@@ -440,7 +440,7 @@
num = round(num)
return num
else
- return 0
+ return FALSE
/obj/machinery/chem_master/adjust_item_drop_location(atom/movable/AM) // Special version for chemmasters and condimasters
diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm
index 2fb8f58019..65fdb382f9 100644
--- a/code/modules/reagents/chemistry/reagents.dm
+++ b/code/modules/reagents/chemistry/reagents.dm
@@ -71,14 +71,14 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent())
/datum/reagent/proc/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
if(!istype(M))
- return 0
+ return FALSE
if(method == VAPOR) //smoke, foam, spray
if(M.reagents)
var/modifier = clamp((1 - touch_protection), 0, 1)
var/amount = round(reac_volume*modifier, 0.1)
if(amount >= 0.5)
M.reagents.add_reagent(type, amount)
- return 1
+ return TRUE
/datum/reagent/proc/reaction_obj(obj/O, volume)
if(O && volume && boiling_point)
diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
index 44d38573c8..a3df4cecf6 100644
--- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
@@ -1479,15 +1479,15 @@ All effects don't start immediately, but rather get worse over time; the rate is
..()
/datum/reagent/consumable/ethanol/eggnog
- name = "Eggnog"
+ name = "Spiked Eggnog"
description = "The traditional way to get absolutely hammered at a Christmas party."
color = "#fcfdc6" // rgb: 252, 253, 198
nutriment_factor = 2 * REAGENTS_METABOLISM
- boozepwr = 1
+ boozepwr = 20
quality = DRINK_VERYGOOD
taste_description = "custard and alcohol"
glass_icon_state = "nog3"
- glass_name = "eggnog"
+ glass_name = "spiked eggnog"
glass_desc = "The traditional way to get absolutely hammered at a Christmas party."
/datum/reagent/consumable/ethanol/narsour
diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm
index c0892ce1e2..569590f6ee 100644
--- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm
@@ -1146,3 +1146,14 @@
taste_description = "bitter powder"
glass_name = "glass of banana peel powder"
description = "You took a banana peel... pulped it... baked it... Where are you going with this?"
+
+/datum/reagent/consumable/eggnog
+ name = "Eggnog"
+ description = "A creamy, rich beverage made out of whisked eggs, milk and sugar, for when you feel like celebrating the winter holidays."
+ color = "#fcfdc6" // rgb: 252, 253, 198
+ nutriment_factor = 2 * REAGENTS_METABOLISM
+ quality = DRINK_VERYGOOD
+ taste_description = "custard"
+ glass_icon_state = "nog3"
+ glass_name = "eggnog"
+ glass_desc = "You can't egg-nore the holiday cheer all around you"
diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
index af670c00dc..106de64746 100644
--- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
@@ -86,7 +86,7 @@
/datum/reagent/toxin/plasma/reaction_obj(obj/O, reac_volume)
if((!O) || (!reac_volume))
- return 0
+ return FALSE
var/temp = holder ? holder.chem_temp : T20C
O.atmos_spawn_air("plasma=[reac_volume];TEMP=[temp]")
diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm
index db81a9e1ef..0d25fe9b5c 100644
--- a/code/modules/reagents/reagent_containers.dm
+++ b/code/modules/reagents/reagent_containers.dm
@@ -75,7 +75,7 @@
/obj/item/reagent_containers/proc/canconsume(mob/eater, mob/user)
if(!iscarbon(eater))
- return 0
+ return FALSE
var/mob/living/carbon/C = eater
var/covered = ""
if(C.is_mouth_covered(head_only = 1))
@@ -85,8 +85,8 @@
if(covered)
var/who = (isnull(user) || eater == user) ? "your" : "[eater.p_their()]"
to_chat(user, "You have to remove [who] [covered] first! ")
- return 0
- return 1
+ return FALSE
+ return TRUE
/obj/item/reagent_containers/ex_act(severity, target, origin)
if(reagents)
@@ -106,9 +106,10 @@
/obj/item/reagent_containers/proc/bartender_check(atom/target)
. = FALSE
var/turf/T = get_turf(src)
- if(!T || !target.CanPass(src, T) || !thrownby || !thrownby.actions)
+ var/mob/thrown_by = thrownby?.resolve()
+ if(!T || !target.CanPass(src, T) || !thrown_by || !thrown_by.actions)
return
- var/datum/action/innate/D = get_action_of_type(thrownby, /datum/action/innate/drink_fling)
+ var/datum/action/innate/D = get_action_of_type(thrown_by, /datum/action/innate/drink_fling)
if(D?.active)
return TRUE
@@ -118,6 +119,7 @@
/obj/item/reagent_containers/proc/SplashReagents(atom/target, thrown = FALSE)
if(!reagents || !reagents.total_volume || !spillable)
return
+ var/mob/thrown_by = thrownby?.resolve()
if(ismob(target) && target.reagents)
if(thrown)
@@ -128,10 +130,10 @@
"[M] has been splashed with something! ")
var/turf/TT = get_turf(target)
var/throwerstring
- if(thrownby && thrown)
- log_combat(thrownby, M, "splashed", R)
- var/turf/AT = get_turf(thrownby)
- throwerstring = " THROWN BY [key_name(thrownby)] at [AT] (AREACOORD(AT)]"
+ if(thrown_by && thrown)
+ log_combat(thrown_by, M, "splashed", R)
+ var/turf/AT = get_turf(thrown_by)
+ throwerstring = " THROWN BY [key_name(thrown_by)] at [AT] (AREACOORD(AT)]"
log_reagent("SPLASH: [src] mob SplashReagents() onto [key_name(target)] at [TT] ([AREACOORD(TT)])[throwerstring] - [R]")
reagents.reaction(target, TOUCH)
reagents.clear_reagents()
@@ -142,15 +144,15 @@
addtimer(CALLBACK(src, PROC_REF(ForceResetRotation)), 1)
else
- if(isturf(target) && reagents.reagent_list.len && thrownby)
- log_combat(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]", "in [AREACOORD(target)]")
- log_game("[key_name(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] in [AREACOORD(target)].")
- message_admins("[ADMIN_LOOKUPFLW(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] in [ADMIN_VERBOSEJMP(target)].")
+ if(isturf(target) && reagents.reagent_list.len && thrown_by)
+ log_combat(thrown_by, target, "splashed (thrown) [english_list(reagents.reagent_list)]", "in [AREACOORD(target)]")
+ log_game("[key_name(thrown_by)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] in [AREACOORD(target)].")
+ message_admins("[ADMIN_LOOKUPFLW(thrown_by)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] in [ADMIN_VERBOSEJMP(target)].")
var/turf/T = get_turf(target)
var/throwerstring
- if(thrownby && thrown)
- var/turf/AT = get_turf(thrownby)
- throwerstring = " THROWN BY [key_name(thrownby)] at [AT] ([AREACOORD(AT)])"
+ if(thrown_by && thrown)
+ var/turf/AT = get_turf(thrown_by)
+ throwerstring = " THROWN BY [key_name(thrown_by)] at [AT] ([AREACOORD(AT)])"
log_reagent("SPLASH - [src] object SplashReagents() onto [target] at [T] ([AREACOORD(T)])[throwerstring] - [reagents.log_list()]")
visible_message("[src] spills its contents all over [target]. ")
reagents.reaction(target, TOUCH)
diff --git a/code/modules/reagents/reagent_containers/borghypo.dm b/code/modules/reagents/reagent_containers/borghypo.dm
index 0b3e5bcf75..a581463da2 100644
--- a/code/modules/reagents/reagent_containers/borghypo.dm
+++ b/code/modules/reagents/reagent_containers/borghypo.dm
@@ -53,7 +53,7 @@ Borg Hypospray
charge_tick = 0
//update_icon()
- return 1
+ return TRUE
// Use this to add more chemicals for the borghypo to produce.
/obj/item/reagent_containers/borghypo/proc/add_reagent(datum/reagent/reagent)
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index bec2f22590..4c6c311a29 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -29,9 +29,10 @@
M.visible_message("[user] splashes the contents of [src] onto [M]! ", \
"[user] splashes the contents of [src] onto [M]! ")
var/R = reagents?.log_list()
- if(isturf(target) && reagents.reagent_list.len && thrownby)
- log_combat(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]")
- message_admins("[ADMIN_LOOKUPFLW(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] at [ADMIN_VERBOSEJMP(target)].")
+ var/mob/thrown_by = thrownby?.resolve()
+ if(isturf(target) && reagents.reagent_list.len && thrown_by)
+ log_combat(thrown_by, target, "splashed (thrown) [english_list(reagents.reagent_list)]")
+ message_admins("[ADMIN_LOOKUPFLW(thrown_by)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] at [ADMIN_VERBOSEJMP(target)].")
reagents.reaction(M, TOUCH)
log_combat(user, M, "splashed", R)
var/turf/UT = get_turf(user)
diff --git a/code/modules/reagents/reagent_containers/patch.dm b/code/modules/reagents/reagent_containers/patch.dm
index 8cf98008db..1549859cb2 100644
--- a/code/modules/reagents/reagent_containers/patch.dm
+++ b/code/modules/reagents/reagent_containers/patch.dm
@@ -28,8 +28,8 @@
/obj/item/reagent_containers/pill/patch/canconsume(mob/eater, mob/user)
if(!iscarbon(eater))
- return 0
- return 1 // Masks were stopping people from "eating" patches. Thanks, inheritance.
+ return FALSE
+ return TRUE // Masks were stopping people from "eating" patches. Thanks, inheritance.
/obj/item/reagent_containers/pill/patch/styptic
name = "brute patch"
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index f181e86961..454f53828a 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -189,7 +189,7 @@
if(reagents && reagents.total_volume)
return clamp(round((reagents.total_volume / volume * 15),5), 1, 15)
else
- return 0
+ return FALSE
/obj/item/reagent_containers/syringe/epinephrine
name = "syringe (epinephrine)"
diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm
index 8e4db6f2f2..fb3f775bb0 100644
--- a/code/modules/reagents/reagent_dispenser.dm
+++ b/code/modules/reagents/reagent_dispenser.dm
@@ -18,7 +18,7 @@
/obj/structure/reagent_dispensers/attackby(obj/item/W, mob/user, params)
if(W.is_refillable())
- return 0 //so we can refill them via their afterattack.
+ return FALSE //so we can refill them via their afterattack.
else
return ..()
diff --git a/code/modules/recycling/disposal/bin.dm b/code/modules/recycling/disposal/bin.dm
index 8be744cd96..a8835d0cee 100644
--- a/code/modules/recycling/disposal/bin.dm
+++ b/code/modules/recycling/disposal/bin.dm
@@ -359,10 +359,10 @@
if(isitem(AM) && AM.CanEnterDisposals())
if(prob(75))
AM.forceMove(src)
- visible_message("[AM] lands in [src]. ")
- update_icon()
+ visible_message(span_notice("[AM] lands in [src]."))
+ update_appearance()
else
- visible_message("[AM] bounces off of [src]'s rim! ")
+ visible_message(span_notice("[AM] bounces off of [src]'s rim!"))
return ..()
else
return ..()
diff --git a/code/modules/recycling/disposal/pipe.dm b/code/modules/recycling/disposal/pipe.dm
index 6c85bfc3ee..5dd0163204 100644
--- a/code/modules/recycling/disposal/pipe.dm
+++ b/code/modules/recycling/disposal/pipe.dm
@@ -140,7 +140,7 @@
/obj/structure/disposalpipe/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir)
if(damage_flag == MELEE && damage_amount < 10)
- return 0
+ return FALSE
return ..()
diff --git a/code/modules/research/designs/AI_module_designs.dm b/code/modules/research/designs/AI_module_designs.dm
index 98e295b83a..af56575d47 100644
--- a/code/modules/research/designs/AI_module_designs.dm
+++ b/code/modules/research/designs/AI_module_designs.dm
@@ -15,7 +15,7 @@
desc = "Allows for the construction of a Safeguard AI Module."
id = "safeguard_module"
materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000)
- build_path = /obj/item/aiModule/supplied/safeguard
+ build_path = /obj/item/ai_module/supplied/safeguard
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -24,7 +24,7 @@
desc = "Allows for the construction of a OneCrew AI Module."
id = "onehuman_module"
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 6000)
- build_path = /obj/item/aiModule/zeroth/oneHuman
+ build_path = /obj/item/ai_module/zeroth/oneHuman
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -33,7 +33,7 @@
desc = "Allows for the construction of a ProtectStation AI Module."
id = "protectstation_module"
materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000)
- build_path = /obj/item/aiModule/supplied/protectStation
+ build_path = /obj/item/ai_module/supplied/protectStation
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -42,7 +42,7 @@
desc = "Allows for the construction of a Quarantine AI Module."
id = "quarantine_module"
materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000)
- build_path = /obj/item/aiModule/supplied/quarantine
+ build_path = /obj/item/ai_module/supplied/quarantine
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -51,7 +51,7 @@
desc = "Allows for the construction of a Safeguard AI Module."
id = "oxygen_module"
materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000)
- build_path = /obj/item/aiModule/supplied/oxygen
+ build_path = /obj/item/ai_module/supplied/oxygen
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -60,7 +60,7 @@
desc = "Allows for the construction of a Freeform AI Module."
id = "freeform_module"
materials = list(/datum/material/glass = 1000, /datum/material/gold = 10000)//Custom inputs should be more expensive to get
- build_path = /obj/item/aiModule/supplied/freeform
+ build_path = /obj/item/ai_module/supplied/freeform
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -69,7 +69,7 @@
desc = "Allows for the construction of a Reset AI Module."
id = "reset_module"
materials = list(/datum/material/glass = 1000, /datum/material/gold = 2000)
- build_path = /obj/item/aiModule/reset
+ build_path = /obj/item/ai_module/reset
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -78,7 +78,7 @@
desc = "Allows for the construction of a Purge AI Module."
id = "purge_module"
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000)
- build_path = /obj/item/aiModule/reset/purge
+ build_path = /obj/item/ai_module/reset/purge
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -87,7 +87,7 @@
desc = "Allows for the construction of a Law Removal AI Core Module."
id = "remove_module"
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000)
- build_path = /obj/item/aiModule/remove
+ build_path = /obj/item/ai_module/remove
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -96,7 +96,7 @@
desc = "Allows for the construction of a Freeform AI Core Module."
id = "freeformcore_module"
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 10000)//Ditto
- build_path = /obj/item/aiModule/core/freeformcore
+ build_path = /obj/item/ai_module/core/freeformcore
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -105,7 +105,7 @@
desc = "Allows for the construction of an Asimov AI Core Module."
id = "asimov_module"
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000)
- build_path = /obj/item/aiModule/core/full/asimov
+ build_path = /obj/item/ai_module/core/full/asimov
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -115,7 +115,7 @@
id = "paladin_module"
build_type = IMPRINTER
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000)
- build_path = /obj/item/aiModule/core/full/paladin
+ build_path = /obj/item/ai_module/core/full/paladin
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -124,7 +124,7 @@
desc = "Allows for the construction of a T.Y.R.A.N.T. AI Module."
id = "tyrant_module"
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000)
- build_path = /obj/item/aiModule/core/full/tyrant
+ build_path = /obj/item/ai_module/core/full/tyrant
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -133,7 +133,7 @@
desc = "Allows for the construction of a Corporate AI Core Module."
id = "corporate_module"
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000)
- build_path = /obj/item/aiModule/core/full/corp
+ build_path = /obj/item/ai_module/core/full/corp
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
@@ -142,6 +142,6 @@
desc = "Allows for the construction of a Default AI Core Module."
id = "default_module"
materials = list(/datum/material/glass = 1000, /datum/material/diamond = 2000)
- build_path = /obj/item/aiModule/core/full/custom
+ build_path = /obj/item/ai_module/core/full/custom
category = list("AI Modules")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
diff --git a/code/modules/research/designs/mod_designs.dm b/code/modules/research/designs/mod_designs.dm
index 8ceadeb8fb..c0f718e6e5 100644
--- a/code/modules/research/designs/mod_designs.dm
+++ b/code/modules/research/designs/mod_designs.dm
@@ -91,7 +91,7 @@
build_path = /obj/item/mod/construction/armor/mining
materials = list(/datum/material/iron = 6000, /datum/material/titanium = 2000, /datum/material/glass = 1000, /datum/material/plasma = 1000)
departmental_flags = DEPARTMENTAL_FLAG_CARGO
- research_icon_state = "atmospheric-mining"
+ research_icon_state = "mining-plating"
/datum/design/mod_plating/medical
name = "MOD Medical Plating"
diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm
index 18888b0871..00d58a201d 100644
--- a/code/modules/research/machinery/_production.dm
+++ b/code/modules/research/machinery/_production.dm
@@ -107,7 +107,7 @@
/obj/machinery/rnd/production/proc/check_mat(datum/design/being_built, var/mat) // now returns how many times the item can be built with the material
if (!materials.mat_container) // no connected silo
- return 0
+ return FALSE
var/list/all_materials = being_built.reagents_list + being_built.materials
var/A = materials.mat_container.get_material_amount(mat)
@@ -344,10 +344,10 @@
var/datum/component/material_container/mat_container = materials.mat_container
if (!mat_container)
say("No access to material storage, please contact the quartermaster.")
- return 0
+ return FALSE
if (materials.on_hold())
say("Mineral access is on hold, please contact the quartermaster.")
- return 0
+ return FALSE
var/count = mat_container.retrieve_sheets(text2num(eject_amt), eject_sheet, drop_location())
var/list/matlist = list()
matlist[eject_sheet] = MINERAL_MATERIAL_AMOUNT
diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm
index b54d05eb9e..5d46329462 100644
--- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm
+++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm
@@ -554,7 +554,7 @@
if(sheets.len > 0)
var/obj/item/stack/sheet/S = pick(sheets)
- S.amount++
+ S.add(1) // Dare var edit directly again and i'll strangle you.
to_chat(owner, "[linked_extract] adds a layer of slime to [S], which metamorphosizes into another sheet of material! ")
return ..()
diff --git a/code/modules/research/xenobiology/crossbreeding/_weapons.dm b/code/modules/research/xenobiology/crossbreeding/_weapons.dm
index 00748d2609..63fb75abc5 100644
--- a/code/modules/research/xenobiology/crossbreeding/_weapons.dm
+++ b/code/modules/research/xenobiology/crossbreeding/_weapons.dm
@@ -24,7 +24,7 @@
/obj/item/gun/magic/bloodchill/process()
charge_tick++
if(charge_tick < recharge_rate || charges >= max_charges)
- return 0
+ return FALSE
charge_tick = 0
var/mob/living/M = loc
if(istype(M) && M.blood_volume >= 5)
@@ -32,7 +32,7 @@
M.blood_volume -= 5
if(charges == 1)
recharge_newshot()
- return 1
+ return TRUE
/obj/item/ammo_casing/magic/bloodchill
projectile_type = /obj/item/projectile/magic/bloodchill
diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm
index 72e4366bf3..f292dad5e5 100644
--- a/code/modules/research/xenobiology/xenobiology.dm
+++ b/code/modules/research/xenobiology/xenobiology.dm
@@ -47,7 +47,7 @@
//Effect when activated by a Luminescent. Separated into a minor and major effect. Returns cooldown in deciseconds.
/obj/item/slime_extract/proc/activate(mob/living/carbon/human/user, datum/species/jelly/luminescent/species, activation_type)
to_chat(user, "Nothing happened... This slime extract cannot be activated this way. ")
- return 0
+ return FALSE
//Core-crossing: Feeding adult slimes extracts to obtain a much more powerful, single extract.
/obj/item/slime_extract/attack(mob/living/simple_animal/slime/M, mob/user)
@@ -97,7 +97,7 @@
to_chat(user, "You spit out [S]. ")
return 350
else
- return 0
+ return FALSE
/obj/item/slime_extract/gold
name = "gold slime extract"
diff --git a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm
index c8bc4b0568..e78628dcd6 100644
--- a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm
+++ b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm
@@ -85,7 +85,7 @@
to_chat(user, "You fill in the oil well with soil.")
O.play_tool_sound(src)
deconstruct()
- return 1
+ return TRUE
if(istype(O, /obj/item/reagent_containers)) //Refilling bottles with oil
var/obj/item/reagent_containers/RG = O
if(RG.is_refillable())
@@ -97,7 +97,7 @@
return FALSE
if(user.a_intent != INTENT_HARM)
to_chat(user, "You won't have any luck getting \the [O] out if you drop it in the oil. ")
- return 1
+ return TRUE
else
return ..()
@@ -170,14 +170,14 @@
user.gain_trauma(/datum/brain_trauma/magic/stalker)
to_chat(user, "Oh no, no no no, THEY'RE EVERYWHERE! EVERY ONE OF THEM IS EVERYWHERE! ")
first_open = FALSE
- return 1
- return 1
+ return TRUE
+ return TRUE
else
to_chat(user, "You can't dig up a grave with \the [S.name]. ")
- return 1
+ return TRUE
else
to_chat(user, "The grave has already been dug up. ")
- return 1
+ return TRUE
else if((user.a_intent != INTENT_HELP) && opened) //checks to attempt to remove the grave entirely.
if(istype(S,cutting_tool) && S.tool_behaviour == TOOL_SHOVEL)
@@ -186,7 +186,7 @@
to_chat(user, "You remove \the [src] completely. ")
SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "graverobbing", /datum/mood_event/graverobbing)
deconstruct(TRUE)
- return 1
+ return TRUE
return
/obj/structure/closet/crate/grave/bust_open()
diff --git a/code/modules/ruins/lavalandruin_code/puzzle.dm b/code/modules/ruins/lavalandruin_code/puzzle.dm
index 14666e7bcc..2bae9fe9cb 100644
--- a/code/modules/ruins/lavalandruin_code/puzzle.dm
+++ b/code/modules/ruins/lavalandruin_code/puzzle.dm
@@ -127,12 +127,12 @@
if(A.y > B.y)
return -1
if(A.y < B.y)
- return 1
+ return TRUE
if(A.x > B.x)
- return 1
+ return TRUE
if(A.x < B.x)
return -1
- return 0
+ return FALSE
/obj/effect/sliding_puzzle/proc/elements_in_order()
return sortTim(elements,cmp=GLOBAL_PROC_REF(cmp_xy_desc))
@@ -207,7 +207,7 @@
/obj/structure/puzzle_element/Move(nloc, dir)
if(!isturf(nloc) || moving_diagonally || get_dist(get_step(src,dir),get_turf(source)) > 1)
- return 0
+ return FALSE
else
return ..()
diff --git a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm
index 2e2a9a0312..467182592e 100644
--- a/code/modules/ruins/objects_and_mobs/necropolis_gate.dm
+++ b/code/modules/ruins/objects_and_mobs/necropolis_gate.dm
@@ -57,7 +57,7 @@
return QDEL_HINT_LETMELIVE
/obj/structure/necropolis_gate/singularity_pull()
- return 0
+ return FALSE
/obj/structure/necropolis_gate/CanAllowThrough(atom/movable/mover, turf/target)
. = ..()
@@ -67,7 +67,7 @@
/obj/structure/necropolis_gate/CheckExit(atom/movable/O, target)
if(get_dir(O.loc, target) == dir)
return !density
- return 1
+ return TRUE
/obj/structure/opacity_blocker
icon = 'icons/effects/96x96.dmi'
@@ -81,7 +81,7 @@
anchored = TRUE
/obj/structure/opacity_blocker/singularity_pull()
- return 0
+ return FALSE
/obj/structure/opacity_blocker/Destroy(force)
if(force)
@@ -236,7 +236,7 @@ GLOBAL_DATUM(necropolis_gate, /obj/structure/necropolis_gate/legion_gate)
add_overlay(top_overlay)
/obj/structure/necropolis_arch/singularity_pull()
- return 0
+ return FALSE
/obj/structure/necropolis_arch/Destroy(force)
if(force)
diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm
index 1fc81e38b8..5cb4a083cb 100644
--- a/code/modules/shuttle/shuttle.dm
+++ b/code/modules/shuttle/shuttle.dm
@@ -76,7 +76,7 @@
/obj/docking_port/singularity_pull()
return
/obj/docking_port/singularity_act()
- return 0
+ return FALSE
/obj/docking_port/shuttleRotate()
return //we don't rotate with shuttles via this code.
@@ -954,7 +954,7 @@
/obj/docking_port/mobile/proc/get_engine_coeff(current,engine_mod)
var/new_value = max(0,current + engine_mod)
if(new_value == initial_engines)
- return 1
+ return TRUE
if(new_value > initial_engines)
var/delta = new_value - initial_engines
var/change_per_engine = (1 - ENGINE_COEFF_MIN) / ENGINE_DEFAULT_MAXSPEED_ENGINES // 5 by default
diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm
index 4be592b919..28cb9ac36c 100644
--- a/code/modules/spells/spell.dm
+++ b/code/modules/spells/spell.dm
@@ -165,7 +165,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
if("holdervar")
adjust_var(user, holder_var_type, holder_var_amount)
if(action)
- action.UpdateButtonIcon()
+ action.UpdateButtons()
return TRUE
/obj/effect/proc_holder/spell/proc/charge_check(mob/user, silent = FALSE)
@@ -220,7 +220,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
/obj/effect/proc_holder/spell/Trigger(mob/user, skip_can_cast = TRUE)
if(cast_check(FALSE, user, skip_can_cast))
choose_targets()
- return 1
+ return TRUE
/obj/effect/proc_holder/spell/proc/choose_targets(mob/user = usr) //depends on subtype - /targeted or /aoe_turf
return
@@ -243,7 +243,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
if(recharging && charge_type == "recharge" && (charge_counter < charge_max))
charge_counter += 2 //processes 5 times per second instead of 10.
if(charge_counter >= charge_max)
- action.UpdateButtonIcon()
+ action.UpdateButtons()
charge_counter = charge_max
recharging = FALSE
@@ -259,7 +259,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
cast(targets,user=user)
after_cast(targets)
if(action)
- action.UpdateButtonIcon()
+ action.UpdateButtons()
/obj/effect/proc_holder/spell/proc/before_cast(list/targets)
if(overlay)
@@ -321,7 +321,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
if("holdervar")
adjust_var(user, holder_var_type, -holder_var_amount)
if(action)
- action.UpdateButtonIcon()
+ action.UpdateButtons()
/obj/effect/proc_holder/spell/proc/adjust_var(mob/living/target = usr, type, amount) //handles the adjustment of the var when the spell is used. has some hardcoded types
if (!istype(target))
@@ -438,8 +438,8 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
perform(targets,user=user)
-/obj/effect/proc_holder/spell/proc/updateButtonIcon(status_only, force)
- action.UpdateButtonIcon(status_only, force)
+/obj/effect/proc_holder/spell/proc/UpdateButton(atom/movable/screen/movable/action_button/button, status_only, force)
+ action.UpdateButtons(status_only, force)
/obj/effect/proc_holder/spell/targeted/proc/los_check(mob/A,mob/B)
//Checks for obstacles from A to B
@@ -449,9 +449,9 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th
for(var/atom/movable/AM in turf)
if(!AM.CanPass(dummy,turf,1))
qdel(dummy)
- return 0
+ return FALSE
qdel(dummy)
- return 1
+ return TRUE
/obj/effect/proc_holder/spell/proc/can_cast(mob/user = usr, skipcharge = FALSE, silent = FALSE)
var/magic_flags = SEND_SIGNAL(user, COMSIG_MOB_SPELL_CAN_CAST, src)
diff --git a/code/modules/spells/spell_types/aimed.dm b/code/modules/spells/spell_types/aimed.dm
index aa2a2e4083..62f65688d9 100644
--- a/code/modules/spells/spell_types/aimed.dm
+++ b/code/modules/spells/spell_types/aimed.dm
@@ -43,7 +43,7 @@
if(!action)
return
action.button_icon_state = "[base_icon_state][active]"
- action.UpdateButtonIcon()
+ action.UpdateButtons()
/obj/effect/proc_holder/spell/aimed/InterceptClickOn(mob/living/caller, params, atom/target)
if(..())
diff --git a/code/modules/spells/spell_types/lightning.dm b/code/modules/spells/spell_types/lightning.dm
index f5aaca2a87..b62cd4ab04 100644
--- a/code/modules/spells/spell_types/lightning.dm
+++ b/code/modules/spells/spell_types/lightning.dm
@@ -18,7 +18,7 @@
/obj/effect/proc_holder/spell/targeted/tesla/Trigger(mob/user, skip_can_cast = TRUE)
if(!ready && cast_check(FALSE, user, skip_can_cast))
StartChargeup(user)
- return 1
+ return TRUE
/obj/effect/proc_holder/spell/targeted/tesla/proc/StartChargeup(mob/user = usr)
ready = 1
diff --git a/code/modules/spells/spell_types/pointed/pointed.dm b/code/modules/spells/spell_types/pointed/pointed.dm
index 7b942dee27..1c32f04710 100644
--- a/code/modules/spells/spell_types/pointed/pointed.dm
+++ b/code/modules/spells/spell_types/pointed/pointed.dm
@@ -63,7 +63,7 @@
action.button_icon_state = "[action_icon_state]1"
else
action.button_icon_state = "[action_icon_state]"
- action.UpdateButtonIcon()
+ action.UpdateButtons()
/obj/effect/proc_holder/spell/pointed/InterceptClickOn(mob/living/caller, params, atom/target)
if(..())
diff --git a/code/modules/spells/spell_types/taeclowndo.dm b/code/modules/spells/spell_types/taeclowndo.dm
index 9d6d71a89f..3566a36a25 100644
--- a/code/modules/spells/spell_types/taeclowndo.dm
+++ b/code/modules/spells/spell_types/taeclowndo.dm
@@ -54,7 +54,7 @@
else
action.button_icon_state = action_icon_state
- action.UpdateButtonIcon()
+ action.UpdateButtons()
return
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/code/modules/spells/spell_types/touch_attacks.dm b/code/modules/spells/spell_types/touch_attacks.dm
index a23e16cf88..4f0ac2964f 100644
--- a/code/modules/spells/spell_types/touch_attacks.dm
+++ b/code/modules/spells/spell_types/touch_attacks.dm
@@ -18,7 +18,7 @@
//Start recharging.
attached_hand = null
recharging = TRUE
- action.UpdateButtonIcon()
+ action.UpdateButtons()
/obj/effect/proc_holder/spell/targeted/touch/cast(list/targets,mob/user = usr)
if(!QDELETED(attached_hand))
diff --git a/code/modules/surgery/amputation.dm b/code/modules/surgery/amputation.dm
index 2c3524a598..a7c0bb104e 100644
--- a/code/modules/surgery/amputation.dm
+++ b/code/modules/surgery/amputation.dm
@@ -25,4 +25,4 @@
if(surgery.operated_bodypart)
var/obj/item/bodypart/target_limb = surgery.operated_bodypart
target_limb.drop_limb()
- return 1
+ return TRUE
diff --git a/code/modules/surgery/bodyparts/helpers.dm b/code/modules/surgery/bodyparts/helpers.dm
index 9be468079b..ed802781b3 100644
--- a/code/modules/surgery/bodyparts/helpers.dm
+++ b/code/modules/surgery/bodyparts/helpers.dm
@@ -94,10 +94,10 @@
//sometimes we want to ignore that we don't have the required amount of arms.
/mob/proc/get_arm_ignore()
- return 0
+ return FALSE
/mob/living/carbon/alien/larva/get_arm_ignore()
- return 1 //so we can still handcuff larvas.
+ return TRUE //so we can still handcuff larvas.
/mob/proc/get_num_legs(check_disabled = TRUE)
diff --git a/code/modules/surgery/cavity_implant.dm b/code/modules/surgery/cavity_implant.dm
index 7cc545027c..1b23568a6d 100644
--- a/code/modules/surgery/cavity_implant.dm
+++ b/code/modules/surgery/cavity_implant.dm
@@ -38,14 +38,14 @@
if(tool)
if(IC || tool.w_class > WEIGHT_CLASS_NORMAL || HAS_TRAIT(tool, TRAIT_NODROP) || istype(tool, /obj/item/organ))
to_chat(user, "You can't seem to fit [tool] in [target]'s [target_zone]! ")
- return 0
+ return FALSE
else
display_results(user, target, "You stuff [tool] into [target]'s [target_zone]. ",
"[user] stuffs [tool] into [target]'s [target_zone]!",
"[user] stuffs [tool.w_class > WEIGHT_CLASS_SMALL ? tool : "something"] into [target]'s [target_zone].")
user.transferItemToLoc(tool, target, TRUE)
CH.cavity_item = tool
- return 1
+ return TRUE
else
if(IC)
display_results(user, target, "You pull [IC] out of [target]'s [target_zone]. ",
@@ -53,7 +53,7 @@
"[user] pulls [IC.w_class > WEIGHT_CLASS_SMALL ? IC : "something"] out of [target]'s [target_zone].")
user.put_in_hands(IC)
CH.cavity_item = null
- return 1
+ return TRUE
else
to_chat(user, "You don't find anything in [target]'s [target_zone]. ")
- return 0
+ return FALSE
diff --git a/code/modules/surgery/core_removal.dm b/code/modules/surgery/core_removal.dm
index 683663c241..131e56e6b6 100644
--- a/code/modules/surgery/core_removal.dm
+++ b/code/modules/surgery/core_removal.dm
@@ -8,8 +8,8 @@
/datum/surgery/core_removal/can_start(mob/user, mob/living/target, obj/item/tool)
if(target.stat == DEAD)
- return 1
- return 0
+ return TRUE
+ return FALSE
//extract brain
/datum/surgery_step/extract_core
name = "extract core"
@@ -33,9 +33,9 @@
if(slime.cores <= 0)
slime.icon_state = "[slime.colour] baby slime dead-nocore"
- return 1
+ return TRUE
else
- return 0
+ return FALSE
else
to_chat(user, "There aren't any cores left in [target]! ")
- return 1
+ return TRUE
diff --git a/code/modules/surgery/dental_implant.dm b/code/modules/surgery/dental_implant.dm
index f41f299439..e8d0564c62 100644
--- a/code/modules/surgery/dental_implant.dm
+++ b/code/modules/surgery/dental_implant.dm
@@ -14,28 +14,29 @@
/datum/surgery_step/insert_pill/success(mob/user, mob/living/carbon/target, target_zone, var/obj/item/reagent_containers/pill/tool, datum/surgery/surgery)
if(!istype(tool))
- return 0
+ return FALSE
user.transferItemToLoc(tool, target, TRUE)
- var/datum/action/item_action/hands_free/activate_pill/P = new(tool)
- P.button.name = "Activate [tool.name]"
- P.target = tool
- P.Grant(target) //The pill never actually goes in an inventory slot, so the owner doesn't inherit actions from it
+ var/datum/action/item_action/hands_free/activate_pill/pill_action = new(tool)
+ pill_action.name = "Activate [tool.name]"
+ pill_action.UpdateButtons()
+ pill_action.target = tool
+ pill_action.Grant(target) //The pill never actually goes in an inventory slot, so the owner doesn't inherit actions from it
user.visible_message("[user] wedges \the [tool] into [target]'s [parse_zone(target_zone)]!", "You wedge [tool] into [target]'s [parse_zone(target_zone)]. ")
- return 1
+ return TRUE
/datum/action/item_action/hands_free/activate_pill
name = "Activate Pill"
/datum/action/item_action/hands_free/activate_pill/Trigger()
if(!..())
- return 0
+ return FALSE
to_chat(owner, "You grit your teeth and burst the implanted [target.name]! ")
log_combat(owner, null, "swallowed an implanted pill", target)
if(target.reagents.total_volume)
target.reagents.reaction(owner, INGEST)
target.reagents.trans_to(owner, target.reagents.total_volume, log = "dental pill swallow")
qdel(target)
- return 1
+ return TRUE
diff --git a/code/modules/surgery/helpers.dm b/code/modules/surgery/helpers.dm
index 652c49519a..7cd315656f 100644
--- a/code/modules/surgery/helpers.dm
+++ b/code/modules/surgery/helpers.dm
@@ -97,7 +97,7 @@
else if(!current_surgery.step_in_progress)
attempt_cancel_surgery(current_surgery, I, M, user)
- return 1
+ return TRUE
/proc/attempt_cancel_surgery(datum/surgery/S, obj/item/I, mob/living/M, mob/user)
var/selected_zone = user.zone_selected
@@ -128,7 +128,7 @@
/proc/get_location_modifier(mob/M)
var/turf/T = get_turf(M)
if(locate(/obj/structure/table/optable, T))
- return 1
+ return TRUE
else if(locate(/obj/structure/table, T))
return 0.8
else if(locate(/obj/structure/bed, T))
@@ -157,42 +157,42 @@
switch(location)
if(BODY_ZONE_HEAD)
if(covered_locations & HEAD)
- return 0
+ return FALSE
if(BODY_ZONE_PRECISE_EYES)
if(covered_locations & HEAD || face_covered & HIDEEYES || eyesmouth_covered & GLASSESCOVERSEYES)
- return 0
+ return FALSE
if(BODY_ZONE_PRECISE_MOUTH)
if(covered_locations & HEAD || face_covered & HIDEFACE || eyesmouth_covered & MASKCOVERSMOUTH || eyesmouth_covered & HEADCOVERSMOUTH)
- return 0
+ return FALSE
if(BODY_ZONE_CHEST)
if(covered_locations & CHEST)
- return 0
+ return FALSE
if(BODY_ZONE_PRECISE_GROIN)
if(covered_locations & GROIN)
- return 0
+ return FALSE
if(BODY_ZONE_L_ARM)
if(covered_locations & ARM_LEFT)
- return 0
+ return FALSE
if(BODY_ZONE_R_ARM)
if(covered_locations & ARM_RIGHT)
- return 0
+ return FALSE
if(BODY_ZONE_L_LEG)
if(covered_locations & LEG_LEFT)
- return 0
+ return FALSE
if(BODY_ZONE_R_LEG)
if(covered_locations & LEG_RIGHT)
- return 0
+ return FALSE
if(BODY_ZONE_PRECISE_L_HAND)
if(covered_locations & HAND_LEFT)
- return 0
+ return FALSE
if(BODY_ZONE_PRECISE_R_HAND)
if(covered_locations & HAND_RIGHT)
- return 0
+ return FALSE
if(BODY_ZONE_PRECISE_L_FOOT)
if(covered_locations & FOOT_LEFT)
- return 0
+ return FALSE
if(BODY_ZONE_PRECISE_R_FOOT)
if(covered_locations & FOOT_RIGHT)
- return 0
+ return FALSE
- return 1
+ return TRUE
diff --git a/code/modules/surgery/implant_removal.dm b/code/modules/surgery/implant_removal.dm
index 5162fafbc0..6cfabdeb96 100644
--- a/code/modules/surgery/implant_removal.dm
+++ b/code/modules/surgery/implant_removal.dm
@@ -50,7 +50,7 @@
else
to_chat(user, "You can't find anything in [target]'s [target_zone]! ")
- return 1
+ return TRUE
/datum/surgery/implant_removal/mechanic
name = "implant removal"
diff --git a/code/modules/surgery/lipoplasty.dm b/code/modules/surgery/lipoplasty.dm
index ecdc5477f1..4689b2e40c 100644
--- a/code/modules/surgery/lipoplasty.dm
+++ b/code/modules/surgery/lipoplasty.dm
@@ -6,8 +6,8 @@
/datum/surgery/lipoplasty/can_start(mob/user, mob/living/carbon/target, obj/item/tool)
if(HAS_TRAIT(target, TRAIT_FAT))
- return 1
- return 0
+ return TRUE
+ return FALSE
//cut fat
/datum/surgery_step/cut_fat
@@ -24,7 +24,7 @@
display_results(user, target, "You cut [target]'s excess fat loose. ",
"[user] cuts [target]'s excess fat loose!",
"[user] finishes the cut on [target]'s [target_zone].")
- return 1
+ return TRUE
//remove fat
/datum/surgery_step/remove_fat
@@ -56,4 +56,4 @@
newmeat.subjectjob = H.job
newmeat.reagents.add_reagent (/datum/reagent/consumable/nutriment, (removednutriment / 15)) //To balance with nutriment_factor of nutriment
newmeat.forceMove(target.loc)
- return 1
+ return TRUE
diff --git a/code/modules/surgery/organ_manipulation.dm b/code/modules/surgery/organ_manipulation.dm
index fb18d6d155..2ff6f9e1f9 100644
--- a/code/modules/surgery/organ_manipulation.dm
+++ b/code/modules/surgery/organ_manipulation.dm
@@ -157,4 +157,4 @@
display_results(user, target, "You can't extract anything from [target]'s [parse_zone(target_zone)]! ",
"[user] can't seem to extract anything from [target]'s [parse_zone(target_zone)]!",
"[user] can't seem to extract anything from [target]'s [parse_zone(target_zone)]!")
- return 1
+ return TRUE
diff --git a/code/modules/surgery/organic_steps.dm b/code/modules/surgery/organic_steps.dm
index 9e93042f63..0e4f103210 100644
--- a/code/modules/surgery/organic_steps.dm
+++ b/code/modules/surgery/organic_steps.dm
@@ -120,7 +120,7 @@
display_results(user, target, "You saw [target]'s [parse_zone(target_zone)] open. ",
"[user] saws [target]'s [parse_zone(target_zone)] open!",
"[user] saws [target]'s [parse_zone(target_zone)] open!")
- return 1
+ return TRUE
//drill bone
/datum/surgery_step/drill
@@ -137,4 +137,4 @@
display_results(user, target, "You drill into [target]'s [parse_zone(target_zone)]. ",
"[user] drills into [target]'s [parse_zone(target_zone)]!",
"[user] drills into [target]'s [parse_zone(target_zone)]!")
- return 1
+ return TRUE
diff --git a/code/modules/surgery/organs/augments_chest.dm b/code/modules/surgery/organs/augments_chest.dm
index 3e143ab923..c96f1d20d2 100644
--- a/code/modules/surgery/organs/augments_chest.dm
+++ b/code/modules/surgery/organs/augments_chest.dm
@@ -166,7 +166,7 @@
if(crit_fail || (organ_flags & ORGAN_FAILING))
if(!silent)
to_chat(owner, "Your thrusters set seems to be broken! ")
- return 0
+ return FALSE
on = TRUE
if(allow_thrust(0.01))
ion_trail.start()
@@ -195,28 +195,28 @@
/obj/item/organ/cyberimp/chest/thrusters/proc/allow_thrust(num)
if(!on || !owner)
- return 0
+ return FALSE
var/turf/T = get_turf(owner)
if(!T) // No more runtimes from being stuck in nullspace.
- return 0
+ return FALSE
// Priority 1: use air from environment.
var/datum/gas_mixture/environment = T.return_air()
if(environment && environment.return_pressure() > 30)
- return 1
+ return TRUE
// Priority 2: use plasma from internal plasma storage.
// (just in case someone would ever use this implant system to make cyber-alien ops with jetpacks and taser arms)
if(owner.getPlasma() >= num*100)
owner.adjustPlasma(-num*100)
- return 1
+ return TRUE
// Priority 3: use internals tank.
var/obj/item/tank/I = owner.internal
if(I && I.air_contents && I.air_contents.total_moles() >= num)
T.assume_air_moles(I.air_contents, num)
- return 1
+ return TRUE
toggle(silent = TRUE)
- return 0
+ return FALSE
diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm
index 75fdbb20e8..d7ae2b73e4 100644
--- a/code/modules/surgery/organs/heart.dm
+++ b/code/modules/surgery/organs/heart.dm
@@ -49,12 +49,12 @@
/obj/item/organ/heart/proc/Stop()
beating = 0
update_icon()
- return 1
+ return TRUE
/obj/item/organ/heart/proc/Restart()
beating = 1
update_icon()
- return 1
+ return TRUE
/obj/item/organ/heart/proc/HeartStrengthMessage()
if(beating)
diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm
index d4a2663374..a41b2046a0 100644
--- a/code/modules/surgery/organs/organ_internal.dm
+++ b/code/modules/surgery/organs/organ_internal.dm
@@ -245,7 +245,7 @@
//Try code/modules/mob/living/carbon/brain/brain_item.dm
/mob/living/proc/regenerate_organs()
- return 0
+ return FALSE
/mob/living/carbon/regenerate_organs(only_one = FALSE)
var/breathes = TRUE
diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm
index e20a0d1447..7cb8ce9538 100644
--- a/code/modules/surgery/organs/vocal_cords.dm
+++ b/code/modules/surgery/organs/vocal_cords.dm
@@ -134,7 +134,7 @@
var/cooldown = 0
if(!user || !user.can_speak() || user.stat)
- return 0 //no cooldown
+ return FALSE //no cooldown
var/log_message = uppertext(message)
if(iscultist(user))
@@ -597,7 +597,7 @@
var/special_check = get_vog_special(user)
if(!special_check)
- return 0
+ return FALSE
. = min(base_multiplier * special_check, VOG_MAX_STANDARD_POWER) // anything above should require conscious admin fuckery, as things are balanced around 3 multiplier tops (see: damage being 15*3)
if(!specific_listeners.len)
@@ -617,7 +617,7 @@
return 0.5
if(user.mind.assigned_role in GLOB.command_positions)
return 1.4 // heads are great at speaking with authority
- return 1
+ return TRUE
//////////////////////////////////////
///////ENTHRAL VELVET CHORDS//////////
@@ -665,7 +665,7 @@
/proc/velvetspeech(message, mob/living/user, base_multiplier = 1, message_admins = FALSE, debug = FALSE)
if(!user || !user.can_speak() || user.stat)
- return 0 //no cooldown
+ return FALSE //no cooldown
var/log_message = message
@@ -688,7 +688,7 @@
listeners += L
if(!listeners.len)
- return 0
+ return FALSE
//POWER CALCULATIONS
diff --git a/code/modules/surgery/prosthetic_replacement.dm b/code/modules/surgery/prosthetic_replacement.dm
index b0102da7b7..a40fac6640 100644
--- a/code/modules/surgery/prosthetic_replacement.dm
+++ b/code/modules/surgery/prosthetic_replacement.dm
@@ -7,10 +7,10 @@
requires_bodypart_type = 0
/datum/surgery/prosthetic_replacement/can_start(mob/user, mob/living/carbon/target, obj/item/tool)
if(!iscarbon(target))
- return 0
+ return FALSE
var/mob/living/carbon/C = target
if(!C.get_bodypart(user.zone_selected)) //can only start if limb is missing
- return 1
+ return TRUE
/datum/surgery_step/add_prosthetic
name = "add prosthetic"
implements = list(/obj/item/bodypart = 100, /obj/item/organ_storage = 100, /obj/item/chainsaw = 100, /obj/item/melee/synthetic_arm_blade = 100)
@@ -70,7 +70,7 @@
display_results(user, target, "You succeed in replacing [target]'s [parse_zone(target_zone)]. ",
"[user] successfully replaces [target]'s [parse_zone(target_zone)] with [tool]!",
"[user] successfully replaces [target]'s [parse_zone(target_zone)]!")
- return 1
+ return TRUE
else
var/obj/item/bodypart/L = target.newBodyPart(target_zone, FALSE, FALSE)
L.is_pseudopart = TRUE
@@ -82,8 +82,8 @@
if(istype(tool, /obj/item/chainsaw))
var/obj/item/mounted_chainsaw/new_arm = new(target)
target_zone == BODY_ZONE_R_ARM ? target.put_in_r_hand(new_arm) : target.put_in_l_hand(new_arm)
- return 1
+ return TRUE
else if(istype(tool, /obj/item/melee/synthetic_arm_blade))
var/obj/item/melee/arm_blade/new_arm = new(target,TRUE,TRUE)
target_zone == BODY_ZONE_R_ARM ? target.put_in_r_hand(new_arm) : target.put_in_l_hand(new_arm)
- return 1
+ return TRUE
diff --git a/code/modules/surgery/remove_embedded_object.dm b/code/modules/surgery/remove_embedded_object.dm
index dfdb1f7eca..e2304d514b 100644
--- a/code/modules/surgery/remove_embedded_object.dm
+++ b/code/modules/surgery/remove_embedded_object.dm
@@ -40,4 +40,4 @@
else
to_chat(user, "You can't find [target]'s [parse_zone(user.zone_selected)], let alone any objects embedded in it! ")
- return 1
+ return TRUE
diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm
index 9e39ec58e8..0b71c5fbad 100644
--- a/code/modules/surgery/surgery.dm
+++ b/code/modules/surgery/surgery.dm
@@ -94,7 +94,7 @@
/datum/surgery/proc/next_step(mob/user, intent)
if(step_in_progress)
- return 1
+ return TRUE
var/try_to_fail = FALSE
if(intent == INTENT_DISARM)
diff --git a/code/modules/tooltip/tooltip.dm b/code/modules/tooltip/tooltip.dm
index af5242b57d..290f610f41 100644
--- a/code/modules/tooltip/tooltip.dm
+++ b/code/modules/tooltip/tooltip.dm
@@ -87,13 +87,13 @@ Notes:
/datum/tooltip/proc/hide()
+ queueHide = showing ? TRUE : FALSE
+
if (queueHide)
addtimer(CALLBACK(src, PROC_REF(do_hide)), 1)
else
do_hide()
- queueHide = showing ? TRUE : FALSE
-
return TRUE
/datum/tooltip/proc/do_hide()
diff --git a/code/modules/tooltip/tooltip.html b/code/modules/tooltip/tooltip.html
index 2743bc03d5..2f60a2b0b1 100644
--- a/code/modules/tooltip/tooltip.html
+++ b/code/modules/tooltip/tooltip.html
@@ -80,12 +80,21 @@
.slimecore .wrap {border-color: #18640E;}
.slimecore .content {color: #6EA161; border-color: #11450B; background-color: #354E35;}
- .operative .wrap {border-color: #1E0101;}
- .operative .content {color: #FFFFFF; border-color: #750000; background-color: #350000;}
+ .operative .wrap {border-color: #13121b;}
+ .operative .content {color: #b01232; border-color: #13121b; background-color: #282831;}
.clockwork .wrap {border-color: #170800;}
.clockwork .content {color: #B18B25; border-color: #000000; background-color: #5F380E;}
+ .glass .wrap {border-color: #273844;}
+ .glass .content {color: #5b7588; border-color: #273844; background-color: #1f252b;}
+
+ .trasen-knox .wrap {border-color: #998e81;}
+ .trasen-knox .content {color: #3ce375; border-color: #998e81; background-color: #1e1d21;}
+
+ .detective .wrap {border-color: #2c0F0c;}
+ .detective .content {color: #c7b08b; border-color: #2c0F0c; background-color: #221c1a;}
+
@@ -136,21 +145,29 @@
//alert(realIconSize + ' | ' +tooltip.tileSize + ' | ' + resizeRatio); //DEBUG
- //Parse out the tile and cursor locations from params (e.g. "icon-x=32;icon-y=29;screen-loc=3:10,15:29")
+ const parameters = new Object();
+
+ //Parse out the contents of params (e.g. "icon-x=32;icon-y=29;screen-loc=3:10,15:29")
+ //It is worth noting that params is not always ordered in the same way. We therefore need to write the code
+ //To load their values in independantly of their order
var paramsA = tooltip.params.cursor.split(';');
- if (paramsA.length < 3) {return false;} //Sometimes screen-loc is never sent ahaha fuck you byond
+ for (var i = 0; i < paramsA.length; i++) {
+ var entry = paramsA[i];
+ var nameAndValue = entry.split("=");
+ parameters[nameAndValue[0]] = nameAndValue[1];
+ }
+
+ //Sometimes screen-loc is never sent ahaha fuck you byond
+ if (!parameters["icon-x"] || !parameters["icon-y"] || !parameters["screen-loc"]) {
+ return false;
+ }
//icon-x
- var iconX = paramsA[0];
- iconX = iconX.split('=');
- iconX = parseInt(iconX[1]);
+ var iconX = parseInt(parameters["icon-x"]);
//icon-y
- var iconY = paramsA[1];
- iconY = iconY.split('=');
- iconY = parseInt(iconY[1]);
+ var iconY = parseInt(parameters["icon-y"]);
//screen-loc
- var screenLoc = paramsA[2];
- screenLoc = screenLoc.split('=');
- screenLoc = screenLoc[1].split(',');
+ var screenLoc = parameters["screen-loc"];
+ screenLoc = screenLoc.split(',');
if (screenLoc.length < 2) {return false;}
var left = screenLoc[0];
var top = screenLoc[1];
diff --git a/code/modules/unit_tests/merge_type.dm b/code/modules/unit_tests/merge_type.dm
index 1aed82e6a3..373ffa2b66 100644
--- a/code/modules/unit_tests/merge_type.dm
+++ b/code/modules/unit_tests/merge_type.dm
@@ -9,7 +9,9 @@
var/list/paths = subtypesof(/obj/item/stack) - blacklist
- for(var/stackpath in paths)
+ for(var/obj/item/stack/stackpath as anything in paths)
+ if(initial(stackpath.is_cyborg))
+ continue
var/obj/item/stack/stack = new stackpath
if(!stack.merge_type)
Fail("([stack]) lacks set merge_type variable!")
diff --git a/code/modules/unit_tests/vore_tests.dm b/code/modules/unit_tests/vore_tests.dm
index 6549aa9ce7..3a8df28479 100644
--- a/code/modules/unit_tests/vore_tests.dm
+++ b/code/modules/unit_tests/vore_tests.dm
@@ -35,11 +35,11 @@
H = new(T)
startOxyloss = H.getOxyLoss()
- return 1
+ return TRUE
/datum/unit_test/space_suffocation/check_result()
if(H.life_tick < 10)
- return 0
+ return FALSE
endOxyloss = H.getOxyLoss()
@@ -47,7 +47,7 @@
Fail("Human mob is not taking oxygen damage in space. (Before: [startOxyloss]; after: [endOxyloss])")
qdel(H)
- return 1
+ return TRUE
/datum/unit_test/belly_nonsuffocation
name = "MOB: human mob does not suffocate in a belly"
diff --git a/code/modules/uplink/uplink_items/uplink_devices.dm b/code/modules/uplink/uplink_items/uplink_devices.dm
index 3a6aed2009..a924b56563 100644
--- a/code/modules/uplink/uplink_items/uplink_devices.dm
+++ b/code/modules/uplink/uplink_items/uplink_devices.dm
@@ -145,13 +145,13 @@
name = "Hacked AI Law Upload Module"
desc = "When used with an upload console, this module allows you to upload priority laws to an artificial intelligence. \
Be careful with wording, as artificial intelligences may look for loopholes to exploit."
- item = /obj/item/aiModule/syndicate
+ item = /obj/item/ai_module/syndicate
cost = 9
/datum/uplink_item/device_tools/damaged_module
name = "Damaged AI Law Upload Module"
desc = "This AI law upload module has been laying around our warehouse for god knows how long. We do not know why you would ever use this."
- item = /obj/item/aiModule/core/full/damaged
+ item = /obj/item/ai_module/core/full/damaged
cost = 5
/datum/uplink_item/device_tools/headsetupgrade
diff --git a/code/modules/vehicles/mecha/_mecha.dm b/code/modules/vehicles/mecha/_mecha.dm
index e2f09f3465..91295b86e8 100644
--- a/code/modules/vehicles/mecha/_mecha.dm
+++ b/code/modules/vehicles/mecha/_mecha.dm
@@ -198,7 +198,8 @@
/obj/vehicle/sealed/mecha/Destroy()
for(var/ejectee in occupants)
- mob_exit(ejectee, TRUE, TRUE)
+ mob_exit(ejectee, silent = TRUE)
+
if(LAZYLEN(equipment))
for(var/obj/item/mecha_parts/mecha_equipment/equip as anything in equipment)
equip.detach(loc)
@@ -215,6 +216,8 @@
QDEL_NULL(cabin_air)
QDEL_NULL(spark_system)
QDEL_NULL(smoke_system)
+ QDEL_NULL(trackers)
+ QDEL_NULL(wires)
GLOB.poi_list -= src
GLOB.mechas_list -= src //global mech list
@@ -223,14 +226,39 @@
return ..()
/obj/vehicle/sealed/mecha/obj_destruction()
+ spark_system?.start()
loc.assume_air(cabin_air)
air_update_turf(FALSE, FALSE)
+
+ var/mob/living/silicon/ai/unlucky_ai
for(var/mob/living/occupant as anything in occupants)
if(isAI(occupant))
- occupant.gib() //No wreck, no AI to recover
+ var/mob/living/silicon/ai/ai = occupant
+ if(!ai.linked_core) // we probably shouldnt gib AIs with a core
+ unlucky_ai = occupant
+ ai.investigate_log("has been gibbed by having their mech destroyed.", INVESTIGATE_DEATHS)
+ ai.gib() //No wreck, no AI to recover
+ else
+ mob_exit(ai,silent = TRUE, forced = TRUE) // so we dont ghost the AI
continue
- mob_exit(occupant, FALSE, TRUE)
- occupant.SetSleeping(destruction_sleep_duration)
+ mob_exit(occupant, forced = TRUE)
+ if(!isbrain(occupant)) // who would win.. 1 brain vs 1 sleep proc..
+ occupant.SetSleeping(destruction_sleep_duration)
+
+ if(wreckage)
+ var/obj/structure/mecha_wreckage/WR = new wreckage(loc, unlucky_ai)
+ for(var/obj/item/mecha_parts/mecha_equipment/E in equipment)
+ if(E.detachable && prob(30))
+ WR.crowbar_salvage += E
+ E.detach(WR) //detaches from src into WR
+ else
+ E.detach(loc)
+ qdel(E)
+ if(cell)
+ WR.crowbar_salvage += cell
+ cell.forceMove(WR)
+ cell.use(rand(0, cell.charge), TRUE)
+ cell = null
return ..()
/obj/vehicle/sealed/mecha/update_icon()
@@ -480,7 +508,7 @@
var/mob/living/occupant = b
if(!enclosed && occupant?.incapacitated()) //no sides mean it's easy to just sorta fall out if you're incapacitated.
visible_message("[occupant] tumbles out of the cockpit! ")
- mob_try_exit(occupant, TRUE, TRUE) //bye bye
+ mob_exit(occupant, randomstep = TRUE) //bye bye
//Diagnostic HUD updates
diag_hud_set_mechhealth()
@@ -796,19 +824,31 @@
to_chat(user, "Take control of exosuit? ")
/obj/vehicle/sealed/mecha/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/aicard/card)
- if(!..())
+ . = ..()
+ if(!.)
return
//Transfer from core or card to mech. Proc is called by mech.
switch(interaction)
if(AI_TRANS_TO_CARD) //Upload AI from mech to AI card.
if(!construction_state) //Mech must be in maint mode to allow carding.
- to_chat(user, "[name] must have maintenance protocols active in order to allow a transfer. ")
+ to_chat(user, span_warning("[name] must have maintenance protocols active in order to allow a transfer."))
return
- if(!locate(AI) in occupants) //Mech does not have an AI for a pilot
- to_chat(user, "No AI detected in the [name] onboard computer. ")
+ var/list/ai_pilots = list()
+ for(var/mob/living/silicon/ai/aipilot in occupants)
+ ai_pilots += aipilot
+ if(!length(ai_pilots)) //Mech does not have an AI for a pilot
+ to_chat(user, span_warning("No AI detected in the [name] onboard computer."))
return
- for(var/mob/living/silicon/ai in occupants)
+ if(length(ai_pilots) > 1) //Input box for multiple AIs, but if there's only one we'll default to them.
+ AI = tgui_input_list(user, "Which AI do you wish to card?", "AI Selection", sort_list(ai_pilots))
+ else
+ AI = ai_pilots[1]
+ if(isnull(AI))
+ return
+ if(!(AI in occupants) || !user.Adjacent(src))
+ return //User sat on the selection window and things changed.
+
AI.ai_restore_power()//So the AI initially has power.
AI.control_disabled = TRUE
AI.radio_enabled = FALSE
@@ -819,36 +859,37 @@
card.AI = AI
AI.controlled_equipment = null
AI.remote_control = null
- to_chat(AI, "You have been downloaded to a mobile storage device. Wireless connection offline. ")
- to_chat(user, "Transfer successful : [AI.name] ([rand(1000,9999)].exe) removed from [name] and stored within local memory.")
+ to_chat(AI, span_notice("You have been downloaded to a mobile storage device. Wireless connection offline."))
+ to_chat(user, "[span_boldnotice("Transfer successful")]: [AI.name] ([rand(1000,9999)].exe) removed from [name] and stored within local memory.")
+ return
if(AI_MECH_HACK) //Called by AIs on the mech
- AI.linked_core = new /obj/structure/AIcore/deactivated(AI.loc)
- if(AI.can_dominate_mechs)
- if(LAZYLEN(occupants)) //Oh, I am sorry, were you using that?
- to_chat(AI, "Occupants detected! Forced ejection initiated! ")
- to_chat(occupants, "You have been forcibly ejected! ")
- ejectall() //IT IS MINE, NOW. SUCK IT, RD!
- ai_enter_mech(AI, interaction)
+ AI.linked_core = new /obj/structure/ai_core/deactivated(AI.loc)
+ if(AI.can_dominate_mechs && LAZYLEN(occupants)) //Oh, I am sorry, were you using that?
+ to_chat(AI, span_warning("Occupants detected! Forced ejection initiated!"))
+ to_chat(occupants, span_danger("You have been forcibly ejected!"))
+ for(var/ejectee in occupants)
+ mob_exit(ejectee, silent = TRUE, randomstep = TRUE, forced = TRUE) //IT IS MINE, NOW. SUCK IT, RD!
+ AI.can_shunt = FALSE //ONE AI ENTERS. NO AI LEAVES.
if(AI_TRANS_FROM_CARD) //Using an AI card to upload to a mech.
AI = card.AI
if(!AI)
- to_chat(user, "There is no AI currently installed on this device. ")
+ to_chat(user, span_warning("There is no AI currently installed on this device."))
return
if(AI.deployed_shell) //Recall AI if shelled so it can be checked for a client
AI.disconnect_shell()
if(AI.stat || !AI.client)
- to_chat(user, "[AI.name] is currently unresponsive, and cannot be uploaded. ")
+ to_chat(user, span_warning("[AI.name] is currently unresponsive, and cannot be uploaded."))
return
if((LAZYLEN(occupants) >= max_occupants) || dna_lock) //Normal AIs cannot steal mechs!
- to_chat(user, "Access denied. [name] is [LAZYLEN(occupants) >= max_occupants ? "currently fully occupied" : "secured with a DNA lock"]. ")
+ to_chat(user, span_warning("Access denied. [name] is [LAZYLEN(occupants) >= max_occupants ? "currently fully occupied" : "secured with a DNA lock"]."))
return
AI.control_disabled = FALSE
AI.radio_enabled = TRUE
- to_chat(user, "Transfer successful : [AI.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed.")
+ to_chat(user, "[span_boldnotice("Transfer successful")]: [AI.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed.")
card.AI = null
- ai_enter_mech(AI, interaction)
+ ai_enter_mech(AI)
//Hack and From Card interactions share some code, so leave that here for both to use.
/obj/vehicle/sealed/mecha/proc/ai_enter_mech(mob/living/silicon/ai/AI, interaction)
@@ -865,7 +906,6 @@
"You have been uploaded to a mech's onboard computer. ")
to_chat(AI, "Use Middle-Mouse to activate mech functions and equipment. Click normally for AI interactions. ")
-
///Handles an actual AI (simple_animal mecha pilot) entering the mech
/obj/vehicle/sealed/mecha/proc/aimob_enter_mech(mob/living/simple_animal/hostile/syndicate/mecha_pilot/pilot_mob)
if(pilot_mob && pilot_mob.Adjacent(src))
@@ -1042,47 +1082,45 @@
if(isAI(user))
var/mob/living/silicon/ai/AI = user
if(!AI.can_shunt)
- to_chat(AI, "You can't leave a mech after dominating it!. ")
+ to_chat(AI, span_notice("You can't leave a mech after dominating it!."))
return FALSE
- to_chat(user, "You begin the ejection procedure. Equipment is disabled during this process. Hold still to finish ejecting. ")
+ to_chat(user, span_notice("You begin the ejection procedure. Equipment is disabled during this process. Hold still to finish ejecting."))
is_currently_ejecting = TRUE
- if(do_after(user, exit_delay , target = src))
- to_chat(user, "You exit the mech. ")
- mob_try_exit(user, silent = FALSE)
+ if(do_after(user, has_gravity() ? exit_delay : 0 , target = src))
+ to_chat(user, span_notice("You exit the mech."))
+ mob_exit(user, silent = TRUE)
else
- to_chat(user, "You stop exiting the mech. Weapons are enabled again. ")
+ to_chat(user, span_notice("You stop exiting the mech. Weapons are enabled again."))
is_currently_ejecting = FALSE
-/obj/vehicle/sealed/mecha/proc/ejectall()
- for(var/ejectee in occupants)
- mob_try_exit(ejectee, TRUE, TRUE)
-
-/obj/vehicle/sealed/mecha/mob_try_exit(mob/M, silent, randomstep)
- mob_exit(M, silent, randomstep)
-
-/obj/vehicle/sealed/mecha/mob_exit(mob/M, silent, forced)
- var/newloc = get_turf(src)
+/obj/vehicle/sealed/mecha/mob_exit(mob/M, silent = FALSE, randomstep = FALSE, forced = FALSE)
var/atom/movable/mob_container
+ var/turf/newloc = get_turf(src)
if(ishuman(M))
- remove_occupant(M)
- ..()
- return
+ mob_container = M
else if(isbrain(M))
var/mob/living/brain/brain = M
mob_container = brain.container
else if(isAI(M))
var/mob/living/silicon/ai/AI = M
+ //stop listening to this signal, as the static update is now handled by the eyeobj's setLoc
+ AI.eyeobj?.UnregisterSignal(src, COMSIG_MOVABLE_MOVED)
+ AI.eyeobj?.forceMove(newloc) //kick the eye out as well
if(forced)//This should only happen if there are multiple AIs in a round, and at least one is Malf.
- AI.gib() //If one Malf decides to steal a mech from another AI (even other Malfs!), they are destroyed, as they have nowhere to go when replaced.
+ if(!AI.linked_core) //if the victim AI has no core
+ AI.investigate_log("has been gibbed by being forced out of their mech by another AI.", INVESTIGATE_DEATHS)
+ AI.gib() //If one Malf decides to steal a mech from another AI (even other Malfs!), they are destroyed, as they have nowhere to go when replaced.
AI = null
mecha_flags &= ~SILICON_PILOT
return
else
if(!AI.linked_core)
- to_chat(AI, "Inactive core destroyed. Unable to return. ")
+ if(!silent)
+ to_chat(AI, span_userdanger("Inactive core destroyed. Unable to return."))
AI.linked_core = null
return
- to_chat(AI, "Returning to core... ")
+ if(!silent)
+ to_chat(AI, span_notice("Returning to core..."))
AI.controlled_equipment = null
AI.remote_control = null
mob_container = AI
@@ -1090,21 +1128,20 @@
qdel(AI.linked_core)
else
return ..()
- var/mob/living/L = M
+ var/mob/living/ejector = M
mecha_flags &= ~SILICON_PILOT
- if(mob_container.forceMove(newloc))
- log_message("[mob_container] moved out.", LOG_MECHA)
- L << browse(null, "window=exosuit")
+ mob_container.forceMove(newloc)//ejecting mob container
+ log_message("[mob_container] moved out.", LOG_MECHA)
+ SStgui.close_user_uis(M, src)
if(istype(mob_container, /obj/item/mmi))
var/obj/item/mmi/mmi = mob_container
if(mmi.brainmob)
- L.forceMove(mmi)
- L.reset_perspective()
- remove_occupant(L)
+ ejector.forceMove(mmi)
+ ejector.reset_perspective()
+ remove_occupant(ejector)
mmi.mecha = null
- mmi.update_icon()
- L.mobility_flags = NONE
- setDir(dir_in)
+ mmi.update_appearance()
+ setDir(SOUTH)
return ..()
diff --git a/code/modules/vehicles/mecha/combat/durand.dm b/code/modules/vehicles/mecha/combat/durand.dm
index 61aefa9325..bfc259d79a 100644
--- a/code/modules/vehicles/mecha/combat/durand.dm
+++ b/code/modules/vehicles/mecha/combat/durand.dm
@@ -194,7 +194,7 @@ own integrity back to max. Shield is automatically dropped if we run out of powe
for(var/occupant in chassis.occupants)
var/datum/action/button = chassis.occupant_actions[occupant][/datum/action/vehicle/sealed/mecha/mech_defense_mode]
button.button_icon_state = "mech_defense_mode_[chassis.defense_mode ? "on" : "off"]"
- button.UpdateButtonIcon()
+ button.UpdateButtons()
set_light(light_range, light_power, light_color)
diff --git a/code/modules/vehicles/mecha/combat/neovgre.dm b/code/modules/vehicles/mecha/combat/neovgre.dm
index d8704e0318..feb14e3f24 100644
--- a/code/modules/vehicles/mecha/combat/neovgre.dm
+++ b/code/modules/vehicles/mecha/combat/neovgre.dm
@@ -25,7 +25,7 @@
else
add_control_flags(M, VEHICLE_CONTROL_MELEE|VEHICLE_CONTROL_EQUIPMENT)
-/obj/vehicle/sealed/mecha/combat/neovgre/mob_exit(mob/M, silent, forced)
+/obj/vehicle/sealed/mecha/combat/neovgre/mob_exit(mob/M, silent, randomstep, forced)
if(forced)
..()
@@ -98,5 +98,5 @@
/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy/neovgre/can_attach(obj/vehicle/sealed/mecha/combat/neovgre/M)
if(istype(M))
- return 1
- return 0
+ return TRUE
+ return FALSE
diff --git a/code/modules/vehicles/mecha/equipment/tools/medical_tools.dm b/code/modules/vehicles/mecha/equipment/tools/medical_tools.dm
index cb9e471ff8..b57fc44c63 100644
--- a/code/modules/vehicles/mecha/equipment/tools/medical_tools.dm
+++ b/code/modules/vehicles/mecha/equipment/tools/medical_tools.dm
@@ -9,7 +9,7 @@
/obj/item/mecha_parts/mecha_equipment/medical/can_attach(obj/vehicle/sealed/mecha/medical/M)
if(..() && istype(M))
- return 1
+ return TRUE
/obj/item/mecha_parts/mecha_equipment/medical/attach(obj/vehicle/sealed/mecha/M)
@@ -46,7 +46,7 @@
return ..()
/obj/item/mecha_parts/mecha_equipment/medical/sleeper/Exit(atom/movable/O)
- return 0
+ return FALSE
/obj/item/mecha_parts/mecha_equipment/medical/sleeper/action(mob/source, mob/living/carbon/target, params)
if(!action_checks(target))
@@ -197,7 +197,7 @@
/obj/item/mecha_parts/mecha_equipment/medical/sleeper/proc/inject_reagent(datum/reagent/R,obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/SG)
if(!R || !patient || !SG || !(SG in chassis.equipment))
- return 0
+ return FALSE
var/to_inject = min(R.volume, inject_amount)
if(to_inject && patient.reagents.get_reagent_amount(R.type) + to_inject <= inject_amount*2)
to_chat(chassis.occupants, "[icon2html(src, chassis.occupants)]Injecting [patient] with [to_inject] units of [R.name]. ")
@@ -213,7 +213,7 @@
send_byjax(chassis.occupants,"msleeper.browser","lossinfo",get_patient_dam())
send_byjax(chassis.occupants,"msleeper.browser","reagents",get_patient_reagents())
send_byjax(chassis.occupants,"msleeper.browser","injectwith",get_available_reagents())
- return 1
+ return TRUE
return
/obj/item/mecha_parts/mecha_equipment/medical/sleeper/container_resist(mob/living/user)
@@ -456,23 +456,23 @@
if(syringes.len= 2)
to_chat(user, "[icon2html(src, user)]The syringe is too far away! ")
- return 0
+ return FALSE
for(var/obj/structure/D in S.loc)//Basic level check for structures in the way (Like grilles and windows)
if(!(D.CanPass(S,src.loc)))
to_chat(user, "[icon2html(src, user)]Unable to load syringe! ")
- return 0
+ return FALSE
for(var/obj/machinery/door/D in S.loc)//Checks for doors
if(!(D.CanPass(S,src.loc)))
to_chat(user, "[icon2html(src, user)]Unable to load syringe! ")
- return 0
+ return FALSE
S.reagents.trans_to(src, S.reagents.total_volume)
S.forceMove(src)
syringes += S
to_chat(user, "[icon2html(src, user)]Syringe loaded. ")
update_equip_info()
- return 1
+ return TRUE
to_chat(user, "[icon2html(src, user)][src]'s syringe chamber is full! ")
- return 0
+ return FALSE
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/proc/analyze_reagents(atom/A, mob/user)
if(get_dist(src,A) >= 4)
diff --git a/code/modules/vehicles/mecha/equipment/tools/other_tools.dm b/code/modules/vehicles/mecha/equipment/tools/other_tools.dm
index 348a4bb6ec..b25a8ae600 100644
--- a/code/modules/vehicles/mecha/equipment/tools/other_tools.dm
+++ b/code/modules/vehicles/mecha/equipment/tools/other_tools.dm
@@ -410,7 +410,7 @@
return units
else
to_chat(user, "[icon2html(src, user)]Unit is full. ")
- return 0
+ return FALSE
else
to_chat(user, "[icon2html(src, user)][fuel] traces in target minimal! [P] cannot be used as fuel. ")
return
diff --git a/code/modules/vehicles/mecha/equipment/tools/work_tools.dm b/code/modules/vehicles/mecha/equipment/tools/work_tools.dm
index dd9448a826..8c64384d78 100644
--- a/code/modules/vehicles/mecha/equipment/tools/work_tools.dm
+++ b/code/modules/vehicles/mecha/equipment/tools/work_tools.dm
@@ -19,8 +19,8 @@
/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/can_attach(obj/vehicle/sealed/mecha/working/ripley/M)
if(..())
if(istype(M))
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/attach(obj/vehicle/sealed/mecha/M)
..()
@@ -239,7 +239,7 @@
if(W.loc == my_target)
break
sleep(2)
- return 1
+ return TRUE
/obj/item/mecha_parts/mecha_equipment/extinguisher/get_equip_info()
return "[..()] \[[src.reagents.total_volume]\]"
@@ -247,8 +247,8 @@
/obj/item/mecha_parts/mecha_equipment/extinguisher/can_attach(obj/vehicle/sealed/mecha/working/M as obj)
if(..())
if(istype(M))
- return 1
- return 0
+ return TRUE
+ return FALSE
diff --git a/code/modules/vehicles/mecha/equipment/weapons/weapons.dm b/code/modules/vehicles/mecha/equipment/weapons/weapons.dm
index b8818ef3f7..9254bc2ed4 100644
--- a/code/modules/vehicles/mecha/equipment/weapons/weapons.dm
+++ b/code/modules/vehicles/mecha/equipment/weapons/weapons.dm
@@ -426,8 +426,8 @@
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/banana_mortar/can_attach(obj/vehicle/sealed/mecha/combat/honker/M)
if(..())
if(istype(M))
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/mousetrap_mortar
name = "mousetrap mortar"
@@ -444,8 +444,8 @@
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/mousetrap_mortar/can_attach(obj/vehicle/sealed/mecha/combat/honker/M)
if(..())
if(istype(M))
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/mousetrap_mortar/proj_init(obj/item/assembly/mousetrap/armed/M)
M.secured = 1
@@ -475,8 +475,8 @@
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove/can_attach(obj/vehicle/sealed/mecha/combat/honker/M)
if(..())
if(istype(M))
- return 1
- return 0
+ return TRUE
+ return FALSE
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove/get_equip_info()
if(!chassis)
diff --git a/code/modules/vehicles/mecha/mech_fabricator.dm b/code/modules/vehicles/mecha/mech_fabricator.dm
index f69770ca59..7caf0858fc 100644
--- a/code/modules/vehicles/mecha/mech_fabricator.dm
+++ b/code/modules/vehicles/mecha/mech_fabricator.dm
@@ -632,10 +632,10 @@
var/datum/component/material_container/mat_container = rmat.mat_container
if (!mat_container)
say("No access to material storage, please contact the quartermaster.")
- return 0
+ return FALSE
if (rmat.on_hold())
say("Mineral access is on hold, please contact the quartermaster.")
- return 0
+ return FALSE
var/count = mat_container.retrieve_sheets(text2num(eject_amt), eject_sheet, drop_location())
var/list/matlist = list()
matlist[eject_sheet] = text2num(eject_amt)
diff --git a/code/modules/vehicles/mecha/mech_melee_attack.dm b/code/modules/vehicles/mecha/mech_melee_attack.dm
index 2f5faea172..81784ddbd0 100644
--- a/code/modules/vehicles/mecha/mech_melee_attack.dm
+++ b/code/modules/vehicles/mecha/mech_melee_attack.dm
@@ -35,9 +35,9 @@
playsound(src, 'sound/items/welder.ogg', 50, TRUE)
if(TOX)
playsound(src, 'sound/effects/spray2.ogg', 50, TRUE)
- return 0
+ return FALSE
else
- return 0
+ return FALSE
mecha_attacker.visible_message("[mecha_attacker.name] hits [src]! ", "You hit [src]! ", null, COMBAT_MESSAGE_RANGE)
return take_damage(mecha_attacker.force * 3, mech_damtype, MELEE, play_soundeffect, get_dir(src, mecha_attacker)) // multiplied by 3 so we can hit objs hard but not be overpowered against mobs.
diff --git a/code/modules/vehicles/mecha/mecha_actions.dm b/code/modules/vehicles/mecha/mecha_actions.dm
index 09ccaad2c2..976ffea40a 100644
--- a/code/modules/vehicles/mecha/mecha_actions.dm
+++ b/code/modules/vehicles/mecha/mecha_actions.dm
@@ -37,7 +37,7 @@
button_icon_state = "mech_internals_[chassis.use_internal_tank ? "on" : "off"]"
to_chat(chassis.occupants, "[icon2html(chassis, owner)]Now taking air from [chassis.use_internal_tank?"internal airtank":"environment"]. ")
chassis.log_message("Now taking air from [chassis.use_internal_tank?"internal airtank":"environment"].", LOG_MECHA)
- UpdateButtonIcon()
+ UpdateButtons()
/datum/action/vehicle/sealed/mecha/mech_cycle_equip
name = "Cycle Equipment"
@@ -61,7 +61,7 @@
to_chat(owner, "[icon2html(chassis, owner)]You select [chassis.selected]. ")
send_byjax(chassis.occupants,"exosuit.browser","eq_list",chassis.get_equipment_list())
button_icon_state = "mech_cycle_equip_on"
- UpdateButtonIcon()
+ UpdateButtons()
return
var/number = 0
for(var/equipment in available_equipment)
@@ -77,7 +77,7 @@
to_chat(owner, "[icon2html(chassis, owner)]You switch to [chassis.selected]. ")
button_icon_state = "mech_cycle_equip_on"
send_byjax(chassis.occupants,"exosuit.browser","eq_list",chassis.get_equipment_list())
- UpdateButtonIcon()
+ UpdateButtons()
return
@@ -100,7 +100,7 @@
chassis.set_light(0)
to_chat(owner, "[icon2html(chassis, owner)]Toggled lights [(chassis.mecha_flags & LIGHTS_ON)?"on":"off"]. ")
chassis.log_message("Toggled lights [(chassis.mecha_flags & LIGHTS_ON)?"on":"off"].", LOG_MECHA)
- UpdateButtonIcon()
+ UpdateButtons()
/datum/action/vehicle/sealed/mecha/mech_view_stats
name = "View Stats"
@@ -140,7 +140,7 @@
for(var/occupant in occupants)
var/datum/action/action = LAZYACCESSASSOC(occupant_actions, occupant, /datum/action/vehicle/sealed/mecha/strafe)
- action?.UpdateButtonIcon()
+ action?.UpdateButtons()
//////////////////////////////////////// Specific Ability Actions ///////////////////////////////////////////////
//Need to be granted by the mech type, Not default abilities.
@@ -176,7 +176,7 @@
chassis.movedelay = initial(chassis.movedelay)
chassis.step_energy_drain = chassis.normal_step_energy_drain
to_chat(owner, "[icon2html(chassis, owner)]You disable leg actuators overload. ")
- UpdateButtonIcon()
+ UpdateButtons()
/datum/action/vehicle/sealed/mecha/mech_smoke
name = "Smoke"
@@ -208,7 +208,7 @@
SEND_SOUND(owner, sound('sound/mecha/imag_enh.ogg',volume=50))
else
owner.client.view_size.resetToDefault() //Let's not let this stack shall we?
- UpdateButtonIcon()
+ UpdateButtons()
/datum/action/vehicle/sealed/mecha/mech_switch_damtype
name = "Reconfigure arm microtool arrays"
@@ -231,7 +231,7 @@
chassis.damtype = new_damtype
button_icon_state = "mech_damtype_[new_damtype]"
playsound(chassis, 'sound/mecha/mechmove01.ogg', 50, TRUE)
- UpdateButtonIcon()
+ UpdateButtons()
///swap seats, for two person mecha
/datum/action/vehicle/sealed/mecha/swap_seat
@@ -272,4 +272,4 @@
chassis.phasing = !chassis.phasing
button_icon_state = "mech_phasing_[chassis.phasing ? "on" : "off"]"
to_chat(owner, "[icon2html(chassis, owner)]En":"#f00\">Dis"]abled phasing. ")
- UpdateButtonIcon()
+ UpdateButtons()
diff --git a/code/modules/vehicles/mecha/mecha_defense.dm b/code/modules/vehicles/mecha/mecha_defense.dm
index 6e63265b9d..8bdb38abc3 100644
--- a/code/modules/vehicles/mecha/mecha_defense.dm
+++ b/code/modules/vehicles/mecha/mecha_defense.dm
@@ -24,7 +24,7 @@
/obj/vehicle/sealed/mecha/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir)
. = ..()
if(!damage_amount)
- return 0
+ return FALSE
var/booster_deflection_modifier = 1
var/booster_damage_modifier = 1
if(damage_flag == BULLET || damage_flag == LASER || damage_flag == ENERGY)
@@ -47,7 +47,7 @@
if(prob(deflect_chance * booster_deflection_modifier))
visible_message("[src]'s armour deflects the attack! ")
log_message("Armor saved.", LOG_MECHA)
- return 0
+ return FALSE
if(.)
. *= booster_damage_modifier
@@ -72,7 +72,7 @@
log_message("Attack by simple animal. Attacker - [user].", LOG_MECHA, color="red")
if(!user.melee_damage_upper && !user.obj_damage)
user.emote("custom", message = "[user.friendly_verb_continuous] [src].")
- return 0
+ return FALSE
else
var/play_soundeffect = 1
if(user.environment_smash)
@@ -84,7 +84,7 @@
animal_damage = min(animal_damage, 20*user.environment_smash)
log_combat(user, src, "attacked")
attack_generic(user, animal_damage, user.melee_damage_type, MELEE, play_soundeffect)
- return 1
+ return TRUE
/obj/vehicle/sealed/mecha/hulk_damage()
@@ -105,7 +105,7 @@
/obj/vehicle/sealed/mecha/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) //wrapper
log_message("Hit by [AM].", LOG_MECHA, color="red")
- . = ..()
+ return ..()
/obj/vehicle/sealed/mecha/bullet_act(obj/item/projectile/Proj) //wrapper
if(!enclosed && LAZYLEN(occupants) && !(mecha_flags & SILICON_PILOT) && !Proj.force_hit && (Proj.def_zone == BODY_ZONE_HEAD || Proj.def_zone == BODY_ZONE_CHEST)) //allows bullets to hit the pilot of open-canopy mechs
diff --git a/code/modules/vehicles/mecha/working/ripley.dm b/code/modules/vehicles/mecha/working/ripley.dm
index 40b2e61402..6518c2fe05 100644
--- a/code/modules/vehicles/mecha/working/ripley.dm
+++ b/code/modules/vehicles/mecha/working/ripley.dm
@@ -153,7 +153,7 @@
/obj/vehicle/sealed/mecha/working/ripley/Exit(atom/movable/O)
if(O in cargo)
- return 0
+ return FALSE
return ..()
/obj/vehicle/sealed/mecha/working/ripley/Topic(href, href_list)
diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm
index 3b3729848f..c2794fc9af 100644
--- a/code/modules/vehicles/scooter.dm
+++ b/code/modules/vehicles/scooter.dm
@@ -33,10 +33,10 @@
/obj/vehicle/ridden/scooter/buckle_mob(mob/living/M, force = 0, check_loc = 1)
if(!istype(M))
- return 0
+ return FALSE
if(M.get_num_legs() < 2 && M.get_num_arms() <= 0)
to_chat(M, "Your limbless body can't ride \the [src]. ")
- return 0
+ return FALSE
. = ..()
/obj/vehicle/ridden/scooter/skateboard
diff --git a/code/modules/vore/hook-defs.dm b/code/modules/vore/hook-defs.dm
index 5c3c3d01c8..d48371f13c 100644
--- a/code/modules/vore/hook-defs.dm
+++ b/code/modules/vore/hook-defs.dm
@@ -33,5 +33,5 @@
if(!hook_vr("human_new",args))
result = 0
- //Return 1 to superhook
+ //return TRUE to superhook
return result
diff --git a/code/modules/vore/trycatch.dm b/code/modules/vore/trycatch.dm
index d4b1ac2c05..8fcb9ee38d 100644
--- a/code/modules/vore/trycatch.dm
+++ b/code/modules/vore/trycatch.dm
@@ -24,7 +24,7 @@ The proc you're attemping should return nonzero values on success.
catch(var/exception/e)
stack_trace("attempt_vr runtimed when calling [procname] on [callon].")
stack_trace("attempt_vr catch: [e] on [e.file]:[e.line]")
- return 0
+ return FALSE
/*
This is the _vr version of calling hooks.
diff --git a/config/maps.txt b/config/maps.txt
index 90fe7b0387..327f44c024 100644
--- a/config/maps.txt
+++ b/config/maps.txt
@@ -55,4 +55,8 @@ map multiz_debug
endmap
map kilostation
-endmap
\ No newline at end of file
+endmap
+
+map syndicatestation
+ minplayers 300
+endmap
diff --git a/dependencies.sh b/dependencies.sh
index 1c15ed0a99..b5b80d0301 100644
--- a/dependencies.sh
+++ b/dependencies.sh
@@ -11,8 +11,8 @@ export BYOND_MINOR=1556
export RUST_G_VERSION=0.4.10
#node version
-export NODE_VERSION=12
-export NODE_VERSION_PRECISE=12.22.4
+export NODE_VERSION=16
+export NODE_VERSION_PRECISE=16.13.1
# SpacemanDMM git tag
export SPACEMAN_DMM_VERSION=suite-1.7
diff --git a/html/font-awesome/README.MD b/html/font-awesome/README.MD
index 7d693c36f0..ba9121311d 100644
--- a/html/font-awesome/README.MD
+++ b/html/font-awesome/README.MD
@@ -1,6 +1,6 @@
Due to the fact browse_rsc can't create subdirectories, every time you update font-awesome you'll need to change relative webfont references in all.min.css
eg ../webfonts/fa-regular-400.ttf => fa-regular-400.ttf (or whatever you call it in asset datum)
-Second change is ripping out file types other than woff and eot(ie8) from the css
+Second change is ripping out file types other than ~~ woff and eot(ie8)~~ ttf from the css
-Finally, removing brand related css.
\ No newline at end of file
+Finally, removing brand related css.
diff --git a/html/font-awesome/css/all.min.css b/html/font-awesome/css/all.min.css
index e7cdfffe75..7a283f087c 100644
--- a/html/font-awesome/css/all.min.css
+++ b/html/font-awesome/css/all.min.css
@@ -1,5 +1,6 @@
/*!
- * Font Awesome Free 5.9.0 by @fontawesome - https://fontawesome.com
+ * Font Awesome Free 6.1.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ * Copyright 2022 Fonticons, Inc.
*/
-.fa,.fab,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{animation:fa-spin 2s infinite linear}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-wizard:before{content:"\f6e8"}.fa-haykal:before{content:"\f666"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(fa-regular-400.eot);src:url(fa-regular-400.eot?#iefix) format("embedded-opentype"),url(fa-regular-400.woff) format("woff")}.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(fa-solid-900.eot);src:url(fa-solid-900.eot?#iefix) format("embedded-opentype"),url(fa-solid-900.woff) format("woff")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900}
\ No newline at end of file
+.fa{font-family:"Font Awesome 6 Free";font-weight:900}.fa,.fa-brands,.fa-duotone,.fa-light,.fa-regular,.fa-solid,.fa-thin,.fab,.fad,.fal,.far,.fas,.fat{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc( 2em*-1);position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border-radius:.1em;border:.08em solid #eee;padding:.2em .25em .15em}.fa-pull-left{float:left;margin-right:.3em}.fa-pull-right{float:right;margin-left:.3em}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:0;animation-delay:0;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:0;animation-delay:0;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:cubic-bezier(.28,.84,.42,1);animation-timing-function:cubic-bezier(.28,.84,.42,1)}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:cubic-bezier(.4,0,.6,1);animation-timing-function:cubic-bezier(.4,0,.6,1)}.fa-beat-fade,.fa-fade{-webkit-animation-delay:0;animation-delay:0;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-duration:1s;animation-duration:1s}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:cubic-bezier(.4,0,.6,1);animation-timing-function:cubic-bezier(.4,0,.6,1)}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:0;animation-delay:0;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear}.fa-shake,.fa-spin{-webkit-animation-delay:0;animation-delay:0;-webkit-animation-direction:normal;animation-direction:normal}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:normal;animation-direction:normal;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:steps(8);animation-timing-function:steps(8)}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(1.25);transform:scale(1.25)}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(1.25);transform:scale(1.25)}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(1.1,.9) translateY(0);transform:scale(1.1,.9) translateY(0)}30%{-webkit-transform:scale(.9,1.1) translateY(-.5em);transform:scale(.9,1.1) translateY(-.5em)}50%{-webkit-transform:scale(1.05,.95) translateY(0);transform:scale(1.05,.95) translateY(0)}57%{-webkit-transform:scale(1) translateY(-.125em);transform:scale(1) translateY(-.125em)}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(1.1,.9) translateY(0);transform:scale(1.1,.9) translateY(0)}30%{-webkit-transform:scale(.9,1.1) translateY(-.5em);transform:scale(.9,1.1) translateY(-.5em)}50%{-webkit-transform:scale(1.05,.95) translateY(0);transform:scale(1.05,.95) translateY(0)}57%{-webkit-transform:scale(1) translateY(-.125em);transform:scale(1) translateY(-.125em)}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:.4}}@keyframes fa-fade{50%{opacity:.4}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:.4;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(1.125);transform:scale(1.125)}}@keyframes fa-beat-fade{0%,to{opacity:.4;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(1.125);transform:scale(1.125)}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(0,1,0,-180deg);transform:rotate3d(0,1,0,-180deg)}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(0,1,0,-180deg);transform:rotate3d(0,1,0,-180deg)}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(none);transform:rotate(none)}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:auto}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-a:before{content:"\41"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-anchor:before{content:"\f13d"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-anchor-lock:before{content:"\e4ad"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-ankh:before{content:"\f644"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-archway:before{content:"\f557"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-arrow-trend-down:before{content:"\e097"}.fa-arrow-trend-up:before{content:"\e098"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-arrows-spin:before{content:"\e4bb"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-asterisk:before{content:"\2a"}.fa-at:before{content:"\40"}.fa-atom:before{content:"\f5d2"}.fa-audio-description:before{content:"\f29e"}.fa-austral-sign:before{content:"\e0a9"}.fa-award:before{content:"\f559"}.fa-b:before{content:"\42"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-backward:before{content:"\f04a"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-baht-sign:before{content:"\e0ac"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-barcode:before{content:"\f02a"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-bell:before{content:"\f0f3"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bicycle:before{content:"\f206"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blog:before{content:"\f781"}.fa-bold:before{content:"\f032"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-book-bookmark:before{content:"\e0bb"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-bookmark:before{content:"\f02e"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-bore-hole:before{content:"\e4c3"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-bottle-water:before{content:"\e4c5"}.fa-bowl-food:before{content:"\e4c6"}.fa-bowl-rice:before{content:"\e2eb"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes-packing:before{content:"\e4c7"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-bread-slice:before{content:"\f7ec"}.fa-bridge:before{content:"\e4c8"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-bridge-water:before{content:"\e4ce"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broom:before{content:"\f51a"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-brush:before{content:"\f55d"}.fa-bucket:before{content:"\e4cf"}.fa-bug:before{content:"\f188"}.fa-bug-slash:before{content:"\e490"}.fa-bugs:before{content:"\e4d0"}.fa-building:before{content:"\f1ad"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-building-circle-check:before{content:"\e4d2"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-building-flag:before{content:"\e4d5"}.fa-building-lock:before{content:"\e4d6"}.fa-building-ngo:before{content:"\e4d7"}.fa-building-shield:before{content:"\e4d8"}.fa-building-un:before{content:"\e4d9"}.fa-building-user:before{content:"\e4da"}.fa-building-wheat:before{content:"\e4db"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-burst:before{content:"\e4dc"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-c:before{content:"\43"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-week:before{content:"\f784"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-camera-rotate:before{content:"\e0d8"}.fa-campground:before{content:"\f6bb"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-car-on:before{content:"\e4dd"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-car-side:before{content:"\f5e4"}.fa-car-tunnel:before{content:"\e4de"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-cart-plus:before{content:"\f217"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cedi-sign:before{content:"\e0df"}.fa-cent-sign:before{content:"\e3f5"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-charging-station:before{content:"\f5e7"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-chart-column:before{content:"\e0e3"}.fa-chart-gantt:before{content:"\e0e4"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-chart-simple:before{content:"\e473"}.fa-check:before{content:"\f00c"}.fa-check-double:before{content:"\f560"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-child-dress:before{content:"\e59c"}.fa-child-reaching:before{content:"\e59d"}.fa-child-rifle:before{content:"\e4e0"}.fa-children:before{content:"\e4e1"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-circle-nodes:before{content:"\e4e2"}.fa-circle-notch:before{content:"\f1ce"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-city:before{content:"\f64f"}.fa-clapperboard:before{content:"\e131"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clipboard-question:before{content:"\e4e3"}.fa-clipboard-user:before{content:"\f7f3"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-clover:before{content:"\e139"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-code-commit:before{content:"\f386"}.fa-code-compare:before{content:"\e13a"}.fa-code-fork:before{content:"\e13b"}.fa-code-merge:before{content:"\f387"}.fa-code-pull-request:before{content:"\e13c"}.fa-coins:before{content:"\f51e"}.fa-colon-sign:before{content:"\e140"}.fa-comment:before{content:"\f075"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-compress:before{content:"\f066"}.fa-computer:before{content:"\e4e5"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cow:before{content:"\f6c8"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-d:before{content:"\44"}.fa-database:before{content:"\f1c0"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-democrat:before{content:"\f747"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-dharmachakra:before{content:"\f655"}.fa-diagram-next:before{content:"\e476"}.fa-diagram-predecessor:before{content:"\e477"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-diagram-successor:before{content:"\e47a"}.fa-diamond:before{content:"\f219"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-disease:before{content:"\f7fa"}.fa-display:before{content:"\e163"}.fa-divide:before{content:"\f529"}.fa-dna:before{content:"\f471"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-dong-sign:before{content:"\e169"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dove:before{content:"\f4ba"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-download:before{content:"\f019"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-e:before{content:"\45"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elevator:before{content:"\e16d"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-equals:before{content:"\3d"}.fa-eraser:before{content:"\f12d"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-exclamation:before{content:"\21"}.fa-expand:before{content:"\f065"}.fa-explosion:before{content:"\e4e9"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-eye-slash:before{content:"\f070"}.fa-f:before{content:"\46"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-fan:before{content:"\f863"}.fa-faucet:before{content:"\e005"}.fa-faucet-drip:before{content:"\e006"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-ferry:before{content:"\e4ea"}.fa-file:before{content:"\f15b"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-file-audio:before{content:"\f1c7"}.fa-file-circle-check:before{content:"\e5a0"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-file-circle-plus:before{content:"\e494"}.fa-file-circle-question:before{content:"\e4ef"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-excel:before{content:"\f1c3"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-file-medical:before{content:"\f477"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-shield:before{content:"\e4f0"}.fa-file-signature:before{content:"\f573"}.fa-file-video:before{content:"\f1c8"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-file-word:before{content:"\f1c2"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-burner:before{content:"\e4f1"}.fa-fire-extinguisher:before{content:"\f134"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-fish:before{content:"\f578"}.fa-fish-fins:before{content:"\e4f2"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flask-vial:before{content:"\e4f3"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-florin-sign:before{content:"\e184"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-folder-closed:before{content:"\e185"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-folder-tree:before{content:"\f802"}.fa-font:before{content:"\f031"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-franc-sign:before{content:"\e18f"}.fa-frog:before{content:"\f52e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-g:before{content:"\47"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-glass-water:before{content:"\e4f4"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-glasses:before{content:"\f530"}.fa-globe:before{content:"\f0ac"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-greater-than:before{content:"\3e"}.fa-greater-than-equal:before{content:"\f532"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-guarani-sign:before{content:"\e19a"}.fa-guitar:before{content:"\f7a6"}.fa-gun:before{content:"\e19b"}.fa-h:before{content:"\48"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-handcuffs:before{content:"\e4f8"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-hands-bound:before{content:"\e4f9"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-hands-clapping:before{content:"\e1a8"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-handshake:before{content:"\f2b5"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-hashtag:before{content:"\23"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-heart-circle-plus:before{content:"\e500"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-helicopter-symbol:before{content:"\e502"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-helmet-un:before{content:"\e503"}.fa-highlighter:before{content:"\f591"}.fa-hill-avalanche:before{content:"\e507"}.fa-hill-rockslide:before{content:"\e508"}.fa-hippo:before{content:"\f6ed"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-house-chimney-user:before{content:"\e065"}.fa-house-chimney-window:before{content:"\e00d"}.fa-house-circle-check:before{content:"\e509"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-house-crack:before{content:"\e3b1"}.fa-house-fire:before{content:"\e50c"}.fa-house-flag:before{content:"\e50d"}.fa-house-flood-water:before{content:"\e50e"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-house-lock:before{content:"\e510"}.fa-house-medical:before{content:"\e3b2"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-house-medical-flag:before{content:"\e514"}.fa-house-signal:before{content:"\e012"}.fa-house-tsunami:before{content:"\e515"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-hurricane:before{content:"\f751"}.fa-i:before{content:"\49"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-images:before{content:"\f302"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-italic:before{content:"\f033"}.fa-j:before{content:"\4a"}.fa-jar:before{content:"\e516"}.fa-jar-wheat:before{content:"\e517"}.fa-jedi:before{content:"\f669"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-jet-fighter-up:before{content:"\e518"}.fa-joint:before{content:"\f595"}.fa-jug-detergent:before{content:"\e519"}.fa-k:before{content:"\4b"}.fa-kaaba:before{content:"\f66b"}.fa-key:before{content:"\f084"}.fa-keyboard:before{content:"\f11c"}.fa-khanda:before{content:"\f66d"}.fa-kip-sign:before{content:"\e1c4"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-kitchen-set:before{content:"\e51a"}.fa-kiwi-bird:before{content:"\f535"}.fa-l:before{content:"\4c"}.fa-land-mine-on:before{content:"\e51b"}.fa-landmark:before{content:"\f66f"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-landmark-flag:before{content:"\e51c"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-file:before{content:"\e51d"}.fa-laptop-medical:before{content:"\f812"}.fa-lari-sign:before{content:"\e1c8"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-lemon:before{content:"\f094"}.fa-less-than:before{content:"\3c"}.fa-less-than-equal:before{content:"\f537"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-lines-leaning:before{content:"\e51e"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-lira-sign:before{content:"\f195"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-location-arrow:before{content:"\f124"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-location-pin-lock:before{content:"\e51f"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-locust:before{content:"\e520"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-m:before{content:"\4d"}.fa-magnet:before{content:"\f076"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-manat-sign:before{content:"\e1d5"}.fa-map:before{content:"\f279"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-pin:before{content:"\f276"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-and-venus:before{content:"\f224"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-mask:before{content:"\f6fa"}.fa-mask-face:before{content:"\e1d7"}.fa-mask-ventilator:before{content:"\e524"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-mattress-pillow:before{content:"\e525"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-medal:before{content:"\f5a2"}.fa-memory:before{content:"\f538"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-mill-sign:before{content:"\e1ed"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-mitten:before{content:"\f7b5"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-mobile-button:before{content:"\f10b"}.fa-mobile-retro:before{content:"\e527"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-money-bills:before{content:"\e1f3"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-mosquito-net:before{content:"\e52c"}.fa-motorcycle:before{content:"\f21c"}.fa-mound:before{content:"\e52d"}.fa-mountain:before{content:"\f6fc"}.fa-mountain-city:before{content:"\e52e"}.fa-mountain-sun:before{content:"\e52f"}.fa-mug-hot:before{content:"\f7b6"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-music:before{content:"\f001"}.fa-n:before{content:"\4e"}.fa-naira-sign:before{content:"\e1f6"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-not-equal:before{content:"\f53e"}.fa-notdef:before{content:"\e1fe"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-notes-medical:before{content:"\f481"}.fa-o:before{content:"\4f"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-oil-can:before{content:"\f613"}.fa-oil-well:before{content:"\e532"}.fa-om:before{content:"\f679"}.fa-otter:before{content:"\f700"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-p:before{content:"\50"}.fa-pager:before{content:"\f815"}.fa-paint-roller:before{content:"\f5aa"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-palette:before{content:"\f53f"}.fa-pallet:before{content:"\f482"}.fa-panorama:before{content:"\e209"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-passport:before{content:"\f5ab"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-pause:before{content:"\f04c"}.fa-paw:before{content:"\f1b0"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-people-group:before{content:"\e533"}.fa-people-line:before{content:"\e534"}.fa-people-pulling:before{content:"\e535"}.fa-people-robbery:before{content:"\e536"}.fa-people-roof:before{content:"\e537"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-person-booth:before{content:"\f756"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-person-burst:before{content:"\e53b"}.fa-person-cane:before{content:"\e53c"}.fa-person-chalkboard:before{content:"\e53d"}.fa-person-circle-check:before{content:"\e53e"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-person-circle-minus:before{content:"\e540"}.fa-person-circle-plus:before{content:"\e541"}.fa-person-circle-question:before{content:"\e542"}.fa-person-circle-xmark:before{content:"\e543"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-person-dress-burst:before{content:"\e544"}.fa-person-drowning:before{content:"\e545"}.fa-person-falling:before{content:"\e546"}.fa-person-falling-burst:before{content:"\e547"}.fa-person-half-dress:before{content:"\e548"}.fa-person-harassing:before{content:"\e549"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-person-military-pointing:before{content:"\e54a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-person-military-to-person:before{content:"\e54c"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-person-pregnant:before{content:"\e31e"}.fa-person-rays:before{content:"\e54d"}.fa-person-rifle:before{content:"\e54e"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-person-shelter:before{content:"\e54f"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-person-through-window:before{content:"\e5a9"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-person-walking-luggage:before{content:"\e554"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-peseta-sign:before{content:"\e221"}.fa-peso-sign:before{content:"\e222"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-circle-check:before{content:"\e555"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-lock:before{content:"\e558"}.fa-plane-slash:before{content:"\e069"}.fa-plane-up:before{content:"\e22d"}.fa-plant-wilt:before{content:"\e5aa"}.fa-plate-wheat:before{content:"\e55a"}.fa-play:before{content:"\f04b"}.fa-plug:before{content:"\f1e6"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-plug-circle-check:before{content:"\e55c"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-plus-minus:before{content:"\e43c"}.fa-podcast:before{content:"\f2ce"}.fa-poo:before{content:"\f2fe"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-power-off:before{content:"\f011"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-puzzle-piece:before{content:"\f12e"}.fa-q:before{content:"\51"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\3f"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-r:before{content:"\52"}.fa-radiation:before{content:"\f7b9"}.fa-radio:before{content:"\f8d7"}.fa-rainbow:before{content:"\f75b"}.fa-ranking-star:before{content:"\e561"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-recycle:before{content:"\f1b8"}.fa-registered:before{content:"\f25d"}.fa-repeat:before{content:"\f363"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-republican:before{content:"\f75e"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-ribbon:before{content:"\f4d6"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-road-barrier:before{content:"\e562"}.fa-road-bridge:before{content:"\e563"}.fa-road-circle-check:before{content:"\e564"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-road-circle-xmark:before{content:"\e566"}.fa-road-lock:before{content:"\e567"}.fa-road-spikes:before{content:"\e568"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-route:before{content:"\f4d7"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-rug:before{content:"\e569"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-rupiah-sign:before{content:"\e23d"}.fa-s:before{content:"\53"}.fa-sack-dollar:before{content:"\f81d"}.fa-sack-xmark:before{content:"\e56a"}.fa-sailboat:before{content:"\e445"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-school:before{content:"\f549"}.fa-school-circle-check:before{content:"\e56b"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-school-flag:before{content:"\e56e"}.fa-school-lock:before{content:"\e56f"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-screwdriver:before{content:"\f54a"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-scroll:before{content:"\f70e"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-sd-card:before{content:"\f7c2"}.fa-section:before{content:"\e447"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-server:before{content:"\f233"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-sheet-plastic:before{content:"\e571"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-shield-cat:before{content:"\e572"}.fa-shield-dog:before{content:"\e573"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-shield-heart:before{content:"\e574"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-shoe-prints:before{content:"\f54b"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-shop-lock:before{content:"\e4a5"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-shower:before{content:"\f2cc"}.fa-shrimp:before{content:"\e448"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-sim-card:before{content:"\f7c4"}.fa-sink:before{content:"\e06d"}.fa-sitemap:before{content:"\f0e8"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-spa:before{content:"\f5bb"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-spray-can:before{content:"\f5bd"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-square:before{content:"\f0c8"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-square-full:before{content:"\f45c"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-square-nfi:before{content:"\e576"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-square-person-confined:before{content:"\e577"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-square-virus:before{content:"\e578"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-stairs:before{content:"\e289"}.fa-stamp:before{content:"\f5bf"}.fa-stapler:before{content:"\e5af"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-stethoscope:before{content:"\f0f1"}.fa-stop:before{content:"\f04d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-slash:before{content:"\e071"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stroopwafel:before{content:"\f551"}.fa-subscript:before{content:"\f12c"}.fa-suitcase:before{content:"\f0f2"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-superscript:before{content:"\f12b"}.fa-swatchbook:before{content:"\f5c3"}.fa-synagogue:before{content:"\f69b"}.fa-syringe:before{content:"\f48e"}.fa-t:before{content:"\54"}.fa-table:before{content:"\f0ce"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-tablet-button:before{content:"\f10a"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tarp:before{content:"\e57b"}.fa-tarp-droplet:before{content:"\e57c"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-tent:before{content:"\e57d"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tent-arrows-down:before{content:"\e581"}.fa-tents:before{content:"\e582"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-text-width:before{content:"\f035"}.fa-thermometer:before{content:"\f491"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-ticket:before{content:"\f145"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-timeline:before{content:"\e29c"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toilet-portable:before{content:"\e583"}.fa-toilets-portable:before{content:"\e584"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-torii-gate:before{content:"\f6a1"}.fa-tornado:before{content:"\f76f"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-tower-cell:before{content:"\e585"}.fa-tower-observation:before{content:"\e586"}.fa-tractor:before{content:"\f722"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-train-tram:before{content:"\e5b4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-tree-city:before{content:"\e587"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-trophy:before{content:"\f091"}.fa-trowel:before{content:"\e589"}.fa-trowel-bricks:before{content:"\e58a"}.fa-truck:before{content:"\f0d1"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-truck-droplet:before{content:"\e58c"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-truck-field:before{content:"\e58d"}.fa-truck-field-un:before{content:"\e58e"}.fa-truck-front:before{content:"\e2b7"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-truck-plane:before{content:"\e58f"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-u:before{content:"\55"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-universal-access:before{content:"\f29a"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-upload:before{content:"\f093"}.fa-user:before{content:"\f007"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-clock:before{content:"\f4fd"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-user-graduate:before{content:"\f501"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-user-injured:before{content:"\f728"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-user-lock:before{content:"\f502"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-between-lines:before{content:"\e591"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-users-line:before{content:"\e592"}.fa-users-rays:before{content:"\e593"}.fa-users-rectangle:before{content:"\e594"}.fa-users-slash:before{content:"\e073"}.fa-users-viewfinder:before{content:"\e595"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-v:before{content:"\56"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-vault:before{content:"\e2c5"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-vial:before{content:"\f492"}.fa-vial-circle-check:before{content:"\e596"}.fa-vial-virus:before{content:"\e597"}.fa-vials:before{content:"\f493"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-virus:before{content:"\e074"}.fa-virus-covid:before{content:"\e4a8"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-voicemail:before{content:"\f897"}.fa-volcano:before{content:"\f770"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-vr-cardboard:before{content:"\f729"}.fa-w:before{content:"\57"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-wallet:before{content:"\f555"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-wand-sparkles:before{content:"\f72b"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-wave-square:before{content:"\f83e"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-wheelchair:before{content:"\f193"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-wind:before{content:"\f72e"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-worm:before{content:"\e599"}.fa-wrench:before{content:"\f0ad"}.fa-x:before{content:"\58"}.fa-x-ray:before{content:"\f497"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-xmarks-lines:before{content:"\e59a"}.fa-y:before{content:"\59"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-z:before{content:"\5a"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands";font-weight:400}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-alipay:before{content:"\f642"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-amilia:before{content:"\f36d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-pay:before{content:"\f415"}.fa-artstation:before{content:"\f77a"}.fa-asymmetrik:before{content:"\f372"}.fa-atlassian:before{content:"\f77b"}.fa-audible:before{content:"\f373"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-aws:before{content:"\f375"}.fa-bandcamp:before{content:"\f2d5"}.fa-battle-net:before{content:"\f835"}.fa-behance:before{content:"\f1b4"}.fa-bilibili:before{content:"\e3d9"}.fa-bimobject:before{content:"\f378"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bootstrap:before{content:"\f836"}.fa-bots:before{content:"\e340"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-buromobelexperte:before{content:"\f37f"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cmplid:before{content:"\e360"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-critical-role:before{content:"\f6c9"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dhl:before{content:"\f790"}.fa-diaspora:before{content:"\f791"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-draft2digital:before{content:"\f396"}.fa-dribbble:before{content:"\f17d"}.fa-dropbox:before{content:"\f16b"}.fa-drupal:before{content:"\f1a9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-elementor:before{content:"\f430"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-evernote:before{content:"\f839"}.fa-expeditedssl:before{content:"\f23e"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-figma:before{content:"\f799"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-fly:before{content:"\f417"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-fulcrum:before{content:"\f50b"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-gofore:before{content:"\f3a7"}.fa-golang:before{content:"\e40f"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-wallet:before{content:"\f1ee"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-gulp:before{content:"\f3ae"}.fa-hacker-news:before{content:"\f1d4"}.fa-hackerrank:before{content:"\f5f7"}.fa-hashnode:before{content:"\e499"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-hive:before{content:"\e07f"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-hotjar:before{content:"\f3b1"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-ideal:before{content:"\e013"}.fa-imdb:before{content:"\f2d8"}.fa-instagram:before{content:"\f16d"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaggle:before{content:"\f5fa"}.fa-keybase:before{content:"\f4f5"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-korvue:before{content:"\f42f"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-leanpub:before{content:"\f212"}.fa-less:before{content:"\f41d"}.fa-line:before{content:"\f3c0"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-mailchimp:before{content:"\f59e"}.fa-mandalorian:before{content:"\f50f"}.fa-markdown:before{content:"\f60f"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medapps:before{content:"\f3c6"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-mendeley:before{content:"\f7b3"}.fa-meta:before{content:"\e49b"}.fa-microblog:before{content:"\e01a"}.fa-microsoft:before{content:"\f3ca"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-nfc-directional:before{content:"\e530"}.fa-nfc-symbol:before{content:"\e531"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-old-republic:before{content:"\f510"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-padlet:before{content:"\e4a0"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-palfed:before{content:"\f3d8"}.fa-patreon:before{content:"\f3d9"}.fa-paypal:before{content:"\f1ed"}.fa-perbyte:before{content:"\e083"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pix:before{content:"\e43a"}.fa-playstation:before{content:"\f3df"}.fa-product-hunt:before{content:"\f288"}.fa-pushed:before{content:"\f3e1"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-r-project:before{content:"\f4f7"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-redhat:before{content:"\f7bc"}.fa-renren:before{content:"\f18b"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-rev:before{content:"\f5b2"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-rust:before{content:"\e07a"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-schlix:before{content:"\f3ea"}.fa-screenpal:before{content:"\e570"}.fa-scribd:before{content:"\f28a"}.fa-searchengin:before{content:"\f3eb"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-servicestack:before{content:"\f3ec"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shopify:before{content:"\e057"}.fa-shopware:before{content:"\f5b5"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sith:before{content:"\f512"}.fa-sitrox:before{content:"\e44a"}.fa-sketch:before{content:"\f7c6"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-slideshare:before{content:"\f1e7"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-space-awesome:before{content:"\e5ac"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spotify:before{content:"\f1bc"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-symbol:before{content:"\f3f6"}.fa-sticker-mule:before{content:"\f3f7"}.fa-strava:before{content:"\f428"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-superpowers:before{content:"\f2dd"}.fa-supple:before{content:"\f3f9"}.fa-suse:before{content:"\f7d6"}.fa-swift:before{content:"\f8e1"}.fa-symfony:before{content:"\f83d"}.fa-teamspeak:before{content:"\f4f9"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-the-red-yeti:before{content:"\f69d"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-think-peaks:before{content:"\f731"}.fa-tiktok:before{content:"\e07b"}.fa-trade-federation:before{content:"\f513"}.fa-trello:before{content:"\f181"}.fa-tumblr:before{content:"\f173"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-uncharted:before{content:"\e084"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-vaadin:before{content:"\f408"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viber:before{content:"\f409"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-vuejs:before{content:"\f41f"}.fa-watchman-monitoring:before{content:"\e087"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whmcs:before{content:"\f40d"}.fa-wikipedia-w:before{content:"\f266"}.fa-windows:before{content:"\f17a"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-zhihu:before{content:"\f63f"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-family:"Font Awesome 6 Free";font-weight:400}:host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-family:"Font Awesome 6 Free";font-weight:900}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}
diff --git a/html/font-awesome/css/v4-shims.min.css b/html/font-awesome/css/v4-shims.min.css
index 5f3fdc598c..2f6252b52a 100644
--- a/html/font-awesome/css/v4-shims.min.css
+++ b/html/font-awesome/css/v4-shims.min.css
@@ -1,5 +1,6 @@
/*!
- * Font Awesome Free 5.9.0 by @fontawesome - https://fontawesome.com
+ * Font Awesome Free 6.1.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ * Copyright 2022 Fonticons, Inc.
*/
-.fa.fa-glass:before{content:"\f000"}.fa.fa-meetup{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-star-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-close:before,.fa.fa-remove:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-file-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before,.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-pencil:before{content:"\f303"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-share-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart:before{content:"\f080"}.fa.fa-bar-chart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bar-chart-o:before{content:"\f080"}.fa.fa-facebook-square,.fa.fa-twitter-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-lemon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-scissors:before{content:"\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-google-plus,.fa.fa-google-plus-square,.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-dashboard:before,.fa.fa-tachometer:before{content:"\f3fd"}.fa.fa-comment-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard,.fa.fa-paste{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paste:before{content:"\f328"}.fa.fa-lightbulb-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f381"}.fa.fa-cloud-upload:before{content:"\f382"}.fa.fa-bell-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile-phone:before,.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\f089"}.fa.fa-star-half-empty{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\f089"}.fa.fa-star-half-full{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\f089"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before{content:"\f127"}.fa.fa-shield:before{content:"\f3ed"}.fa.fa-calendar-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ticket:before{content:"\f3ff"}.fa.fa-minus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before,.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-dollar:before,.fa.fa-usd:before{content:"\f155"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\f156"}.fa.fa-cny:before,.fa.fa-jpy:before,.fa.fa-rmb:before,.fa.fa-yen:before{content:"\f157"}.fa.fa-rouble:before,.fa.fa-rub:before,.fa.fa-ruble:before{content:"\f158"}.fa.fa-krw:before,.fa.fa-won:before{content:"\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f15e"}.fa.fa-sort-amount-asc:before{content:"\f160"}.fa.fa-sort-amount-desc:before{content:"\f161"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f163"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube,.fa.fa-youtube-play,.fa.fa-youtube-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\f195"}.fa.fa-plus-square-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-google,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle,.fa.fa-yahoo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-spoon:before{content:"\f2e5"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-cab:before{content:"\f1ba"}.fa.fa-envelope-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-deviantart,.fa.fa-soundcloud{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-life-bouy,.fa.fa-life-ring{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-bouy:before{content:"\f1cd"}.fa.fa-life-buoy{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-buoy:before{content:"\f1cd"}.fa.fa-life-saver{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-life-saver:before{content:"\f1cd"}.fa.fa-support{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git,.fa.fa-git-square,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-sliders:before{content:"\f1de"}.fa.fa-futbol-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-angellist,.fa.fa-ioxhost,.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before,.fa.fa-shekel:before,.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-meanpath{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-meanpath:before{content:"\f2b4"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before{content:"\f224"}.fa.fa-facebook-official{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-battery-4:before,.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-clone,.fa.fa-hourglass-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-chrome,.fa.fa-creative-commons,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-internet-explorer,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square,.fa.fa-opera,.fa.fa-safari,.fa.fa-tripadvisor,.fa.fa-wikipedia-w{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before,.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-snapchat,.fa.fa-snapchat-ghost,.fa.fa-snapchat-square,.fa.fa-themeisle,.fa.fa-viadeo,.fa.fa-viadeo-square,.fa.fa-yoast{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-thermometer-4:before,.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before,.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 5 Brands";font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 5 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-spotify,.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 5 Brands";font-weight:400}
\ No newline at end of file
+.fa.fa-glass:before{content:"\f000"}.fa.fa-envelope-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-envelope-o:before{content:"\f0e0"}.fa.fa-star-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-o:before{content:"\f005"}.fa.fa-close:before,.fa.fa-remove:before{content:"\f00d"}.fa.fa-gear:before{content:"\f013"}.fa.fa-trash-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-trash-o:before{content:"\f2ed"}.fa.fa-home:before{content:"\f015"}.fa.fa-file-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-o:before{content:"\f15b"}.fa.fa-clock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-clock-o:before{content:"\f017"}.fa.fa-arrow-circle-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-down:before{content:"\f358"}.fa.fa-arrow-circle-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-up:before{content:"\f35b"}.fa.fa-play-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-play-circle-o:before{content:"\f144"}.fa.fa-repeat:before,.fa.fa-rotate-right:before{content:"\f01e"}.fa.fa-refresh:before{content:"\f021"}.fa.fa-list-alt{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-list-alt:before{content:"\f022"}.fa.fa-dedent:before{content:"\f03b"}.fa.fa-video-camera:before{content:"\f03d"}.fa.fa-picture-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-picture-o:before{content:"\f03e"}.fa.fa-photo{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-photo:before{content:"\f03e"}.fa.fa-image{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-image:before{content:"\f03e"}.fa.fa-map-marker:before{content:"\f3c5"}.fa.fa-pencil-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-pencil-square-o:before{content:"\f044"}.fa.fa-edit{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-edit:before{content:"\f044"}.fa.fa-share-square-o:before{content:"\f14d"}.fa.fa-check-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-check-square-o:before{content:"\f14a"}.fa.fa-arrows:before{content:"\f0b2"}.fa.fa-times-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-times-circle-o:before{content:"\f057"}.fa.fa-check-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-check-circle-o:before{content:"\f058"}.fa.fa-mail-forward:before{content:"\f064"}.fa.fa-expand:before{content:"\f424"}.fa.fa-compress:before{content:"\f422"}.fa.fa-eye,.fa.fa-eye-slash{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-warning:before{content:"\f071"}.fa.fa-calendar:before{content:"\f073"}.fa.fa-arrows-v:before{content:"\f338"}.fa.fa-arrows-h:before{content:"\f337"}.fa.fa-bar-chart-o:before,.fa.fa-bar-chart:before{content:"\e0e3"}.fa.fa-twitter-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-twitter-square:before{content:"\f081"}.fa.fa-facebook-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-square:before{content:"\f082"}.fa.fa-gears:before{content:"\f085"}.fa.fa-thumbs-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-thumbs-o-up:before{content:"\f164"}.fa.fa-thumbs-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-thumbs-o-down:before{content:"\f165"}.fa.fa-heart-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-heart-o:before{content:"\f004"}.fa.fa-sign-out:before{content:"\f2f5"}.fa.fa-linkedin-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-linkedin-square:before{content:"\f08c"}.fa.fa-thumb-tack:before{content:"\f08d"}.fa.fa-external-link:before{content:"\f35d"}.fa.fa-sign-in:before{content:"\f2f6"}.fa.fa-github-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-github-square:before{content:"\f092"}.fa.fa-lemon-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-lemon-o:before{content:"\f094"}.fa.fa-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-square-o:before{content:"\f0c8"}.fa.fa-bookmark-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-bookmark-o:before{content:"\f02e"}.fa.fa-facebook,.fa.fa-twitter{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook:before{content:"\f39e"}.fa.fa-facebook-f{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-f:before{content:"\f39e"}.fa.fa-github{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-credit-card{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-feed:before{content:"\f09e"}.fa.fa-hdd-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hdd-o:before{content:"\f0a0"}.fa.fa-hand-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-right:before{content:"\f0a4"}.fa.fa-hand-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-left:before{content:"\f0a5"}.fa.fa-hand-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-up:before{content:"\f0a6"}.fa.fa-hand-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-o-down:before{content:"\f0a7"}.fa.fa-globe:before{content:"\f57d"}.fa.fa-tasks:before{content:"\f828"}.fa.fa-arrows-alt:before{content:"\f31e"}.fa.fa-group:before{content:"\f0c0"}.fa.fa-chain:before{content:"\f0c1"}.fa.fa-cut:before{content:"\f0c4"}.fa.fa-files-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-files-o:before{content:"\f0c5"}.fa.fa-floppy-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-floppy-o:before{content:"\f0c7"}.fa.fa-save{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-save:before{content:"\f0c7"}.fa.fa-navicon:before,.fa.fa-reorder:before{content:"\f0c9"}.fa.fa-magic:before{content:"\e2ca"}.fa.fa-pinterest,.fa.fa-pinterest-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-pinterest-square:before{content:"\f0d3"}.fa.fa-google-plus-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-square:before{content:"\f0d4"}.fa.fa-google-plus{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus:before{content:"\f0d5"}.fa.fa-money:before{content:"\f3d1"}.fa.fa-unsorted:before{content:"\f0dc"}.fa.fa-sort-desc:before{content:"\f0dd"}.fa.fa-sort-asc:before{content:"\f0de"}.fa.fa-linkedin{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-linkedin:before{content:"\f0e1"}.fa.fa-rotate-left:before{content:"\f0e2"}.fa.fa-legal:before{content:"\f0e3"}.fa.fa-dashboard:before,.fa.fa-tachometer:before{content:"\f625"}.fa.fa-comment-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-comment-o:before{content:"\f075"}.fa.fa-comments-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-comments-o:before{content:"\f086"}.fa.fa-flash:before{content:"\f0e7"}.fa.fa-clipboard:before{content:"\f0ea"}.fa.fa-lightbulb-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-lightbulb-o:before{content:"\f0eb"}.fa.fa-exchange:before{content:"\f362"}.fa.fa-cloud-download:before{content:"\f0ed"}.fa.fa-cloud-upload:before{content:"\f0ee"}.fa.fa-bell-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-bell-o:before{content:"\f0f3"}.fa.fa-cutlery:before{content:"\f2e7"}.fa.fa-file-text-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-text-o:before{content:"\f15c"}.fa.fa-building-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-building-o:before{content:"\f1ad"}.fa.fa-hospital-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hospital-o:before{content:"\f0f8"}.fa.fa-tablet:before{content:"\f3fa"}.fa.fa-mobile-phone:before,.fa.fa-mobile:before{content:"\f3cd"}.fa.fa-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-circle-o:before{content:"\f111"}.fa.fa-mail-reply:before{content:"\f3e5"}.fa.fa-github-alt{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-folder-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-folder-o:before{content:"\f07b"}.fa.fa-folder-open-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-folder-open-o:before{content:"\f07c"}.fa.fa-smile-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-smile-o:before{content:"\f118"}.fa.fa-frown-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-frown-o:before{content:"\f119"}.fa.fa-meh-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-meh-o:before{content:"\f11a"}.fa.fa-keyboard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-keyboard-o:before{content:"\f11c"}.fa.fa-flag-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-flag-o:before{content:"\f024"}.fa.fa-mail-reply-all:before{content:"\f122"}.fa.fa-star-half-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-o:before{content:"\f5c0"}.fa.fa-star-half-empty{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-empty:before{content:"\f5c0"}.fa.fa-star-half-full{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-star-half-full:before{content:"\f5c0"}.fa.fa-code-fork:before{content:"\f126"}.fa.fa-chain-broken:before,.fa.fa-unlink:before{content:"\f127"}.fa.fa-calendar-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-o:before{content:"\f133"}.fa.fa-css3,.fa.fa-html5,.fa.fa-maxcdn{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-unlock-alt:before{content:"\f09c"}.fa.fa-minus-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-minus-square-o:before{content:"\f146"}.fa.fa-level-up:before{content:"\f3bf"}.fa.fa-level-down:before{content:"\f3be"}.fa.fa-pencil-square:before{content:"\f14b"}.fa.fa-external-link-square:before{content:"\f360"}.fa.fa-compass{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-down:before{content:"\f150"}.fa.fa-toggle-down{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-down:before{content:"\f150"}.fa.fa-caret-square-o-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-up:before{content:"\f151"}.fa.fa-toggle-up{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-up:before{content:"\f151"}.fa.fa-caret-square-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-right:before{content:"\f152"}.fa.fa-toggle-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-right:before{content:"\f152"}.fa.fa-eur:before,.fa.fa-euro:before{content:"\f153"}.fa.fa-gbp:before{content:"\f154"}.fa.fa-dollar:before,.fa.fa-usd:before{content:"\24"}.fa.fa-inr:before,.fa.fa-rupee:before{content:"\e1bc"}.fa.fa-cny:before,.fa.fa-jpy:before,.fa.fa-rmb:before,.fa.fa-yen:before{content:"\f157"}.fa.fa-rouble:before,.fa.fa-rub:before,.fa.fa-ruble:before{content:"\f158"}.fa.fa-krw:before,.fa.fa-won:before{content:"\f159"}.fa.fa-bitcoin,.fa.fa-btc{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bitcoin:before{content:"\f15a"}.fa.fa-file-text:before{content:"\f15c"}.fa.fa-sort-alpha-asc:before{content:"\f15d"}.fa.fa-sort-alpha-desc:before{content:"\f881"}.fa.fa-sort-amount-asc:before{content:"\f884"}.fa.fa-sort-amount-desc:before{content:"\f160"}.fa.fa-sort-numeric-asc:before{content:"\f162"}.fa.fa-sort-numeric-desc:before{content:"\f886"}.fa.fa-youtube-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-youtube-square:before{content:"\f431"}.fa.fa-xing,.fa.fa-xing-square,.fa.fa-youtube{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-xing-square:before{content:"\f169"}.fa.fa-youtube-play{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-youtube-play:before{content:"\f167"}.fa.fa-adn,.fa.fa-bitbucket,.fa.fa-bitbucket-square,.fa.fa-dropbox,.fa.fa-flickr,.fa.fa-instagram,.fa.fa-stack-overflow{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bitbucket-square:before{content:"\f171"}.fa.fa-tumblr,.fa.fa-tumblr-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-tumblr-square:before{content:"\f174"}.fa.fa-long-arrow-down:before{content:"\f309"}.fa.fa-long-arrow-up:before{content:"\f30c"}.fa.fa-long-arrow-left:before{content:"\f30a"}.fa.fa-long-arrow-right:before{content:"\f30b"}.fa.fa-android,.fa.fa-apple,.fa.fa-dribbble,.fa.fa-foursquare,.fa.fa-gittip,.fa.fa-gratipay,.fa.fa-linux,.fa.fa-skype,.fa.fa-trello,.fa.fa-windows{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-gittip:before{content:"\f184"}.fa.fa-sun-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-sun-o:before{content:"\f185"}.fa.fa-moon-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-moon-o:before{content:"\f186"}.fa.fa-pagelines,.fa.fa-renren,.fa.fa-stack-exchange,.fa.fa-vk,.fa.fa-weibo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-arrow-circle-o-right{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-right:before{content:"\f35a"}.fa.fa-arrow-circle-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-arrow-circle-o-left:before{content:"\f359"}.fa.fa-caret-square-o-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-caret-square-o-left:before{content:"\f191"}.fa.fa-toggle-left{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-toggle-left:before{content:"\f191"}.fa.fa-dot-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-dot-circle-o:before{content:"\f192"}.fa.fa-vimeo-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-vimeo-square:before{content:"\f194"}.fa.fa-try:before,.fa.fa-turkish-lira:before{content:"\e2bb"}.fa.fa-plus-square-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-plus-square-o:before{content:"\f0fe"}.fa.fa-openid,.fa.fa-slack,.fa.fa-wordpress{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bank:before,.fa.fa-institution:before{content:"\f19c"}.fa.fa-mortar-board:before{content:"\f19d"}.fa.fa-google,.fa.fa-reddit,.fa.fa-reddit-square,.fa.fa-yahoo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-reddit-square:before{content:"\f1a2"}.fa.fa-behance,.fa.fa-behance-square,.fa.fa-delicious,.fa.fa-digg,.fa.fa-drupal,.fa.fa-joomla,.fa.fa-pied-piper-alt,.fa.fa-pied-piper-pp,.fa.fa-stumbleupon,.fa.fa-stumbleupon-circle{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-behance-square:before{content:"\f1b5"}.fa.fa-steam,.fa.fa-steam-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-steam-square:before{content:"\f1b7"}.fa.fa-automobile:before{content:"\f1b9"}.fa.fa-cab:before{content:"\f1ba"}.fa.fa-deviantart,.fa.fa-soundcloud,.fa.fa-spotify{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-file-pdf-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-pdf-o:before{content:"\f1c1"}.fa.fa-file-word-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-word-o:before{content:"\f1c2"}.fa.fa-file-excel-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-excel-o:before{content:"\f1c3"}.fa.fa-file-powerpoint-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-powerpoint-o:before{content:"\f1c4"}.fa.fa-file-image-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-image-o:before{content:"\f1c5"}.fa.fa-file-photo-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-photo-o:before{content:"\f1c5"}.fa.fa-file-picture-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-picture-o:before{content:"\f1c5"}.fa.fa-file-archive-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-archive-o:before{content:"\f1c6"}.fa.fa-file-zip-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-zip-o:before{content:"\f1c6"}.fa.fa-file-audio-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-audio-o:before{content:"\f1c7"}.fa.fa-file-sound-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-sound-o:before{content:"\f1c7"}.fa.fa-file-video-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-video-o:before{content:"\f1c8"}.fa.fa-file-movie-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-movie-o:before{content:"\f1c8"}.fa.fa-file-code-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-file-code-o:before{content:"\f1c9"}.fa.fa-codepen,.fa.fa-jsfiddle,.fa.fa-vine{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-life-bouy:before,.fa.fa-life-buoy:before,.fa.fa-life-saver:before,.fa.fa-support:before{content:"\f1cd"}.fa.fa-circle-o-notch:before{content:"\f1ce"}.fa.fa-ra,.fa.fa-rebel{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-ra:before{content:"\f1d0"}.fa.fa-resistance{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-resistance:before{content:"\f1d0"}.fa.fa-empire,.fa.fa-ge{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-ge:before{content:"\f1d1"}.fa.fa-git-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-git-square:before{content:"\f1d2"}.fa.fa-git,.fa.fa-hacker-news,.fa.fa-y-combinator-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-y-combinator-square:before{content:"\f1d4"}.fa.fa-yc-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-yc-square:before{content:"\f1d4"}.fa.fa-qq,.fa.fa-tencent-weibo,.fa.fa-wechat,.fa.fa-weixin{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-wechat:before{content:"\f1d7"}.fa.fa-send:before{content:"\f1d8"}.fa.fa-paper-plane-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-paper-plane-o:before{content:"\f1d8"}.fa.fa-send-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-send-o:before{content:"\f1d8"}.fa.fa-circle-thin{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-circle-thin:before{content:"\f111"}.fa.fa-header:before{content:"\f1dc"}.fa.fa-futbol-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-futbol-o:before{content:"\f1e3"}.fa.fa-soccer-ball-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-soccer-ball-o:before{content:"\f1e3"}.fa.fa-slideshare,.fa.fa-twitch,.fa.fa-yelp{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-newspaper-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-newspaper-o:before{content:"\f1ea"}.fa.fa-cc-amex,.fa.fa-cc-discover,.fa.fa-cc-mastercard,.fa.fa-cc-paypal,.fa.fa-cc-stripe,.fa.fa-cc-visa,.fa.fa-google-wallet,.fa.fa-paypal{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-bell-slash-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-bell-slash-o:before{content:"\f1f6"}.fa.fa-trash:before{content:"\f2ed"}.fa.fa-copyright{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-eyedropper:before{content:"\f1fb"}.fa.fa-area-chart:before{content:"\f1fe"}.fa.fa-pie-chart:before{content:"\f200"}.fa.fa-line-chart:before{content:"\f201"}.fa.fa-lastfm,.fa.fa-lastfm-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-lastfm-square:before{content:"\f203"}.fa.fa-angellist,.fa.fa-ioxhost{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-cc{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-cc:before{content:"\f20a"}.fa.fa-ils:before,.fa.fa-shekel:before,.fa.fa-sheqel:before{content:"\f20b"}.fa.fa-buysellads,.fa.fa-connectdevelop,.fa.fa-dashcube,.fa.fa-forumbee,.fa.fa-leanpub,.fa.fa-sellsy,.fa.fa-shirtsinbulk,.fa.fa-simplybuilt,.fa.fa-skyatlas{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-diamond{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-diamond:before{content:"\f3a5"}.fa.fa-intersex:before,.fa.fa-transgender:before{content:"\f224"}.fa.fa-transgender-alt:before{content:"\f225"}.fa.fa-facebook-official{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-facebook-official:before{content:"\f09a"}.fa.fa-pinterest-p,.fa.fa-whatsapp{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-hotel:before{content:"\f236"}.fa.fa-medium,.fa.fa-viacoin,.fa.fa-y-combinator,.fa.fa-yc{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-yc:before{content:"\f23b"}.fa.fa-expeditedssl,.fa.fa-opencart,.fa.fa-optin-monster{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-battery-4:before,.fa.fa-battery:before{content:"\f240"}.fa.fa-battery-3:before{content:"\f241"}.fa.fa-battery-2:before{content:"\f242"}.fa.fa-battery-1:before{content:"\f243"}.fa.fa-battery-0:before{content:"\f244"}.fa.fa-object-group,.fa.fa-object-ungroup,.fa.fa-sticky-note-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-sticky-note-o:before{content:"\f249"}.fa.fa-cc-diners-club,.fa.fa-cc-jcb{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-clone{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hourglass-o:before{content:"\f254"}.fa.fa-hourglass-1:before{content:"\f251"}.fa.fa-hourglass-2:before{content:"\f252"}.fa.fa-hourglass-3:before{content:"\f253"}.fa.fa-hand-rock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-rock-o:before{content:"\f255"}.fa.fa-hand-grab-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-grab-o:before{content:"\f255"}.fa.fa-hand-paper-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-paper-o:before{content:"\f256"}.fa.fa-hand-stop-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-stop-o:before{content:"\f256"}.fa.fa-hand-scissors-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-scissors-o:before{content:"\f257"}.fa.fa-hand-lizard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-lizard-o:before{content:"\f258"}.fa.fa-hand-spock-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-spock-o:before{content:"\f259"}.fa.fa-hand-pointer-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-pointer-o:before{content:"\f25a"}.fa.fa-hand-peace-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-hand-peace-o:before{content:"\f25b"}.fa.fa-registered{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-creative-commons,.fa.fa-gg,.fa.fa-gg-circle,.fa.fa-odnoklassniki,.fa.fa-odnoklassniki-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-odnoklassniki-square:before{content:"\f264"}.fa.fa-chrome,.fa.fa-firefox,.fa.fa-get-pocket,.fa.fa-internet-explorer,.fa.fa-opera,.fa.fa-safari,.fa.fa-wikipedia-w{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-television:before{content:"\f26c"}.fa.fa-500px,.fa.fa-amazon,.fa.fa-contao{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-calendar-plus-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-plus-o:before{content:"\f271"}.fa.fa-calendar-minus-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-minus-o:before{content:"\f272"}.fa.fa-calendar-times-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-times-o:before{content:"\f273"}.fa.fa-calendar-check-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-calendar-check-o:before{content:"\f274"}.fa.fa-map-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-map-o:before{content:"\f279"}.fa.fa-commenting:before{content:"\f4ad"}.fa.fa-commenting-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-commenting-o:before{content:"\f4ad"}.fa.fa-houzz,.fa.fa-vimeo{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-vimeo:before{content:"\f27d"}.fa.fa-black-tie,.fa.fa-edge,.fa.fa-fonticons,.fa.fa-reddit-alien{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-credit-card-alt:before{content:"\f09d"}.fa.fa-codiepie,.fa.fa-fort-awesome,.fa.fa-mixcloud,.fa.fa-modx,.fa.fa-product-hunt,.fa.fa-scribd,.fa.fa-usb{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-pause-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-pause-circle-o:before{content:"\f28b"}.fa.fa-stop-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-stop-circle-o:before{content:"\f28d"}.fa.fa-bluetooth,.fa.fa-bluetooth-b,.fa.fa-envira,.fa.fa-gitlab,.fa.fa-wheelchair-alt,.fa.fa-wpbeginner,.fa.fa-wpforms{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-wheelchair-alt:before{content:"\f368"}.fa.fa-question-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-question-circle-o:before{content:"\f059"}.fa.fa-volume-control-phone:before{content:"\f2a0"}.fa.fa-asl-interpreting:before{content:"\f2a3"}.fa.fa-deafness:before,.fa.fa-hard-of-hearing:before{content:"\f2a4"}.fa.fa-glide,.fa.fa-glide-g{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-signing:before{content:"\f2a7"}.fa.fa-viadeo,.fa.fa-viadeo-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-viadeo-square:before{content:"\f2aa"}.fa.fa-snapchat,.fa.fa-snapchat-ghost{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-snapchat-ghost:before{content:"\f2ab"}.fa.fa-snapchat-square{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-snapchat-square:before{content:"\f2ad"}.fa.fa-first-order,.fa.fa-google-plus-official,.fa.fa-pied-piper,.fa.fa-themeisle,.fa.fa-yoast{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-official:before{content:"\f2b3"}.fa.fa-google-plus-circle{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-google-plus-circle:before{content:"\f2b3"}.fa.fa-fa,.fa.fa-font-awesome{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-fa:before{content:"\f2b4"}.fa.fa-handshake-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-handshake-o:before{content:"\f2b5"}.fa.fa-envelope-open-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-envelope-open-o:before{content:"\f2b6"}.fa.fa-linode{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-address-book-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-address-book-o:before{content:"\f2b9"}.fa.fa-vcard:before{content:"\f2bb"}.fa.fa-address-card-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-address-card-o:before{content:"\f2bb"}.fa.fa-vcard-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-vcard-o:before{content:"\f2bb"}.fa.fa-user-circle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-user-circle-o:before{content:"\f2bd"}.fa.fa-user-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-user-o:before{content:"\f007"}.fa.fa-id-badge{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-drivers-license:before{content:"\f2c2"}.fa.fa-id-card-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-id-card-o:before{content:"\f2c2"}.fa.fa-drivers-license-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-drivers-license-o:before{content:"\f2c2"}.fa.fa-free-code-camp,.fa.fa-quora,.fa.fa-telegram{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-thermometer-4:before,.fa.fa-thermometer:before{content:"\f2c7"}.fa.fa-thermometer-3:before{content:"\f2c8"}.fa.fa-thermometer-2:before{content:"\f2c9"}.fa.fa-thermometer-1:before{content:"\f2ca"}.fa.fa-thermometer-0:before{content:"\f2cb"}.fa.fa-bathtub:before,.fa.fa-s15:before{content:"\f2cd"}.fa.fa-window-maximize,.fa.fa-window-restore{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-times-rectangle:before{content:"\f410"}.fa.fa-window-close-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-window-close-o:before{content:"\f410"}.fa.fa-times-rectangle-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-times-rectangle-o:before{content:"\f410"}.fa.fa-bandcamp,.fa.fa-eercast,.fa.fa-etsy,.fa.fa-grav,.fa.fa-imdb,.fa.fa-ravelry{font-family:"Font Awesome 6 Brands";font-weight:400}.fa.fa-eercast:before{content:"\f2da"}.fa.fa-snowflake-o{font-family:"Font Awesome 6 Free";font-weight:400}.fa.fa-snowflake-o:before{content:"\f2dc"}.fa.fa-meetup,.fa.fa-superpowers,.fa.fa-wpexplorer{font-family:"Font Awesome 6 Brands";font-weight:400}
\ No newline at end of file
diff --git a/html/font-awesome/webfonts/fa-regular-400.eot b/html/font-awesome/webfonts/fa-regular-400.eot
deleted file mode 100644
index d62be2fad8..0000000000
Binary files a/html/font-awesome/webfonts/fa-regular-400.eot and /dev/null differ
diff --git a/html/font-awesome/webfonts/fa-regular-400.ttf b/html/font-awesome/webfonts/fa-regular-400.ttf
new file mode 100644
index 0000000000..c5ac009577
Binary files /dev/null and b/html/font-awesome/webfonts/fa-regular-400.ttf differ
diff --git a/html/font-awesome/webfonts/fa-regular-400.woff b/html/font-awesome/webfonts/fa-regular-400.woff
deleted file mode 100644
index 43b1a9ae49..0000000000
Binary files a/html/font-awesome/webfonts/fa-regular-400.woff and /dev/null differ
diff --git a/html/font-awesome/webfonts/fa-solid-900.eot b/html/font-awesome/webfonts/fa-solid-900.eot
deleted file mode 100644
index c77baa8d46..0000000000
Binary files a/html/font-awesome/webfonts/fa-solid-900.eot and /dev/null differ
diff --git a/html/font-awesome/webfonts/fa-solid-900.ttf b/html/font-awesome/webfonts/fa-solid-900.ttf
new file mode 100644
index 0000000000..43ba1cc7d9
Binary files /dev/null and b/html/font-awesome/webfonts/fa-solid-900.ttf differ
diff --git a/html/font-awesome/webfonts/fa-solid-900.woff b/html/font-awesome/webfonts/fa-solid-900.woff
deleted file mode 100644
index 77c1786227..0000000000
Binary files a/html/font-awesome/webfonts/fa-solid-900.woff and /dev/null differ
diff --git a/html/font-awesome/webfonts/fa-v4compatibility.ttf b/html/font-awesome/webfonts/fa-v4compatibility.ttf
new file mode 100644
index 0000000000..243bc25bd5
Binary files /dev/null and b/html/font-awesome/webfonts/fa-v4compatibility.ttf differ
diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi
index be99d57a3d..8334c83224 100644
Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ
diff --git a/icons/effects/mouse_pointers/screen_drag.dmi b/icons/effects/mouse_pointers/screen_drag.dmi
new file mode 100644
index 0000000000..48e4fce85f
Binary files /dev/null and b/icons/effects/mouse_pointers/screen_drag.dmi differ
diff --git a/icons/hud/64x16_actions.dmi b/icons/hud/64x16_actions.dmi
new file mode 100644
index 0000000000..23865a80f0
Binary files /dev/null and b/icons/hud/64x16_actions.dmi differ
diff --git a/icons/mob/screen_ai.dmi b/icons/mob/screen_ai.dmi
index 8388ea3f80..e9360926a4 100644
Binary files a/icons/mob/screen_ai.dmi and b/icons/mob/screen_ai.dmi differ
diff --git a/icons/mob/screen_alien.dmi b/icons/mob/screen_alien.dmi
index fe23a59dfd..ddb99fdb68 100644
Binary files a/icons/mob/screen_alien.dmi and b/icons/mob/screen_alien.dmi differ
diff --git a/icons/mob/screen_clockwork.dmi b/icons/mob/screen_clockwork.dmi
index 268fed4094..d84503c768 100644
Binary files a/icons/mob/screen_clockwork.dmi and b/icons/mob/screen_clockwork.dmi differ
diff --git a/icons/mob/screen_cyborg.dmi b/icons/mob/screen_cyborg.dmi
index 13aa792944..2f976f9d3a 100644
Binary files a/icons/mob/screen_cyborg.dmi and b/icons/mob/screen_cyborg.dmi differ
diff --git a/icons/mob/screen_detective.dmi b/icons/mob/screen_detective.dmi
new file mode 100644
index 0000000000..5de29ad1e8
Binary files /dev/null and b/icons/mob/screen_detective.dmi differ
diff --git a/icons/mob/screen_gen.dmi b/icons/mob/screen_gen.dmi
index 39e8eb4b45..0b286f9625 100644
Binary files a/icons/mob/screen_gen.dmi and b/icons/mob/screen_gen.dmi differ
diff --git a/icons/mob/screen_glass.dmi b/icons/mob/screen_glass.dmi
new file mode 100644
index 0000000000..4948171883
Binary files /dev/null and b/icons/mob/screen_glass.dmi differ
diff --git a/icons/mob/screen_midnight.dmi b/icons/mob/screen_midnight.dmi
index 3d89504272..c180ed4f37 100644
Binary files a/icons/mob/screen_midnight.dmi and b/icons/mob/screen_midnight.dmi differ
diff --git a/icons/mob/screen_operative.dmi b/icons/mob/screen_operative.dmi
index d51022b98a..8e2eeaa315 100644
Binary files a/icons/mob/screen_operative.dmi and b/icons/mob/screen_operative.dmi differ
diff --git a/icons/mob/screen_plasmafire.dmi b/icons/mob/screen_plasmafire.dmi
index f251b8b167..18f99515b9 100644
Binary files a/icons/mob/screen_plasmafire.dmi and b/icons/mob/screen_plasmafire.dmi differ
diff --git a/icons/mob/screen_retro.dmi b/icons/mob/screen_retro.dmi
index e57cefa83e..8c8b920908 100644
Binary files a/icons/mob/screen_retro.dmi and b/icons/mob/screen_retro.dmi differ
diff --git a/icons/mob/screen_slimecore.dmi b/icons/mob/screen_slimecore.dmi
index 01831250b8..91b01910e3 100644
Binary files a/icons/mob/screen_slimecore.dmi and b/icons/mob/screen_slimecore.dmi differ
diff --git a/icons/mob/screen_trasenknox.dmi b/icons/mob/screen_trasenknox.dmi
new file mode 100644
index 0000000000..bf229f7bad
Binary files /dev/null and b/icons/mob/screen_trasenknox.dmi differ
diff --git a/modular_citadel/code/modules/client/verbs/who.dm b/modular_citadel/code/modules/client/verbs/who.dm
index 7640595e18..390c167365 100644
--- a/modular_citadel/code/modules/client/verbs/who.dm
+++ b/modular_citadel/code/modules/client/verbs/who.dm
@@ -38,7 +38,7 @@
var/client/C = X
if(C && C.holder && !C.holder.fakekey)
assembled += "\t [C.key] [admin_mode? "[show_admin_info(C)]":""] ([round(C.avgping, 1)]ms)"
- Lines += sortList(assembled)
+ Lines += sort_list(assembled)
assembled.len = 0
if(length(GLOB.mentors))
Lines += "Mentors: "
@@ -46,10 +46,10 @@
var/client/C = X
if(C && (!C.holder || (C.holder && !C.holder.fakekey))) //>using stuff this complex instead of just using if/else lmao
assembled += "\t [C.key] [admin_mode? "[show_admin_info(C)]":""] ([round(C.avgping, 1)]ms)"
- Lines += sortList(assembled)
+ Lines += sort_list(assembled)
assembled.len = 0
Lines += "Players: "
- for(var/X in sortList(GLOB.clients))
+ for(var/X in sort_list(GLOB.clients))
var/client/C = X
if(!C)
continue
@@ -57,8 +57,8 @@
if(C.holder && C.holder.fakekey)
key = C.holder.fakekey
assembled += "\t [key][admin_mode? "[show_admin_info(C)]":""] ([round(C.avgping, 1)]ms)"
- Lines += sortList(assembled)
-
+ Lines += sort_list(assembled)
+
for(var/line in Lines)
msg += "[line]\n"
diff --git a/modular_citadel/code/modules/eventmaps/Spookystation/JTGSZwork.dm b/modular_citadel/code/modules/eventmaps/Spookystation/JTGSZwork.dm
index a2ccc319d0..244b0be71e 100644
--- a/modular_citadel/code/modules/eventmaps/Spookystation/JTGSZwork.dm
+++ b/modular_citadel/code/modules/eventmaps/Spookystation/JTGSZwork.dm
@@ -702,7 +702,7 @@ GLOBAL_LIST_EMPTY(rain_sounds)
else
new /obj/item/stack/sheet/hay/(get_turf(src))
qdel(src)
- return 1
+ return TRUE
else
. = ..()
@@ -1081,9 +1081,9 @@ GLOBAL_LIST_INIT(hay_recipes, list ( \
attack_verb = list("tickled", "poked", "whipped")
hitsound = 'sound/weapons/grenadelaunch.ogg'
-/obj/item/stack/sheet/hay/Initialize(mapload, new_amount, merge = TRUE)
- recipes = GLOB.hay_recipes
- return ..()
+/obj/item/stack/sheet/hay/get_main_recipes()
+ . = ..()
+ . += GLOB.hay_recipes
/obj/item/stack/sheet/hay/fifty
amount = 50
@@ -1098,7 +1098,7 @@ GLOBAL_LIST_INIT(hay_recipes, list ( \
amount = 5
-/obj/item/stack/sheet/hay/update_icon()
+/obj/item/stack/sheet/hay/update_icon_state()
var/amount = get_amount()
if((amount <= 4) && (amount > 0))
icon_state = "hay[amount]"
diff --git a/modular_citadel/code/modules/festive/turfs.dm b/modular_citadel/code/modules/festive/turfs.dm
index dd119a25e7..d7b450caf2 100644
--- a/modular_citadel/code/modules/festive/turfs.dm
+++ b/modular_citadel/code/modules/festive/turfs.dm
@@ -1503,9 +1503,9 @@
/obj/structure/festive/trainplatform/edge_north/CanPass(atom/movable/mover, turf/target)
if(istype(mover) && (mover.pass_flags & PASSGLASS))
- return 1
+ return TRUE
if(dir == FULLTILE_WINDOW_DIR)
- return 0
+ return FALSE
if(get_dir(loc, target) == dir)
return !density
if(istype(mover, /obj/structure/festive/trainplatform/edge_north))
@@ -1518,14 +1518,14 @@
return FALSE
else if(istype(mover, /obj/machinery/door/window) && !valid_window_location(loc, mover.dir))
return FALSE
- return 1
+ return TRUE
/obj/structure/festive/trainplatform/edge_north/CheckExit(atom/movable/O, turf/target)
if(istype(O) && (O.pass_flags & PASSGLASS))
- return 1
+ return TRUE
if(get_dir(O.loc, target) == dir)
- return 0
- return 1
+ return FALSE
+ return TRUE
/obj/structure/festive/trainplatform/edge_north
dir = SOUTH
@@ -1561,9 +1561,9 @@
/obj/structure/festive/trainplatform/edge_south/CanPass(atom/movable/mover, turf/target)
if(istype(mover) && (mover.pass_flags & PASSGLASS))
- return 1
+ return TRUE
if(dir == FULLTILE_WINDOW_DIR)
- return 0
+ return FALSE
if(get_dir(loc, target) == dir)
return !density
if(istype(mover, /obj/structure/festive/trainplatform/edge_south))
@@ -1576,14 +1576,14 @@
return FALSE
else if(istype(mover, /obj/machinery/door/window) && !valid_window_location(loc, mover.dir))
return FALSE
- return 1
+ return TRUE
/obj/structure/festive/trainplatform/edge_north/CheckExit(atom/movable/O, turf/target)
if(istype(O) && (O.pass_flags & PASSGLASS))
- return 1
+ return TRUE
if(get_dir(O.loc, target) == dir)
- return 0
- return 1
+ return FALSE
+ return TRUE
/obj/structure/festive/trainplatform/edge_south
dir = NORTH
@@ -1619,9 +1619,9 @@
/obj/structure/festive/trainplatform/edge_east/CanPass(atom/movable/mover, turf/target)
if(istype(mover) && (mover.pass_flags & PASSGLASS))
- return 1
+ return TRUE
if(dir == FULLTILE_WINDOW_DIR)
- return 0
+ return FALSE
if(get_dir(loc, target) == dir)
return !density
if(istype(mover, /obj/structure/festive/trainplatform/edge_east))
@@ -1634,14 +1634,14 @@
return FALSE
else if(istype(mover, /obj/machinery/door/window) && !valid_window_location(loc, mover.dir))
return FALSE
- return 1
+ return TRUE
/obj/structure/festive/trainplatform/edge_east/CheckExit(atom/movable/O, turf/target)
if(istype(O) && (O.pass_flags & PASSGLASS))
- return 1
+ return TRUE
if(get_dir(O.loc, target) == dir)
- return 0
- return 1
+ return FALSE
+ return TRUE
/obj/structure/festive/trainplatform/edge_east
dir = WEST
@@ -1677,9 +1677,9 @@
/obj/structure/festive/trainplatform/edge_west/CanPass(atom/movable/mover, turf/target)
if(istype(mover) && (mover.pass_flags & PASSGLASS))
- return 1
+ return TRUE
if(dir == FULLTILE_WINDOW_DIR)
- return 0
+ return FALSE
if(get_dir(loc, target) == dir)
return !density
if(istype(mover, /obj/structure/festive/trainplatform/edge_west))
@@ -1692,14 +1692,14 @@
return FALSE
else if(istype(mover, /obj/machinery/door/window) && !valid_window_location(loc, mover.dir))
return FALSE
- return 1
+ return TRUE
/obj/structure/festive/trainplatform/edge_west/CheckExit(atom/movable/O, turf/target)
if(istype(O) && (O.pass_flags & PASSGLASS))
- return 1
+ return TRUE
if(get_dir(O.loc, target) == dir)
- return 0
- return 1
+ return FALSE
+ return TRUE
/obj/structure/festive/trainplatform/edge_west
dir = EAST
diff --git a/modular_citadel/code/modules/mentor/mentorpm.dm b/modular_citadel/code/modules/mentor/mentorpm.dm
index 3260e96767..ba9a951b98 100644
--- a/modular_citadel/code/modules/mentor/mentorpm.dm
+++ b/modular_citadel/code/modules/mentor/mentorpm.dm
@@ -9,7 +9,7 @@
for(var/client/T)
targets["[T]"] = T
- var/list/sorted = sortList(targets)
+ var/list/sorted = sort_list(targets)
var/target = input(src,"To whom shall we send a message?","Mentor PM",null) in sorted|null
cmd_mentor_pm(targets[target],null)
SSblackbox.record_feedback("tally", "Mentor_verb", 1, "APM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
diff --git a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm
index e5b81806e6..f3abc0603e 100644
--- a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm
+++ b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm
@@ -68,7 +68,7 @@
playsound(M, 'sound/weapons/laserPump.ogg', 100, 1) //Ends with high pitched charging noise
recharge_newshot() //try to charge a new shot
update_icon()
- return 1
+ return TRUE
/obj/item/gun/energy/pumpaction/AltClick(mob/living/user) //for changing firing modes since attackself is already used for pumping
. = ..()
diff --git a/modular_citadel/code/modules/vectorcrafts/vectorcraft.dm b/modular_citadel/code/modules/vectorcrafts/vectorcraft.dm
index 64d276dda7..0b393e33e1 100644
--- a/modular_citadel/code/modules/vectorcrafts/vectorcraft.dm
+++ b/modular_citadel/code/modules/vectorcrafts/vectorcraft.dm
@@ -133,10 +133,10 @@
check_boost()
if(driver.m_intent == MOVE_INTENT_WALK)
var/deceleration = max_deceleration
- if(driver.in_throw_mode)
+ if(driver.throw_mode)
deceleration *= 1.5
friction(deceleration, TRUE)
- else if(driver.in_throw_mode)
+ else if(driver.throw_mode)
friction(max_deceleration*1.2, TRUE)
friction(max_deceleration/4)
diff --git a/modular_citadel/icons/ui/screen_detective.dmi b/modular_citadel/icons/ui/screen_detective.dmi
new file mode 100644
index 0000000000..ef012d3e84
Binary files /dev/null and b/modular_citadel/icons/ui/screen_detective.dmi differ
diff --git a/modular_citadel/icons/ui/screen_glass.dmi b/modular_citadel/icons/ui/screen_glass.dmi
new file mode 100644
index 0000000000..d03ba9edae
Binary files /dev/null and b/modular_citadel/icons/ui/screen_glass.dmi differ
diff --git a/modular_citadel/icons/ui/screen_operative.dmi b/modular_citadel/icons/ui/screen_operative.dmi
index 5e8abb5431..0f9173091b 100644
Binary files a/modular_citadel/icons/ui/screen_operative.dmi and b/modular_citadel/icons/ui/screen_operative.dmi differ
diff --git a/modular_citadel/icons/ui/screen_trasenknox.dmi b/modular_citadel/icons/ui/screen_trasenknox.dmi
new file mode 100644
index 0000000000..ef418fdf94
Binary files /dev/null and b/modular_citadel/icons/ui/screen_trasenknox.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index fa7a8f079e..1768cba677 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -20,6 +20,7 @@
#include "code\_compile_options.dm"
#include "code\world.dm"
#include "code\__DEFINES\_auxtools.dm"
+#include "code\__DEFINES\_click.dm"
#include "code\__DEFINES\_globals.dm"
#include "code\__DEFINES\_protect.dm"
#include "code\__DEFINES\_tick.dm"
@@ -160,6 +161,8 @@
#include "code\__DEFINES\dcs\flags.dm"
#include "code\__DEFINES\dcs\helpers.dm"
#include "code\__DEFINES\dcs\signals.dm"
+#include "code\__DEFINES\dcs\signals\signals_action.dm"
+#include "code\__DEFINES\dcs\signals\signals_global.dm"
#include "code\__DEFINES\dcs\signals\signals_hud.dm"
#include "code\__DEFINES\dcs\signals\signals_medical.dm"
#include "code\__DEFINES\dcs\signals\signals_mod.dm"
@@ -167,8 +170,11 @@
#include "code\__DEFINES\dcs\signals\signals_reagent.dm"
#include "code\__DEFINES\dcs\signals\signals_screentips.dm"
#include "code\__DEFINES\dcs\signals\signals_subsystem.dm"
+#include "code\__DEFINES\dcs\signals\signals_atom\signals_atom_main.dm"
+#include "code\__DEFINES\dcs\signals\signals_atom\signals_atom_mouse.dm"
#include "code\__DEFINES\dcs\signals\signals_atom\signals_atom_movement.dm"
#include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_living.dm"
+#include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_main.dm"
#include "code\__DEFINES\mapping\maploader.dm"
#include "code\__DEFINES\material\worth.dm"
#include "code\__DEFINES\mobs\innate_abilities.dm"
@@ -221,6 +227,7 @@
#include "code\__HELPERS\reagents.dm"
#include "code\__HELPERS\roundend.dm"
#include "code\__HELPERS\sanitize_values.dm"
+#include "code\__HELPERS\screen_objs.dm"
#include "code\__HELPERS\shell.dm"
#include "code\__HELPERS\stat_tracking.dm"
#include "code\__HELPERS\text.dm"
@@ -279,7 +286,6 @@
#include "code\_onclick\right_item_attack.dm"
#include "code\_onclick\right_other_mobs.dm"
#include "code\_onclick\telekinesis.dm"
-#include "code\_onclick\hud\_defines.dm"
#include "code\_onclick\hud\action_button.dm"
#include "code\_onclick\hud\ai.dm"
#include "code\_onclick\hud\alert.dm"
@@ -1500,6 +1506,7 @@
#include "code\modules\admin\sound_emitter.dm"
#include "code\modules\admin\sql_message_system.dm"
#include "code\modules\admin\stickyban.dm"
+#include "code\modules\admin\tag.dm"
#include "code\modules\admin\topic.dm"
#include "code\modules\admin\whitelist.dm"
#include "code\modules\admin\callproc\callproc.dm"
@@ -1550,6 +1557,7 @@
#include "code\modules\admin\view_variables\mass_edit_variables.dm"
#include "code\modules\admin\view_variables\modify_variables.dm"
#include "code\modules\admin\view_variables\reference_tracking.dm"
+#include "code\modules\admin\view_variables\tag_datum.dm"
#include "code\modules\admin\view_variables\topic.dm"
#include "code\modules\admin\view_variables\topic_basic.dm"
#include "code\modules\admin\view_variables\topic_list.dm"
@@ -1866,7 +1874,43 @@
#include "code\modules\asset_cache\asset_cache_client.dm"
#include "code\modules\asset_cache\asset_cache_item.dm"
#include "code\modules\asset_cache\asset_list.dm"
-#include "code\modules\asset_cache\asset_list_items.dm"
+#include "code\modules\asset_cache\assets\achievements.dm"
+#include "code\modules\asset_cache\assets\adventure.dm"
+#include "code\modules\asset_cache\assets\arcade.dm"
+#include "code\modules\asset_cache\assets\chat.dm"
+#include "code\modules\asset_cache\assets\circuits.dm"
+#include "code\modules\asset_cache\assets\common.dm"
+#include "code\modules\asset_cache\assets\condiments.dm"
+#include "code\modules\asset_cache\assets\fish.dm"
+#include "code\modules\asset_cache\assets\fontawesome.dm"
+#include "code\modules\asset_cache\assets\genetics.dm"
+#include "code\modules\asset_cache\assets\headers.dm"
+#include "code\modules\asset_cache\assets\inventory.dm"
+#include "code\modules\asset_cache\assets\irv.dm"
+#include "code\modules\asset_cache\assets\jobs.dm"
+#include "code\modules\asset_cache\assets\jquery.dm"
+#include "code\modules\asset_cache\assets\languages.dm"
+#include "code\modules\asset_cache\assets\lobby.dm"
+#include "code\modules\asset_cache\assets\mafia.dm"
+#include "code\modules\asset_cache\assets\moods.dm"
+#include "code\modules\asset_cache\assets\notes.dm"
+#include "code\modules\asset_cache\assets\orbit.dm"
+#include "code\modules\asset_cache\assets\paper.dm"
+#include "code\modules\asset_cache\assets\pda.dm"
+#include "code\modules\asset_cache\assets\permissions.dm"
+#include "code\modules\asset_cache\assets\pills.dm"
+#include "code\modules\asset_cache\assets\pipes.dm"
+#include "code\modules\asset_cache\assets\portraits.dm"
+#include "code\modules\asset_cache\assets\radar.dm"
+#include "code\modules\asset_cache\assets\research_designs.dm"
+#include "code\modules\asset_cache\assets\safe.dm"
+#include "code\modules\asset_cache\assets\sheetmaterials.dm"
+#include "code\modules\asset_cache\assets\supplypods.dm"
+#include "code\modules\asset_cache\assets\tgfont.dm"
+#include "code\modules\asset_cache\assets\tgui.dm"
+#include "code\modules\asset_cache\assets\tutorial_advisors.dm"
+#include "code\modules\asset_cache\assets\vending.dm"
+#include "code\modules\asset_cache\assets\vv.dm"
#include "code\modules\asset_cache\transports\asset_transport.dm"
#include "code\modules\asset_cache\transports\webroot_transport.dm"
#include "code\modules\atmospherics\multiz.dm"
@@ -3135,6 +3179,7 @@
#include "code\modules\plumbing\plumbers\reaction_chamber.dm"
#include "code\modules\plumbing\plumbers\splitters.dm"
#include "code\modules\plumbing\plumbers\synthesizer.dm"
+#include "code\modules\point\point.dm"
#include "code\modules\pool\pool_controller.dm"
#include "code\modules\pool\pool_drain.dm"
#include "code\modules\pool\pool_effects.dm"
diff --git a/tgui/.yarnrc.yml b/tgui/.yarnrc.yml
index f17253db0c..103f6d7712 100644
--- a/tgui/.yarnrc.yml
+++ b/tgui/.yarnrc.yml
@@ -10,6 +10,8 @@ plugins:
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
spec: "@yarnpkg/plugin-interactive-tools"
+pnpEnableEsmLoader: false
+
preferAggregateCacheInfo: true
preferInteractive: true
diff --git a/tgui/packages/tgui-dev-server/package.json b/tgui/packages/tgui-dev-server/package.json
index 8ee0e019ee..8b2e5d64fb 100644
--- a/tgui/packages/tgui-dev-server/package.json
+++ b/tgui/packages/tgui-dev-server/package.json
@@ -4,7 +4,7 @@
"version": "4.3.0",
"type": "module",
"dependencies": {
- "axios": "^0.21.1",
+ "axios": "^1.6.0",
"glob": "^7.1.7",
"source-map": "^0.7.3",
"stacktrace-parser": "^0.1.10",
diff --git a/tgui/packages/tgui-panel/chat/renderer.js b/tgui/packages/tgui-panel/chat/renderer.js
index 32a9b74ed0..495ed32228 100644
--- a/tgui/packages/tgui-panel/chat/renderer.js
+++ b/tgui/packages/tgui-panel/chat/renderer.js
@@ -443,7 +443,9 @@ class ChatRenderer {
const cssRules = styleSheets[i].cssRules;
for (let i = 0; i < cssRules.length; i++) {
const rule = cssRules[i];
- cssText += rule.cssText + '\n';
+ if (rule && typeof rule.cssText === 'string') {
+ cssText += rule.cssText + '\n';
+ }
}
}
cssText += 'body, html { background-color: #141414 }\n';
diff --git a/tgui/packages/tgui/interfaces/BorgPanel.js b/tgui/packages/tgui/interfaces/BorgPanel.js
index 9e2d97db6e..2c422d9ac0 100644
--- a/tgui/packages/tgui/interfaces/BorgPanel.js
+++ b/tgui/packages/tgui/interfaces/BorgPanel.js
@@ -1,5 +1,5 @@
import { useBackend } from '../backend';
-import { Box, Button, LabeledList, ProgressBar, Section } from '../components';
+import { Box, Button, Icon, LabeledList, ProgressBar, Section } from '../components';
import { Window } from '../layouts';
export const BorgPanel = (props, context) => {
@@ -12,6 +12,9 @@ export const BorgPanel = (props, context) => {
const upgrades = data.upgrades || [];
const ais = data.ais || [];
const laws = data.laws || [];
+
+ const active_upgrades = data.active_upgrades || [];
+ const ka_remaining_capacity = data.ka_remaining_capacity || 0;
return (
{
))}
- {upgrades.map(upgrade => (
- act('toggle_upgrade', {
- upgrade: upgrade.type,
- })} />
- ))}
+ {upgrades.map(upgrade => {
+ if (!upgrade.module_type
+ || (upgrade.module_type.includes(borg.active_module))) {
+ const installedCount
+ = active_upgrades.filter(installed_upgrade =>
+ installed_upgrade.type === upgrade.type).length;
+ const isInstalled = installedCount > 0;
+ return (
+ <>
+ 1)
+ && upgrade.cost
+ !== null ? `(${installedCount} installed)` : ''}`
+ : upgrade.name}
+ selected={isInstalled}
+ onClick={() => act('toggle_upgrade', {
+ upgrade: upgrade.type,
+ })} />
+ {
+ (!upgrade.denied_type || upgrade.maximum_of_type > 1)
+ && upgrade.cost !== null
+ ? (
+ <>
+ }
+ disabled={ka_remaining_capacity < upgrade.cost
+ || (upgrade.denied_type
+ && (installedCount === upgrade.maximum_of_type))}
+ onClick={() => act('add_upgrade', {
+ upgrade: upgrade.type,
+ })}
+ />
+ }
+ disabled={!isInstalled}
+ onClick={() => act('remove_upgrade', {
+ upgrade: upgrade.type,
+ })}
+ />
+ >
+ ) : ""
+ }
+ >
+ );
+ } })}
+ {
+ ka_remaining_capacity !== null
+ && (
+
+ {ka_remaining_capacity}
+
+ )
+ }
{ais.map(ai => (
{
)}
{tab_sub === 2 && (
- {borgUpgrades.map(upgrade => (
-
- {upgrade}
-
- ))}
+ {borgUpgrades.filter((upgrade, index, arr) =>
+ arr.indexOf(upgrade) === index).map(upgrade => {
+ const upgradeCount = borgUpgrades.filter(u =>
+ u === upgrade).length;
+ return (
+
+ {upgrade} {upgradeCount > 1 ? `x${upgradeCount}` : ''}
+
+ );
+ })}
)}
{tab_sub === 3 && (
diff --git a/tgui/yarn.lock b/tgui/yarn.lock
index c6e43316de..b3fc395c16 100644
--- a/tgui/yarn.lock
+++ b/tgui/yarn.lock
@@ -23,6 +23,16 @@ __metadata:
languageName: node
linkType: hard
+"@babel/code-frame@npm:^7.22.13":
+ version: 7.22.13
+ resolution: "@babel/code-frame@npm:7.22.13"
+ dependencies:
+ "@babel/highlight": ^7.22.13
+ chalk: ^2.4.2
+ checksum: 22e342c8077c8b77eeb11f554ecca2ba14153f707b85294fcf6070b6f6150aae88a7b7436dd88d8c9289970585f3fe5b9b941c5aa3aa26a6d5a8ef3f292da058
+ languageName: node
+ linkType: hard
+
"@babel/compat-data@npm:^7.13.11, @babel/compat-data@npm:^7.14.7, @babel/compat-data@npm:^7.15.0":
version: 7.15.0
resolution: "@babel/compat-data@npm:7.15.0"
@@ -78,6 +88,18 @@ __metadata:
languageName: node
linkType: hard
+"@babel/generator@npm:^7.23.0":
+ version: 7.23.0
+ resolution: "@babel/generator@npm:7.23.0"
+ dependencies:
+ "@babel/types": ^7.23.0
+ "@jridgewell/gen-mapping": ^0.3.2
+ "@jridgewell/trace-mapping": ^0.3.17
+ jsesc: ^2.5.1
+ checksum: 8efe24adad34300f1f8ea2add420b28171a646edc70f2a1b3e1683842f23b8b7ffa7e35ef0119294e1901f45bfea5b3dc70abe1f10a1917ccdfb41bed69be5f1
+ languageName: node
+ linkType: hard
+
"@babel/helper-annotate-as-pure@npm:^7.14.5":
version: 7.14.5
resolution: "@babel/helper-annotate-as-pure@npm:7.14.5"
@@ -157,6 +179,13 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-environment-visitor@npm:^7.22.20":
+ version: 7.22.20
+ resolution: "@babel/helper-environment-visitor@npm:7.22.20"
+ checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69
+ languageName: node
+ linkType: hard
+
"@babel/helper-explode-assignable-expression@npm:^7.14.5":
version: 7.14.5
resolution: "@babel/helper-explode-assignable-expression@npm:7.14.5"
@@ -177,6 +206,16 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-function-name@npm:^7.23.0":
+ version: 7.23.0
+ resolution: "@babel/helper-function-name@npm:7.23.0"
+ dependencies:
+ "@babel/template": ^7.22.15
+ "@babel/types": ^7.23.0
+ checksum: e44542257b2d4634a1f979244eb2a4ad8e6d75eb6761b4cfceb56b562f7db150d134bc538c8e6adca3783e3bc31be949071527aa8e3aab7867d1ad2d84a26e10
+ languageName: node
+ linkType: hard
+
"@babel/helper-get-function-arity@npm:^7.14.5":
version: 7.14.5
resolution: "@babel/helper-get-function-arity@npm:7.14.5"
@@ -195,6 +234,15 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-hoist-variables@npm:^7.22.5":
+ version: 7.22.5
+ resolution: "@babel/helper-hoist-variables@npm:7.22.5"
+ dependencies:
+ "@babel/types": ^7.22.5
+ checksum: 394ca191b4ac908a76e7c50ab52102669efe3a1c277033e49467913c7ed6f7c64d7eacbeabf3bed39ea1f41731e22993f763b1edce0f74ff8563fd1f380d92cc
+ languageName: node
+ linkType: hard
+
"@babel/helper-member-expression-to-functions@npm:^7.15.0":
version: 7.15.0
resolution: "@babel/helper-member-expression-to-functions@npm:7.15.0"
@@ -295,6 +343,22 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-split-export-declaration@npm:^7.22.6":
+ version: 7.22.6
+ resolution: "@babel/helper-split-export-declaration@npm:7.22.6"
+ dependencies:
+ "@babel/types": ^7.22.5
+ checksum: e141cace583b19d9195f9c2b8e17a3ae913b7ee9b8120246d0f9ca349ca6f03cb2c001fd5ec57488c544347c0bb584afec66c936511e447fd20a360e591ac921
+ languageName: node
+ linkType: hard
+
+"@babel/helper-string-parser@npm:^7.22.5":
+ version: 7.22.5
+ resolution: "@babel/helper-string-parser@npm:7.22.5"
+ checksum: 836851ca5ec813077bbb303acc992d75a360267aa3b5de7134d220411c852a6f17de7c0d0b8c8dcc0f567f67874c00f4528672b2a4f1bc978a3ada64c8c78467
+ languageName: node
+ linkType: hard
+
"@babel/helper-validator-identifier@npm:^7.14.5, @babel/helper-validator-identifier@npm:^7.14.9":
version: 7.14.9
resolution: "@babel/helper-validator-identifier@npm:7.14.9"
@@ -302,6 +366,13 @@ __metadata:
languageName: node
linkType: hard
+"@babel/helper-validator-identifier@npm:^7.22.20":
+ version: 7.22.20
+ resolution: "@babel/helper-validator-identifier@npm:7.22.20"
+ checksum: 136412784d9428266bcdd4d91c32bcf9ff0e8d25534a9d94b044f77fe76bc50f941a90319b05aafd1ec04f7d127cd57a179a3716009ff7f3412ef835ada95bdc
+ languageName: node
+ linkType: hard
+
"@babel/helper-validator-option@npm:^7.14.5":
version: 7.14.5
resolution: "@babel/helper-validator-option@npm:7.14.5"
@@ -343,6 +414,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/highlight@npm:^7.22.13":
+ version: 7.22.20
+ resolution: "@babel/highlight@npm:7.22.20"
+ dependencies:
+ "@babel/helper-validator-identifier": ^7.22.20
+ chalk: ^2.4.2
+ js-tokens: ^4.0.0
+ checksum: 84bd034dca309a5e680083cd827a766780ca63cef37308404f17653d32366ea76262bd2364b2d38776232f2d01b649f26721417d507e8b4b6da3e4e739f6d134
+ languageName: node
+ linkType: hard
+
"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.5, @babel/parser@npm:^7.15.0, @babel/parser@npm:^7.7.2":
version: 7.15.3
resolution: "@babel/parser@npm:7.15.3"
@@ -352,6 +434,15 @@ __metadata:
languageName: node
linkType: hard
+"@babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0":
+ version: 7.23.0
+ resolution: "@babel/parser@npm:7.23.0"
+ bin:
+ parser: ./bin/babel-parser.js
+ checksum: 453fdf8b9e2c2b7d7b02139e0ce003d1af21947bbc03eb350fb248ee335c9b85e4ab41697ddbdd97079698de825a265e45a0846bb2ed47a2c7c1df833f42a354
+ languageName: node
+ linkType: hard
+
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.14.5":
version: 7.14.5
resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.14.5"
@@ -1282,20 +1373,32 @@ __metadata:
languageName: node
linkType: hard
-"@babel/traverse@npm:^7.1.0, @babel/traverse@npm:^7.13.0, @babel/traverse@npm:^7.14.5, @babel/traverse@npm:^7.15.0, @babel/traverse@npm:^7.7.2":
- version: 7.15.0
- resolution: "@babel/traverse@npm:7.15.0"
+"@babel/template@npm:^7.22.15":
+ version: 7.22.15
+ resolution: "@babel/template@npm:7.22.15"
dependencies:
- "@babel/code-frame": ^7.14.5
- "@babel/generator": ^7.15.0
- "@babel/helper-function-name": ^7.14.5
- "@babel/helper-hoist-variables": ^7.14.5
- "@babel/helper-split-export-declaration": ^7.14.5
- "@babel/parser": ^7.15.0
- "@babel/types": ^7.15.0
+ "@babel/code-frame": ^7.22.13
+ "@babel/parser": ^7.22.15
+ "@babel/types": ^7.22.15
+ checksum: 1f3e7dcd6c44f5904c184b3f7fe280394b191f2fed819919ffa1e529c259d5b197da8981b6ca491c235aee8dbad4a50b7e31304aa531271cb823a4a24a0dd8fd
+ languageName: node
+ linkType: hard
+
+"@babel/traverse@npm:^7.1.0, @babel/traverse@npm:^7.13.0, @babel/traverse@npm:^7.14.5, @babel/traverse@npm:^7.15.0, @babel/traverse@npm:^7.7.2":
+ version: 7.23.2
+ resolution: "@babel/traverse@npm:7.23.2"
+ dependencies:
+ "@babel/code-frame": ^7.22.13
+ "@babel/generator": ^7.23.0
+ "@babel/helper-environment-visitor": ^7.22.20
+ "@babel/helper-function-name": ^7.23.0
+ "@babel/helper-hoist-variables": ^7.22.5
+ "@babel/helper-split-export-declaration": ^7.22.6
+ "@babel/parser": ^7.23.0
+ "@babel/types": ^7.23.0
debug: ^4.1.0
globals: ^11.1.0
- checksum: e13056690a2a4a4dd699e241b89d4f7cf701ceef2f4ee0efc32a8cc4e07e1bbd397423868ecfec8aa98a769486f7d08778420d48f981b4f5dbb1b2f211daf656
+ checksum: 26a1eea0dde41ab99dde8b9773a013a0dc50324e5110a049f5d634e721ff08afffd54940b3974a20308d7952085ac769689369e9127dea655f868c0f6e1ab35d
languageName: node
linkType: hard
@@ -1309,6 +1412,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0":
+ version: 7.23.0
+ resolution: "@babel/types@npm:7.23.0"
+ dependencies:
+ "@babel/helper-string-parser": ^7.22.5
+ "@babel/helper-validator-identifier": ^7.22.20
+ to-fast-properties: ^2.0.0
+ checksum: 215fe04bd7feef79eeb4d33374b39909ce9cad1611c4135a4f7fdf41fe3280594105af6d7094354751514625ea92d0875aba355f53e86a92600f290e77b0e604
+ languageName: node
+ linkType: hard
+
"@bcoe/v8-coverage@npm:^0.2.3":
version: 0.2.3
resolution: "@bcoe/v8-coverage@npm:0.2.3"
@@ -1590,6 +1704,17 @@ __metadata:
languageName: node
linkType: hard
+"@jridgewell/gen-mapping@npm:^0.3.2":
+ version: 0.3.3
+ resolution: "@jridgewell/gen-mapping@npm:0.3.3"
+ dependencies:
+ "@jridgewell/set-array": ^1.0.1
+ "@jridgewell/sourcemap-codec": ^1.4.10
+ "@jridgewell/trace-mapping": ^0.3.9
+ checksum: 4a74944bd31f22354fc01c3da32e83c19e519e3bbadafa114f6da4522ea77dd0c2842607e923a591d60a76699d819a2fbb6f3552e277efdb9b58b081390b60ab
+ languageName: node
+ linkType: hard
+
"@jridgewell/resolve-uri@npm:3.1.0":
version: 3.1.0
resolution: "@jridgewell/resolve-uri@npm:3.1.0"
@@ -1597,6 +1722,13 @@ __metadata:
languageName: node
linkType: hard
+"@jridgewell/resolve-uri@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "@jridgewell/resolve-uri@npm:3.1.1"
+ checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653
+ languageName: node
+ linkType: hard
+
"@jridgewell/set-array@npm:^1.0.1":
version: 1.1.2
resolution: "@jridgewell/set-array@npm:1.1.2"
@@ -1621,6 +1753,23 @@ __metadata:
languageName: node
linkType: hard
+"@jridgewell/sourcemap-codec@npm:^1.4.14":
+ version: 1.4.15
+ resolution: "@jridgewell/sourcemap-codec@npm:1.4.15"
+ checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8
+ languageName: node
+ linkType: hard
+
+"@jridgewell/trace-mapping@npm:^0.3.17":
+ version: 0.3.19
+ resolution: "@jridgewell/trace-mapping@npm:0.3.19"
+ dependencies:
+ "@jridgewell/resolve-uri": ^3.1.0
+ "@jridgewell/sourcemap-codec": ^1.4.14
+ checksum: 956a6f0f6fec060fb48c6bf1f5ec2064e13cd38c8be3873877d4b92b4a27ba58289a34071752671262a3e3c202abcc3fa2aac64d8447b4b0fa1ba3c9047f1c20
+ languageName: node
+ linkType: hard
+
"@jridgewell/trace-mapping@npm:^0.3.9":
version: 0.3.17
resolution: "@jridgewell/trace-mapping@npm:0.3.17"
@@ -2473,12 +2622,14 @@ __metadata:
languageName: node
linkType: hard
-"axios@npm:^0.21.1":
- version: 0.21.1
- resolution: "axios@npm:0.21.1"
+"axios@npm:^1.6.0":
+ version: 1.6.1
+ resolution: "axios@npm:1.6.1"
dependencies:
- follow-redirects: ^1.10.0
- checksum: c87915fa0b18c15c63350112b6b3563a3e2ae524d7707de0a73d2e065e0d30c5d3da8563037bc29d4cc1b7424b5a350cb7274fa52525c6c04a615fe561c6ab11
+ follow-redirects: ^1.15.0
+ form-data: ^4.0.0
+ proxy-from-env: ^1.1.0
+ checksum: 573f03f59b7487d54551b16f5e155d1d130ad4864ed32d1da93d522b78a57123b34e3bde37f822a65ee297e79f1db840f9ad6514addff50d3cbf5caeed39e8dc
languageName: node
linkType: hard
@@ -2835,7 +2986,7 @@ __metadata:
languageName: node
linkType: hard
-"chalk@npm:^2.0.0":
+"chalk@npm:^2.0.0, chalk@npm:^2.4.2":
version: 2.4.2
resolution: "chalk@npm:2.4.2"
dependencies:
@@ -4032,13 +4183,13 @@ __metadata:
languageName: node
linkType: hard
-"follow-redirects@npm:^1.10.0":
- version: 1.15.2
- resolution: "follow-redirects@npm:1.15.2"
+"follow-redirects@npm:^1.15.0":
+ version: 1.15.3
+ resolution: "follow-redirects@npm:1.15.3"
peerDependenciesMeta:
debug:
optional: true
- checksum: faa66059b66358ba65c234c2f2a37fcec029dc22775f35d9ad6abac56003268baf41e55f9ee645957b32c7d9f62baf1f0b906e68267276f54ec4b4c597c2b190
+ checksum: 584da22ec5420c837bd096559ebfb8fe69d82512d5585004e36a3b4a6ef6d5905780e0c74508c7b72f907d1fa2b7bd339e613859e9c304d0dc96af2027fd0231
languageName: node
linkType: hard
@@ -4060,6 +4211,17 @@ __metadata:
languageName: node
linkType: hard
+"form-data@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "form-data@npm:4.0.0"
+ dependencies:
+ asynckit: ^0.4.0
+ combined-stream: ^1.0.8
+ mime-types: ^2.1.12
+ checksum: 01135bf8675f9d5c61ff18e2e2932f719ca4de964e3be90ef4c36aacfc7b9cb2fceb5eca0b7e0190e3383fe51c5b37f4cb80b62ca06a99aaabfcfd6ac7c9328c
+ languageName: node
+ linkType: hard
+
"form-data@npm:~2.3.2":
version: 2.3.3
resolution: "form-data@npm:2.3.3"
@@ -4382,9 +4544,9 @@ __metadata:
linkType: hard
"http-cache-semantics@npm:^4.1.0":
- version: 4.1.0
- resolution: "http-cache-semantics@npm:4.1.0"
- checksum: 974de94a81c5474be07f269f9fd8383e92ebb5a448208223bfb39e172a9dbc26feff250192ecc23b9593b3f92098e010406b0f24bd4d588d631f80214648ed42
+ version: 4.1.1
+ resolution: "http-cache-semantics@npm:4.1.1"
+ checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236
languageName: node
linkType: hard
@@ -5945,6 +6107,13 @@ __metadata:
languageName: node
linkType: hard
+"minipass@npm:^5.0.0":
+ version: 5.0.0
+ resolution: "minipass@npm:5.0.0"
+ checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea
+ languageName: node
+ linkType: hard
+
"minizlib@npm:^2.0.0, minizlib@npm:^2.1.1":
version: 2.1.2
resolution: "minizlib@npm:2.1.2"
@@ -5987,12 +6156,12 @@ __metadata:
languageName: node
linkType: hard
-"nanoid@npm:^3.1.23":
- version: 3.3.4
- resolution: "nanoid@npm:3.3.4"
+"nanoid@npm:^3.3.6":
+ version: 3.3.6
+ resolution: "nanoid@npm:3.3.6"
bin:
nanoid: bin/nanoid.cjs
- checksum: 2fddd6dee994b7676f008d3ffa4ab16035a754f4bb586c61df5a22cf8c8c94017aadd360368f47d653829e0569a92b129979152ff97af23a558331e47e37cd9c
+ checksum: 7d0eda657002738aa5206107bd0580aead6c95c460ef1bdd0b1a87a9c7ae6277ac2e9b945306aaa5b32c6dcb7feaf462d0f552e7f8b5718abfc6ead5c94a71b3
languageName: node
linkType: hard
@@ -6420,9 +6589,9 @@ __metadata:
linkType: hard
"path-parse@npm:^1.0.6":
- version: 1.0.6
- resolution: "path-parse@npm:1.0.6"
- checksum: 962a85dd384d68d469ec5ba4010df8f8f9b7e936ce603bbe3211476c5615feb3c2b1ca61211a78445fadc833f0b1a86ea6484c861035ec4ac93011ba9aff9a11
+ version: 1.0.7
+ resolution: "path-parse@npm:1.0.7"
+ checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a
languageName: node
linkType: hard
@@ -6440,6 +6609,13 @@ __metadata:
languageName: node
linkType: hard
+"picocolors@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "picocolors@npm:1.0.0"
+ checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981
+ languageName: node
+ linkType: hard
+
"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3":
version: 2.3.0
resolution: "picomatch@npm:2.3.0"
@@ -6529,13 +6705,13 @@ __metadata:
linkType: hard
"postcss@npm:^8.2.15":
- version: 8.3.6
- resolution: "postcss@npm:8.3.6"
+ version: 8.4.31
+ resolution: "postcss@npm:8.4.31"
dependencies:
- colorette: ^1.2.2
- nanoid: ^3.1.23
- source-map-js: ^0.6.2
- checksum: ff55b91bea21f42c2a94d77fd05c3f66dd15889c68506cf1dbb9cdee8c3b9e9d0e219bcbc6e61a107bd63e3cac0670176486e2a5794c106a4e1b9babceb79317
+ nanoid: ^3.3.6
+ picocolors: ^1.0.0
+ source-map-js: ^1.0.2
+ checksum: 1d8611341b073143ad90486fcdfeab49edd243377b1f51834dc4f6d028e82ce5190e4f11bb2633276864503654fb7cab28e67abdc0fbf9d1f88cad4a0ff0beea
languageName: node
linkType: hard
@@ -6617,6 +6793,13 @@ __metadata:
languageName: node
linkType: hard
+"proxy-from-env@npm:^1.1.0":
+ version: 1.1.0
+ resolution: "proxy-from-env@npm:1.1.0"
+ checksum: ed7fcc2ba0a33404958e34d95d18638249a68c430e30fcb6c478497d72739ba64ce9810a24f53a7d921d0c065e5b78e3822759800698167256b04659366ca4d4
+ languageName: node
+ linkType: hard
+
"psl@npm:^1.1.28, psl@npm:^1.1.33":
version: 1.8.0
resolution: "psl@npm:1.8.0"
@@ -7046,11 +7229,11 @@ resolve@^2.0.0-next.3:
linkType: hard
"semver@npm:^6.0.0, semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.3.0":
- version: 6.3.0
- resolution: "semver@npm:6.3.0"
+ version: 6.3.1
+ resolution: "semver@npm:6.3.1"
bin:
- semver: ./bin/semver.js
- checksum: 1b26ecf6db9e8292dd90df4e781d91875c0dcc1b1909e70f5d12959a23c7eebb8f01ea581c00783bbee72ceeaad9505797c381756326073850dc36ed284b21b9
+ semver: bin/semver.js
+ checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2
languageName: node
linkType: hard
@@ -7223,10 +7406,10 @@ resolve@^2.0.0-next.3:
languageName: node
linkType: hard
-"source-map-js@npm:^0.6.2":
- version: 0.6.2
- resolution: "source-map-js@npm:0.6.2"
- checksum: 9c8151a29e00fd8d3ba87709fdf9a9ce48313d653f4a29a39b4ae53d346ac79e005de624796ff42eff55cbaf26d2e87f4466001ca87831d400d818c5cf146a0e
+"source-map-js@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "source-map-js@npm:1.0.2"
+ checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c
languageName: node
linkType: hard
@@ -7592,16 +7775,16 @@ resolve@^2.0.0-next.3:
linkType: hard
"tar@npm:^6.0.2, tar@npm:^6.1.0":
- version: 6.1.8
- resolution: "tar@npm:6.1.8"
+ version: 6.2.0
+ resolution: "tar@npm:6.2.0"
dependencies:
chownr: ^2.0.0
fs-minipass: ^2.0.0
- minipass: ^3.0.0
+ minipass: ^5.0.0
minizlib: ^2.1.1
mkdirp: ^1.0.3
yallist: ^4.0.0
- checksum: f5aa41340d3415ef6f19ed0ee620db1f7cb9ea3f5ea7bfef5ea199bdb39e978d11f31d347231193e0d9262f81de3e358aa3dda6ed0c1909f22a8ce3e3a743dad
+ checksum: db4d9fe74a2082c3a5016630092c54c8375ff3b280186938cfd104f2e089c4fd9bad58688ef6be9cf186a889671bf355c7cda38f09bbf60604b281715ca57f5c
languageName: node
linkType: hard
@@ -7675,7 +7858,7 @@ resolve@^2.0.0-next.3:
version: 0.0.0-use.local
resolution: "tgui-dev-server@workspace:packages/tgui-dev-server"
dependencies:
- axios: ^0.21.1
+ axios: ^1.6.0
glob: ^7.1.7
source-map: ^0.7.3
stacktrace-parser: ^0.1.10
@@ -7784,9 +7967,9 @@ resolve@^2.0.0-next.3:
linkType: hard
"tmpl@npm:1.0.x":
- version: 1.0.4
- resolution: "tmpl@npm:1.0.4"
- checksum: 72c93335044b5b8771207d2e9cf71e8c26b110d0f0f924f6d6c06b509d89552c7c0e4086a574ce4f05110ac40c1faf6277ecba7221afeb57ebbab70d8de39cc4
+ version: 1.0.5
+ resolution: "tmpl@npm:1.0.5"
+ checksum: cd922d9b853c00fe414c5a774817be65b058d54a2d01ebb415840960406c669a0fc632f66df885e24cb022ec812739199ccbdb8d1164c3e513f85bfca5ab2873
languageName: node
linkType: hard
@@ -8439,9 +8622,9 @@ typescript@^4.3.5:
linkType: hard
"word-wrap@npm:^1.2.3, word-wrap@npm:~1.2.3":
- version: 1.2.3
- resolution: "word-wrap@npm:1.2.3"
- checksum: 30b48f91fcf12106ed3186ae4fa86a6a1842416df425be7b60485de14bec665a54a68e4b5156647dec3a70f25e84d270ca8bc8cd23182ed095f5c7206a938c1f
+ version: 1.2.5
+ resolution: "word-wrap@npm:1.2.5"
+ checksum: f93ba3586fc181f94afdaff3a6fef27920b4b6d9eaefed0f428f8e07adea2a7f54a5f2830ce59406c8416f033f86902b91eb824072354645eea687dff3691ccb
languageName: node
linkType: hard
diff --git a/tools/bootstrap/node.bat b/tools/bootstrap/node.bat
index ba3e52cb08..89e235a759 100644
--- a/tools/bootstrap/node.bat
+++ b/tools/bootstrap/node.bat
@@ -1,11 +1,5 @@
@echo off
-where node.exe >nul 2>nul
-if %errorlevel% == 0 (
- echo | set /p printed_str="Using system-wide Node "
- call node.exe --version
- call node.exe %*
- goto exit_with_last_error_level
-)
+set NODE_SKIP_PLATFORM_CHECK=1
call powershell -NoLogo -ExecutionPolicy Bypass -File "%~dp0\node_.ps1" Download-Node
for /f "tokens=* USEBACKQ" %%s in (`
call powershell -NoLogo -ExecutionPolicy Bypass -File "%~dp0\node_.ps1" Get-Path
diff --git a/tools/bootstrap/node_.ps1 b/tools/bootstrap/node_.ps1
index 38538c14f2..ac8d3b343f 100644
--- a/tools/bootstrap/node_.ps1
+++ b/tools/bootstrap/node_.ps1
@@ -30,8 +30,8 @@ if ($Env:TG_BOOTSTRAP_CACHE) {
$Cache = $Env:TG_BOOTSTRAP_CACHE
}
$NodeVersion = Extract-Variable -Path "$BaseDir\..\..\dependencies.sh" -Key "NODE_VERSION_PRECISE"
-$NodeSource = "https://nodejs.org/download/release/v$NodeVersion/win-x86/node.exe"
-$NodeTargetDir = "$Cache\node-v$NodeVersion"
+$NodeSource = "https://nodejs.org/download/release/v$NodeVersion/win-x64/node.exe"
+$NodeTargetDir = "$Cache\node-v$NodeVersion-x64"
$NodeTarget = "$NodeTargetDir\node.exe"
## Just print the path and exit
diff --git a/tools/requirements.txt b/tools/requirements.txt
index af387db66f..059bd45d7e 100644
--- a/tools/requirements.txt
+++ b/tools/requirements.txt
@@ -1,6 +1,6 @@
pygit2==1.0.1
bidict==0.13.1
-Pillow==9.3.0
+Pillow==10.0.1
# changelogs
PyYaml==5.4