diff --git a/.travis.yml b/.travis.yml
index a0a6ed28ae6..b6eb33966b7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,7 +5,7 @@ sudo: false
env:
BYOND_MAJOR="511"
BYOND_MINOR="1381"
- MACRO_COUNT=209
+ MACRO_COUNT=4
cache:
directories:
diff --git a/README.md b/README.md
index f7cb9e497a8..697c804848c 100644
--- a/README.md
+++ b/README.md
@@ -7,16 +7,18 @@ Polaris is a fork of the Baystation12 code branch for the game Spacestation13.
---
### LICENSE
-Polaris is licensed under the GNU Affero General Public License version 3, which can be found in full in LICENSE-AGPL3.txt.
+The code for Polaris is licensed under the [GNU Affero General Public License](http://www.gnu.org/licenses/agpl.html) version 3, which can be found in full in LICENSE-AGPL3.txt.
-Commits with a git authorship date prior to `1420675200 +0000` (2015/01/08 00:00) are licensed under the GNU General Public License version 3, which can be found in full in LICENSE-GPL3.txt.
+Code with a git authorship date prior to `1420675200 +0000` (2015/01/08 00:00) are licensed under the GNU General Public License version 3, which can be found in full in LICENSE-GPL3.txt.
-All commits whose authorship dates are not prior to `1420675200 +0000` are assumed to be licensed under AGPL v3, if you wish to license under GPL v3 please make this clear in the commit message and any added files.
+All code whose authorship dates are not prior to `1420675200 +0000` are assumed to be licensed under AGPL v3, if you wish to license under GPL v3 please make this clear in the commit message and any added files.
-If you wish to develop and host this codebase in a closed source manner you may use all commits prior to `1420675200 +0000`, which are licensed under GPL v3. The major change here is that if you host a server using any code licensed under AGPLv3 you are required to provide full source code for your servers users as well including addons and modifications you have made.
+If you wish to develop and host this codebase in a closed source manner you may use all code prior to `1420675200 +0000`, which are licensed under GPL v3. The major change here is that if you host a server using any code licensed under AGPLv3 you are required to provide full source code for your servers users as well including addons and modifications you have made.
See [here](https://www.gnu.org/licenses/why-affero-gpl.html) for more information.
+All assets including icons and sound are under a [CC BY-SA 3.0](http://creativecommons.org/licenses/by-sa/3.0/) license unless otherwise indicated.
+
### GETTING THE CODE
The simplest way to obtain the code is using the github .zip feature.
diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
index 3fccbb50f33..07e3f12524d 100644
--- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
+++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
@@ -107,6 +107,7 @@
"filter_co2" = ("carbon_dioxide" in scrubbing_gas),
"filter_phoron" = ("phoron" in scrubbing_gas),
"filter_n2o" = ("sleeping_agent" in scrubbing_gas),
+ "filter_fuel" = ("volatile_fuel" in scrubbing_gas),
"sigtype" = "status"
)
if(!initial_loc.air_scrub_names[id_tag])
@@ -233,6 +234,11 @@
else if(signal.data["toggle_n2o_scrub"])
toggle += "sleeping_agent"
+ if(!isnull(signal.data["fuel_scrub"]) && text2num(signal.data["fuel_scrub"]) != ("volatile_fuel" in scrubbing_gas))
+ toggle += "volatile_fuel"
+ else if(signal.data["toggle_fuel_scrub"])
+ toggle += "volatile_fuel"
+
scrubbing_gas ^= toggle
if(signal.data["init"] != null)
diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm
index f3b448ee490..89f01c8cd23 100644
--- a/code/__defines/misc.dm
+++ b/code/__defines/misc.dm
@@ -88,6 +88,11 @@
#define SHUTTLE_WARMUP 1
#define SHUTTLE_INTRANSIT 2
+// Sound defines for shuttles.
+#define HYPERSPACE_WARMUP 0
+#define HYPERSPACE_PROGRESS 1
+#define HYPERSPACE_END 2
+
// Ferry shuttle processing status.
#define IDLE_STATE 0
#define WAIT_LAUNCH 1
diff --git a/code/_helpers/type2type.dm b/code/_helpers/type2type.dm
index 8dc9cb020b1..975e65e3ec3 100644
--- a/code/_helpers/type2type.dm
+++ b/code/_helpers/type2type.dm
@@ -80,7 +80,9 @@
if (NORTHEAST) return "northeast"
if (SOUTHEAST) return "southeast"
if (NORTHWEST) return "northwest"
- if (SOUTHWEST) return "southwest"
+ if (SOUTHWEST) return "southwest"
+ if (UP) return "up"
+ if (DOWN) return "down"
// Turns text into proper directions
/proc/text2dir(direction)
diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm
index ff0d8cdd5b0..f3b696ad281 100644
--- a/code/_onclick/hud/robot.dm
+++ b/code/_onclick/hud/robot.dm
@@ -243,7 +243,7 @@ var/obj/screen/robot_inventory
//Unfortunately adding the emag module to the list of modules has to be here. This is because a borg can
//be emagged before they actually select a module. - or some situation can cause them to get a new module
// - or some situation might cause them to get de-emagged or something.
- if(r.emagged)
+ if(r.emagged || r.emag_items)
if(!(r.module.emag in r.module.modules))
r.module.modules.Add(r.module.emag)
else
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index 0b524befec5..cb49518bd84 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -407,7 +407,7 @@
else if (href_list["obj_announce"])
var/obj_count = 1
- current << "\blue Your current objectives:"
+ current << "Your current objectives:"
for(var/datum/objective/objective in objectives)
current << "Objective #[obj_count]: [objective.explanation_text]"
obj_count++
diff --git a/code/datums/supplypacks/engineering.dm b/code/datums/supplypacks/engineering.dm
index 0cf0e1f52a3..ad251c5f7e0 100644
--- a/code/datums/supplypacks/engineering.dm
+++ b/code/datums/supplypacks/engineering.dm
@@ -200,3 +200,52 @@
/obj/item/weapon/stock_parts/matter_bin,
/obj/item/weapon/circuitboard/pacman/super
)
+
+/datum/supply_packs/eng/fusion_core
+ name = "R-UST Mk. 8 Tokamak fusion core crate"
+ cost = 50
+ containername = "R-UST Mk. 8 Tokamak Fusion Core crate"
+ containertype = /obj/structure/closet/crate/secure/engineering
+ access = access_engine
+ contains = list(
+ /obj/item/weapon/book/manual/rust_engine,
+ /obj/machinery/power/fusion_core,
+ /obj/item/weapon/circuitboard/fusion_core
+ )
+
+/datum/supply_packs/eng/fusion_fuel_injector
+ name = "R-UST Mk. 8 fuel injector crate"
+ cost = 30
+ containername = "R-UST Mk. 8 fuel injector crate"
+ containertype = /obj/structure/closet/crate/secure/engineering
+ access = access_engine
+ contains = list(
+ /obj/machinery/fusion_fuel_injector,
+ /obj/machinery/fusion_fuel_injector,
+ /obj/item/weapon/circuitboard/fusion_injector
+ )
+
+/datum/supply_packs/eng/gyrotron
+ name = "Gyrotron crate"
+ cost = 15
+ containername = "Gyrotron Crate"
+ containertype = /obj/structure/closet/crate/secure/engineering
+ access = access_engine
+ contains = list(
+ /obj/machinery/power/emitter/gyrotron,
+ /obj/item/weapon/circuitboard/gyrotron
+ )
+
+/datum/supply_packs/eng/fusion_fuel_compressor
+ name = "Fusion Fuel Compressor circuitry crate"
+ cost = 10
+ containername = "Fusion Fuel Compressor circuitry crate"
+ containertype = /obj/structure/closet/crate/engineering
+ contains = list(/obj/item/weapon/circuitboard/fusion_fuel_compressor)
+
+/datum/supply_packs/eng/tritium
+ name = "Tritium crate"
+ cost = 75
+ containername = "Tritium crate"
+ containertype = /obj/structure/closet/crate/engineering
+ contains = list(/obj/fiftyspawner/tritium)
\ No newline at end of file
diff --git a/code/datums/supplypacks/science.dm b/code/datums/supplypacks/science.dm
index 5aca6742295..c2f3a24159b 100644
--- a/code/datums/supplypacks/science.dm
+++ b/code/datums/supplypacks/science.dm
@@ -42,3 +42,17 @@
containertype = /obj/structure/closet/crate/hydroponics
containername = "Exotic Seeds crate"
access = access_hydroponics
+
+/datum/supply_packs/sci/integrated_circuit_printer
+ name = "Integrated circuit printer"
+ contains = list(/obj/item/device/integrated_circuit_printer = 2)
+ cost = 15
+ containertype = /obj/structure/closet/crate
+ containername = "Integrated circuit crate"
+
+/datum/supply_packs/sci/integrated_circuit_printer_upgrade
+ name = "Integrated circuit printer upgrade - advanced designs"
+ contains = list(/obj/item/weapon/disk/integrated_circuit/upgrade/advanced)
+ cost = 30
+ containertype = /obj/structure/closet/crate
+ containername = "Integrated circuit crate"
diff --git a/code/datums/uplink/medical.dm b/code/datums/uplink/medical.dm
index 0c616793ca1..c28fed46b96 100644
--- a/code/datums/uplink/medical.dm
+++ b/code/datums/uplink/medical.dm
@@ -39,6 +39,26 @@
item_cost = 10
path = /obj/item/weapon/storage/box/freezer
+/datum/uplink_item/item/medical/monkeycubes
+ name = "Box, Monkey Cubes"
+ item_cost = 10
+ path = /obj/item/weapon/storage/box/monkeycubes
+
+/datum/uplink_item/item/medical/farwacubes
+ name = "Box, Farwa Cubes"
+ item_cost = 10
+ path = /obj/item/weapon/storage/box/monkeycubes
+
+/datum/uplink_item/item/medical/neaeracubes
+ name = "Box, Neaera Cubes"
+ item_cost = 10
+ path = /obj/item/weapon/storage/box/monkeycubes/neaeracubes
+
+/datum/uplink_item/item/medical/stokcubes
+ name = "Box, Stok Cubes"
+ item_cost = 10
+ path = /obj/item/weapon/storage/box/monkeycubes/stokcubes
+
/datum/uplink_item/item/medical/surgery
name = "Surgery kit"
item_cost = 45
diff --git a/code/datums/uplink/uplink_items.dm b/code/datums/uplink/uplink_items.dm
index 0cb7ce1d1d4..94b1281dd37 100644
--- a/code/datums/uplink/uplink_items.dm
+++ b/code/datums/uplink/uplink_items.dm
@@ -5,7 +5,7 @@ var/datum/uplink/uplink = new()
var/list/datum/uplink_item/items
var/list/datum/uplink_category/categories
-/datum/uplink/New()
+/datum/uplink/New(var/type)
items_assoc = list()
items = init_subtypes(/datum/uplink_item)
categories = init_subtypes(/datum/uplink_category)
@@ -38,7 +38,8 @@ var/datum/uplink/uplink = new()
/datum/uplink_item/New()
..()
- antag_roles = list()
+ if(!antag_roles)
+ antag_roles = list()
@@ -85,8 +86,9 @@ var/datum/uplink/uplink = new()
for(var/antag_role in antag_roles)
var/datum/antagonist/antag = all_antag_types[antag_role]
- if(antag.is_antagonist(U.uplink_owner))
- return 1
+ if(!isnull(antag))
+ if(antag.is_antagonist(U.uplink_owner))
+ return 1
return 0
/datum/uplink_item/proc/cost(var/telecrystals, obj/item/device/uplink/U)
diff --git a/code/datums/uplink/visible_weapons.dm b/code/datums/uplink/visible_weapons.dm
index 1cd19faf0f9..ba9ce3660a1 100644
--- a/code/datums/uplink/visible_weapons.dm
+++ b/code/datums/uplink/visible_weapons.dm
@@ -99,10 +99,18 @@
item_cost = 40
path = /obj/item/weapon/gun/projectile/derringer
-/datum/uplink_item/item/visible_weapons/heavysniper
+/datum/uplink_item/item/visible_weapons/heavysnipermerc
name = "Anti-Materiel Rifle (14.5mm)"
item_cost = DEFAULT_TELECRYSTAL_AMOUNT
path = /obj/item/weapon/gun/projectile/heavysniper
+ antag_roles = list("mercenary")
+
+/datum/uplink_item/item/visible_weapons/heavysnipertraitor
+ name = "Anti-Materiel Rifle (14.5mm)"
+ desc = "A convenient collapsible rifle for covert assassination. Comes with 4 shots and its own secure carrying case."
+ item_cost = DEFAULT_TELECRYSTAL_AMOUNT
+ path = /obj/item/weapon/storage/secure/briefcase/rifle
+ antag_roles = list("traitor")
/datum/uplink_item/item/visible_weapons/tommygun
name = "Tommygun (.45)" // We're keeping this because it's CLASSY. -Spades
diff --git a/code/game/antagonist/outsider/mercenary.dm b/code/game/antagonist/outsider/mercenary.dm
index fb09e76a554..8e4b8826b47 100644
--- a/code/game/antagonist/outsider/mercenary.dm
+++ b/code/game/antagonist/outsider/mercenary.dm
@@ -17,7 +17,7 @@ var/datum/antagonist/mercenary/mercs
hard_cap = 4
hard_cap_round = 8
initial_spawn_req = 3
- initial_spawn_target = 4
+ initial_spawn_target = 3
/datum/antagonist/mercenary/New()
..()
diff --git a/code/game/antagonist/outsider/raider.dm b/code/game/antagonist/outsider/raider.dm
index 4124fc9af96..7ac0a4729b4 100644
--- a/code/game/antagonist/outsider/raider.dm
+++ b/code/game/antagonist/outsider/raider.dm
@@ -12,10 +12,10 @@ var/datum/antagonist/raider/raiders
flags = ANTAG_OVERRIDE_JOB | ANTAG_CLEAR_EQUIPMENT | ANTAG_CHOOSE_NAME | ANTAG_VOTABLE | ANTAG_SET_APPEARANCE | ANTAG_HAS_LEADER
antaghud_indicator = "hudmutineer"
- hard_cap = 6
- hard_cap_round = 10
+ hard_cap = 4
+ hard_cap_round = 8
initial_spawn_req = 3
- initial_spawn_target = 4
+ initial_spawn_target = 3
id_type = /obj/item/weapon/card/id/syndicate
diff --git a/code/game/gamemodes/changeling/powers/fake_death.dm b/code/game/gamemodes/changeling/powers/fake_death.dm
index 765dbb51e61..cae98164a0e 100644
--- a/code/game/gamemodes/changeling/powers/fake_death.dm
+++ b/code/game/gamemodes/changeling/powers/fake_death.dm
@@ -33,6 +33,9 @@
if(C.suiciding)
C.suiciding = 0
+ if(C.does_not_breathe)
+ C.does_not_breathe = 0 //This means they don't autoheal the oxy damage from the next step
+
if(C.stat != DEAD)
C.adjustOxyLoss(C.maxHealth * 2)
diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm
index b9418bfea9b..48f0f02bfca 100644
--- a/code/game/gamemodes/heist/heist.dm
+++ b/code/game/gamemodes/heist/heist.dm
@@ -7,9 +7,9 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind'
/datum/game_mode/heist
name = "Heist"
config_tag = "heist"
- required_players = 15
- required_players_secret = 15
- required_enemies = 4
+ required_players = 9
+ required_players_secret = 9
+ required_enemies = 3
round_description = "An unidentified bluespace signature is approaching the station!"
extended_round_description = "The Company's majority control of phoron in the system has marked the \
station to be a highly valuable target for many competing organizations and individuals. Being a \
diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm
index 098f9fd3292..e85af7e82b6 100644
--- a/code/game/gamemodes/nuclear/nuclear.dm
+++ b/code/game/gamemodes/nuclear/nuclear.dm
@@ -12,9 +12,9 @@ var/list/nuke_disks = list()
colony of sizable population and considerable wealth causes it to often be the target of various \
attempts of robbery, fraud and other malicious actions."
config_tag = "mercenary"
- required_players = 15
- required_players_secret = 15
- required_enemies = 4
+ required_players = 9
+ required_players_secret = 9
+ required_enemies = 3
end_on_antag_death = 0
var/nuke_off_station = 0 //Used for tracking if the syndies actually haul the nuke to the station
var/syndies_didnt_escape = 0 //Used for tracking if the syndies got the shuttle off of the z-level
diff --git a/code/game/gamemodes/technomancer/spells/blink.dm b/code/game/gamemodes/technomancer/spells/blink.dm
index 74eba8adb97..c0012c991c9 100644
--- a/code/game/gamemodes/technomancer/spells/blink.dm
+++ b/code/game/gamemodes/technomancer/spells/blink.dm
@@ -7,6 +7,7 @@
spell_power_desc = "Blink distance is scaled up with more spell power."
cost = 50
obj_path = /obj/item/weapon/spell/blink
+ ability_icon_state = "tech_blink"
category = UTILITY_SPELLS
/obj/item/weapon/spell/blink
diff --git a/code/game/gamemodes/technomancer/spells/control.dm b/code/game/gamemodes/technomancer/spells/control.dm
index 90b134b38fc..50549ca004f 100644
--- a/code/game/gamemodes/technomancer/spells/control.dm
+++ b/code/game/gamemodes/technomancer/spells/control.dm
@@ -7,6 +7,7 @@
around the entity is merely a hologram used to allow the user to know if the creature is safe or not."
cost = 100
obj_path = /obj/item/weapon/spell/control
+ ability_icon_state = "tech_control"
category = UTILITY_SPELLS
/mob/living/carbon/human/proc/technomancer_control()
diff --git a/code/game/gamemodes/technomancer/spells/oxygenate.dm b/code/game/gamemodes/technomancer/spells/oxygenate.dm
index fcc2cbcecf8..61c63672601 100644
--- a/code/game/gamemodes/technomancer/spells/oxygenate.dm
+++ b/code/game/gamemodes/technomancer/spells/oxygenate.dm
@@ -4,7 +4,7 @@
If casted on the envirnment, air (oxygen and nitrogen) is moved from a distant location to your target."
cost = 25
obj_path = /obj/item/weapon/spell/oxygenate
- ability_icon_state = "oxygenate"
+ ability_icon_state = "tech_oxygenate"
category = SUPPORT_SPELLS
/obj/item/weapon/spell/oxygenate
diff --git a/code/game/gamemodes/technomancer/spells/phase_shift.dm b/code/game/gamemodes/technomancer/spells/phase_shift.dm
index a79dfb7c37a..5b06a7e7045 100644
--- a/code/game/gamemodes/technomancer/spells/phase_shift.dm
+++ b/code/game/gamemodes/technomancer/spells/phase_shift.dm
@@ -4,12 +4,14 @@
rift you create will afflict you with instability."
cost = 50
obj_path = /obj/item/weapon/spell/phase_shift
+ ability_icon_state = "tech_phaseshift"
category = DEFENSIVE_SPELLS
/obj/item/weapon/spell/phase_shift
name = "phase shift"
desc = "Allows you to dodge your untimely fate by shifting your location somewhere else, so long as you can survive inside the \
rift."
+ icon_state = "blink"
cast_methods = CAST_USE
aspect = ASPECT_TELE
diff --git a/code/game/gamemodes/technomancer/spells/projectile/overload.dm b/code/game/gamemodes/technomancer/spells/projectile/overload.dm
index bb1432af4c6..50d6d22a95d 100644
--- a/code/game/gamemodes/technomancer/spells/projectile/overload.dm
+++ b/code/game/gamemodes/technomancer/spells/projectile/overload.dm
@@ -6,6 +6,7 @@
spell_power_desc = "Increases damage dealt, up to a cap of 80 damage per shot."
cost = 100
obj_path = /obj/item/weapon/spell/projectile/overload
+ ability_icon_state = "tech_overload"
category = OFFENSIVE_SPELLS
/obj/item/weapon/spell/projectile/overload
diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm
index 1344543b65b..5e8620fd109 100644
--- a/code/game/machinery/alarm.dm
+++ b/code/game/machinery/alarm.dm
@@ -548,6 +548,7 @@
scrubbers[scrubbers.len]["filters"] += list(list("name" = "Carbon Dioxide", "command" = "co2_scrub","val" = info["filter_co2"]))
scrubbers[scrubbers.len]["filters"] += list(list("name" = "Toxin" , "command" = "tox_scrub","val" = info["filter_phoron"]))
scrubbers[scrubbers.len]["filters"] += list(list("name" = "Nitrous Oxide", "command" = "n2o_scrub","val" = info["filter_n2o"]))
+ scrubbers[scrubbers.len]["filters"] += list(list("name" = "Fuel", "command" = "fuel_scrub","val" = info["filter_fuel"]))
data["scrubbers"] = scrubbers
if(AALARM_SCREEN_MODE)
var/modes[0]
@@ -654,6 +655,7 @@
"co2_scrub",
"tox_scrub",
"n2o_scrub",
+ "fuel_scrub",
"panic_siphon",
"scrubbing",
"direction")
diff --git a/code/game/machinery/atmoalter/scrubber.dm b/code/game/machinery/atmoalter/scrubber.dm
index 0fffc9dfa22..70a6b3c233f 100644
--- a/code/game/machinery/atmoalter/scrubber.dm
+++ b/code/game/machinery/atmoalter/scrubber.dm
@@ -17,7 +17,7 @@
var/minrate = 0
var/maxrate = 10 * ONE_ATMOSPHERE
- var/list/scrubbing_gas = list("phoron", "carbon_dioxide", "sleeping_agent")
+ var/list/scrubbing_gas = list("phoron", "carbon_dioxide", "sleeping_agent", "volatile_fuel")
/obj/machinery/portable_atmospherics/powered/scrubber/New()
..()
diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm
index c495100418e..d52300d13db 100644
--- a/code/game/machinery/computer/aifixer.dm
+++ b/code/game/machinery/computer/aifixer.dm
@@ -102,7 +102,7 @@
if (href_list["fix"])
src.active = 1
src.overlays += image(icon, "ai-fixer-on")
- while (src.occupant.health < 100)
+ while (src.occupant.getOxyLoss() > 0 || src.occupant.getFireLoss() > 0 || src.occupant.getToxLoss() > 0 || src.occupant.getBruteLoss() > 0)
src.occupant.adjustOxyLoss(-1)
src.occupant.adjustFireLoss(-1)
src.occupant.adjustToxLoss(-1)
diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm
index 72c9ae47afd..08a1282e52b 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -499,50 +499,10 @@
if(!ismob(grab.affecting))
return
-
- if(!check_occupant_allowed(grab.affecting))
- return
-
- var/willing = null //We don't want to allow people to be forced into despawning.
- var/mob/M = grab.affecting
-
- if(M.client)
- if(alert(M,"Would you like to enter long-term storage?",,"Yes","No") == "Yes")
- if(!M || !grab || !grab.affecting) return
- willing = 1
else
- willing = 1
+ go_in(grab.affecting,user)
- if(willing)
- visible_message("\The [user] starts putting [grab:affecting:name] into \the [src].", 3)
-
- if(do_after(user, 20))
- if(!M || !grab || !grab:affecting) return
-
- M.forceMove(src)
-
- if(M.client)
- M.client.perspective = EYE_PERSPECTIVE
- M.client.eye = src
-
- icon_state = occupied_icon_state
-
- M << "[on_enter_occupant_message]"
- M << "If you ghost, log out or close your client now, your character will shortly be permanently removed from the round."
- set_occupant(M)
- time_entered = world.time
- if(ishuman(M) && applies_stasis)
- var/mob/living/carbon/human/H = M
- H.Stasis(1000)
-
- // Book keeping!
- var/turf/location = get_turf(src)
- log_admin("[key_name_admin(M)] has entered a stasis pod. (JMP)")
- message_admins("[key_name_admin(M)] has entered a stasis pod.")
-
- //Despawning occurs when process() is called with an occupant without a client.
- add_fingerprint(M)
/obj/machinery/cryopod/verb/eject()
set name = "Eject Pod"
@@ -650,3 +610,61 @@
name = initial(name)
if(occupant)
name = "[name] ([occupant])"
+
+/obj/machinery/cryopod/MouseDrop_T(var/mob/target, var/mob/user)
+ if(user.stat || user.lying || !Adjacent(user) || !target.Adjacent(user))
+ return
+ go_in(target, user)
+
+/obj/machinery/cryopod/proc/go_in(var/mob/M, var/mob/user)
+ if(!check_occupant_allowed(M))
+ return
+ if(!M)
+ return
+ if(occupant)
+ to_chat(user,"\The [src] is already occupied.")
+ return
+
+ var/willing = null //We don't want to allow people to be forced into despawning.
+
+ if(M.client)
+ if(alert(M,"Would you like to enter long-term storage?",,"Yes","No") == "Yes")
+ if(!M) return
+ willing = 1
+ else
+ willing = 1
+
+ if(willing)
+ if(M == user)
+ visible_message("[usr] [on_enter_visible_message] [src].", 3)
+ else
+ visible_message("\The [user] starts putting [M] into \the [src].", 3)
+
+ if(do_after(user, 20))
+ if(occupant)
+ to_chat(user,"\The [src] is already occupied.")
+ return
+ M.forceMove(src)
+
+ if(M.client)
+ M.client.perspective = EYE_PERSPECTIVE
+ M.client.eye = src
+ else return
+
+ icon_state = occupied_icon_state
+
+ M << "[on_enter_occupant_message]"
+ M << "If you ghost, log out or close your client now, your character will shortly be permanently removed from the round."
+ set_occupant(M)
+ time_entered = world.time
+ if(ishuman(M) && applies_stasis)
+ var/mob/living/carbon/human/H = M
+ H.Stasis(1000)
+
+ // Book keeping!
+ var/turf/location = get_turf(src)
+ log_admin("[key_name_admin(M)] has entered a stasis pod. (JMP)")
+ message_admins("[key_name_admin(M)] has entered a stasis pod.")
+
+ //Despawning occurs when process() is called with an occupant without a client.
+ add_fingerprint(M)
\ No newline at end of file
diff --git a/code/game/objects/items/devices/uplink_random_lists.dm b/code/game/objects/items/devices/uplink_random_lists.dm
index f3533c5a012..38605da018c 100644
--- a/code/game/objects/items/devices/uplink_random_lists.dm
+++ b/code/game/objects/items/devices/uplink_random_lists.dm
@@ -57,7 +57,7 @@ var/datum/uplink_random_selection/all_uplink_selection = new/datum/uplink_random
items += new/datum/uplink_random_item(/datum/uplink_item/item/ammo/mc9mm)
items += new/datum/uplink_random_item(/datum/uplink_item/item/visible_weapons/revolver)
items += new/datum/uplink_random_item(/datum/uplink_item/item/ammo/a357)
- items += new/datum/uplink_random_item(/datum/uplink_item/item/visible_weapons/heavysniper, 15, 0)
+ items += new/datum/uplink_random_item(/datum/uplink_item/item/visible_weapons/heavysnipermerc, 15, 0)
items += new/datum/uplink_random_item(/datum/uplink_item/item/ammo/sniperammo, 15, 0)
items += new/datum/uplink_random_item(/datum/uplink_item/item/grenades/emp, 50)
items += new/datum/uplink_random_item(/datum/uplink_item/item/visible_weapons/crossbow, 33)
diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm
index 28179f7dbd7..4a7dc885976 100644
--- a/code/game/objects/items/robot/robot_upgrades.dm
+++ b/code/game/objects/items/robot/robot_upgrades.dm
@@ -156,8 +156,8 @@
/obj/item/borg/upgrade/syndicate/
- name = "illegal equipment module"
- desc = "Unlocks the hidden, deadlier functions of a robot"
+ name = "scrambled equipment module"
+ desc = "Unlocks new and often deadly module specific items of a robot"
icon_state = "cyborg_upgrade3"
item_state = "cyborg_upgrade"
require_module = 1
@@ -165,8 +165,8 @@
/obj/item/borg/upgrade/syndicate/action(var/mob/living/silicon/robot/R)
if(..()) return 0
- if(R.emagged == 1)
+ if(R.emag_items == 1)
return 0
- R.emagged = 1
+ R.emag_items = 1
return 1
diff --git a/code/game/objects/items/weapons/implants/implantcircuits.dm b/code/game/objects/items/weapons/implants/implantcircuits.dm
index db24be3c0af..856e7a5d8bf 100644
--- a/code/game/objects/items/weapons/implants/implantcircuits.dm
+++ b/code/game/objects/items/weapons/implants/implantcircuits.dm
@@ -1,5 +1,6 @@
/obj/item/weapon/implant/integrated_circuit
name = "electronic implant"
+ desc = "It's a case, for building very tiny electronics with."
icon = 'icons/obj/electronic_assemblies.dmi'
icon_state = "setup_implant"
var/obj/item/device/electronic_assembly/implant/IC = null
diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm
index eb38fa5aba8..533f5b30aaf 100644
--- a/code/game/objects/items/weapons/manuals.dm
+++ b/code/game/objects/items/weapons/manuals.dm
@@ -168,7 +168,6 @@
- This guide appears to have been scribbled in haste on the back of a WetSkrell magazine...
- Put uranium in the portable generator near the gyrotron and turn it to full. This is to provide initial power to the core.
diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm
index 169496ff6c5..abd965f6641 100644
--- a/code/game/objects/items/weapons/storage/secure.dm
+++ b/code/game/objects/items/weapons/storage/secure.dm
@@ -149,7 +149,9 @@
force = 8.0
throw_speed = 1
throw_range = 4
+ max_w_class = ITEMSIZE_NORMAL
w_class = ITEMSIZE_LARGE
+ max_storage_space = ITEMSIZE_COST_NORMAL * 4
attack_hand(mob/user as mob)
if ((src.loc == user) && (src.locked == 1))
diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm
index d5ac595c1eb..0c7ec201675 100644
--- a/code/game/objects/items/weapons/storage/uplink_kits.dm
+++ b/code/game/objects/items/weapons/storage/uplink_kits.dm
@@ -281,4 +281,17 @@
/obj/item/weapon/storage/box/syndie_kit/demolitions_super_heavy/New()
..()
new /obj/item/weapon/syndie/c4explosive/heavy/super_heavy(src)
- new /obj/item/weapon/screwdriver(src)
\ No newline at end of file
+ new /obj/item/weapon/screwdriver(src)
+
+
+/obj/item/weapon/storage/secure/briefcase/rifle
+ name = "secure briefcase"
+
+/obj/item/weapon/storage/secure/briefcase/rifle/New()
+ ..()
+ new /obj/item/sniper_rifle_part/barrel(src)
+ new /obj/item/sniper_rifle_part/stock(src)
+ new /obj/item/sniper_rifle_part/trigger_group(src)
+
+ for(var/i = 1 to 4)
+ new /obj/item/ammo_casing/a145(src)
diff --git a/code/modules/admin/IsBanned.dm b/code/modules/admin/IsBanned.dm
index f1005b59a52..39926e1414a 100644
--- a/code/modules/admin/IsBanned.dm
+++ b/code/modules/admin/IsBanned.dm
@@ -7,13 +7,13 @@ world/IsBanned(key,address,computer_id)
//Guest Checking
if(!config.guests_allowed && IsGuestKey(key))
log_access("Failed Login: [key] - Guests not allowed")
- message_admins("\blue Failed Login: [key] - Guests not allowed")
+ message_admins("Failed Login: [key] - Guests not allowed")
return list("reason"="guest", "desc"="\nReason: Guests not allowed. Please sign in with a byond account.")
//check if the IP address is a known TOR node
if(config && config.ToRban && ToRban_isbanned(address))
log_access("Failed Login: [src] - Banned: ToR")
- message_admins("\blue Failed Login: [src] - Banned: ToR")
+ message_admins("Failed Login: [src] - Banned: ToR")
//ban their computer_id and ckey for posterity
AddBan(ckey(key), computer_id, "Use of ToR", "Automated Ban", 0, 0)
return list("reason"="Using ToR", "desc"="\nReason: The network you are using to connect has been banned.\nIf you believe this is a mistake, please request help at [config.banappeals]")
@@ -25,7 +25,7 @@ world/IsBanned(key,address,computer_id)
. = CheckBan( ckey(key), computer_id, address )
if(.)
log_access("Failed Login: [key] [computer_id] [address] - Banned [.["reason"]]")
- message_admins("\blue Failed Login: [key] id:[computer_id] ip:[address] - Banned [.["reason"]]")
+ message_admins("Failed Login: [key] id:[computer_id] ip:[address] - Banned [.["reason"]]")
return .
return ..() //default pager ban stuff
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 2f9bca5f01b..6b3560a824f 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -673,7 +673,7 @@ proc/admin_notice(var/message, var/rights)
//This is basically how death alarms do it
var/obj/item/device/radio/headset/a = new /obj/item/device/radio/headset/ert(null)
- var/channel = input("Channel for message:","Channel", null) as null|anything in (list("Common") + a.keyslot1.channels + a.keyslot2.channels)
+ var/channel = input("Channel for message:","Channel", null) as null|anything in (list("Common") + a.keyslot2.channels) // + a.keyslot1.channels
if(channel) //They picked a channel
var/sender = input("Name of sender (max 75):", "Announcement", "Announcement Computer") as null|text
@@ -802,7 +802,7 @@ proc/admin_notice(var/message, var/rights)
else
world << "New players may now enter the game."
log_admin("[key_name(usr)] toggled new player game entering.")
- message_admins("\blue [key_name_admin(usr)] toggled new player game entering.", 1)
+ message_admins("[key_name_admin(usr)] toggled new player game entering.", 1)
world.update_status()
feedback_add_details("admin_verb","TE") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -828,7 +828,7 @@ proc/admin_notice(var/message, var/rights)
world << "You may now respawn."
else
world << "You may no longer respawn :("
- message_admins("\blue [key_name_admin(usr)] toggled respawn to [config.abandon_allowed ? "On" : "Off"].", 1)
+ message_admins("[key_name_admin(usr)] toggled respawn to [config.abandon_allowed ? "On" : "Off"].", 1)
log_admin("[key_name(usr)] toggled respawn to [config.abandon_allowed ? "On" : "Off"].")
world.update_status()
feedback_add_details("admin_verb","TR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -860,7 +860,7 @@ proc/admin_notice(var/message, var/rights)
if (!ticker || ticker.current_state != GAME_STATE_PREGAME)
ticker.delay_end = !ticker.delay_end
log_admin("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].")
- message_admins("\blue [key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1)
+ message_admins("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1)
return //alert("Round end delayed", null, null, null, null, null)
round_progressing = !round_progressing
if (!round_progressing)
@@ -876,7 +876,7 @@ proc/admin_notice(var/message, var/rights)
set desc="Toggle admin jumping"
set name="Toggle Jump"
config.allow_admin_jump = !(config.allow_admin_jump)
- message_admins("\blue Toggled admin jumping to [config.allow_admin_jump].")
+ message_admins("Toggled admin jumping to [config.allow_admin_jump].")
feedback_add_details("admin_verb","TJ") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/datum/admins/proc/adspawn()
@@ -884,7 +884,7 @@ proc/admin_notice(var/message, var/rights)
set desc="Toggle admin spawning"
set name="Toggle Spawn"
config.allow_admin_spawning = !(config.allow_admin_spawning)
- message_admins("\blue Toggled admin item spawning to [config.allow_admin_spawning].")
+ message_admins("Toggled admin item spawning to [config.allow_admin_spawning].")
feedback_add_details("admin_verb","TAS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/datum/admins/proc/adrev()
@@ -892,7 +892,7 @@ proc/admin_notice(var/message, var/rights)
set desc="Toggle admin revives"
set name="Toggle Revive"
config.allow_admin_rev = !(config.allow_admin_rev)
- message_admins("\blue Toggled reviving to [config.allow_admin_rev].")
+ message_admins("Toggled reviving to [config.allow_admin_rev].")
feedback_add_details("admin_verb","TAR") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/datum/admins/proc/immreboot()
@@ -902,7 +902,7 @@ proc/admin_notice(var/message, var/rights)
if(!usr.client.holder) return
if( alert("Reboot server?",,"Yes","No") == "No")
return
- world << "\red Rebooting world! \blue Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key]!"
+ world << "Rebooting world! Initiated by [usr.client.holder.fakekey ? "Admin" : usr.key]!"
log_admin("[key_name(usr)] initiated an immediate reboot.")
feedback_set_details("end_error","immediate admin reboot - by [usr.key] [usr.client.holder.fakekey ? "(stealth)" : ""]")
@@ -1166,7 +1166,7 @@ proc/admin_notice(var/message, var/rights)
else
world << "Guests may now enter the game."
log_admin("[key_name(usr)] toggled guests game entering [config.guests_allowed?"":"dis"]allowed.")
- message_admins("\blue [key_name_admin(usr)] toggled guests game entering [config.guests_allowed?"":"dis"]allowed.", 1)
+ message_admins("[key_name_admin(usr)] toggled guests game entering [config.guests_allowed?"":"dis"]allowed.", 1)
feedback_add_details("admin_verb","TGU") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/datum/admins/proc/output_ai_laws()
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index d2ce64335df..ab3fa05d214 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -449,11 +449,11 @@ var/list/admin_verbs_mentor = list(
if(holder && mob)
if(mob.invisibility == INVISIBILITY_OBSERVER)
mob.invisibility = initial(mob.invisibility)
- mob << "\red Invisimin off. Invisibility reset."
+ mob << "Invisimin off. Invisibility reset."
mob.alpha = max(mob.alpha + 100, 255)
else
mob.invisibility = INVISIBILITY_OBSERVER
- mob << "\blue Invisimin on. You are now as invisible as a ghost."
+ mob << "Invisimin on. You are now as invisible as a ghost."
mob.alpha = max(mob.alpha - 100, 0)
@@ -619,7 +619,7 @@ var/list/admin_verbs_mentor = list(
var/light_impact_range = input("Light impact range (in tiles):") as num
var/flash_range = input("Flash range (in tiles):") as num
explosion(epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range)
- message_admins("\blue [ckey] creating an admin explosion at [epicenter.loc].")
+ message_admins("[ckey] creating an admin explosion at [epicenter.loc].")
feedback_add_details("admin_verb","DB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/give_disease2(mob/T as mob in mob_list) // -- Giacom
@@ -651,7 +651,7 @@ var/list/admin_verbs_mentor = list(
feedback_add_details("admin_verb","GD2") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(usr)] gave [key_name(T)] a [greater] disease2 with infection chance [D.infectionchance].")
- message_admins("\blue [key_name_admin(usr)] gave [key_name(T)] a [greater] disease2 with infection chance [D.infectionchance].", 1)
+ message_admins("[key_name_admin(usr)] gave [key_name(T)] a [greater] disease2 with infection chance [D.infectionchance].", 1)
/client/proc/make_sound(var/obj/O in world) // -- TLE
set category = "Special Verbs"
@@ -664,7 +664,7 @@ var/list/admin_verbs_mentor = list(
for (var/mob/V in hearers(O))
V.show_message(message, 2)
log_admin("[key_name(usr)] made [O] at [O.x], [O.y], [O.z]. make a sound")
- message_admins("\blue [key_name_admin(usr)] made [O] at [O.x], [O.y], [O.z]. make a sound", 1)
+ message_admins("[key_name_admin(usr)] made [O] at [O.x], [O.y], [O.z]. make a sound.", 1)
feedback_add_details("admin_verb","MS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
@@ -698,7 +698,7 @@ var/list/admin_verbs_mentor = list(
usr << "Disabled air processing."
feedback_add_details("admin_verb","KA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(usr)] used 'kill air'.")
- message_admins("\blue [key_name_admin(usr)] used 'kill air'.", 1)
+ message_admins("[key_name_admin(usr)] used 'kill air'.", 1)
/client/proc/readmin_self()
set name = "Re-Admin self"
@@ -839,7 +839,7 @@ var/list/admin_verbs_mentor = list(
var/mob/living/carbon/human/M = input("Select mob.", "Edit Appearance") as null|anything in human_mob_list
if(!istype(M, /mob/living/carbon/human))
- usr << "\red You can only do this to humans!"
+ usr << "You can only do this to humans!"
return
switch(alert("Are you sure you wish to edit this mob's appearance? Skrell, Unathi, Tajaran can result in unintended consequences.",,"Yes","No"))
if("No")
@@ -959,7 +959,7 @@ var/list/admin_verbs_mentor = list(
T << "Move on."
log_admin("[key_name(usr)] told [key_name(T)] to man up and deal with it.")
- message_admins("\blue [key_name_admin(usr)] told [key_name(T)] to man up and deal with it.", 1)
+ message_admins("[key_name_admin(usr)] told [key_name(T)] to man up and deal with it.", 1)
/client/proc/global_man_up()
set category = "Fun"
@@ -971,7 +971,7 @@ var/list/admin_verbs_mentor = list(
T << 'sound/voice/ManUp1.ogg'
log_admin("[key_name(usr)] told everyone to man up and deal with it.")
- message_admins("\blue [key_name_admin(usr)] told everyone to man up and deal with it.", 1)
+ message_admins("[key_name_admin(usr)] told everyone to man up and deal with it.", 1)
/client/proc/give_spell(mob/T as mob in mob_list) // -- Urist
set category = "Fun"
@@ -982,4 +982,4 @@ var/list/admin_verbs_mentor = list(
T.spell_list += new S
feedback_add_details("admin_verb","GS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(usr)] gave [key_name(T)] the spell [S].")
- message_admins("\blue [key_name_admin(usr)] gave [key_name(T)] the spell [S].", 1)
+ message_admins("[key_name_admin(usr)] gave [key_name(T)] the spell [S].", 1)
diff --git a/code/modules/admin/permissionverbs/permissionedit.dm b/code/modules/admin/permissionverbs/permissionedit.dm
index ccc3c8fd9f2..d0cc5518c76 100644
--- a/code/modules/admin/permissionverbs/permissionedit.dm
+++ b/code/modules/admin/permissionverbs/permissionedit.dm
@@ -85,14 +85,14 @@
insert_query.Execute()
var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `test`.`erro_admin_log` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Added new admin [adm_ckey] to rank [new_rank]');")
log_query.Execute()
- usr << "\blue New admin added."
+ usr << "New admin added."
else
if(!isnull(admin_id) && isnum(admin_id))
var/DBQuery/insert_query = dbcon.NewQuery("UPDATE `erro_admin` SET rank = '[new_rank]' WHERE id = [admin_id]")
insert_query.Execute()
var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `test`.`erro_admin_log` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Edited the rank of [adm_ckey] to [new_rank]');")
log_query.Execute()
- usr << "\blue Admin rank changed."
+ usr << "Admin rank changed."
/datum/admins/proc/log_admin_permission_modification(var/adm_ckey, var/new_permission)
if(config.admin_legacy_system) return
@@ -140,10 +140,10 @@
insert_query.Execute()
var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `test`.`erro_admin_log` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Removed permission [rights2text(new_permission)] (flag = [new_permission]) to admin [adm_ckey]');")
log_query.Execute()
- usr << "\blue Permission removed."
+ usr << "Permission removed."
else //This admin doesn't have this permission, so we are adding it.
var/DBQuery/insert_query = dbcon.NewQuery("UPDATE `erro_admin` SET flags = '[admin_rights | new_permission]' WHERE id = [admin_id]")
insert_query.Execute()
var/DBQuery/log_query = dbcon.NewQuery("INSERT INTO `test`.`erro_admin_log` (`id` ,`datetime` ,`adminckey` ,`adminip` ,`log` ) VALUES (NULL , NOW( ) , '[usr.ckey]', '[usr.client.address]', 'Added permission [rights2text(new_permission)] (flag = [new_permission]) to admin [adm_ckey]')")
log_query.Execute()
- usr << "\blue Permission added."
\ No newline at end of file
+ usr << "Permission added."
\ No newline at end of file
diff --git a/code/modules/admin/player_notes.dm b/code/modules/admin/player_notes.dm
index b6293e7941d..dee9a693664 100644
--- a/code/modules/admin/player_notes.dm
+++ b/code/modules/admin/player_notes.dm
@@ -103,7 +103,7 @@ datum/admins/proc/notes_gethtml(var/ckey)
infos += P
info << infos
- message_admins("\blue [key_name_admin(user)] has edited [key]'s notes.")
+ message_admins("[key_name_admin(user)] has edited [key]'s notes.")
log_admin("[key_name(user)] has edited [key]'s notes.")
del(info) // savefile, so NOT qdel
@@ -128,7 +128,7 @@ datum/admins/proc/notes_gethtml(var/ckey)
infos.Remove(item)
info << infos
- message_admins("\blue [key_name_admin(usr)] deleted one of [key]'s notes.")
+ message_admins("[key_name_admin(usr)] deleted one of [key]'s notes.")
log_admin("[key_name(usr)] deleted one of [key]'s notes.")
qdel(info)
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index a545bc1e87a..fde36a734c6 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -197,7 +197,7 @@
if (emergency_shuttle.can_call())
emergency_shuttle.call_evac()
log_admin("[key_name(usr)] called the Emergency Shuttle")
- message_admins("\blue [key_name_admin(usr)] called the Emergency Shuttle to the station", 1)
+ message_admins("[key_name_admin(usr)] called the Emergency Shuttle to the station.", 1)
if("2")
if (!( ticker ) || !emergency_shuttle.location())
@@ -205,12 +205,12 @@
if (emergency_shuttle.can_call())
emergency_shuttle.call_evac()
log_admin("[key_name(usr)] called the Emergency Shuttle")
- message_admins("\blue [key_name_admin(usr)] called the Emergency Shuttle to the station", 1)
+ message_admins("[key_name_admin(usr)] called the Emergency Shuttle to the station.", 1)
else if (emergency_shuttle.can_recall())
emergency_shuttle.recall()
log_admin("[key_name(usr)] sent the Emergency Shuttle back")
- message_admins("\blue [key_name_admin(usr)] sent the Emergency Shuttle back", 1)
+ message_admins("[key_name_admin(usr)] sent the Emergency Shuttle back.", 1)
href_list["secretsadmin"] = "check_antagonist"
@@ -223,14 +223,14 @@
emergency_shuttle.launch_time = world.time + new_time_left*10
log_admin("[key_name(usr)] edited the Emergency Shuttle's launch time to [new_time_left]")
- message_admins("\blue [key_name_admin(usr)] edited the Emergency Shuttle's launch time to [new_time_left*10]", 1)
+ message_admins("[key_name_admin(usr)] edited the Emergency Shuttle's launch time to [new_time_left*10]", 1)
else if (emergency_shuttle.shuttle.has_arrive_time())
var/new_time_left = input("Enter new shuttle arrival time (seconds):","Edit Shuttle Arrival Time", emergency_shuttle.estimate_arrival_time() ) as num
emergency_shuttle.shuttle.arrive_time = world.time + new_time_left*10
log_admin("[key_name(usr)] edited the Emergency Shuttle's arrival time to [new_time_left]")
- message_admins("\blue [key_name_admin(usr)] edited the Emergency Shuttle's arrival time to [new_time_left*10]", 1)
+ message_admins("[key_name_admin(usr)] edited the Emergency Shuttle's arrival time to [new_time_left*10]", 1)
else
alert("The shuttle is neither counting down to launch nor is it in transit. Please try again when it is.")
@@ -241,7 +241,7 @@
ticker.delay_end = !ticker.delay_end
log_admin("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].")
- message_admins("\blue [key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1)
+ message_admins("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].", 1)
href_list["secretsadmin"] = "check_antagonist"
else if(href_list["simplemake"])
@@ -259,7 +259,7 @@
if("Yes") delmob = 1
log_admin("[key_name(usr)] has used rudimentary transformation on [key_name(M)]. Transforming to [href_list["simplemake"]]; deletemob=[delmob]")
- message_admins("\blue [key_name_admin(usr)] has used rudimentary transformation on [key_name_admin(M)]. Transforming to [href_list["simplemake"]]; deletemob=[delmob]", 1)
+ message_admins("[key_name_admin(usr)] has used rudimentary transformation on [key_name_admin(M)]. Transforming to [href_list["simplemake"]]; deletemob=[delmob]", 1)
switch(href_list["simplemake"])
if("observer") M.change_mob_type( /mob/observer/dead , null, null, delmob )
@@ -339,7 +339,7 @@
log_admin("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]")
ban_unban_log_save("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]")
- message_admins("\blue [key_name_admin(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]", 1)
+ message_admins("[key_name_admin(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]", 1)
Banlist.cd = "/base/[banfolder]"
Banlist["reason"] << reason
Banlist["temp"] << temp
@@ -686,7 +686,7 @@
usr << " You Cannot issue temporary job-bans!"
return
if(config.ban_legacy_system)
- usr << "\red Your server is using the legacy banning system, which does not support temporary job bans. Consider upgrading. Aborting ban."
+ usr << "Your server is using the legacy banning system, which does not support temporary job bans. Consider upgrading. Aborting ban."
return
var/mins = input(usr,"How long (in minutes)?","Ban time",1440) as num|null
if(!mins)
@@ -711,10 +711,10 @@
else
msg += ", [job]"
notes_add(M.ckey, "Banned from [msg] - [reason]", usr)
- message_admins("\blue [key_name_admin(usr)] banned [key_name_admin(M)] from [msg] for [mins] minutes", 1)
- M << "\redYou have been jobbanned by [usr.client.ckey] from: [msg]."
- M << "\red The reason is: [reason]"
- M << "\red This jobban will be lifted in [mins] minutes."
+ message_admins("[key_name_admin(usr)] banned [key_name_admin(M)] from [msg] for [mins] minutes", 1)
+ M << "You have been jobbanned by [usr.client.ckey] from: [msg]."
+ M << "The reason is: [reason]"
+ M << "This jobban will be lifted in [mins] minutes."
href_list["jobban2"] = 1 // lets it fall through and refresh
return 1
if("No")
@@ -732,10 +732,10 @@
if(!msg) msg = job
else msg += ", [job]"
notes_add(M.ckey, "Banned from [msg] - [reason]", usr)
- message_admins("\blue [key_name_admin(usr)] banned [key_name_admin(M)] from [msg]", 1)
- M << "\redYou have been jobbanned by [usr.client.ckey] from: [msg]."
- M << "\red The reason is: [reason]"
- M << "\red Jobban can be lifted only upon request."
+ message_admins("[key_name_admin(usr)] banned [key_name_admin(M)] from [msg]", 1)
+ M << "You have been jobbanned by [usr.client.ckey] from: [msg]."
+ M << "The reason is: [reason]"
+ M << "Jobban can be lifted only upon request."
href_list["jobban2"] = 1 // lets it fall through and refresh
return 1
if("Cancel")
@@ -765,8 +765,8 @@
else
continue
if(msg)
- message_admins("\blue [key_name_admin(usr)] unbanned [key_name_admin(M)] from [msg]", 1)
- M << "\redYou have been un-jobbanned by [usr.client.ckey] from [msg]."
+ message_admins("[key_name_admin(usr)] unbanned [key_name_admin(M)] from [msg]", 1)
+ M << "You have been un-jobbanned by [usr.client.ckey] from [msg]."
href_list["jobban2"] = 1 // lets it fall through and refresh
return 1
return 0 //we didn't do anything!
@@ -778,11 +778,11 @@
return
var/reason = sanitize(input("Please enter reason"))
if(!reason)
- M << "\red You have been kicked from the server"
+ M << "You have been kicked from the server"
else
- M << "\red You have been kicked from the server: [reason]"
+ M << "You have been kicked from the server: [reason]"
log_admin("[key_name(usr)] booted [key_name(M)].")
- message_admins("\blue [key_name_admin(usr)] booted [key_name_admin(M)].", 1)
+ message_admins("[key_name_admin(usr)] booted [key_name_admin(M)].", 1)
//M.client = null
qdel(M.client)
@@ -793,7 +793,7 @@
if(t)
if((alert("Do you want to unjobban [t]?","Unjobban confirmation", "Yes", "No") == "Yes") && t) //No more misclicks! Unless you do it twice.
log_admin("[key_name(usr)] removed [t]")
- message_admins("\blue [key_name_admin(usr)] removed [t]", 1)
+ message_admins("[key_name_admin(usr)] removed [t]", 1)
jobban_remove(t)
href_list["ban"] = 1 // lets it fall through and refresh
var/t_split = splittext(t, " - ")
@@ -830,17 +830,17 @@
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 1, mins)
ban_unban_log_save("[usr.client.ckey] has banned [M.ckey]. - Reason: [reason] - This will be removed in [mins] minutes.")
notes_add(M.ckey,"[usr.client.ckey] has banned [M.ckey]. - Reason: [reason] - This will be removed in [mins] minutes.",usr)
- M << "\redYou have been banned by [usr.client.ckey].\nReason: [reason]."
- M << "\red This is a temporary ban, it will be removed in [mins] minutes."
+ M << "You have been banned by [usr.client.ckey].\nReason: [reason]."
+ M << "This is a temporary ban, it will be removed in [mins] minutes."
feedback_inc("ban_tmp",1)
DB_ban_record(BANTYPE_TEMP, M, mins, reason)
feedback_inc("ban_tmp_mins",mins)
if(config.banappeals)
- M << "\red To try to resolve this matter head to [config.banappeals]"
+ M << "To try to resolve this matter head to [config.banappeals]"
else
- M << "\red No ban appeals URL has been set."
+ M << "No ban appeals URL has been set."
log_admin("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
- message_admins("\blue[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
+ message_admins("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis will be removed in [mins] minutes.")
qdel(M.client)
//qdel(M) // See no reason why to delete mob. Important stuff can be lost. And ban can be lifted before round ends.
@@ -855,16 +855,16 @@
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0, M.lastKnownIP)
if("No")
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 0, 0)
- M << "\redYou have been banned by [usr.client.ckey].\nReason: [reason]."
- M << "\red This is a permanent ban."
+ M << "You have been banned by [usr.client.ckey].\nReason: [reason]."
+ M << "This is a permanent ban."
if(config.banappeals)
- M << "\red To try to resolve this matter head to [config.banappeals]"
+ M << "To try to resolve this matter head to [config.banappeals]"
else
- M << "\red No ban appeals URL has been set."
+ M << "No ban appeals URL has been set."
ban_unban_log_save("[usr.client.ckey] has permabanned [M.ckey]. - Reason: [reason] - This is a permanent ban.")
notes_add(M.ckey,"[usr.client.ckey] has permabanned [M.ckey]. - Reason: [reason] - This is a permanent ban.",usr)
log_admin("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.")
- message_admins("\blue[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.")
+ message_admins("[usr.client.ckey] has banned [M.ckey].\nReason: [reason]\nThis is a permanent ban.")
feedback_inc("ban_perma",1)
DB_ban_record(BANTYPE_PERMA, M, -1, reason)
@@ -920,8 +920,8 @@
return alert(usr, "The game has already started.", null, null, null, null)
master_mode = href_list["c_mode2"]
log_admin("[key_name(usr)] set the mode as [config.mode_names[master_mode]].")
- message_admins("\blue [key_name_admin(usr)] set the mode as [config.mode_names[master_mode]].", 1)
- world << "\blue The mode is now: [config.mode_names[master_mode]]"
+ message_admins("[key_name_admin(usr)] set the mode as [config.mode_names[master_mode]].", 1)
+ world << "The mode is now: [config.mode_names[master_mode]]"
Game() // updates the main game menu
world.save_mode(master_mode)
.(href, list("c_mode"=1))
@@ -935,7 +935,7 @@
return alert(usr, "The game mode has to be secret!", null, null, null, null)
secret_force_mode = href_list["f_secret2"]
log_admin("[key_name(usr)] set the forced secret mode as [secret_force_mode].")
- message_admins("\blue [key_name_admin(usr)] set the forced secret mode as [secret_force_mode].", 1)
+ message_admins("[key_name_admin(usr)] set the forced secret mode as [secret_force_mode].", 1)
Game() // updates the main game menu
.(href, list("f_secret"=1))
@@ -948,7 +948,7 @@
return
log_admin("[key_name(usr)] attempting to monkeyize [key_name(H)]")
- message_admins("\blue [key_name_admin(usr)] attempting to monkeyize [key_name_admin(H)]", 1)
+ message_admins("[key_name_admin(usr)] attempting to monkeyize [key_name_admin(H)]", 1)
H.monkeyize()
else if(href_list["corgione"])
@@ -960,7 +960,7 @@
return
log_admin("[key_name(usr)] attempting to corgize [key_name(H)]")
- message_admins("\blue [key_name_admin(usr)] attempting to corgize [key_name_admin(H)]", 1)
+ message_admins("[key_name_admin(usr)] attempting to corgize [key_name_admin(H)]", 1)
H.corgize()
else if(href_list["forcespeech"])
@@ -975,7 +975,7 @@
M.say(speech)
speech = sanitize(speech) // Nah, we don't trust them
log_admin("[key_name(usr)] forced [key_name(M)] to say: [speech]")
- message_admins("\blue [key_name_admin(usr)] forced [key_name_admin(M)] to say: [speech]")
+ message_admins("[key_name_admin(usr)] forced [key_name_admin(M)] to say: [speech]")
else if(href_list["sendtoprison"])
if(!check_rights(R_ADMIN)) return
@@ -1014,9 +1014,9 @@
prisoner.equip_to_slot_or_del(new /obj/item/clothing/under/color/orange(prisoner), slot_w_uniform)
prisoner.equip_to_slot_or_del(new /obj/item/clothing/shoes/orange(prisoner), slot_shoes)
- M << "\red You have been sent to the prison station!"
+ M << "You have been sent to the prison station!"
log_admin("[key_name(usr)] sent [key_name(M)] to the prison station.")
- message_admins("\blue [key_name_admin(usr)] sent [key_name_admin(M)] to the prison station.", 1)
+ message_admins("[key_name_admin(usr)] sent [key_name_admin(M)] to the prison station.", 1)
else if(href_list["tdome1"])
if(!check_rights(R_FUN)) return
@@ -1039,7 +1039,7 @@
sleep(5)
M.loc = pick(tdome1)
spawn(50)
- M << "\blue You have been sent to the Thunderdome."
+ M << "You have been sent to the Thunderdome."
log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Team 1)")
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Team 1)", 1)
@@ -1064,7 +1064,7 @@
sleep(5)
M.loc = pick(tdome2)
spawn(50)
- M << "\blue You have been sent to the Thunderdome."
+ M << "You have been sent to the Thunderdome."
log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Team 2)")
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Team 2)", 1)
@@ -1086,7 +1086,7 @@
sleep(5)
M.loc = pick(tdomeadmin)
spawn(50)
- M << "\blue You have been sent to the Thunderdome."
+ M << "You have been sent to the Thunderdome."
log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Admin.)")
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Admin.)", 1)
@@ -1115,7 +1115,7 @@
sleep(5)
M.loc = pick(tdomeobserve)
spawn(50)
- M << "\blue You have been sent to the Thunderdome."
+ M << "You have been sent to the Thunderdome."
log_admin("[key_name(usr)] has sent [key_name(M)] to the thunderdome. (Observer.)")
message_admins("[key_name_admin(usr)] has sent [key_name_admin(M)] to the thunderdome. (Observer.)", 1)
@@ -1129,7 +1129,7 @@
if(config.allow_admin_rev)
L.revive()
- message_admins("\red Admin [key_name_admin(usr)] healed / revived [key_name_admin(L)]!", 1)
+ message_admins("Admin [key_name_admin(usr)] healed / revived [key_name_admin(L)]!", 1)
log_admin("[key_name(usr)] healed / Rrvived [key_name(L)]")
else
usr << "Admin Rejuvinates have been disabled"
@@ -1142,7 +1142,7 @@
usr << "This can only be used on instances of type /mob/living/carbon/human"
return
- message_admins("\red Admin [key_name_admin(usr)] AIized [key_name_admin(H)]!", 1)
+ message_admins("Admin [key_name_admin(usr)] AIized [key_name_admin(H)]!", 1)
log_admin("[key_name(usr)] AIized [key_name(H)]")
H.AIize()
@@ -1317,7 +1317,7 @@
log_admin("[key_name(H)] got their cookie, spawned by [key_name(src.owner)]")
message_admins("[key_name(H)] got their cookie, spawned by [key_name(src.owner)]")
feedback_inc("admin_cookies_spawned",1)
- H << "\blue Your prayers have been answered!! You received the best cookie!"
+ H << "Your prayers have been answered!! You received the best cookie!"
else if(href_list["BlueSpaceArtillery"])
if(!check_rights(R_ADMIN|R_FUN)) return
@@ -1421,7 +1421,7 @@
usr << browse(data, "window=[B.name]")
else
- usr << "\red The faxed item is not viewable. This is probably a bug, and should be reported on the tracker: [fax.type]"
+ usr << "The faxed item is not viewable. This is probably a bug, and should be reported on the tracker: [fax.type]"
else if (href_list["AdminFaxViewPage"])
var/page = text2num(href_list["AdminFaxViewPage"])
diff --git a/code/modules/admin/verbs/mapping.dm b/code/modules/admin/verbs/mapping.dm
index 5661097aab7..5738d75779d 100644
--- a/code/modules/admin/verbs/mapping.dm
+++ b/code/modules/admin/verbs/mapping.dm
@@ -217,7 +217,7 @@ var/list/debug_verbs = list (
var/turf/simulated/location = get_turf(usr)
if(!istype(location, /turf/simulated)) // We're in space, let's not cause runtimes.
- usr << "\red this debug tool cannot be used from space"
+ usr << "this debug tool cannot be used from space"
return
var/icon/red = new('icons/misc/debug_group.dmi', "red") //created here so we don't have to make thousands of these.
@@ -368,7 +368,7 @@ var/global/prevent_airgroup_regroup = 0
set category = "Mapping"
set name = "Regroup All Airgroups Attempt"
- usr << "\red Proc disabled."
+ usr << "Proc disabled." //Why not.. Delete the procs instead?
/*prevent_airgroup_regroup = 0
for(var/datum/air_group/AG in air_master.air_groups)
@@ -379,7 +379,7 @@ var/global/prevent_airgroup_regroup = 0
set category = "Mapping"
set name = "Kill pipe processing"
- usr << "\red Proc disabled."
+ usr << "Proc disabled."
/*pipe_processing_killed = !pipe_processing_killed
if(pipe_processing_killed)
@@ -391,7 +391,7 @@ var/global/prevent_airgroup_regroup = 0
set category = "Mapping"
set name = "Kill air processing"
- usr << "\red Proc disabled."
+ usr << "Proc disabled."
/*air_processing_killed = !air_processing_killed
if(air_processing_killed)
@@ -405,7 +405,7 @@ var/global/say_disabled = 0
set category = "Mapping"
set name = "Disable all communication verbs"
- usr << "\red Proc disabled."
+ usr << "Proc disabled."
/*say_disabled = !say_disabled
if(say_disabled)
@@ -420,7 +420,7 @@ var/global/movement_disabled_exception //This is the client that calls the proc,
set category = "Mapping"
set name = "Disable all movement"
- usr << "\red Proc disabled."
+ usr << "Proc disabled."
/*movement_disabled = !movement_disabled
if(movement_disabled)
diff --git a/code/modules/admin/verbs/tripAI.dm b/code/modules/admin/verbs/tripAI.dm
index 5e5ccbb1237..8cf88aa1273 100644
--- a/code/modules/admin/verbs/tripAI.dm
+++ b/code/modules/admin/verbs/tripAI.dm
@@ -14,9 +14,9 @@
if(ticker.triai)
ticker.triai = 0
usr << "Only one AI will be spawned at round start."
- message_admins("\blue [key_name_admin(usr)] has toggled off triple AIs at round start.", 1)
+ message_admins("[key_name_admin(usr)] has toggled off triple AIs at round start.", 1)
else
ticker.triai = 1
usr << "There will be an AI Triumvirate at round start."
- message_admins("\blue [key_name_admin(usr)] has toggled on triple AIs at round start.", 1)
+ message_admins("[key_name_admin(usr)] has toggled on triple AIs at round start.", 1)
return
diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm
index 387d555130a..e45c6d8beb5 100644
--- a/code/modules/assembly/mousetrap.dm
+++ b/code/modules/assembly/mousetrap.dm
@@ -41,7 +41,7 @@
H.updatehealth()
else if(ismouse(target))
var/mob/living/simple_animal/mouse/M = target
- visible_message("\red SPLAT!")
+ visible_message("SPLAT!")
M.splat()
playsound(target.loc, 'sound/effects/snap.ogg', 50, 1)
layer = MOB_LAYER - 0.2
diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm
index 04c255b94eb..d1070e5c321 100644
--- a/code/modules/awaymissions/gateway.dm
+++ b/code/modules/awaymissions/gateway.dm
@@ -133,7 +133,7 @@ obj/machinery/gateway/centerstation/process()
/obj/machinery/gateway/centerstation/attackby(obj/item/device/W as obj, mob/user as mob)
if(istype(W,/obj/item/device/multitool))
- user << "\black The gate is already calibrated, there is no work for you to do here."
+ user << "The gate is already calibrated, there is no work for you to do here."
return
/////////////////////////////////////Away////////////////////////
@@ -219,7 +219,7 @@ obj/machinery/gateway/centerstation/process()
if(istype(M, /mob/living/carbon))
for(var/obj/item/weapon/implant/exile/E in M)//Checking that there is an exile implant in the contents
if(E.imp_in == M)//Checking that it's actually implanted vs just in their pocket
- M << "\black The station gate has detected your exile implant and is blocking your entry."
+ M << "The station gate has detected your exile implant and is blocking your entry."
return
M.loc = get_step(stationgate.loc, SOUTH)
M.set_dir(SOUTH)
@@ -228,9 +228,9 @@ obj/machinery/gateway/centerstation/process()
/obj/machinery/gateway/centeraway/attackby(obj/item/device/W as obj, mob/user as mob)
if(istype(W,/obj/item/device/multitool))
if(calibrated)
- user << "\black The gate is already calibrated, there is no work for you to do here."
+ user << "The gate is already calibrated, there is no work for you to do here."
return
else
- user << "\blue Recalibration successful!: \black This gate's systems have been fine tuned. Travel to this gate will now be on target."
+ user << "Recalibration successful!: This gate's systems have been fine tuned. Travel to this gate will now be on target."
calibrated = 1
return
\ No newline at end of file
diff --git a/code/modules/blob/blob.dm b/code/modules/blob/blob.dm
index d52e6a256e5..e06d688f326 100644
--- a/code/modules/blob/blob.dm
+++ b/code/modules/blob/blob.dm
@@ -74,6 +74,9 @@
if(GR)
qdel(GR)
return
+ for(var/obj/structure/reagent_dispensers/fueltank/Fuel in T)
+ Fuel.ex_act(2)
+ return
for(var/obj/machinery/door/D in T) // There can be several - and some of them can be open, locate() is not suitable
if(D.density)
D.ex_act(2)
diff --git a/code/modules/busy_space/organizations.dm b/code/modules/busy_space/organizations.dm
index 84f694d2ef4..68226189c83 100644
--- a/code/modules/busy_space/organizations.dm
+++ b/code/modules/busy_space/organizations.dm
@@ -253,7 +253,10 @@
"Are You Feeling It",
"Great White Snark",
"No Shirt No Shoes",
- "Callsign"
+ "Callsign",
+ "Three Ships in a Trenchcoat",
+ "Not Wearing Pants",
+ "Ridiculous Naming Convention"
)
diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm
index d6f9375e984..d085e5cec0d 100644
--- a/code/modules/client/client procs.dm
+++ b/code/modules/client/client procs.dm
@@ -110,7 +110,7 @@
src.preload_rsc = pick(config.resource_urls)
else src.preload_rsc = 1 // If config.resource_urls is not set, preload like normal.
- src << "\red If the title screen is black, resources are still downloading. Please be patient until the title screen appears."
+ src << "If the title screen is black, resources are still downloading. Please be patient until the title screen appears."
clients += src
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index e3d781df297..a14f0b7a5c0 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -69,7 +69,7 @@
//Set species_restricted list
switch(target_species)
if("Human", "Skrell") //humanoid bodytypes
- species_restricted = list("Human", "Skrell") //skrell/humans can wear each other's suits
+ species_restricted = list("Human", "Skrell", "Promethean") //skrell/humans can wear each other's suits
else
species_restricted = list(target_species)
@@ -91,7 +91,7 @@
//Set species_restricted list
switch(target_species)
if("Skrell")
- species_restricted = list("Human", "Skrell") //skrell helmets fit humans too
+ species_restricted = list("Human", "Skrell", "Promethean") //skrell helmets fit humans too
else
species_restricted = list(target_species)
@@ -214,7 +214,7 @@
return
playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1)
- user.visible_message("\red [user] cuts the fingertips off of the [src].","\red You cut the fingertips off of the [src].")
+ user.visible_message("[user] cuts the fingertips off of the [src].","You cut the fingertips off of the [src].")
clipped = 1
name = "modified [name]"
diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm
index 89dde52fbca..cc3f2765666 100644
--- a/code/modules/clothing/head/misc.dm
+++ b/code/modules/clothing/head/misc.dm
@@ -154,7 +154,7 @@
siemens_coefficient = 0.9 //...what?
/obj/item/clothing/head/flatcap/grey
- icon_state = "flat_capg"
+ icon_state = "flat_capw"
item_state_slots = list(slot_r_hand_str = "greysoft", slot_l_hand_str = "greysoft")
/obj/item/clothing/head/pirate
diff --git a/code/modules/clothing/spacesuits/spacesuits.dm b/code/modules/clothing/spacesuits/spacesuits.dm
index 9122a6d8bdf..01c1861448b 100644
--- a/code/modules/clothing/spacesuits/spacesuits.dm
+++ b/code/modules/clothing/spacesuits/spacesuits.dm
@@ -31,7 +31,7 @@
camera = new /obj/machinery/camera(src)
camera.replace_networks(camera_networks)
camera.c_tag = user.name
- user << "\blue User scanned as [camera.c_tag]. Camera activated."
+ user << "User scanned as [camera.c_tag]. Camera activated."
user.update_action_buttons()
return 1
diff --git a/code/modules/clothing/spacesuits/void/void.dm b/code/modules/clothing/spacesuits/void/void.dm
index d1b4a06d232..685cef77941 100644
--- a/code/modules/clothing/spacesuits/void/void.dm
+++ b/code/modules/clothing/spacesuits/void/void.dm
@@ -11,7 +11,7 @@
// flags_inv = HIDEEARS|BLOCKHAIR
//Species-specific stuff.
- species_restricted = list("Human")
+ species_restricted = list("Human", "Promethean")
sprite_sheets_refit = list(
"Unathi" = 'icons/mob/species/unathi/helmet.dmi',
"Tajara" = 'icons/mob/species/tajaran/helmet.dmi',
@@ -38,7 +38,7 @@
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE
- species_restricted = list("Human", "Skrell")
+ species_restricted = list("Human", "Skrell", "Promethean")
sprite_sheets_refit = list(
"Unathi" = 'icons/mob/species/unathi/suit.dmi',
"Tajara" = 'icons/mob/species/tajaran/suit.dmi',
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index 64d01077ed6..68b656f0d72 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -197,10 +197,10 @@
/obj/item/clothing/suit/armor/reactive/attack_self(mob/user as mob)
active = !( active )
if (active)
- user << "\blue The reactive armor is now active."
+ user << "The reactive armor is now active."
icon_state = "reactive"
else
- user << "\blue The reactive armor is now inactive."
+ user << "The reactive armor is now inactive."
icon_state = "reactiveoff"
add_fingerprint(user)
return
diff --git a/code/modules/detectivework/microscope/dnascanner.dm b/code/modules/detectivework/microscope/dnascanner.dm
index 3d442dfb4ab..0c54df03978 100644
--- a/code/modules/detectivework/microscope/dnascanner.dm
+++ b/code/modules/detectivework/microscope/dnascanner.dm
@@ -127,7 +127,7 @@
if(bloodsamp.dna != null)
data = "Spectometric analysis on provided sample has determined the presence of [bloodsamp.dna.len] strings of DNA.
"
for(var/blood in bloodsamp.dna)
- data += "\blue Blood type: [bloodsamp.dna[blood]]
\nDNA: [blood]
"
+ data += "Blood type: [bloodsamp.dna[blood]]
\nDNA: [blood]
"
else
data += "No DNA found.
"
P.info = "[src] analysis report #[report_num]
"
diff --git a/code/modules/economy/cash.dm b/code/modules/economy/cash.dm
index 5d5790758a0..af67dfb4270 100644
--- a/code/modules/economy/cash.dm
+++ b/code/modules/economy/cash.dm
@@ -156,4 +156,4 @@ proc/spawn_money(var/sum, spawnloc, mob/living/carbon/human/human_user as mob)
/obj/item/weapon/spacecash/ewallet/examine(mob/user)
..(user)
if (!(user in view(2)) && user!=src.loc) return
- user << "\blue Charge card's owner: [src.owner_name]. Thalers remaining: [src.worth]."
+ user << "Charge card's owner: [src.owner_name]. Thalers remaining: [src.worth]."
diff --git a/code/modules/economy/economy_misc.dm b/code/modules/economy/economy_misc.dm
index e6862650e30..78c9e7d012e 100644
--- a/code/modules/economy/economy_misc.dm
+++ b/code/modules/economy/economy_misc.dm
@@ -48,12 +48,13 @@
/var/list/economic_species_modifier = list(
- /datum/species/human = 10,
- /datum/species/skrell = 12,
- /datum/species/teshari = 9, // Skrell sponsored,
- /datum/species/tajaran = 7,
- /datum/species/unathi = 7,
- /datum/species/diona = 7
+ /datum/species/human = 10,
+ /datum/species/skrell = 12,
+ /datum/species/teshari = 9, // Skrell sponsored,
+ /datum/species/tajaran = 7,
+ /datum/species/unathi = 7,
+ /datum/species/diona = 7,
+ /datum/species/shapeshifter/promethean = 3
)
//---- The following corporations are friendly with NanoTrasen and loosely enable trade and travel:
diff --git a/code/modules/flufftext/Dreaming.dm b/code/modules/flufftext/Dreaming.dm
index 1d0e219b18c..ede0f93265c 100644
--- a/code/modules/flufftext/Dreaming.dm
+++ b/code/modules/flufftext/Dreaming.dm
@@ -19,7 +19,7 @@ mob/living/carbon/proc/dream()
spawn(0)
for(var/i = rand(1,4),i > 0, i--)
- src << "\blue ... [pick(dreams)] ..."
+ src << "... [pick(dreams)] ..."
sleep(rand(40,70))
if(paralysis <= 0)
dreaming = 0
diff --git a/code/modules/holodeck/HolodeckControl.dm b/code/modules/holodeck/HolodeckControl.dm
index 821b3ae65c2..cfffe2282fb 100644
--- a/code/modules/holodeck/HolodeckControl.dm
+++ b/code/modules/holodeck/HolodeckControl.dm
@@ -296,7 +296,7 @@
if(world.time < (last_change + 15))//To prevent super-spam clicking, reduced process size and annoyance -Sieve
return 0
for(var/mob/M in range(3,src))
- M.show_message("\b ERROR. Recalibrating projection apparatus.")
+ M.show_message("ERROR. Recalibrating projection apparatus.")
last_change = world.time
return 0
@@ -357,7 +357,7 @@
if(world.time < (last_gravity_change + 15))//To prevent super-spam clicking
return
for(var/mob/M in range(3,src))
- M.show_message("\b ERROR. Recalibrating gravity field.")
+ M.show_message("ERROR. Recalibrating gravity field.")
last_change = world.time
return
diff --git a/code/modules/integrated_electronics/_defines.dm b/code/modules/integrated_electronics/_defines.dm
index 47a5e40b22f..104b867532d 100644
--- a/code/modules/integrated_electronics/_defines.dm
+++ b/code/modules/integrated_electronics/_defines.dm
@@ -2,19 +2,44 @@
#define IC_OUTPUT "output"
#define IC_ACTIVATOR "activator"
+// Pin functionality.
#define DATA_CHANNEL "data channel"
#define PULSE_CHANNEL "pulse channel"
-#define IC_SPAWN_DEFAULT 1 // If the circuit comes in the default circuit box.
-#define IC_SPAWN_RESEARCH 2 // If the circuit design will be autogenerated for RnD.
+// Methods of obtaining a circuit.
+#define IC_SPAWN_DEFAULT 1 // If the circuit comes in the default circuit box and able to be printed in the IC printer.
+#define IC_SPAWN_RESEARCH 2 // If the circuit design will be available in the IC printer after upgrading it.
+// Displayed along with the pin name to show what type of pin it is.
+#define IC_FORMAT_ANY "\"
#define IC_FORMAT_STRING "\"
+#define IC_FORMAT_CHAR "\"
+#define IC_FORMAT_COLOR "\"
#define IC_FORMAT_NUMBER "\"
+#define IC_FORMAT_DIR "\"
+#define IC_FORMAT_BOOLEAN "\"
#define IC_FORMAT_REF "\["
#define IC_FORMAT_LIST "\]"
-#define IC_FORMAT_ANY "\"
+
#define IC_FORMAT_PULSE "\"
+// Used inside input/output list to tell the constructor what pin to make.
+#define IC_PINTYPE_ANY /datum/integrated_io
+#define IC_PINTYPE_STRING /datum/integrated_io/string
+#define IC_PINTYPE_CHAR /datum/integrated_io/char
+#define IC_PINTYPE_COLOR /datum/integrated_io/color
+#define IC_PINTYPE_NUMBER /datum/integrated_io/number
+#define IC_PINTYPE_DIR /datum/integrated_io/dir
+#define IC_PINTYPE_BOOLEAN /datum/integrated_io/boolean
+#define IC_PINTYPE_REF /datum/integrated_io/ref
+#define IC_PINTYPE_LIST /datum/integrated_io/list
+
+#define IC_PINTYPE_PULSE_IN /datum/integrated_io/activate
+#define IC_PINTYPE_PULSE_OUT /datum/integrated_io/activate/out
+
+// Data limits.
+#define IC_MAX_LIST_LENGTH 200
+
var/list/all_integrated_circuits = list()
/proc/initialize_integrated_circuits_list()
@@ -30,8 +55,10 @@ var/list/all_integrated_circuits = list()
var/obj/item/device/electronic_assembly/assembly = null // Reference to the assembly holding this circuit, if any.
var/extended_desc = null
var/list/inputs = list()
+ var/list/inputs_default = list() // Assoc list which will fill a pin with data upon creation. e.g. "2" = 0 will set input pin 2 to equal 0 instead of null.
var/list/outputs = list()
- var/list/activators = list() //associated_list, = 1 for inbound, = 0 for outbound
+ var/list/outputs_default = list() // Ditto, for output.
+ var/list/activators = list()
var/next_use = 0 //Uses world.time
var/complexity = 1 //This acts as a limitation on building machines, more resource-intensive components cost more 'space'.
var/size = null //This acts as a limitation on building machines, bigger components cost more 'space'. -1 for size 0
@@ -40,7 +67,6 @@ var/list/all_integrated_circuits = list()
var/power_draw_idle = 0 // How much power is drawn when doing nothing.
var/spawn_flags = null // Used for world initializing, see the #defines above.
var/category_text = "NO CATEGORY THIS IS A BUG" // To show up on circuit printer, and perhaps other places.
- var/autopulse = -1 // When input is received, the circuit will pulse itself if set to 1. 0 means it won't. -1 means it is permanently off.
var/removable = TRUE // Determines if a circuit is removable from the assembly.
var/displayed_name = ""
var/allow_multitool = 1 // Allows additional multitool functionality
diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm
index a4d292488d6..b66c6b8b2dc 100644
--- a/code/modules/integrated_electronics/core/assemblies.dm
+++ b/code/modules/integrated_electronics/core/assemblies.dm
@@ -3,7 +3,7 @@
/obj/item/device/electronic_assembly
name = "electronic assembly"
- desc = "It's a case, for building electronics with."
+ desc = "It's a case, for building small electronics with."
w_class = ITEMSIZE_SMALL
icon = 'icons/obj/electronic_assemblies.dmi'
icon_state = "setup_small"
@@ -17,6 +17,7 @@
/obj/item/device/electronic_assembly/medium
name = "electronic mechanism"
icon_state = "setup_medium"
+ desc = "It's a case, for building medium-sized electronics with."
w_class = ITEMSIZE_NORMAL
max_components = IC_COMPONENTS_BASE * 2
max_complexity = IC_COMPLEXITY_BASE * 2
@@ -24,6 +25,7 @@
/obj/item/device/electronic_assembly/large
name = "electronic machine"
icon_state = "setup_large"
+ desc = "It's a case, for building large electronics with."
w_class = ITEMSIZE_LARGE
max_components = IC_COMPONENTS_BASE * 4
max_complexity = IC_COMPLEXITY_BASE * 4
@@ -31,6 +33,7 @@
/obj/item/device/electronic_assembly/drone
name = "electronic drone"
icon_state = "setup_drone"
+ desc = "It's a case, for building mobile electronics with."
w_class = ITEMSIZE_NORMAL
max_components = IC_COMPONENTS_BASE * 1.5
max_complexity = IC_COMPLEXITY_BASE * 1.5
@@ -38,9 +41,10 @@
/obj/item/device/electronic_assembly/implant
name = "electronic implant"
icon_state = "setup_implant"
+ desc = "It's a case, for building very tiny electronics with."
w_class = ITEMSIZE_TINY
- max_components = IC_COMPONENTS_BASE / 4
- max_complexity = IC_COMPLEXITY_BASE / 4
+ max_components = IC_COMPONENTS_BASE / 2
+ max_complexity = IC_COMPLEXITY_BASE / 2
var/obj/item/weapon/implant/integrated_circuit/implant = null
/obj/item/device/electronic_assembly/New()
diff --git a/code/modules/integrated_electronics/core/helpers.dm b/code/modules/integrated_electronics/core/helpers.dm
index 49779a4993e..edfa6b1a86c 100644
--- a/code/modules/integrated_electronics/core/helpers.dm
+++ b/code/modules/integrated_electronics/core/helpers.dm
@@ -1,8 +1,22 @@
-/obj/item/integrated_circuit/proc/setup_io(var/list/io_list, var/io_type)
+/obj/item/integrated_circuit/proc/setup_io(var/list/io_list, var/io_type, var/list/io_default_list)
var/list/io_list_copy = io_list.Copy()
io_list.Cut()
+ var/i = 0
for(var/io_entry in io_list_copy)
- io_list.Add(new io_type(src, io_entry, io_list_copy[io_entry]))
+ var/default_data = null
+ var/io_type_override = null
+ // Override the default data.
+ if(io_default_list && io_default_list.len) // List containing special pin types that need to be added.
+ default_data = io_default_list["[i]"] // This is deliberately text because the index is a number in text form.
+ // Override the pin type.
+ if(io_list_copy[io_entry])
+ io_type_override = io_list_copy[io_entry]
+
+ if(io_type_override)
+ // world << "io_type_override is now [io_type_override] on [src]."
+ io_list.Add(new io_type_override(src, io_entry, default_data))
+ else
+ io_list.Add(new io_type(src, io_entry, default_data))
/obj/item/integrated_circuit/proc/set_pin_data(var/pin_type, var/pin_number, var/new_data)
var/datum/integrated_io/pin = get_pin_ref(pin_type, pin_number)
diff --git a/code/modules/integrated_electronics/core/integrated_circuit.dm b/code/modules/integrated_electronics/core/integrated_circuit.dm
index 7c2a8100eaf..08a31529087 100644
--- a/code/modules/integrated_electronics/core/integrated_circuit.dm
+++ b/code/modules/integrated_electronics/core/integrated_circuit.dm
@@ -11,10 +11,10 @@ a creative player the means to solve many problems. Circuits are held inside an
// This should be used when someone is examining while the case is opened.
/obj/item/integrated_circuit/proc/internal_examine(mob/user)
to_chat(user, "This board has [inputs.len] input pin\s, [outputs.len] output pin\s and [activators.len] activation pin\s.")
- for(var/datum/integrated_io/input/I in inputs)
+ for(var/datum/integrated_io/I in inputs)
if(I.linked.len)
to_chat(user, "The '[I]' is connected to [I.get_linked_to_desc()].")
- for(var/datum/integrated_io/output/O in outputs)
+ for(var/datum/integrated_io/O in outputs)
if(O.linked.len)
to_chat(user, "The '[O]' is connected to [O.get_linked_to_desc()].")
for(var/datum/integrated_io/activate/A in activators)
@@ -34,8 +34,8 @@ a creative player the means to solve many problems. Circuits are held inside an
displayed_name = name
if(!size) size = w_class
if(size == -1) size = 0
- setup_io(inputs, /datum/integrated_io/input)
- setup_io(outputs, /datum/integrated_io/output)
+ setup_io(inputs, /datum/integrated_io, inputs_default)
+ setup_io(outputs, /datum/integrated_io, outputs_default)
setup_io(activators, /datum/integrated_io/activate)
..()
@@ -85,8 +85,8 @@ a creative player the means to solve many problems. Circuits are held inside an
/obj/item/integrated_circuit/interact(mob/user)
if(!check_interactivity(user))
return
- if(!assembly)
- return
+// if(!assembly)
+// return
var/window_height = 350
var/window_width = 600
@@ -128,7 +128,7 @@ a creative player the means to solve many problems. Circuits are held inside an
if(1)
io = get_pin_ref(IC_INPUT, i)
if(io)
- words += "[io.name] [io.display_data()]
"
+ words += "[io.display_pin_type()] [io.name] [io.display_data(io.data)]
"
if(io.linked.len)
for(var/datum/integrated_io/linked in io.linked)
// words += "\[[linked.name]\]
@@ -139,14 +139,14 @@ a creative player the means to solve many problems. Circuits are held inside an
height = 1
if(2)
if(i == 1)
- words += "[src.displayed_name]
([src.name])
[src.desc]"
+ words += "[src.displayed_name]
[src.name != src.displayed_name ? "([src.name])":""]
[src.desc]"
height = row_height
else
continue
if(3)
io = get_pin_ref(IC_OUTPUT, i)
if(io)
- words += "[io.name] [io.display_data()]
"
+ words += "[io.display_pin_type()] [io.name] [io.display_data(io.data)]
"
if(io.linked.len)
for(var/datum/integrated_io/linked in io.linked)
// words += "\[[linked.name]\]
@@ -162,7 +162,7 @@ a creative player the means to solve many problems. Circuits are held inside an
var/datum/integrated_io/io = activator
var/words = list()
- words += "[io.name] [io.data?"\":"\"]
"
+ words += "[io.name] [io.data?"\":"\"]
"
if(io.linked.len)
for(var/datum/integrated_io/linked in io.linked)
// words += "\[[linked.name]\]
@@ -176,10 +176,8 @@ a creative player the means to solve many problems. Circuits are held inside an
HTML += ""
HTML += ""
- if(autopulse != -1)
- HTML += "
Meta Variables;"
- HTML += "
\[Autopulse\] = [autopulse ? "ON" : "OFF"]"
- HTML += "
"
+// HTML += "
Meta Variables;" // If more meta vars get introduced, uncomment this.
+// HTML += "
"
HTML += "
Complexity: [complexity]"
if(power_draw_idle)
@@ -235,6 +233,8 @@ a creative player the means to solve many problems. Circuits are held inside an
else
var/datum/integrated_io/io = pin
+ io.ask_for_pin_data(usr) // The pins themselves will determine how to ask for data, and will validate the data.
+ /*
if(io.io_type == DATA_CHANNEL)
var/type_to_use = input("Please choose a type to use.","[src] type setting") as null|anything in list("string","number", "null")
@@ -260,6 +260,7 @@ a creative player the means to solve many problems. Circuits are held inside an
else if(io.io_type == PULSE_CHANNEL)
io.holder.check_then_do_work(ignore_power = TRUE)
to_chat(usr, "You pulse \the [io.holder]'s [io] pin.")
+ */
if(href_list["pin_unwire"])
@@ -313,10 +314,6 @@ a creative player the means to solve many problems. Circuits are held inside an
else
to_chat(usr, "You need a multitool/debugger set to 'ref' mode to do that.")
- if(href_list["autopulse"])
- if(autopulse != -1)
- autopulse = !autopulse
-
if(href_list["return"])
if(A)
update_to_assembly = 1
@@ -354,11 +351,11 @@ a creative player the means to solve many problems. Circuits are held inside an
/obj/item/integrated_circuit/proc/push_data()
- for(var/datum/integrated_io/output/O in outputs)
+ for(var/datum/integrated_io/O in outputs)
O.push_data()
/obj/item/integrated_circuit/proc/pull_data()
- for(var/datum/integrated_io/input/I in inputs)
+ for(var/datum/integrated_io/I in inputs)
I.push_data()
/obj/item/integrated_circuit/proc/draw_idle_power()
@@ -391,9 +388,9 @@ a creative player the means to solve many problems. Circuits are held inside an
return
/obj/item/integrated_circuit/proc/disconnect_all()
- for(var/datum/integrated_io/input/I in inputs)
+ for(var/datum/integrated_io/I in inputs)
I.disconnect()
- for(var/datum/integrated_io/output/O in outputs)
+ for(var/datum/integrated_io/O in outputs)
O.disconnect()
for(var/datum/integrated_io/activate/A in activators)
A.disconnect()
diff --git a/code/modules/integrated_electronics/core/pins.dm b/code/modules/integrated_electronics/core/pins.dm
index dc6d48e3034..c22d65e4214 100644
--- a/code/modules/integrated_electronics/core/pins.dm
+++ b/code/modules/integrated_electronics/core/pins.dm
@@ -25,10 +25,11 @@ D [1]/ ||
var/list/linked = list()
var/io_type = DATA_CHANNEL
-/datum/integrated_io/New(var/newloc, var/name, var/data)
+/datum/integrated_io/New(var/newloc, var/name, var/new_data)
..()
src.name = name
- src.data = data
+ if(new_data)
+ src.data = new_data
holder = newloc
if(!istype(holder))
message_admins("ERROR: An integrated_io ([src.name]) spawned without a valid holder! This is a bug.")
@@ -50,17 +51,43 @@ D [1]/ ||
var/output = w.resolve()
return istype(output, as_type) ? output : null
-/datum/integrated_io/proc/display_data()
- if(isnull(data))
+/datum/integrated_io/proc/display_data(var/input)
+ if(isnull(input))
return "(null)" // Empty data means nothing to show.
- if(istext(data))
- return "(\"[data]\")" // Wraps the 'string' in escaped quotes, so that people know it's a 'string'.
- if(isweakref(data))
- var/weakref/w = data
+
+ if(istext(input))
+ return "(\"[input]\")" // Wraps the 'string' in escaped quotes, so that people know it's a 'string'.
+
+/*
+list[](
+ "A",
+ "B",
+ "C"
+)
+*/
+
+ if(islist(input))
+ var/list/my_list = input
+ var/result = "list\[[my_list.len]\]("
+ if(my_list.len)
+ result += "
"
+ var/pos = 0
+ for(var/line in my_list)
+ result += "[display_data(line)]"
+ pos++
+ if(pos != my_list.len)
+ result += ",
"
+ result += "
"
+ result += ")"
+ return result
+
+ if(isweakref(input))
+ var/weakref/w = input
var/atom/A = w.resolve()
//return A ? "([A.name] \[Ref\])" : "(null)" // For refs, we want just the name displayed.
return A ? "(\ref[A] \[Ref\])" : "(null)"
- return "([data])" // Nothing special needed for numbers or other stuff.
+
+ return "([input])" // Nothing special needed for numbers or other stuff.
/datum/integrated_io/activate/display_data()
return "(\[pulse\])"
@@ -117,23 +144,44 @@ D [1]/ ||
//Now that we're removed from them, we gotta remove them from us.
src.linked.Remove(their_io)
-/datum/integrated_io/input
- name = "input pin"
+/datum/integrated_io/proc/ask_for_data_type(mob/user, var/default, var/list/allowed_data_types = list("string","number","null"))
+ var/type_to_use = input("Please choose a type to use.","[src] type setting") as null|anything in allowed_data_types
+ if(!holder.check_interactivity(user))
+ return
-/datum/integrated_io/output
- name = "output pin"
+ var/new_data = null
+ switch(type_to_use)
+ if("string")
+ new_data = input("Now type in a string.","[src] string writing", istext(default) ? default : null) as null|text
+ if(istext(new_data) && holder.check_interactivity(user) )
+ to_chat(user, "You input [new_data] into the pin.")
+ return new_data
+ if("number")
+ new_data = input("Now type in a number.","[src] number writing", isnum(default) ? default : null) as null|num
+ if(isnum(new_data) && holder.check_interactivity(user) )
+ to_chat(user, "You input [new_data] into the pin.")
+ return new_data
+ if("null")
+ if(holder.check_interactivity(user))
+ to_chat(user, "You clear the pin's memory.")
+ return new_data
+
+// Basically a null check
+/datum/integrated_io/proc/is_valid()
+ return !isnull(data)
+
+// This proc asks for the data to write, then writes it.
+/datum/integrated_io/proc/ask_for_pin_data(mob/user)
+ var/new_data = ask_for_data_type(user)
+ write_data_to_pin(new_data)
+
+/datum/integrated_io/activate/ask_for_pin_data(mob/user) // This just pulses the pin.
+ holder.check_then_do_work(ignore_power = TRUE)
+ to_chat(user, "You pulse \the [holder]'s [src] pin.")
/datum/integrated_io/activate
name = "activation pin"
io_type = PULSE_CHANNEL
-/datum/integrated_io/list
- name = "list pin"
-
-/datum/integrated_io/list/write_data_to_pin(var/new_data)
- if(islist(new_data))
- data = new_data
- holder.on_data_written()
-
-/datum/integrated_io/list/display_pin_type()
- return IC_FORMAT_LIST
\ No newline at end of file
+/datum/integrated_io/activate/out // All this does is just make the UI say 'out' instead of 'in'
+ data = 1
diff --git a/code/modules/integrated_electronics/core/printer.dm b/code/modules/integrated_electronics/core/printer.dm
new file mode 100644
index 00000000000..78deb6cf984
--- /dev/null
+++ b/code/modules/integrated_electronics/core/printer.dm
@@ -0,0 +1,199 @@
+
+/obj/item/device/integrated_circuit_printer
+ name = "integrated circuit printer"
+ desc = "A portable(ish) machine made to print tiny modular circuitry out of metal."
+ icon = 'icons/obj/electronic_assemblies.dmi'
+ icon_state = "circuit_printer"
+ w_class = ITEMSIZE_LARGE
+ var/metal = 0
+ var/max_metal = 100
+ var/metal_per_sheet = 10 // One sheet equals this much metal.
+
+ var/upgraded = FALSE // When hit with an upgrade disk, will turn true, allowing it to print the higher tier circuits.
+ var/can_clone = FALSE // Same for above, but will allow the printer to duplicate a specific assembly.
+ var/static/list/recipe_list = list()
+ var/current_category = null
+ var/obj/item/device/electronic_assembly/assembly_to_clone = null
+
+/obj/item/device/integrated_circuit_printer/upgraded
+ upgraded = TRUE
+ can_clone = TRUE
+
+/obj/item/device/integrated_circuit_printer/initialize()
+ ..()
+ if(!recipe_list.len)
+ // Unfortunately this needed a lot of loops, but it should only be run once at init.
+
+ // First loop is to seperate the actual circuits from base circuits.
+ var/list/circuits_to_use = list()
+ for(var/obj/item/integrated_circuit/IC in all_integrated_circuits)
+ if((IC.spawn_flags & IC_SPAWN_DEFAULT) || (IC.spawn_flags & IC_SPAWN_RESEARCH))
+ circuits_to_use.Add(IC)
+
+ // Second loop is to find all categories.
+ var/list/found_categories = list()
+ for(var/obj/item/integrated_circuit/IC in circuits_to_use)
+ if(!(IC.category_text in found_categories))
+ found_categories.Add(IC.category_text)
+
+ // Third loop is to initialize lists by category names, then put circuits matching the category inside.
+ for(var/category in found_categories)
+ recipe_list[category] = list()
+ var/list/current_list = recipe_list[category]
+ for(var/obj/item/integrated_circuit/IC in circuits_to_use)
+ if(IC.category_text == category)
+ current_list.Add(IC)
+
+ // Now for non-circuit things.
+ var/list/assembly_list = list()
+ assembly_list.Add(
+ new /obj/item/device/electronic_assembly(null),
+ new /obj/item/device/electronic_assembly/medium(null),
+ new /obj/item/device/electronic_assembly/large(null),
+ new /obj/item/device/electronic_assembly/drone(null),
+ new /obj/item/weapon/implant/integrated_circuit(null),
+ new /obj/item/device/assembly/electronic_assembly(null)
+ )
+ recipe_list["Assemblies"] = assembly_list
+
+ var/list/tools_list = list()
+ tools_list.Add(
+ new /obj/item/device/integrated_electronics/wirer(null),
+ new /obj/item/device/integrated_electronics/debugger(null)
+ )
+ recipe_list["Tools"] = tools_list
+
+
+/obj/item/device/integrated_circuit_printer/attackby(var/obj/item/O, var/mob/user)
+ if(istype(O,/obj/item/stack/material))
+ var/obj/item/stack/material/stack = O
+ if(stack.material.name == DEFAULT_WALL_MATERIAL)
+ var/num = min((max_metal - metal) / metal_per_sheet, stack.amount)
+ if(num < 1)
+ to_chat(user, "\The [src] is too full to add more metal.")
+ return
+ if(stack.use(num))
+ to_chat(user, "You add [num] sheet\s to \the [src].")
+ metal += num * metal_per_sheet
+ interact(user)
+ return TRUE
+
+ if(istype(O,/obj/item/integrated_circuit))
+ to_chat(user, "You insert the circuit into \the [src]. ")
+ user.unEquip(O)
+ metal = min(metal + O.w_class, max_metal)
+ qdel(O)
+ interact(user)
+ return TRUE
+
+ if(istype(O,/obj/item/weapon/disk/integrated_circuit/upgrade/advanced))
+ if(upgraded)
+ to_chat(user, "\The [src] already has this upgrade. ")
+ return TRUE
+ to_chat(user, "You install \the [O] into \the [src]. ")
+ upgraded = TRUE
+ interact(user)
+ return TRUE
+
+ if(istype(O,/obj/item/weapon/disk/integrated_circuit/upgrade/clone))
+ if(can_clone)
+ to_chat(user, "\The [src] already has this upgrade. ")
+ return TRUE
+ to_chat(user, "You install \the [O] into \the [src]. ")
+ can_clone = TRUE
+ interact(user)
+ return TRUE
+
+ return ..()
+
+/obj/item/device/integrated_circuit_printer/attack_self(var/mob/user)
+ interact(user)
+
+/obj/item/device/integrated_circuit_printer/interact(mob/user)
+ var/window_height = 600
+ var/window_width = 500
+
+ if(isnull(current_category))
+ current_category = recipe_list[1]
+
+ var/HTML = "Integrated Circuit Printer
"
+ HTML += "Metal: [metal/metal_per_sheet]/[max_metal/metal_per_sheet] sheets.
"
+ HTML += "Circuits available: [upgraded ? "Regular":"Advanced"]."
+ HTML += "Assembly Cloning: [can_clone ? "Available": "Unavailable"]."
+ if(assembly_to_clone)
+ HTML += "Assembly '[assembly_to_clone.name]' loaded."
+ HTML += "Crossed out circuits mean that the printer is not sufficentally upgraded to create that circuit.
"
+ HTML += "
"
+ HTML += "Categories:"
+ for(var/category in recipe_list)
+ if(category != current_category)
+ HTML += " \[[category]\] "
+ else // Bold the button if it's already selected.
+ HTML += " \[[category]\] "
+ HTML += "
"
+ HTML += "[current_category]
"
+
+ var/list/current_list = recipe_list[current_category]
+ for(var/obj/O in current_list)
+ var/can_build = TRUE
+ if(istype(O, /obj/item/integrated_circuit))
+ var/obj/item/integrated_circuit/IC = O
+ if((IC.spawn_flags & IC_SPAWN_RESEARCH) && (!(IC.spawn_flags & IC_SPAWN_DEFAULT)) && !upgraded)
+ can_build = FALSE
+ if(can_build)
+ HTML += "\[[O.name]\]: [O.desc]
"
+ else
+ HTML += "\[[O.name]\]: [O.desc]
"
+
+ user << browse(jointext(HTML, null), "window=integrated_printer;size=[window_width]x[window_height];border=1;can_resize=1;can_close=1;can_minimize=1")
+
+/obj/item/device/integrated_circuit_printer/Topic(href, href_list)
+ if(..())
+ return 1
+
+ add_fingerprint(usr)
+
+ if(href_list["category"])
+ current_category = href_list["category"]
+
+ if(href_list["build"])
+ var/build_type = text2path(href_list["build"])
+ if(!build_type || !ispath(build_type))
+ return 1
+
+ var/cost = 1
+ if(ispath(build_type, /obj/item/device/electronic_assembly))
+ var/obj/item/device/electronic_assembly/E = build_type
+ cost = round( (initial(E.max_complexity) + initial(E.max_components) ) / 4)
+ else if(ispath(build_type, /obj/item/integrated_circuit))
+ var/obj/item/integrated_circuit/IC = build_type
+ cost = initial(IC.w_class)
+
+ if(metal - cost < 0)
+ to_chat(usr, "You need [cost] metal to build that!.")
+ return 1
+ metal -= cost
+ new build_type(get_turf(loc))
+
+ interact(usr)
+
+// FUKKEN UPGRADE DISKS
+/obj/item/weapon/disk/integrated_circuit/upgrade
+ name = "integrated circuit printer upgrade disk"
+ desc = "Install this into your integrated circuit printer to enhance it."
+ icon = 'icons/obj/electronic_assemblies.dmi'
+ icon_state = "upgrade_disk"
+ item_state = "card-id"
+ w_class = ITEMSIZE_SMALL
+ origin_tech = list(TECH_ENGINEERING = 3, TECH_DATA = 4)
+
+/obj/item/weapon/disk/integrated_circuit/upgrade/advanced
+ name = "integrated circuit printer upgrade disk - advanced designs"
+ desc = "Install this into your integrated circuit printer to enhance it. This one adds new, advanced designs to the printer."
+
+// To be implemented later.
+/obj/item/weapon/disk/integrated_circuit/upgrade/clone
+ name = "integrated circuit printer upgrade disk - circuit cloner"
+ desc = "Install this into your integrated circuit printer to enhance it. This one allows the printer to duplicate assemblies."
+ icon_state = "upgrade_disk_clone"
+ origin_tech = list(TECH_ENGINEERING = 5, TECH_DATA = 6)
\ No newline at end of file
diff --git a/code/modules/integrated_electronics/core/special_pins/boolean_pin.dm b/code/modules/integrated_electronics/core/special_pins/boolean_pin.dm
new file mode 100644
index 00000000000..baf3d029dae
--- /dev/null
+++ b/code/modules/integrated_electronics/core/special_pins/boolean_pin.dm
@@ -0,0 +1,25 @@
+// These pins only contain 0 or 1. Null is not allowed.
+/datum/integrated_io/boolean
+ name = "boolean pin"
+ data = FALSE
+
+/datum/integrated_io/boolean/ask_for_pin_data(mob/user) // 'Ask' is a bit misleading, acts more like a toggle.
+ var/new_data = !data
+ write_data_to_pin(new_data)
+
+/datum/integrated_io/boolean/write_data_to_pin(var/new_data)
+ if(new_data == FALSE || new_data == TRUE)
+ data = new_data
+ holder.on_data_written()
+
+/datum/integrated_io/boolean/scramble()
+ write_data_to_pin(rand(FALSE,TRUE))
+ push_data()
+
+/datum/integrated_io/boolean/display_pin_type()
+ return IC_FORMAT_BOOLEAN
+
+/datum/integrated_io/boolean/display_data(var/input)
+ if(data == TRUE)
+ return "(True)"
+ return "(False)"
\ No newline at end of file
diff --git a/code/modules/integrated_electronics/core/special_pins/char_pin.dm b/code/modules/integrated_electronics/core/special_pins/char_pin.dm
new file mode 100644
index 00000000000..bd36d18495e
--- /dev/null
+++ b/code/modules/integrated_electronics/core/special_pins/char_pin.dm
@@ -0,0 +1,27 @@
+// These pins can only contain a 1 character string or null.
+/datum/integrated_io/char
+ name = "char pin"
+
+/datum/integrated_io/char/ask_for_pin_data(mob/user)
+ var/new_data = input("Please type in one character.","[src] char writing") as null|text
+ if(holder.check_interactivity(user) )
+ to_chat(user, "You input [new_data ? "new_data" : "NULL"] into the pin.")
+ write_data_to_pin(new_data)
+
+/datum/integrated_io/char/write_data_to_pin(var/new_data)
+ if(isnull(new_data) || istext(new_data))
+ if(length(new_data) > 1)
+ return
+ data = new_data
+ holder.on_data_written()
+
+// This makes the text go from "A" to "%".
+/datum/integrated_io/char/scramble()
+ if(!is_valid())
+ return
+ var/list/options = list("!","@","#","$","%","^","&","*") + alphabet_uppercase
+ data = pick(options)
+ push_data()
+
+/datum/integrated_io/char/display_pin_type()
+ return IC_FORMAT_CHAR
\ No newline at end of file
diff --git a/code/modules/integrated_electronics/core/special_pins/color_pin.dm b/code/modules/integrated_electronics/core/special_pins/color_pin.dm
new file mode 100644
index 00000000000..0fa82b45069
--- /dev/null
+++ b/code/modules/integrated_electronics/core/special_pins/color_pin.dm
@@ -0,0 +1,51 @@
+// These pins can only contain a color (in the form of #FFFFFF) or null.
+/datum/integrated_io/color
+ name = "color pin"
+
+/datum/integrated_io/color/ask_for_pin_data(mob/user)
+ var/new_data = input("Please select a color.","[src] color writing") as null|color
+ if(holder.check_interactivity(user) )
+ to_chat(user, "You input a new color into the pin.")
+ world << "new_data equals [new_data]."
+ write_data_to_pin(new_data)
+
+/datum/integrated_io/color/write_data_to_pin(var/new_data)
+ // Since this is storing the color as a string hex color code, we need to make sure it's actually one.
+ if(isnull(new_data) || istext(new_data))
+ if(istext(new_data))
+ new_data = uppertext(new_data)
+ if(length(new_data) != 7) // We can hex if we want to, we can leave your strings behind
+ world << "Wrong length."
+ return // Cause your strings don't hex and if they don't hex
+ var/friends = copytext(new_data, 2, 8) // Well they're are no strings of mine
+ world << "friends equal [friends]."
+ // I say, we can go where we want to, a place where they will never find
+ var/safety_dance = 1
+ while(safety_dance >= 7) // And we can act like we come from out of this world.log
+ var/hex = copytext(friends, safety_dance, safety_dance+1)
+ world << "Checking [hex]."
+ if(!(hex in list("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F")))
+ world << "Hex [hex] failed"
+ return // Leave the fake one far behind,
+ safety_dance++
+
+ data = new_data // And we can hex
+ holder.on_data_written()
+ world << "Done."
+ world << "Rip."
+
+// This randomizes the color.
+/datum/integrated_io/color/scramble()
+ if(!is_valid())
+ return
+ var/new_data = get_random_colour(simple = FALSE, lower = 0, upper = 255)
+ data = new_data
+ push_data()
+
+/datum/integrated_io/color/display_pin_type()
+ return IC_FORMAT_COLOR
+
+/datum/integrated_io/color/display_data(var/input)
+ if(!isnull(data))
+ return "([data])"
+ return ..()
\ No newline at end of file
diff --git a/code/modules/integrated_electronics/core/special_pins/dir_pin.dm b/code/modules/integrated_electronics/core/special_pins/dir_pin.dm
new file mode 100644
index 00000000000..bbb00faa278
--- /dev/null
+++ b/code/modules/integrated_electronics/core/special_pins/dir_pin.dm
@@ -0,0 +1,33 @@
+// These pins can only contain directions (1,2,4,8...) or null.
+/datum/integrated_io/dir
+ name = "dir pin"
+
+/datum/integrated_io/dir/ask_for_pin_data(mob/user)
+ var/new_data = input("Please type in a valid dir number. \
+ Valid dirs are;\n\
+ North/Fore = [NORTH],\n\
+ South/Aft = [SOUTH],\n\
+ East/Starboard = [EAST],\n\
+ West/Port = [WEST],\n\
+ Northeast = [NORTHEAST],\n\
+ Northwest = [NORTHWEST],\n\
+ Southeast = [SOUTHEAST],\n\
+ Southwest = [SOUTHWEST],\n\
+ Up = [UP],\n\
+ Down = [DOWN]","[src] dir writing") as null|num
+ if(isnum(new_data) && holder.check_interactivity(user) )
+ to_chat(user, "You input [new_data] into the pin.")
+ write_data_to_pin(new_data)
+
+/datum/integrated_io/dir/write_data_to_pin(var/new_data)
+ if(isnull(new_data) || new_data in alldirs + list(UP, DOWN))
+ data = new_data
+ holder.on_data_written()
+
+/datum/integrated_io/dir/display_pin_type()
+ return IC_FORMAT_DIR
+
+/datum/integrated_io/dir/display_data(var/input)
+ if(!isnull(data))
+ return "([dir2text(data)])"
+ return ..()
\ No newline at end of file
diff --git a/code/modules/integrated_electronics/core/special_pins/list_pin.dm b/code/modules/integrated_electronics/core/special_pins/list_pin.dm
new file mode 100644
index 00000000000..535a5355145
--- /dev/null
+++ b/code/modules/integrated_electronics/core/special_pins/list_pin.dm
@@ -0,0 +1,150 @@
+// These pins contain a list. Null is not allowed.
+/datum/integrated_io/list
+ name = "list pin"
+ data = list()
+
+
+/datum/integrated_io/list/ask_for_pin_data(mob/user)
+ interact(user)
+
+/datum/integrated_io/list/proc/interact(mob/user)
+ var/list/my_list = data
+ var/t = "[src]
"
+ t += "List length: [my_list.len]
"
+ t += "\[Refresh\] | "
+ t += "\[Add\] | "
+ t += "\[Swap\] | "
+ t += "\[Clear\]
"
+ t += "
"
+ var/i = 0
+ for(var/line in my_list)
+ i++
+ t += "#[i] | [display_data(line)] | "
+ t += "\[Edit\] | "
+ t += "\[Remove\]
"
+ user << browse(t, "window=list_pin_\ref[src];size=500x400")
+
+/datum/integrated_io/list/proc/add_to_list(mob/user, var/new_entry)
+ if(!new_entry && user)
+ new_entry = ask_for_data_type(user)
+ if(is_valid(new_entry))
+ Add(new_entry)
+
+/datum/integrated_io/list/proc/Add(var/new_entry)
+ var/list/my_list = data
+ if(my_list.len > IC_MAX_LIST_LENGTH)
+ my_list.Cut(Start=1,End=2)
+ my_list.Add(new_entry)
+
+/datum/integrated_io/list/proc/remove_from_list_by_position(mob/user, var/position)
+ var/list/my_list = data
+ if(!my_list.len)
+ to_chat(user, "The list is empty, there's nothing to remove.")
+ return
+ if(!position)
+ return
+ var/target_entry = my_list.Find(position)
+ if(target_entry)
+ my_list.Remove(target_entry)
+
+/datum/integrated_io/list/proc/remove_from_list(mob/user, var/target_entry)
+ var/list/my_list = data
+ if(!my_list.len)
+ to_chat(user, "The list is empty, there's nothing to remove.")
+ return
+ if(!target_entry)
+ target_entry = input("Which piece of data do you want to remove?", "Remove") as null|anything in my_list
+ if(target_entry)
+ my_list.Remove(target_entry)
+
+/datum/integrated_io/list/proc/edit_in_list(mob/user, var/target_entry)
+ var/list/my_list = data
+ if(!my_list.len)
+ to_chat(user, "The list is empty, there's nothing to modify.")
+ return
+ if(!target_entry)
+ target_entry = input("Which piece of data do you want to edit?", "Edit") as null|anything in my_list
+ if(target_entry)
+ var/edited_entry = ask_for_data_type(user, target_entry)
+ if(edited_entry)
+ target_entry = edited_entry
+
+/datum/integrated_io/list/proc/edit_in_list_by_position(mob/user, var/position)
+ var/list/my_list = data
+ if(!my_list.len)
+ to_chat(user, "The list is empty, there's nothing to modify.")
+ return
+ if(!position)
+ return
+ var/target_entry = my_list.Find(position)
+ if(target_entry)
+ var/edited_entry = ask_for_data_type(user, target_entry)
+ if(edited_entry)
+ target_entry = edited_entry
+
+/datum/integrated_io/list/proc/swap_inside_list(mob/user, var/first_target, var/second_target)
+ var/list/my_list = data
+ if(my_list.len <= 1)
+ to_chat(user, "The list is empty, or too small to do any meaningful swapping.")
+ return
+ if(!first_target)
+ first_target = input("Which piece of data do you want to swap? (1)", "Swap") as null|anything in my_list
+
+ if(first_target)
+ if(!second_target)
+ second_target = input("Which piece of data do you want to swap? (2)", "Swap") as null|anything in my_list - first_target
+
+ if(second_target)
+ var/first_pos = my_list.Find(first_target)
+ var/second_pos = my_list.Find(second_target)
+ my_list.Swap(first_pos, second_pos)
+
+/datum/integrated_io/list/proc/clear_list(mob/user)
+ var/list/my_list = data
+ my_list.Cut()
+
+/datum/integrated_io/list/scramble()
+ var/list/my_list = data
+ my_list = shuffle(my_list)
+ push_data()
+
+/datum/integrated_io/list/write_data_to_pin(var/new_data)
+ if(islist(new_data))
+ var/list/new_list = new_data
+ data = new_list.Copy()
+ holder.on_data_written()
+
+/datum/integrated_io/list/display_pin_type()
+ return IC_FORMAT_LIST
+
+/datum/integrated_io/list/Topic(href, href_list, state = interactive_state)
+ if(!holder.check_interactivity(usr))
+ return
+ if(..())
+ return 1
+
+ if(href_list["add"])
+ add_to_list(usr)
+
+ if(href_list["swap"])
+ swap_inside_list(usr)
+
+ if(href_list["clear"])
+ clear_list(usr)
+
+ if(href_list["remove"])
+ world << "Removing [href_list["pos"]]"
+ if(href_list["pos"])
+ remove_from_list_by_position(usr, text2num(href_list["pos"]))
+ else
+ remove_from_list(usr)
+
+ if(href_list["edit"])
+ if(href_list["pos"])
+ edit_in_list_by_position(usr, text2num(href_list["pos"]))
+ else
+ edit_in_list(usr)
+
+ holder.interact(usr) // Refresh the main UI,
+ interact(usr) // and the list UI.
+
diff --git a/code/modules/integrated_electronics/core/special_pins/number_pin.dm b/code/modules/integrated_electronics/core/special_pins/number_pin.dm
new file mode 100644
index 00000000000..319ac2de06b
--- /dev/null
+++ b/code/modules/integrated_electronics/core/special_pins/number_pin.dm
@@ -0,0 +1,18 @@
+// These pins can only contain numbers (int and floating point) or null.
+/datum/integrated_io/number
+ name = "number pin"
+// data = 0
+
+/datum/integrated_io/number/ask_for_pin_data(mob/user)
+ var/new_data = input("Please type in a number.","[src] number writing") as null|num
+ if(isnum(new_data) && holder.check_interactivity(user) )
+ to_chat(user, "You input [new_data] into the pin.")
+ write_data_to_pin(new_data)
+
+/datum/integrated_io/number/write_data_to_pin(var/new_data)
+ if(isnull(new_data) || isnum(new_data))
+ data = new_data
+ holder.on_data_written()
+
+/datum/integrated_io/number/display_pin_type()
+ return IC_FORMAT_NUMBER
\ No newline at end of file
diff --git a/code/modules/integrated_electronics/core/special_pins/ref_pin.dm b/code/modules/integrated_electronics/core/special_pins/ref_pin.dm
new file mode 100644
index 00000000000..461965f254b
--- /dev/null
+++ b/code/modules/integrated_electronics/core/special_pins/ref_pin.dm
@@ -0,0 +1,14 @@
+// These pins only contain weakrefs or null.
+/datum/integrated_io/ref
+ name = "ref pin"
+
+/datum/integrated_io/ref/ask_for_pin_data(mob/user) // This clears the pin.
+ write_data_to_pin(null)
+
+/datum/integrated_io/ref/write_data_to_pin(var/new_data)
+ if(isnull(new_data) || isweakref(new_data))
+ data = new_data
+ holder.on_data_written()
+
+/datum/integrated_io/ref/display_pin_type()
+ return IC_FORMAT_REF
\ No newline at end of file
diff --git a/code/modules/integrated_electronics/core/special_pins/string_pin.dm b/code/modules/integrated_electronics/core/special_pins/string_pin.dm
new file mode 100644
index 00000000000..6128418c1f3
--- /dev/null
+++ b/code/modules/integrated_electronics/core/special_pins/string_pin.dm
@@ -0,0 +1,29 @@
+// These pins can only contain text and null.
+/datum/integrated_io/string
+ name = "string pin"
+
+/datum/integrated_io/string/ask_for_pin_data(mob/user)
+ var/new_data = input("Please type in a string.","[src] string writing") as null|text
+ if(holder.check_interactivity(user) )
+ to_chat(user, "You input [new_data ? "new_data" : "NULL"] into the pin.")
+ write_data_to_pin(new_data)
+
+/datum/integrated_io/string/write_data_to_pin(var/new_data)
+ if(isnull(new_data) || istext(new_data))
+ data = new_data
+ holder.on_data_written()
+
+// This makes the text go "from this" to "#G&*!HD$%L"
+/datum/integrated_io/string/scramble()
+ if(!is_valid())
+ return
+ var/string_length = length(data)
+ var/list/options = list("!","@","#","$","%","^","&","*") + alphabet_uppercase
+ var/new_data = ""
+ while(string_length)
+ new_data += pick(options)
+ string_length--
+ push_data()
+
+/datum/integrated_io/string/display_pin_type()
+ return IC_FORMAT_STRING
diff --git a/code/modules/integrated_electronics/subtypes/arithmetic.dm b/code/modules/integrated_electronics/subtypes/arithmetic.dm
index 48ad90928a2..192d317baff 100644
--- a/code/modules/integrated_electronics/subtypes/arithmetic.dm
+++ b/code/modules/integrated_electronics/subtypes/arithmetic.dm
@@ -2,25 +2,20 @@
/obj/item/integrated_circuit/arithmetic
complexity = 1
inputs = list(
- "\ A",
- "\ B",
- "\ C",
- "\ D",
- "\ E",
- "\ F",
- "\ G",
- "\ H"
+ "A" = IC_PINTYPE_NUMBER,
+ "B" = IC_PINTYPE_NUMBER,
+ "C" = IC_PINTYPE_NUMBER,
+ "D" = IC_PINTYPE_NUMBER,
+ "E" = IC_PINTYPE_NUMBER,
+ "F" = IC_PINTYPE_NUMBER,
+ "G" = IC_PINTYPE_NUMBER,
+ "H" = IC_PINTYPE_NUMBER
)
- outputs = list("\ result")
- activators = list("compute" = 1, "on computed" = 0)
+ outputs = list("result" = IC_PINTYPE_NUMBER)
+ activators = list("compute" = IC_PINTYPE_PULSE_IN, "on computed" = IC_PINTYPE_PULSE_OUT)
category_text = "Arithmetic"
- autopulse = 1
power_draw_per_use = 5 // Math is pretty cheap.
-/obj/item/integrated_circuit/arithmetic/on_data_written()
- if(autopulse == 1)
- check_then_do_work()
-
// +Adding+ //
/obj/item/integrated_circuit/arithmetic/addition
@@ -34,7 +29,7 @@
/obj/item/integrated_circuit/arithmetic/addition/do_work()
var/result = 0
- for(var/datum/integrated_io/input/I in inputs)
+ for(var/datum/integrated_io/I in inputs)
I.pull_data()
if(isnum(I.data))
result = result + I.data
@@ -60,7 +55,7 @@
return
var/result = A.data
- for(var/datum/integrated_io/input/I in inputs)
+ for(var/datum/integrated_io/I in inputs)
if(I == A)
continue
I.pull_data()
@@ -88,7 +83,7 @@
if(!isnum(A.data))
return
var/result = A.data
- for(var/datum/integrated_io/input/I in inputs)
+ for(var/datum/integrated_io/I in inputs)
if(I == A)
continue
I.pull_data()
@@ -116,7 +111,7 @@
return
var/result = A.data
- for(var/datum/integrated_io/input/I in inputs)
+ for(var/datum/integrated_io/I in inputs)
if(I == A)
continue
I.pull_data()
@@ -133,7 +128,7 @@
name = "exponent circuit"
desc = "Outputs A to the power of B."
icon_state = "exponent"
- inputs = list("A", "B")
+ inputs = list("A" = IC_PINTYPE_NUMBER, "B" = IC_PINTYPE_NUMBER)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/arithmetic/exponent/do_work()
@@ -154,7 +149,7 @@
desc = "This will say if a number is positive, negative, or zero."
extended_desc = "Will output 1, -1, or 0, depending on if A is a postive number, a negative number, or zero, respectively."
icon_state = "sign"
- inputs = list("A")
+ inputs = list("A" = IC_PINTYPE_NUMBER)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/arithmetic/sign/do_work()
@@ -179,7 +174,7 @@
desc = "Rounds A to the nearest B multiple of A."
extended_desc = "If B is not given a number, it will output the floor of A instead."
icon_state = "round"
- inputs = list("A", "B")
+ inputs = list("A" = IC_PINTYPE_NUMBER, "B" = IC_PINTYPE_NUMBER)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/arithmetic/round/do_work()
@@ -203,12 +198,12 @@
name = "absolute circuit"
desc = "This outputs a non-negative version of the number you put in. This may also be thought of as its distance from zero."
icon_state = "absolute"
- inputs = list("A")
+ inputs = list("A" = IC_PINTYPE_NUMBER)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/arithmetic/absolute/do_work()
var/result = 0
- for(var/datum/integrated_io/input/I in inputs)
+ for(var/datum/integrated_io/I in inputs)
I.pull_data()
if(isnum(I.data))
result = abs(I.data)
@@ -229,7 +224,7 @@
/obj/item/integrated_circuit/arithmetic/average/do_work()
var/result = 0
var/inputs_used = 0
- for(var/datum/integrated_io/input/I in inputs)
+ for(var/datum/integrated_io/I in inputs)
I.pull_data()
if(isnum(I.data))
inputs_used++
@@ -262,7 +257,7 @@
extended_desc = "'Inclusive' means that the upper bound is included in the range of numbers, e.g. L = 1 and H = 3 will allow \
for outputs of 1, 2, or 3. H being the higher number is not strictly required."
icon_state = "random"
- inputs = list("\ L","\ H")
+ inputs = list("L" = IC_PINTYPE_NUMBER,"H" = IC_PINTYPE_NUMBER)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/arithmetic/random/do_work()
@@ -283,12 +278,12 @@
name = "square root circuit"
desc = "This outputs the square root of a number you put in."
icon_state = "square_root"
- inputs = list("\ A")
+ inputs = list("A" = IC_PINTYPE_NUMBER)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/arithmetic/square_root/do_work()
var/result = 0
- for(var/datum/integrated_io/input/I in inputs)
+ for(var/datum/integrated_io/I in inputs)
I.pull_data()
if(isnum(I.data))
result = sqrt(I.data)
@@ -303,7 +298,7 @@
name = "modulo circuit"
desc = "Gets the remainder of A / B."
icon_state = "modulo"
- inputs = list("\ A", "\ B")
+ inputs = list("A" = IC_PINTYPE_NUMBER, "B" = IC_PINTYPE_NUMBER)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/arithmetic/modulo/do_work()
diff --git a/code/modules/integrated_electronics/subtypes/built_in.dm b/code/modules/integrated_electronics/subtypes/built_in.dm
index e4a6d8e1b48..24eac868029 100644
--- a/code/modules/integrated_electronics/subtypes/built_in.dm
+++ b/code/modules/integrated_electronics/subtypes/built_in.dm
@@ -11,7 +11,7 @@
name = "assembly input"
desc = "A built in chip for handling pulses from attached assembly items."
complexity = 0 //This acts as a limitation on building machines, more resource-intensive components cost more 'space'.
- activators = list("on pulsed" = 0)
+ activators = list("on pulsed" = IC_PINTYPE_PULSE_OUT)
/obj/item/integrated_circuit/built_in/device_input/do_work()
activate_pin(1)
@@ -20,7 +20,7 @@
name = "assembly out"
desc = "A built in chip for pulsing attached assembly items."
complexity = 0 //This acts as a limitation on building machines, more resource-intensive components cost more 'space'.
- activators = list("pulse attached" = 1)
+ activators = list("pulse attached" = IC_PINTYPE_PULSE_IN)
/obj/item/integrated_circuit/built_in/device_output/do_work()
if(istype(assembly, /obj/item/device/electronic_assembly/device))
diff --git a/code/modules/integrated_electronics/subtypes/converters.dm b/code/modules/integrated_electronics/subtypes/converters.dm
index 498b20a7a0f..343890af56e 100644
--- a/code/modules/integrated_electronics/subtypes/converters.dm
+++ b/code/modules/integrated_electronics/subtypes/converters.dm
@@ -3,29 +3,24 @@
complexity = 2
inputs = list("input")
outputs = list("output")
- activators = list("convert" = 1, "on convert" = 0)
+ activators = list("convert" = IC_PINTYPE_PULSE_IN, "on convert" = IC_PINTYPE_PULSE_OUT)
category_text = "Converter"
- autopulse = 1
power_draw_per_use = 10
-/obj/item/integrated_circuit/converter/on_data_written()
- if(autopulse == 1)
- check_then_do_work()
-
/obj/item/integrated_circuit/converter/num2text
name = "number to string"
desc = "This circuit can convert a number variable into a string."
extended_desc = "Because of game limitations null/false variables will output a '0' string."
icon_state = "num-string"
- inputs = list("\ input")
- outputs = list("\ output")
+ inputs = list("input" = IC_PINTYPE_NUMBER)
+ outputs = list("output" = IC_PINTYPE_STRING)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/converter/num2text/do_work()
var/result = null
pull_data()
var/incoming = get_pin_data(IC_INPUT, 1)
- if(incoming && isnum(incoming))
+ if(!isnull(incoming))
result = num2text(incoming)
else if(!incoming)
result = "0"
@@ -38,15 +33,15 @@
name = "string to number"
desc = "This circuit can convert a string variable into a number."
icon_state = "string-num"
- inputs = list("\ input")
- outputs = list("\ output")
+ inputs = list("input" = IC_PINTYPE_STRING)
+ outputs = list("output" = IC_PINTYPE_NUMBER)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/converter/text2num/do_work()
var/result = null
pull_data()
var/incoming = get_pin_data(IC_INPUT, 1)
- if(incoming && istext(incoming))
+ if(!isnull(incoming))
result = text2num(incoming)
set_pin_data(IC_OUTPUT, 1, result)
@@ -57,8 +52,8 @@
name = "reference to string"
desc = "This circuit can convert a reference to something else to a string, specifically the name of that reference."
icon_state = "ref-string"
- inputs = list("\[ input")
- outputs = list("\ output")
+ inputs = list("input" = IC_PINTYPE_REF)
+ outputs = list("output" = IC_PINTYPE_STRING)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/converter/ref2text/do_work()
@@ -76,15 +71,15 @@
name = "lowercase string converter"
desc = "this will cause a string to come out in all lowercase."
icon_state = "lowercase"
- inputs = list("\ input")
- outputs = list("\ output")
+ inputs = list("input" = IC_PINTYPE_STRING)
+ outputs = list("output" = IC_PINTYPE_STRING)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/converter/lowercase/do_work()
var/result = null
pull_data()
var/incoming = get_pin_data(IC_INPUT, 1)
- if(incoming && istext(incoming))
+ if(!isnull(incoming))
result = lowertext(incoming)
set_pin_data(IC_OUTPUT, 1, result)
@@ -95,15 +90,15 @@
name = "uppercase string converter"
desc = "THIS WILL CAUSE A STRING TO COME OUT IN ALL UPPERCASE."
icon_state = "uppercase"
- inputs = list("\ input")
- outputs = list("\ output")
+ inputs = list("input" = IC_PINTYPE_STRING)
+ outputs = list("output" = IC_PINTYPE_STRING)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/converter/uppercase/do_work()
var/result = null
pull_data()
var/incoming = get_pin_data(IC_INPUT, 1)
- if(incoming && istext(incoming))
+ if(!isnull(incoming))
result = uppertext(incoming)
set_pin_data(IC_OUTPUT, 1, result)
@@ -112,34 +107,31 @@
/obj/item/integrated_circuit/converter/concatenator
name = "concatenator"
- desc = "This joins many strings or numbers together to get one big string."
+ desc = "This joins many strings together to get one big string."
complexity = 4
inputs = list(
- "\ A",
- "\ B",
- "\ C",
- "\ D",
- "\ E",
- "\ F",
- "\ G",
- "\ H"
+ "A" = IC_PINTYPE_STRING,
+ "B" = IC_PINTYPE_STRING,
+ "C" = IC_PINTYPE_STRING,
+ "D" = IC_PINTYPE_STRING,
+ "E" = IC_PINTYPE_STRING,
+ "F" = IC_PINTYPE_STRING,
+ "G" = IC_PINTYPE_STRING,
+ "H" = IC_PINTYPE_STRING
)
- outputs = list("\ result")
- activators = list("concatenate" = 1, "on concatenated" = 0)
+ outputs = list("result" = IC_PINTYPE_STRING)
+ activators = list("concatenate" = IC_PINTYPE_PULSE_IN, "on concatenated" = IC_PINTYPE_PULSE_OUT)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/converter/concatenator/do_work()
var/result = null
- for(var/datum/integrated_io/input/I in inputs)
+ for(var/datum/integrated_io/I in inputs)
I.pull_data()
- if(istext(I.data))
+ if(!isnull(I.data))
result = result + I.data
- else if(!isnull(I.data) && num2text(I.data))
- result = result + num2text(I.data)
- var/datum/integrated_io/outgoing = outputs[1]
- outgoing.data = result
- outgoing.push_data()
+ set_pin_data(IC_OUTPUT, 1, result)
+ push_data()
activate_pin(2)
/obj/item/integrated_circuit/converter/separator
@@ -150,14 +142,14 @@
will split into 'a p' and 'erson'."
complexity = 4
inputs = list(
- "\ string",
- "\ index",
+ "string to split" = IC_PINTYPE_STRING,
+ "index" = IC_PINTYPE_NUMBER,
)
outputs = list(
- "\ before split",
- "\ after split"
+ "before split" = IC_PINTYPE_STRING,
+ "after split" = IC_PINTYPE_STRING
)
- activators = list("separate" = 1, "on separated" = 0)
+ activators = list("separate" = IC_PINTYPE_PULSE_IN, "on separated" = IC_PINTYPE_PULSE_OUT)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
@@ -170,12 +162,9 @@
var/before_text = copytext(text, 1, split)
var/after_text = copytext(text, split, 0)
- var/datum/integrated_io/outgoing1 = outputs[1]
- var/datum/integrated_io/outgoing2 = outputs[2]
- outgoing1.data = before_text
- outgoing2.data = after_text
- outgoing1.push_data()
- outgoing2.push_data()
+ set_pin_data(IC_OUTPUT, 1, before_text)
+ set_pin_data(IC_OUTPUT, 2, after_text)
+ push_data()
activate_pin(2)
@@ -183,15 +172,15 @@
/obj/item/integrated_circuit/converter/radians2degrees
name = "radians to degrees converter"
desc = "Converts radians to degrees."
- inputs = list("\ radian")
- outputs = list("\ degrees")
+ inputs = list("radian" = IC_PINTYPE_NUMBER)
+ outputs = list("degrees" = IC_PINTYPE_NUMBER)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/converter/radians2degrees/do_work()
var/result = null
pull_data()
var/incoming = get_pin_data(IC_INPUT, 1)
- if(incoming && isnum(incoming))
+ if(!isnull(incoming))
result = ToDegrees(incoming)
set_pin_data(IC_OUTPUT, 1, result)
@@ -201,15 +190,15 @@
/obj/item/integrated_circuit/converter/degrees2radians
name = "degrees to radians converter"
desc = "Converts degrees to radians."
- inputs = list("\ degrees")
- outputs = list("\ radians")
+ inputs = list("degrees" = IC_PINTYPE_NUMBER)
+ outputs = list("radians" = IC_PINTYPE_NUMBER)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/converter/degrees2radians/do_work()
var/result = null
pull_data()
var/incoming = get_pin_data(IC_INPUT, 1)
- if(incoming && isnum(incoming))
+ if(!isnull(incoming))
result = ToRadians(incoming)
set_pin_data(IC_OUTPUT, 1, result)
@@ -221,9 +210,17 @@
name = "abs to rel coordinate converter"
desc = "Easily convert absolute coordinates to relative coordinates with this."
complexity = 4
- inputs = list("\ X1", "\ Y1", "\ X2", "\ Y2")
- outputs = list("\ X", "\ Y")
- activators = list("compute rel coordinates" = 1, "on convert" = 0)
+ inputs = list(
+ "X1" = IC_PINTYPE_NUMBER,
+ "Y1" = IC_PINTYPE_NUMBER,
+ "X2" = IC_PINTYPE_NUMBER,
+ "Y2" = IC_PINTYPE_NUMBER
+ )
+ outputs = list(
+ "X" = IC_PINTYPE_NUMBER,
+ "Y" = IC_PINTYPE_NUMBER
+ )
+ activators = list("compute rel coordinates" = IC_PINTYPE_PULSE_IN, "on convert" = IC_PINTYPE_PULSE_OUT)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/converter/abs_to_rel_coords/do_work()
@@ -233,7 +230,7 @@
var/x2 = get_pin_data(IC_INPUT, 3)
var/y2 = get_pin_data(IC_INPUT, 4)
- if(x1 && y1 && x2 && y2)
+ if(!isnull(x1) && !isnull(y1) && !isnull(x2) && !isnull(y2))
set_pin_data(IC_OUTPUT, 1, x1 - x2)
set_pin_data(IC_OUTPUT, 2, y1 - y2)
diff --git a/code/modules/integrated_electronics/subtypes/data_transfer.dm b/code/modules/integrated_electronics/subtypes/data_transfer.dm
index 92a807906f0..7b5846eb8d0 100644
--- a/code/modules/integrated_electronics/subtypes/data_transfer.dm
+++ b/code/modules/integrated_electronics/subtypes/data_transfer.dm
@@ -1,114 +1,25 @@
/obj/item/integrated_circuit/transfer
category_text = "Data Transfer"
- autopulse = 1
power_draw_per_use = 2
-/obj/item/integrated_circuit/transfer/on_data_written()
- if(autopulse == 1)
- check_then_do_work()
-
-/obj/item/integrated_circuit/transfer/splitter
- name = "splitter"
- desc = "Splits incoming data into all of the output pins."
- icon_state = "splitter"
- complexity = 3
- inputs = list("data to split")
- outputs = list("A","B")
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
-
-/obj/item/integrated_circuit/transfer/splitter/medium
- name = "four splitter"
- icon_state = "splitter4"
- complexity = 5
- outputs = list("A","B","C","D")
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
- power_draw_per_use = 4
-
-/obj/item/integrated_circuit/transfer/splitter/large
- name = "eight splitter"
- icon_state = "splitter8"
- w_class = ITEMSIZE_SMALL
- complexity = 9
- outputs = list("A","B","C","D","E","F","G","H")
- spawn_flags = IC_SPAWN_RESEARCH
- power_draw_per_use = 8
-
-/obj/item/integrated_circuit/transfer/splitter/do_work()
- var/datum/integrated_io/I = inputs[1]
- for(var/datum/integrated_io/output/O in outputs)
- O.data = I.data
-
-/obj/item/integrated_circuit/transfer/activator_splitter
- name = "activator splitter"
- desc = "Splits incoming activation pulses into all of the output pins."
- icon_state = "splitter"
- complexity = 3
- activators = list(
- "pulse" = 1,
- "pulse A" = 0,
- "pulse B" = 0
- )
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
- power_draw_per_use = 2
-
-/obj/item/integrated_circuit/transfer/activator_splitter/do_work()
- for(var/datum/integrated_io/activate/A in outputs)
- if(A == activators[1])
- continue
- if(A.linked.len)
- for(var/datum/integrated_io/activate/target in A.linked)
- target.holder.check_then_do_work()
-
-/obj/item/integrated_circuit/transfer/activator_splitter/medium
- name = "four activator splitter"
- icon_state = "splitter4"
- complexity = 5
- activators = list(
- "pulse" = 1,
- "pulse A" = 0,
- "pulse B" = 0,
- "pulse C" = 0,
- "pulse D" = 0
- )
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
- power_draw_per_use = 4
-
-/obj/item/integrated_circuit/transfer/activator_splitter/large
- name = "eight activator splitter"
- icon_state = "splitter4"
- w_class = ITEMSIZE_SMALL
- complexity = 9
- activators = list(
- "incoming pulse" = 1,
- "outgoing pulse A" = 0,
- "outgoing pulse B" = 0,
- "outgoing pulse C" = 0,
- "outgoing pulse D" = 0,
- "outgoing pulse E" = 0,
- "outgoing pulse F" = 0,
- "outgoing pulse G" = 0,
- "outgoing pulse H" = 0
- )
- spawn_flags = IC_SPAWN_RESEARCH
- power_draw_per_use = 8
-
-
/obj/item/integrated_circuit/transfer/multiplexer
name = "two multiplexer"
desc = "This is what those in the business tend to refer to as a 'mux' or data selector. It moves data from one of the selected inputs to the output."
- extended_desc = "The first input pin is used to select which of the other input pins which has its data moved to the output. If the input selection is outside the valid range then no output is given."
+ extended_desc = "The first input pin is used to select which of the other input pins which has its data moved to the output. \
+ If the input selection is outside the valid range then no output is given."
complexity = 2
icon_state = "mux2"
- inputs = list("input selection")
- outputs = list("output")
- activators = list("select" = 1, "on select" = 0)
+ inputs = list("input selection" = IC_PINTYPE_NUMBER)
+ outputs = list("output" = IC_PINTYPE_ANY)
+ activators = list("select" = IC_PINTYPE_PULSE_IN, "on select" = IC_PINTYPE_PULSE_OUT)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
power_draw_per_use = 4
var/number_of_inputs = 2
/obj/item/integrated_circuit/transfer/multiplexer/New()
for(var/i = 1 to number_of_inputs)
- inputs += "input [i]"
+ inputs["input [i]"] = IC_PINTYPE_ANY // This is just a string since pins don't get built until ..() is called.
+// inputs += "input [i]"
complexity = number_of_inputs
..()
desc += " It has [number_of_inputs] input pins."
@@ -118,7 +29,7 @@
var/input_index = get_pin_data(IC_INPUT, 1)
var/output = null
- if(isnum(input_index) && (input_index >= 1 && input_index < inputs.len))
+ if(!isnull(input_index) && (input_index >= 1 && input_index < inputs.len))
output = get_pin_data(IC_INPUT, input_index + 1)
set_pin_data(IC_OUTPUT, 1, output)
@@ -145,19 +56,21 @@
/obj/item/integrated_circuit/transfer/demultiplexer
name = "two demultiplexer"
desc = "This is what those in the business tend to refer to as a 'demux'. It moves data from the input to one of the selected outputs."
- extended_desc = "The first input pin is used to select which of the output pins is given the data from the second input pin. If the output selection is outside the valid range then no output is given."
+ extended_desc = "The first input pin is used to select which of the output pins is given the data from the second input pin. \
+ If the output selection is outside the valid range then no output is given."
complexity = 2
icon_state = "dmux2"
- inputs = list("output selection","input")
+ inputs = list("output selection" = IC_PINTYPE_NUMBER, "input" = IC_PINTYPE_ANY)
outputs = list()
- activators = list("select" = 1)
+ activators = list("select" = IC_PINTYPE_PULSE_IN, "on select" = IC_PINTYPE_PULSE_OUT)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
power_draw_per_use = 4
var/number_of_outputs = 2
/obj/item/integrated_circuit/transfer/demultiplexer/New()
for(var/i = 1 to number_of_outputs)
- outputs += "output [i]"
+ // outputs += "output [i]"
+ outputs["output [i]"] = IC_PINTYPE_ANY
complexity = number_of_outputs
..()
@@ -171,6 +84,8 @@
for(var/i = 1 to outputs.len)
set_pin_data(IC_OUTPUT, i, i == output_index ? output : null)
+ activate_pin(2)
+
/obj/item/integrated_circuit/transfer/demultiplexer/medium
name = "four demultiplexer"
icon_state = "dmux4"
diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm
new file mode 100644
index 00000000000..95ed94b8130
--- /dev/null
+++ b/code/modules/integrated_electronics/subtypes/input.dm
@@ -0,0 +1,433 @@
+/obj/item/integrated_circuit/input
+ var/can_be_asked_input = 0
+ category_text = "Input"
+ power_draw_per_use = 5
+
+/obj/item/integrated_circuit/input/proc/ask_for_input(mob/user)
+ return
+
+/obj/item/integrated_circuit/input/button
+ name = "button"
+ desc = "This tiny button must do something, right?"
+ icon_state = "button"
+ complexity = 1
+ can_be_asked_input = 1
+ inputs = list()
+ outputs = list()
+ activators = list("on pressed" = IC_PINTYPE_PULSE_IN)
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+
+/obj/item/integrated_circuit/input/button/ask_for_input(mob/user) //Bit misleading name for this specific use.
+ to_chat(user, "You press the button labeled '[src.name]'.")
+ activate_pin(1)
+
+/obj/item/integrated_circuit/input/toggle_button
+ name = "toggle button"
+ desc = "It toggles on, off, on, off..."
+ icon_state = "toggle_button"
+ complexity = 1
+ can_be_asked_input = 1
+ inputs = list()
+ outputs = list("on" = IC_PINTYPE_BOOLEAN)
+ activators = list("on toggle" = IC_PINTYPE_PULSE_IN)
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+
+/obj/item/integrated_circuit/input/toggle_button/ask_for_input(mob/user) // Ditto.
+ set_pin_data(IC_OUTPUT, 1, !get_pin_data(IC_OUTPUT, 1))
+ push_data()
+ activate_pin(1)
+ to_chat(user, "You toggle the button labeled '[src.name]' [get_pin_data(IC_OUTPUT, 1) ? "on" : "off"].")
+
+/obj/item/integrated_circuit/input/numberpad
+ name = "number pad"
+ desc = "This small number pad allows someone to input a number into the system."
+ icon_state = "numberpad"
+ complexity = 2
+ can_be_asked_input = 1
+ inputs = list()
+ outputs = list("number entered" = IC_PINTYPE_NUMBER)
+ activators = list("on entered" = IC_PINTYPE_PULSE_IN)
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+ power_draw_per_use = 4
+
+/obj/item/integrated_circuit/input/numberpad/ask_for_input(mob/user)
+ var/new_input = input(user, "Enter a number, please.","Number pad") as null|num
+ if(isnum(new_input) && CanInteract(user, physical_state))
+ set_pin_data(IC_OUTPUT, 1, new_input)
+ push_data()
+ activate_pin(1)
+
+/obj/item/integrated_circuit/input/textpad
+ name = "text pad"
+ desc = "This small text pad allows someone to input a string into the system."
+ icon_state = "textpad"
+ complexity = 2
+ can_be_asked_input = 1
+ inputs = list()
+ outputs = list("string entered" = IC_PINTYPE_STRING)
+ activators = list("on entered" = IC_PINTYPE_PULSE_IN)
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+ power_draw_per_use = 4
+
+/obj/item/integrated_circuit/input/textpad/ask_for_input(mob/user)
+ var/new_input = input(user, "Enter some words, please.","Number pad") as null|text
+ if(istext(new_input) && CanInteract(user, physical_state))
+ set_pin_data(IC_OUTPUT, 1, new_input)
+ push_data()
+ activate_pin(1)
+
+/obj/item/integrated_circuit/input/med_scanner
+ name = "integrated medical analyser"
+ desc = "A very small version of the common medical analyser. This allows the machine to know how healthy someone is."
+ icon_state = "medscan"
+ complexity = 4
+ inputs = list("\][ target")
+ outputs = list(
+ "total health %" = IC_PINTYPE_NUMBER,
+ "total missing health" = IC_PINTYPE_NUMBER
+ )
+ activators = list("scan" = IC_PINTYPE_PULSE_IN, "on scanned" = IC_PINTYPE_PULSE_OUT)
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+ origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_BIO = 2)
+ power_draw_per_use = 40
+
+/obj/item/integrated_circuit/input/med_scanner/do_work()
+ var/mob/living/carbon/human/H = get_pin_data_as_type(IC_INPUT, 1, /mob/living/carbon/human)
+ if(!istype(H)) //Invalid input
+ return
+ if(H.Adjacent(get_turf(src))) // Like normal analysers, it can't be used at range.
+ var/total_health = round(H.health/H.getMaxHealth(), 0.01)*100
+ var/missing_health = H.getMaxHealth() - H.health
+
+ set_pin_data(IC_OUTPUT, 1, total_health)
+ set_pin_data(IC_OUTPUT, 2, missing_health)
+
+ push_data()
+ activate_pin(2)
+
+/obj/item/integrated_circuit/input/adv_med_scanner
+ name = "integrated advanced medical analyser"
+ desc = "A very small version of the common medical analyser. This allows the machine to know how healthy someone is. \
+ This type is much more precise, allowing the machine to know much more about the target than a normal analyzer."
+ icon_state = "medscan_adv"
+ complexity = 12
+ inputs = list("\][ target")
+ outputs = list(
+ "total health %" = IC_PINTYPE_NUMBER,
+ "total missing health" = IC_PINTYPE_NUMBER,
+ "brute damage" = IC_PINTYPE_NUMBER,
+ "burn damage" = IC_PINTYPE_NUMBER,
+ "tox damage" = IC_PINTYPE_NUMBER,
+ "oxy damage" = IC_PINTYPE_NUMBER,
+ "clone damage" = IC_PINTYPE_NUMBER
+ )
+ activators = list("scan" = IC_PINTYPE_PULSE_IN, "on scanned" = IC_PINTYPE_PULSE_OUT)
+ spawn_flags = IC_SPAWN_RESEARCH
+ origin_tech = list(TECH_ENGINEERING = 3, TECH_DATA = 3, TECH_BIO = 4)
+ power_draw_per_use = 80
+
+/obj/item/integrated_circuit/input/adv_med_scanner/do_work()
+ var/mob/living/carbon/human/H = get_pin_data_as_type(IC_INPUT, 1, /mob/living/carbon/human)
+ if(!istype(H)) //Invalid input
+ return
+ if(H.Adjacent(get_turf(src))) // Like normal analysers, it can't be used at range.
+ var/total_health = round(H.health/H.getMaxHealth(), 0.01)*100
+ var/missing_health = H.getMaxHealth() - H.health
+
+ set_pin_data(IC_OUTPUT, 1, total_health)
+ set_pin_data(IC_OUTPUT, 2, missing_health)
+ set_pin_data(IC_OUTPUT, 3, H.getBruteLoss())
+ set_pin_data(IC_OUTPUT, 4, H.getFireLoss())
+ set_pin_data(IC_OUTPUT, 5, H.getToxLoss())
+ set_pin_data(IC_OUTPUT, 6, H.getOxyLoss())
+ set_pin_data(IC_OUTPUT, 7, H.getCloneLoss())
+
+ push_data()
+ activate_pin(2)
+
+/obj/item/integrated_circuit/input/local_locator
+ name = "local locator"
+ desc = "This is needed for certain devices that demand a reference for a target to act upon. This type only locates something \
+ that is holding the machine containing it."
+ inputs = list()
+ outputs = list("located ref")
+ activators = list("locate" = IC_PINTYPE_PULSE_IN)
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+ power_draw_per_use = 20
+
+/obj/item/integrated_circuit/input/local_locator/do_work()
+ var/datum/integrated_io/O = outputs[1]
+ O.data = null
+ if(assembly)
+ if(istype(assembly.loc, /mob/living)) // Now check if someone's holding us.
+ O.data = weakref(assembly.loc)
+
+ O.push_data()
+
+/obj/item/integrated_circuit/input/adjacent_locator
+ name = "adjacent locator"
+ desc = "This is needed for certain devices that demand a reference for a target to act upon. This type only locates something \
+ that is standing a meter away from the machine."
+ extended_desc = "The first pin requires a ref to a kind of object that you want the locator to acquire. This means that it will \
+ give refs to nearby objects that are similar. If more than one valid object is found nearby, it will choose one of them at \
+ random."
+ inputs = list("desired type ref")
+ outputs = list("located ref")
+ activators = list("locate" = IC_PINTYPE_PULSE_IN)
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+ power_draw_per_use = 30
+
+/obj/item/integrated_circuit/input/adjacent_locator/do_work()
+ var/datum/integrated_io/I = inputs[1]
+ var/datum/integrated_io/O = outputs[1]
+ O.data = null
+
+ if(!isweakref(I.data))
+ return
+ var/atom/A = I.data.resolve()
+ if(!A)
+ return
+ var/desired_type = A.type
+
+ var/list/nearby_things = range(1, get_turf(src))
+ var/list/valid_things = list()
+ for(var/atom/thing in nearby_things)
+ if(thing.type != desired_type)
+ continue
+ valid_things.Add(thing)
+ if(valid_things.len)
+ O.data = weakref(pick(valid_things))
+ O.push_data()
+
+/obj/item/integrated_circuit/input/signaler
+ name = "integrated signaler"
+ desc = "Signals from a signaler can be received with this, allowing for remote control. Additionally, it can send signals as well."
+ extended_desc = "When a signal is received from another signaler, the 'on signal received' activator pin will be pulsed. \
+ The two input pins are to configure the integrated signaler's settings. Note that the frequency should not have a decimal in it. \
+ Meaning the default frequency is expressed as 1457, not 145.7. To send a signal, pulse the 'send signal' activator pin."
+ icon_state = "signal"
+ complexity = 4
+ inputs = list("frequency" = IC_PINTYPE_NUMBER,"code" = IC_PINTYPE_NUMBER)
+ outputs = list()
+ activators = list(
+ "send signal" = IC_PINTYPE_PULSE_IN,
+ "on signal sent" = IC_PINTYPE_PULSE_OUT,
+ "on signal received" = IC_PINTYPE_PULSE_OUT)
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+ origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_MAGNET = 2)
+ power_draw_idle = 5
+ power_draw_per_use = 40
+
+ var/frequency = 1457
+ var/code = 30
+ var/datum/radio_frequency/radio_connection
+
+/obj/item/integrated_circuit/input/signaler/initialize()
+ ..()
+ set_frequency(frequency)
+ // Set the pins so when someone sees them, they won't show as null
+ set_pin_data(IC_INPUT, 1, frequency)
+ set_pin_data(IC_INPUT, 2, code)
+
+/obj/item/integrated_circuit/input/signaler/Destroy()
+ if(radio_controller)
+ radio_controller.remove_object(src,frequency)
+ frequency = 0
+ . = ..()
+
+/obj/item/integrated_circuit/input/signaler/on_data_written()
+ var/new_freq = get_pin_data(IC_INPUT, 1)
+ var/new_code = get_pin_data(IC_INPUT, 2)
+ if(isnum(new_freq) && new_freq > 0)
+ set_frequency(new_freq)
+ if(isnum(new_code))
+ code = new_code
+
+
+/obj/item/integrated_circuit/input/signaler/do_work() // Sends a signal.
+ if(!radio_connection)
+ return
+
+ var/datum/signal/signal = new()
+ signal.source = src
+ signal.encryption = code
+ signal.data["message"] = "ACTIVATE"
+ radio_connection.post_signal(src, signal)
+ activate_pin(2)
+
+/obj/item/integrated_circuit/input/signaler/proc/set_frequency(new_frequency)
+ if(!frequency)
+ return
+ if(!radio_controller)
+ sleep(20)
+ if(!radio_controller)
+ return
+ radio_controller.remove_object(src, frequency)
+ frequency = new_frequency
+ radio_connection = radio_controller.add_object(src, frequency, RADIO_CHAT)
+
+/obj/item/integrated_circuit/input/signaler/receive_signal(datum/signal/signal)
+ var/new_code = get_pin_data(IC_INPUT, 2)
+ var/code = 0
+
+ if(isnum(new_code))
+ code = new_code
+ if(!signal)
+ return 0
+ if(signal.encryption != code)
+ return 0
+ if(signal.source == src) // Don't trigger ourselves.
+ return 0
+
+ activate_pin(3)
+
+ for(var/mob/O in hearers(1, get_turf(src)))
+ O.show_message(text("\icon[] *beep* *beep*", src), 3, "*beep* *beep*", 2)
+
+/obj/item/integrated_circuit/input/EPv2
+ name = "\improper EPv2 circuit"
+ desc = "Enables the sending and receiving of messages on the Exonet with the EPv2 protocol."
+ extended_desc = "An EPv2 address is a string with the format of XXXX:XXXX:XXXX:XXXX. Data can be send or received using the \
+ second pin on each side, with additonal data reserved for the third pin. When a message is received, the second activaiton pin \
+ will pulse whatever's connected to it. Pulsing the first activation pin will send a message."
+ icon_state = "signal"
+ complexity = 4
+ inputs = list(
+ "target EPv2 address" = IC_PINTYPE_STRING,
+ "data to send" = IC_PINTYPE_STRING,
+ "secondary text" = IC_PINTYPE_STRING
+ )
+ outputs = list(
+ "address received" = IC_PINTYPE_STRING,
+ "data received" = IC_PINTYPE_STRING,
+ "secondary text received" = IC_PINTYPE_STRING
+ )
+ activators = list("send data" = IC_PINTYPE_PULSE_IN, "on data received" = IC_PINTYPE_PULSE_OUT)
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+ origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_MAGNET = 2, TECH_BLUESPACE = 2)
+ power_draw_per_use = 50
+ var/datum/exonet_protocol/exonet = null
+
+/obj/item/integrated_circuit/input/EPv2/New()
+ ..()
+ exonet = new(src)
+ exonet.make_address("EPv2_circuit-\ref[src]")
+ desc += "]
This circuit's EPv2 address is: [exonet.address]"
+
+/obj/item/integrated_circuit/input/EPv2/Destroy()
+ if(exonet)
+ exonet.remove_address()
+ qdel(exonet)
+ exonet = null
+ return ..()
+
+/obj/item/integrated_circuit/input/EPv2/do_work()
+ var/target_address = get_pin_data(IC_INPUT, 1)
+ var/message = get_pin_data(IC_INPUT, 2)
+ var/text = get_pin_data(IC_INPUT, 3)
+
+ if(target_address && istext(target_address))
+ exonet.send_message(target_address, message, text)
+
+/obj/item/integrated_circuit/input/receive_exonet_message(var/atom/origin_atom, var/origin_address, var/message, var/text)
+ set_pin_data(IC_OUTPUT, 1, origin_address)
+ set_pin_data(IC_OUTPUT, 2, message)
+ set_pin_data(IC_OUTPUT, 3, text)
+
+ push_data()
+ activate_pin(2)
+
+//This circuit gives information on where the machine is.
+/obj/item/integrated_circuit/input/gps
+ name = "global positioning system"
+ desc = "This allows you to easily know the position of a machine containing this device."
+ extended_desc = "The GPS's coordinates it gives is absolute, not relative."
+ icon_state = "gps"
+ complexity = 4
+ inputs = list()
+ outputs = list("X"= IC_PINTYPE_NUMBER, "Y" = IC_PINTYPE_NUMBER)
+ activators = list("get coordinates" = IC_PINTYPE_PULSE_IN, "on get coordinates" = IC_PINTYPE_PULSE_OUT)
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+ power_draw_per_use = 30
+
+/obj/item/integrated_circuit/input/gps/do_work()
+ var/turf/T = get_turf(src)
+
+ set_pin_data(IC_OUTPUT, 1, null)
+ set_pin_data(IC_OUTPUT, 2, null)
+ if(!T)
+ return
+
+ set_pin_data(IC_OUTPUT, 1, T.x)
+ set_pin_data(IC_OUTPUT, 2, T.y)
+
+ push_data()
+ activate_pin(2)
+
+
+/obj/item/integrated_circuit/input/microphone
+ name = "microphone"
+ desc = "Useful for spying on people or for voice activated machines."
+ extended_desc = "This will automatically translate most languages it hears to Galactic Common. \
+ The first activation pin is always pulsed when the circuit hears someone talk, while the second one \
+ is only triggered if it hears someone speaking a language other than Galactic Common."
+ icon_state = "recorder"
+ complexity = 8
+ inputs = list()
+ outputs = list(
+ "speaker" = IC_PINTYPE_STRING,
+ "message" = IC_PINTYPE_STRING
+ )
+ activators = list("on message received" = IC_PINTYPE_PULSE_IN, "on translation" = IC_PINTYPE_PULSE_OUT)
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+ power_draw_per_use = 15
+
+/obj/item/integrated_circuit/input/microphone/New()
+ ..()
+ listening_objects |= src
+
+/obj/item/integrated_circuit/input/microphone/Destroy()
+ listening_objects -= src
+ return ..()
+
+/obj/item/integrated_circuit/input/microphone/hear_talk(mob/living/M, msg, var/verb="says", datum/language/speaking=null)
+ var/translated = FALSE
+ if(M && msg)
+ if(speaking)
+ if(!speaking.machine_understands)
+ msg = speaking.scramble(msg)
+ if(!istype(speaking, /datum/language/common))
+ translated = TRUE
+ set_pin_data(IC_OUTPUT, 1, M.GetVoice())
+ set_pin_data(IC_OUTPUT, 2, msg)
+
+ push_data()
+ activate_pin(1)
+ if(translated)
+ activate_pin(2)
+
+
+
+/obj/item/integrated_circuit/input/sensor
+ name = "sensor"
+ desc = "Scans and obtains a reference for any objects or persons near you. All you need to do is shove the machine in their face."
+ extended_desc = "If 'ignore storage' pin is set to true, the sensor will disregard scanning various storage containers such as backpacks."
+ icon_state = "recorder"
+ complexity = 12
+ inputs = list("ignore storage" = IC_PINTYPE_BOOLEAN)
+ outputs = list("scanned" = IC_PINTYPE_REF)
+ activators = list("on scanned" = IC_PINTYPE_PULSE_OUT)
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+ power_draw_per_use = 120
+
+/obj/item/integrated_circuit/input/sensor/proc/scan(var/atom/A)
+ var/ignore_bags = get_pin_data(IC_INPUT, 1)
+ if(ignore_bags)
+ if(istype(A, /obj/item/weapon/storage))
+ return FALSE
+
+ set_pin_data(IC_OUTPUT, 1, weakref(A))
+ push_data()
+ activate_pin(1)
+ return TRUE
+
diff --git a/code/modules/integrated_electronics/subtypes/input_output.dm b/code/modules/integrated_electronics/subtypes/input_output.dm
deleted file mode 100644
index 05bb7113794..00000000000
--- a/code/modules/integrated_electronics/subtypes/input_output.dm
+++ /dev/null
@@ -1,762 +0,0 @@
-/obj/item/integrated_circuit/input
- var/can_be_asked_input = 0
- category_text = "Input"
- power_draw_per_use = 5
-
-/obj/item/integrated_circuit/input/proc/ask_for_input(mob/user)
- return
-
-/obj/item/integrated_circuit/input/button
- name = "button"
- desc = "This tiny button must do something, right?"
- icon_state = "button"
- complexity = 1
- can_be_asked_input = 1
- inputs = list()
- outputs = list()
- activators = list("on pressed" = 0)
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
-
-/obj/item/integrated_circuit/input/button/ask_for_input(mob/user) //Bit misleading name for this specific use.
- to_chat(user, "You press the button labeled '[src.name]'.")
- activate_pin(1)
-
-/obj/item/integrated_circuit/input/toggle_button
- name = "toggle button"
- desc = "It toggles on, off, on, off..."
- icon_state = "toggle_button"
- complexity = 1
- can_be_asked_input = 1
- inputs = list()
- outputs = list("\ on" = 0)
- activators = list("on toggle" = 0)
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
-
-/obj/item/integrated_circuit/input/toggle_button/ask_for_input(mob/user) // Ditto.
- set_pin_data(IC_OUTPUT, 1, !get_pin_data(IC_OUTPUT, 1))
- push_data()
- activate_pin(1)
- to_chat(user, "You toggle the button labeled '[src.name]' [get_pin_data(IC_OUTPUT, 1) ? "on" : "off"].")
-
-/obj/item/integrated_circuit/input/numberpad
- name = "number pad"
- desc = "This small number pad allows someone to input a number into the system."
- icon_state = "numberpad"
- complexity = 2
- can_be_asked_input = 1
- inputs = list()
- outputs = list("\ number entered")
- activators = list("on entered" = 0)
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
- power_draw_per_use = 4
-
-/obj/item/integrated_circuit/input/numberpad/ask_for_input(mob/user)
- var/new_input = input(user, "Enter a number, please.","Number pad") as null|num
- if(isnum(new_input) && CanInteract(user, physical_state))
- set_pin_data(IC_OUTPUT, 1, new_input)
- push_data()
- activate_pin(1)
-
-/obj/item/integrated_circuit/input/textpad
- name = "text pad"
- desc = "This small text pad allows someone to input a string into the system."
- icon_state = "textpad"
- complexity = 2
- can_be_asked_input = 1
- inputs = list()
- outputs = list("\ string entered")
- activators = list("on entered" = 0)
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
- power_draw_per_use = 4
-
-/obj/item/integrated_circuit/input/textpad/ask_for_input(mob/user)
- var/new_input = input(user, "Enter some words, please.","Number pad") as null|text
- if(istext(new_input) && CanInteract(user, physical_state))
- set_pin_data(IC_OUTPUT, 1, new_input)
- push_data()
- activate_pin(1)
-
-/obj/item/integrated_circuit/input/med_scanner
- name = "integrated medical analyser"
- desc = "A very small version of the common medical analyser. This allows the machine to know how healthy someone is."
- icon_state = "medscan"
- complexity = 4
- inputs = list("\[ target")
- outputs = list("\ total health %", "\ total missing health")
- activators = list("scan" = 1, "on scanned" = 0)
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
- origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_BIO = 2)
- power_draw_per_use = 40
-
-/obj/item/integrated_circuit/input/med_scanner/do_work()
- var/mob/living/carbon/human/H = get_pin_data_as_type(IC_INPUT, 1, /mob/living/carbon/human)
- if(!istype(H)) //Invalid input
- return
- if(H.Adjacent(get_turf(src))) // Like normal analysers, it can't be used at range.
- var/total_health = round(H.health/H.getMaxHealth(), 0.1)*100
- var/missing_health = H.getMaxHealth() - H.health
-
- set_pin_data(IC_OUTPUT, 1, total_health)
- set_pin_data(IC_OUTPUT, 2, missing_health)
-
- push_data()
- activate_pin(2)
-
-/obj/item/integrated_circuit/input/adv_med_scanner
- name = "integrated advanced medical analyser"
- desc = "A very small version of the common medical analyser. This allows the machine to know how healthy someone is. \
- This type is much more precise, allowing the machine to know much more about the target than a normal analyzer."
- icon_state = "medscan_adv"
- complexity = 12
- inputs = list("\][ target")
- outputs = list(
- "\ total health %",
- "\ total missing health",
- "\ brute damage",
- "\ burn damage",
- "\ tox damage",
- "\ oxy damage",
- "\ clone damage"
- )
- activators = list("scan" = 1, "on scanned" = 0)
- spawn_flags = IC_SPAWN_RESEARCH
- origin_tech = list(TECH_ENGINEERING = 3, TECH_DATA = 3, TECH_BIO = 4)
- power_draw_per_use = 80
-
-/obj/item/integrated_circuit/input/adv_med_scanner/do_work()
- var/mob/living/carbon/human/H = get_pin_data_as_type(IC_INPUT, 1, /mob/living/carbon/human)
- if(!istype(H)) //Invalid input
- return
- if(H.Adjacent(get_turf(src))) // Like normal analysers, it can't be used at range.
- var/total_health = round(H.health/H.getMaxHealth(), 0.1)*100
- var/missing_health = H.getMaxHealth() - H.health
-
- set_pin_data(IC_OUTPUT, 1, total_health)
- set_pin_data(IC_OUTPUT, 2, missing_health)
- set_pin_data(IC_OUTPUT, 3, H.getBruteLoss())
- set_pin_data(IC_OUTPUT, 4, H.getFireLoss())
- set_pin_data(IC_OUTPUT, 5, H.getToxLoss())
- set_pin_data(IC_OUTPUT, 6, H.getOxyLoss())
- set_pin_data(IC_OUTPUT, 7, H.getCloneLoss())
-
- push_data()
- activate_pin(2)
-
-/obj/item/integrated_circuit/input/local_locator
- name = "local locator"
- desc = "This is needed for certain devices that demand a reference for a target to act upon. This type only locates something \
- that is holding the machine containing it."
- inputs = list()
- outputs = list("located ref")
- activators = list("locate" = 1)
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
- power_draw_per_use = 20
-
-/obj/item/integrated_circuit/input/local_locator/do_work()
- var/datum/integrated_io/O = outputs[1]
- O.data = null
- if(assembly)
- if(istype(assembly.loc, /mob/living)) // Now check if someone's holding us.
- O.data = weakref(assembly.loc)
-
- O.push_data()
-
-/obj/item/integrated_circuit/input/adjacent_locator
- name = "adjacent locator"
- desc = "This is needed for certain devices that demand a reference for a target to act upon. This type only locates something \
- that is standing a meter away from the machine."
- extended_desc = "The first pin requires a ref to a kind of object that you want the locator to acquire. This means that it will \
- give refs to nearby objects that are similar. If more than one valid object is found nearby, it will choose one of them at \
- random."
- inputs = list("desired type ref")
- outputs = list("located ref")
- activators = list("locate" = 1)
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
- power_draw_per_use = 30
-
-/obj/item/integrated_circuit/input/adjacent_locator/do_work()
- var/datum/integrated_io/I = inputs[1]
- var/datum/integrated_io/O = outputs[1]
- O.data = null
-
- if(!isweakref(I.data))
- return
- var/atom/A = I.data.resolve()
- if(!A)
- return
- var/desired_type = A.type
-
- var/list/nearby_things = range(1, get_turf(src))
- var/list/valid_things = list()
- for(var/atom/thing in nearby_things)
- if(thing.type != desired_type)
- continue
- valid_things.Add(thing)
- if(valid_things.len)
- O.data = weakref(pick(valid_things))
- O.push_data()
-
-/obj/item/integrated_circuit/input/signaler
- name = "integrated signaler"
- desc = "Signals from a signaler can be received with this, allowing for remote control. Additionally, it can send signals as well."
- extended_desc = "When a signal is received from another signaler, the 'on signal received' activator pin will be pulsed. \
- The two input pins are to configure the integrated signaler's settings. Note that the frequency should not have a decimal in it. \
- Meaning the default frequency is expressed as 1457, not 145.7. To send a signal, pulse the 'send signal' activator pin."
- icon_state = "signal"
- complexity = 4
- inputs = list("\ frequency","\ code")
- outputs = list()
- activators = list("send signal" = 1,"on signal sent" = 0, "on signal received" = 0)
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
- origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_MAGNET = 2)
- power_draw_idle = 5
- power_draw_per_use = 40
-
- var/frequency = 1457
- var/code = 30
- var/datum/radio_frequency/radio_connection
-
-/obj/item/integrated_circuit/input/signaler/initialize()
- ..()
- set_frequency(frequency)
- // Set the pins so when someone sees them, they won't show as null
- set_pin_data(IC_INPUT, 1, frequency)
- set_pin_data(IC_INPUT, 2, code)
-
-/obj/item/integrated_circuit/input/signaler/Destroy()
- if(radio_controller)
- radio_controller.remove_object(src,frequency)
- frequency = 0
- . = ..()
-
-/obj/item/integrated_circuit/input/signaler/on_data_written()
- var/new_freq = get_pin_data(IC_INPUT, 1)
- var/new_code = get_pin_data(IC_INPUT, 2)
- if(isnum(new_freq) && new_freq > 0)
- set_frequency(new_freq)
- if(isnum(new_code))
- code = new_code
-
-
-/obj/item/integrated_circuit/input/signaler/do_work() // Sends a signal.
- if(!radio_connection)
- return
-
- var/datum/signal/signal = new()
- signal.source = src
- signal.encryption = code
- signal.data["message"] = "ACTIVATE"
- radio_connection.post_signal(src, signal)
- activate_pin(2)
-
-/obj/item/integrated_circuit/input/signaler/proc/set_frequency(new_frequency)
- if(!frequency)
- return
- if(!radio_controller)
- sleep(20)
- if(!radio_controller)
- return
- radio_controller.remove_object(src, frequency)
- frequency = new_frequency
- radio_connection = radio_controller.add_object(src, frequency, RADIO_CHAT)
-
-/obj/item/integrated_circuit/input/signaler/receive_signal(datum/signal/signal)
- var/new_code = get_pin_data(IC_INPUT, 2)
- var/code = 0
-
- if(isnum(new_code))
- code = new_code
- if(!signal)
- return 0
- if(signal.encryption != code)
- return 0
- if(signal.source == src) // Don't trigger ourselves.
- return 0
-
- activate_pin(3)
-
- for(var/mob/O in hearers(1, get_turf(src)))
- O.show_message(text("\icon[] *beep* *beep*", src), 3, "*beep* *beep*", 2)
-
-/obj/item/integrated_circuit/input/EPv2
- name = "\improper EPv2 circuit"
- desc = "Enables the sending and receiving of messages on the Exonet with the EPv2 protocol."
- extended_desc = "An EPv2 address is a string with the format of XXXX:XXXX:XXXX:XXXX. Data can be send or received using the \
- second pin on each side, with additonal data reserved for the third pin. When a message is received, the second activaiton pin \
- will pulse whatever's connected to it. Pulsing the first activation pin will send a message."
- icon_state = "signal"
- complexity = 4
- inputs = list("\ target EPv2 address", "\ data to send", "\ secondary text")
- outputs = list("\ address received", "\ data received", "\ secondary text received")
- activators = list("send data" = 1, "on data received" = 0)
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
- origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_MAGNET = 2, TECH_BLUESPACE = 2)
- power_draw_per_use = 50
- var/datum/exonet_protocol/exonet = null
-
-/obj/item/integrated_circuit/input/EPv2/New()
- ..()
- exonet = new(src)
- exonet.make_address("EPv2_circuit-\ref[src]")
- desc += "]
This circuit's EPv2 address is: [exonet.address]"
-
-/obj/item/integrated_circuit/input/EPv2/Destroy()
- if(exonet)
- exonet.remove_address()
- qdel(exonet)
- exonet = null
- return ..()
-
-/obj/item/integrated_circuit/input/EPv2/do_work()
- var/target_address = get_pin_data(IC_INPUT, 1)
- var/message = get_pin_data(IC_INPUT, 2)
- var/text = get_pin_data(IC_INPUT, 3)
-
- if(target_address && istext(target_address))
- exonet.send_message(target_address, message, text)
-
-/obj/item/integrated_circuit/input/receive_exonet_message(var/atom/origin_atom, var/origin_address, var/message, var/text)
- set_pin_data(IC_OUTPUT, 1, origin_address)
- set_pin_data(IC_OUTPUT, 2, message)
- set_pin_data(IC_OUTPUT, 3, text)
-
- push_data()
- activate_pin(2)
-
-//This circuit gives information on where the machine is.
-/obj/item/integrated_circuit/input/gps
- name = "global positioning system"
- desc = "This allows you to easily know the position of a machine containing this device."
- extended_desc = "The GPS's coordinates it gives is absolute, not relative."
- icon_state = "gps"
- complexity = 4
- inputs = list()
- outputs = list("\ X", "\ Y")
- activators = list("get coordinates" = 1, "on get coordinates" = 0)
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
- power_draw_per_use = 30
-
-/obj/item/integrated_circuit/input/gps/do_work()
- var/turf/T = get_turf(src)
-
- set_pin_data(IC_OUTPUT, 1, null)
- set_pin_data(IC_OUTPUT, 2, null)
- if(!T)
- return
-
- set_pin_data(IC_OUTPUT, 1, T.x)
- set_pin_data(IC_OUTPUT, 2, T.y)
-
- push_data()
- activate_pin(2)
-
-
-/obj/item/integrated_circuit/input/microphone
- name = "microphone"
- desc = "Useful for spying on people or for voice activated machines."
- extended_desc = "This will automatically translate most languages it hears to Galactic Common. \
- The first activation pin is always pulsed when the circuit hears someone talk, while the second one \
- is only triggered if it hears someone speaking a language other than Galactic Common."
- icon_state = "recorder"
- complexity = 8
- inputs = list()
- outputs = list("\ speaker", "\ message")
- activators = list("on message received" = 1, "on translation" = 0)
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
- power_draw_per_use = 15
-
-/obj/item/integrated_circuit/input/microphone/New()
- ..()
- listening_objects |= src
-
-/obj/item/integrated_circuit/input/microphone/Destroy()
- listening_objects -= src
- return ..()
-
-/obj/item/integrated_circuit/input/microphone/hear_talk(mob/living/M, msg, var/verb="says", datum/language/speaking=null)
- var/translated = FALSE
- if(M && msg)
- if(speaking)
- if(!speaking.machine_understands)
- msg = speaking.scramble(msg)
- if(!istype(speaking, /datum/language/common))
- translated = TRUE
- set_pin_data(IC_OUTPUT, 1, M.GetVoice())
- set_pin_data(IC_OUTPUT, 2, msg)
-
- push_data()
- activate_pin(1)
- if(translated)
- activate_pin(2)
-
-
-
-/obj/item/integrated_circuit/input/sensor
- name = "sensor"
- desc = "Scans and obtains a reference for any objects or persons near you. All you need to do is shove the machine in their face."
- extended_desc = "If 'ignore storage' pin is set to 1, the sensor will disregard scanning various storage containers such as backpacks."
- icon_state = "recorder"
- complexity = 12
- inputs = list("\ ignore storage" = 1)
- outputs = list("\[ scanned")
- activators = list("on scanned" = 0)
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
- power_draw_per_use = 120
-
-/obj/item/integrated_circuit/input/sensor/proc/scan(var/atom/A)
- var/ignore_bags = get_pin_data(IC_INPUT, 1)
- if(ignore_bags)
- if(istype(A, /obj/item/weapon/storage))
- return FALSE
-
- set_pin_data(IC_OUTPUT, 1, weakref(A))
- push_data()
- activate_pin(1)
- return TRUE
-
-/obj/item/integrated_circuit/output
- category_text = "Output"
-
-/obj/item/integrated_circuit/output/screen
- name = "small screen"
- desc = "This small screen can display a single piece of data, when the machine is examined closely."
- icon_state = "screen"
- inputs = list("\ displayed data")
- outputs = list()
- activators = list("load data" = 1)
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
- power_draw_per_use = 10
- autopulse = 1
- var/stuff_to_display = null
-
-
-/obj/item/integrated_circuit/output/screen/disconnect_all()
- ..()
- stuff_to_display = null
-
-/obj/item/integrated_circuit/output/screen/any_examine(mob/user)
- to_chat(user, "There is a little screen labeled '[name]', which displays [stuff_to_display ? "'[stuff_to_display]'" : "nothing"].")
-
-/obj/item/integrated_circuit/output/screen/do_work()
- var/datum/integrated_io/I = inputs[1]
- if(isweakref(I.data))
- var/datum/d = I.data_as_type(/datum)
- if(d)
- stuff_to_display = "[d]"
- else
- stuff_to_display = I.data
-
-/obj/item/integrated_circuit/output/screen/medium
- name = "screen"
- desc = "This screen allows for people holding the device to see a piece of data."
- icon_state = "screen_medium"
- power_draw_per_use = 20
-
-/obj/item/integrated_circuit/output/screen/medium/do_work()
- ..()
- var/list/nearby_things = range(0, get_turf(src))
- for(var/mob/M in nearby_things)
- var/obj/O = assembly ? assembly : src
- to_chat(M, "\icon[O] [stuff_to_display]")
-
-/obj/item/integrated_circuit/output/screen/large
- name = "large screen"
- desc = "This screen allows for people able to see the device to see a piece of data."
- icon_state = "screen_large"
- power_draw_per_use = 40
-
-/obj/item/integrated_circuit/output/screen/large/do_work()
- ..()
- var/obj/O = assembly ? loc : assembly
- O.visible_message("\icon[O] [stuff_to_display]")
-
-/obj/item/integrated_circuit/output/light
- name = "light"
- desc = "This light can turn on and off on command."
- icon_state = "light"
- complexity = 4
- inputs = list()
- outputs = list()
- activators = list("toggle light" = 1)
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
- var/light_toggled = 0
- var/light_brightness = 3
- var/light_rgb = "#FFFFFF"
- power_draw_idle = 0 // Adjusted based on brightness.
-
-/obj/item/integrated_circuit/output/light/do_work()
- light_toggled = !light_toggled
- update_lighting()
-
-/obj/item/integrated_circuit/output/light/proc/update_lighting()
- if(light_toggled)
- set_light(l_range = light_brightness, l_power = light_brightness, l_color = light_rgb)
- else
- set_light(0)
- power_draw_idle = light_toggled ? light_brightness * 2 : 0
-
-/obj/item/integrated_circuit/output/light/advanced/update_lighting()
- var/R = get_pin_data(IC_INPUT, 1)
- var/G = get_pin_data(IC_INPUT, 2)
- var/B = get_pin_data(IC_INPUT, 3)
- var/brightness = get_pin_data(IC_INPUT, 4)
-
- if(isnum(R) && isnum(G) && isnum(B) && isnum(brightness))
- R = Clamp(R, 0, 255)
- G = Clamp(G, 0, 255)
- B = Clamp(B, 0, 255)
- brightness = Clamp(brightness, 0, 6)
- light_rgb = rgb(R, G, B)
- light_brightness = brightness
-
- ..()
-
-/obj/item/integrated_circuit/output/light/power_fail() // Turns off the flashlight if there's no power left.
- light_toggled = FALSE
- update_lighting()
-
-/obj/item/integrated_circuit/output/light/advanced
- name = "advanced light"
- desc = "This light can turn on and off on command, in any color, and in various brightness levels."
- icon_state = "light_adv"
- complexity = 8
- inputs = list(
- "\ R",
- "\ G",
- "\ B",
- "\ Brightness"
- )
- outputs = list()
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
- origin_tech = list(TECH_ENGINEERING = 3, TECH_DATA = 3)
-
-/obj/item/integrated_circuit/output/light/advanced/on_data_written()
- update_lighting()
-
-/obj/item/integrated_circuit/output/sound
- name = "speaker circuit"
- desc = "A miniature speaker is attached to this component."
- icon_state = "speaker"
- complexity = 8
- cooldown_per_use = 4 SECONDS
- inputs = list(
- "\ sound ID",
- "\ volume",
- "\ frequency"
- )
- outputs = list()
- activators = list("play sound" = 1)
- power_draw_per_use = 20
- var/list/sounds = list()
-
-/obj/item/integrated_circuit/output/text_to_speech
- name = "text-to-speech circuit"
- desc = "A miniature speaker is attached to this component."
- extended_desc = "This unit is more advanced than the plain speaker circuit, able to transpose any valid text to speech."
- icon_state = "speaker"
- complexity = 12
- cooldown_per_use = 4 SECONDS
- inputs = list("text")
- outputs = list()
- activators = list("to speech" = 1)
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
- power_draw_per_use = 60
-
-/obj/item/integrated_circuit/output/text_to_speech/do_work()
- var/datum/integrated_io/text = inputs[1]
- if(istext(text.data))
- var/obj/O = assembly ? loc : assembly
- audible_message("\icon[O] \The [O.name] states, \"[text.data]\"")
-
-/obj/item/integrated_circuit/output/sound/New()
- ..()
- extended_desc = list()
- extended_desc += "The first input pin determines which sound is used. The choices are; "
- extended_desc += jointext(sounds, ", ")
- extended_desc += ". The second pin determines the volume of sound that is played"
- extended_desc += ", and the third determines if the frequency of the sound will vary with each activation."
- extended_desc = jointext(extended_desc, null)
-
-/obj/item/integrated_circuit/output/sound/do_work()
- var/datum/integrated_io/ID = inputs[1]
- var/datum/integrated_io/vol = inputs[2]
- var/datum/integrated_io/frequency = inputs[3]
- if(istext(ID.data) && isnum(vol.data) && isnum(frequency.data))
- var/selected_sound = sounds[ID.data]
- if(!selected_sound)
- return
- vol.data = Clamp(vol.data, 0, 100)
- frequency.data = round(Clamp(frequency.data, 0, 1))
- playsound(get_turf(src), selected_sound, vol.data, frequency.data, -1)
-
-/obj/item/integrated_circuit/output/sound/beeper
- name = "beeper circuit"
- desc = "A miniature speaker is attached to this component. This is often used in the construction of motherboards, which use \
- the speaker to tell the user if something goes very wrong when booting up. It can also do other similar synthetic sounds such \
- as buzzing, pinging, chiming, and more."
- sounds = list(
- "beep" = 'sound/machines/twobeep.ogg',
- "chime" = 'sound/machines/chime.ogg',
- "buzz sigh" = 'sound/machines/buzz-sigh.ogg',
- "buzz twice" = 'sound/machines/buzz-two.ogg',
- "ping" = 'sound/machines/ping.ogg',
- "synth yes" = 'sound/machines/synth_yes.ogg',
- "synth no" = 'sound/machines/synth_no.ogg',
- "warning buzz" = 'sound/machines/warning-buzzer.ogg'
- )
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
-
-/obj/item/integrated_circuit/output/sound/beepsky
- name = "securitron sound circuit"
- desc = "A miniature speaker is attached to this component. Considered by some to be the essential component for a securitron."
- sounds = list(
- "creep" = 'sound/voice/bcreep.ogg',
- "criminal" = 'sound/voice/bcriminal.ogg',
- "freeze" = 'sound/voice/bfreeze.ogg',
- "god" = 'sound/voice/bgod.ogg',
- "i am the law" = 'sound/voice/biamthelaw.ogg',
- "insult" = 'sound/voice/binsult.ogg',
- "radio" = 'sound/voice/bradio.ogg',
- "secure day" = 'sound/voice/bsecureday.ogg',
- )
- spawn_flags = IC_SPAWN_RESEARCH
- origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_ILLEGAL = 1)
-
-/obj/item/integrated_circuit/output/sound/medbot
- name = "medbot sound circuit"
- desc = "A miniature speaker is attached to this component, used to annoy patients while they get pricked by a medbot."
- sounds = list(
- "surgeon" = 'sound/voice/medbot/msurgeon.ogg',
- "radar" = 'sound/voice/medbot/mradar.ogg',
- "feel better" = 'sound/voice/medbot/mfeelbetter.ogg',
- "patched up" = 'sound/voice/medbot/mpatchedup.ogg',
- "injured" = 'sound/voice/medbot/minjured.ogg',
- "insult" = 'sound/voice/medbot/minsult.ogg',
- "coming" = 'sound/voice/medbot/mcoming.ogg',
- "help" = 'sound/voice/medbot/mhelp.ogg',
- "live" = 'sound/voice/medbot/mlive.ogg',
- "lost" = 'sound/voice/medbot/mlost.ogg',
- "flies" = 'sound/voice/medbot/mflies.ogg',
- "catch" = 'sound/voice/medbot/mcatch.ogg',
- "delicious" = 'sound/voice/medbot/mdelicious.ogg',
- "apple" = 'sound/voice/medbot/mapple.ogg',
- "no" = 'sound/voice/medbot/mno.ogg',
- )
- spawn_flags = IC_SPAWN_RESEARCH
- origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_BIO = 1)
-
-//'sound/voice/medbot/mfeelbetter.ogg'
-
-/obj/item/integrated_circuit/output/video_camera
- name = "video camera circuit"
- desc = "This small camera allows a remote viewer to see what it sees."
- extended_desc = "The camera is linked to the Research camera network."
- icon_state = "video_camera"
- w_class = ITEMSIZE_SMALL
- complexity = 10
- inputs = list("camera name" = "video camera circuit", "camera active" = 0)
- outputs = list()
- activators = list()
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
- power_draw_idle = 5 // Raises to 80 when on.
- var/obj/machinery/camera/network/research/camera
-
-/obj/item/integrated_circuit/output/video_camera/New()
- ..()
- camera = new(src)
- on_data_written()
-
-/obj/item/integrated_circuit/output/video_camera/Destroy()
- qdel_null(camera)
- return ..()
-
-/obj/item/integrated_circuit/output/video_camera/proc/set_camera_status(var/status)
- if(camera)
- camera.set_status(status)
- power_draw_idle = camera.status ? 80 : 5
- if(camera.status) // Ensure that there's actually power.
- if(!draw_idle_power())
- power_fail()
-
-/obj/item/integrated_circuit/output/video_camera/on_data_written()
- if(camera)
- var/datum/integrated_io/cam_name = inputs[1]
- var/datum/integrated_io/cam_active = inputs[2]
- if(istext(cam_name.data))
- camera.c_tag = cam_name.data
- if(isnum(cam_active.data))
- set_camera_status(cam_active.data)
-
-/obj/item/integrated_circuit/output/video_camera/power_fail()
- if(camera)
- set_camera_status(0)
- var/datum/integrated_io/cam_active = inputs[2]
- cam_active.data = FALSE
-
-/obj/item/integrated_circuit/output/led
- name = "light-emitting diode"
- desc = "This a LED that is lit whenever there is TRUE-equivalent data on its input."
- extended_desc = "TRUE-equivalent values are: Non-empty strings, non-zero numbers, and valid refs."
- complexity = 0.1
- icon_state = "led"
- inputs = list("lit")
- outputs = list()
- activators = list()
- power_draw_idle = 0 // Raises to 1 when lit.
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
- var/led_color
-
-/obj/item/integrated_circuit/output/led/on_data_written()
- power_draw_idle = get_pin_data(IC_INPUT, 1) ? 1 : 0
-
-/obj/item/integrated_circuit/output/led/power_fail()
- set_pin_data(IC_INPUT, 1, FALSE)
-
-/obj/item/integrated_circuit/output/led/any_examine(mob/user)
- var/text_output = list()
- var/initial_name = initial(name)
-
- // Doing all this work just to have a color-blind friendly output.
- text_output += "There is "
- if(name == initial_name)
- text_output += "\an [name]"
- else
- text_output += "\an ["\improper[initial_name]"] labeled '[name]'"
- text_output += " which is currently [get_pin_data(IC_INPUT, 1) ? "lit ¤" : "unlit."]"
- to_chat(user,jointext(text_output,null))
-
-/obj/item/integrated_circuit/output/led/red
- name = "red LED"
- led_color = COLOR_RED
-
-/obj/item/integrated_circuit/output/led/orange
- name = "orange LED"
- led_color = COLOR_ORANGE
-
-/obj/item/integrated_circuit/output/led/yellow
- name = "yellow LED"
- led_color = COLOR_YELLOW
-
-/obj/item/integrated_circuit/output/led/green
- name = "green LED"
- led_color = COLOR_GREEN
-
-/obj/item/integrated_circuit/output/led/blue
- name = "blue LED"
- led_color = COLOR_BLUE
-
-/obj/item/integrated_circuit/output/led/purple
- name = "purple LED"
- led_color = COLOR_PURPLE
-
-/obj/item/integrated_circuit/output/led/cyan
- name = "cyan LED"
- led_color = COLOR_CYAN
-
-/obj/item/integrated_circuit/output/led/white
- name = "white LED"
- led_color = COLOR_WHITE
-
-/obj/item/integrated_circuit/output/led/pink
- name = "pink LED"
- led_color = COLOR_PINK
diff --git a/code/modules/integrated_electronics/subtypes/lists.dm b/code/modules/integrated_electronics/subtypes/lists.dm
new file mode 100644
index 00000000000..84e0724bb93
--- /dev/null
+++ b/code/modules/integrated_electronics/subtypes/lists.dm
@@ -0,0 +1,89 @@
+//These circuits do things with lists, and use special list pins for stability.
+/obj/item/integrated_circuit/list
+ complexity = 1
+ inputs = list(
+ "input" = IC_PINTYPE_LIST
+ )
+ outputs = list("result" = IC_PINTYPE_STRING)
+ activators = list("compute" = IC_PINTYPE_PULSE_IN, "on computed" = IC_PINTYPE_PULSE_OUT)
+ category_text = "Lists"
+ power_draw_per_use = 20
+
+/obj/item/integrated_circuit/list/pick
+ name = "pick circuit"
+ desc = "This circuit will randomly 'pick' an element from a list that is inputted."
+ extended_desc = "Will output null if the list is empty. Input list is unmodified."
+ icon_state = "addition"
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+
+/obj/item/integrated_circuit/list/pick/do_work()
+ var/result = null
+ var/list/input_list = get_pin_data(IC_INPUT, 1) // List pins guarantee that there is a list inside, even if just an empty one.
+ if(input_list.len)
+ result = pick(input_list)
+
+ set_pin_data(IC_OUTPUT, 1, result)
+ push_data()
+ activate_pin(2)
+
+
+/obj/item/integrated_circuit/list/append
+ name = "append circuit"
+ desc = "This circuit will add an element to a list."
+ extended_desc = "The new element will always be at the bottom of the list."
+ inputs = list(
+ "list to append" = IC_PINTYPE_LIST,
+ "input" = IC_PINTYPE_ANY
+ )
+ outputs = list(
+ "appended list" = IC_PINTYPE_LIST
+ )
+ icon_state = "addition"
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+
+/obj/item/integrated_circuit/list/append/do_work()
+ var/list/input_list = get_pin_data(IC_INPUT, 1)
+ var/list/output_list = list()
+ var/new_entry = get_pin_data(IC_INPUT, 2)
+ output_list = input_list.Copy()
+ output_list.Add(new_entry)
+
+ set_pin_data(IC_OUTPUT, 1, output_list)
+ push_data()
+ activate_pin(2)
+
+/obj/item/integrated_circuit/list/jointext
+ name = "join text circuit"
+ desc = "This circuit will add all elements of a list into one string, seperated by a character."
+ extended_desc = "Default settings will encode the entire list into a string."
+ inputs = list(
+ "list to join" = IC_PINTYPE_LIST,
+ "delimiter" = IC_PINTYPE_CHAR,
+ "start" = IC_PINTYPE_NUMBER,
+ "end" = IC_PINTYPE_NUMBER
+ )
+ inputs_default = list(
+ "2" = ",",
+ "3" = 1,
+ "4" = 0
+ )
+ outputs = list(
+ "joined text" = IC_PINTYPE_STRING
+ )
+ icon_state = "addition"
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+
+/obj/item/integrated_circuit/list/jointext/do_work()
+ var/list/input_list = get_pin_data(IC_INPUT, 1)
+ var/delimiter = get_pin_data(IC_INPUT, 2)
+ var/start = get_pin_data(IC_INPUT, 3)
+ var/end = get_pin_data(IC_INPUT, 4)
+
+ var/result = null
+
+ if(input_list.len && delimiter && !isnull(start) && !isnull(end))
+ result = jointext(input_list, delimiter, start, end)
+
+ set_pin_data(IC_OUTPUT, 1, result)
+ push_data()
+ activate_pin(2)
\ No newline at end of file
diff --git a/code/modules/integrated_electronics/subtypes/logic.dm b/code/modules/integrated_electronics/subtypes/logic.dm
index 849c4e37a76..4bbffede35f 100644
--- a/code/modules/integrated_electronics/subtypes/logic.dm
+++ b/code/modules/integrated_electronics/subtypes/logic.dm
@@ -4,21 +4,16 @@
extended_desc = "Logic circuits will treat a null, 0, and a \"\" string value as FALSE and anything else as TRUE."
complexity = 3
outputs = list("result")
- activators = list("compare" = 1)
+ activators = list("compare" = IC_PINTYPE_PULSE_IN)
category_text = "Logic"
- autopulse = 1
power_draw_per_use = 1
-/obj/item/integrated_circuit/logic/on_data_written()
- if(autopulse == 1)
- check_then_do_work()
-
/obj/item/integrated_circuit/logic/do_work()
push_data()
/obj/item/integrated_circuit/logic/binary
- inputs = list("\ A","\ B")
- activators = list("compare" = 1, "on true result" = 0, "on false result" = 0)
+ inputs = list("A","B")
+ activators = list("compare" = IC_PINTYPE_PULSE_IN, "on true result" = IC_PINTYPE_PULSE_OUT, "on false result" = IC_PINTYPE_PULSE_OUT)
/obj/item/integrated_circuit/logic/binary/do_work()
pull_data()
@@ -37,8 +32,8 @@
return FALSE
/obj/item/integrated_circuit/logic/unary
- inputs = list("\ A")
- activators = list("compare" = 1, "on compare" = 0)
+ inputs = list("A")
+ activators = list("compare" = IC_PINTYPE_PULSE_IN, "on compare" = IC_PINTYPE_PULSE_OUT)
/obj/item/integrated_circuit/logic/unary/do_work()
pull_data()
@@ -128,7 +123,7 @@
desc = "This gate inverts what's fed into it."
icon_state = "not"
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
- activators = list("invert" = 1, "on inverted" = 0)
+ activators = list("invert" = IC_PINTYPE_PULSE_IN, "on inverted" = IC_PINTYPE_PULSE_OUT)
/obj/item/integrated_circuit/logic/unary/not/do_check(var/datum/integrated_io/A)
return !A.data
diff --git a/code/modules/integrated_electronics/subtypes/manipulation.dm b/code/modules/integrated_electronics/subtypes/manipulation.dm
index 9b779ee39bd..7d22bc49a44 100644
--- a/code/modules/integrated_electronics/subtypes/manipulation.dm
+++ b/code/modules/integrated_electronics/subtypes/manipulation.dm
@@ -12,12 +12,12 @@
w_class = ITEMSIZE_NORMAL
size = 3
inputs = list(
- "\ target X rel",
- "\ target Y rel"
+ "target X rel" = IC_PINTYPE_NUMBER,
+ "target Y rel" = IC_PINTYPE_NUMBER
)
outputs = list()
activators = list(
- "fire" = 1
+ "fire" = IC_PINTYPE_PULSE_IN
)
var/obj/item/weapon/gun/installed_gun = null
spawn_flags = IC_SPAWN_RESEARCH
@@ -104,24 +104,15 @@
name = "locomotion circuit"
desc = "This allows a machine to move in a given direction."
icon_state = "locomotion"
- extended_desc = "The circuit accepts a number as a direction to move towards.]
\
- North/Fore = 1,
\
- South/Aft = 2,
\
- East/Starboard = 4,
\
- West/Port = 8,
\
- Northeast = 5,
\
- Northwest = 9,
\
- Southeast = 6,
\
- Southwest = 10
\
-
\
+ extended_desc = "The circuit accepts a 'dir' number as a direction to move towards.
\
Pulsing the 'step towards dir' activator pin will cause the machine to move a meter in that direction, assuming it is not \
being held, or anchored in some way. It should be noted that the ability to move is dependant on the type of assembly that this circuit inhabits."
w_class = ITEMSIZE_NORMAL
complexity = 20
// size = 5
- inputs = list("dir num")
+ inputs = list("direction" = IC_PINTYPE_DIR)
outputs = list()
- activators = list("step towards dir" = 1)
+ activators = list("step towards dir" = IC_PINTYPE_PULSE_IN)
spawn_flags = IC_SPAWN_RESEARCH
power_draw_per_use = 100
@@ -146,9 +137,9 @@
icon_state = "grenade"
complexity = 30
size = 2
- inputs = list("\ detonation time")
+ inputs = list("detonation time" = IC_PINTYPE_NUMBER)
outputs = list()
- activators = list("prime grenade" = 1)
+ activators = list("prime grenade" = IC_PINTYPE_PULSE_IN)
spawn_flags = IC_SPAWN_RESEARCH
origin_tech = list(TECH_ENGINEERING = 3, TECH_DATA = 3, TECH_COMBAT = 4)
var/obj/item/weapon/grenade/attached_grenade
diff --git a/code/modules/integrated_electronics/subtypes/memory.dm b/code/modules/integrated_electronics/subtypes/memory.dm
index 91fe45e04bc..fa4fd9ded63 100644
--- a/code/modules/integrated_electronics/subtypes/memory.dm
+++ b/code/modules/integrated_electronics/subtypes/memory.dm
@@ -3,12 +3,20 @@
desc = "This tiny chip can store one piece of data."
icon_state = "memory"
complexity = 1
- inputs = list("input pin 1")
- outputs = list("output pin 1")
- activators = list("set" = 1, "on set")
+ inputs = list()
+ outputs = list()
+ activators = list("set" = IC_PINTYPE_PULSE_IN, "on set" = IC_PINTYPE_PULSE_OUT)
category_text = "Memory"
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
power_draw_per_use = 1
+ var/number_of_pins = 1
+
+/obj/item/integrated_circuit/memory/New()
+ for(var/i = 1 to number_of_pins)
+ inputs["input [i]"] = IC_PINTYPE_ANY // This is just a string since pins don't get built until ..() is called.
+ outputs["output [i]"] = IC_PINTYPE_ANY
+ complexity = number_of_pins
+ ..()
/obj/item/integrated_circuit/memory/examine(mob/user)
..()
@@ -36,83 +44,26 @@
name = "memory circuit"
desc = "This circuit can store four pieces of data."
icon_state = "memory4"
- complexity = 4
- inputs = list("input pin 1","input pin 2","input pin 3","input pin 4")
- outputs = list("output pin 1","output pin 2","output pin 3","output pin 4")
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
power_draw_per_use = 2
+ number_of_pins = 4
/obj/item/integrated_circuit/memory/large
name = "large memory circuit"
desc = "This big circuit can hold eight pieces of data."
icon_state = "memory8"
- complexity = 8
- inputs = list(
- "input pin 1",
- "input pin 2",
- "input pin 3",
- "input pin 4",
- "input pin 5",
- "input pin 6",
- "input pin 7",
- "input pin 8")
- outputs = list(
- "output pin 1",
- "output pin 2",
- "output pin 3",
- "output pin 4",
- "output pin 5",
- "output pin 6",
- "output pin 7",
- "output pin 8")
- spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
origin_tech = list(TECH_ENGINEERING = 3, TECH_DATA = 3)
power_draw_per_use = 4
+ number_of_pins = 8
/obj/item/integrated_circuit/memory/huge
name = "large memory stick"
desc = "This stick of memory can hold up up to sixteen pieces of data."
icon_state = "memory16"
w_class = ITEMSIZE_NORMAL
- complexity = 16
- inputs = list(
- "input pin 1",
- "input pin 2",
- "input pin 3",
- "input pin 4",
- "input pin 5",
- "input pin 6",
- "input pin 7",
- "input pin 8",
- "input pin 9",
- "input pin 10",
- "input pin 11",
- "input pin 12",
- "input pin 13",
- "input pin 14",
- "input pin 15",
- "input pin 16"
- )
- outputs = list(
- "output pin 1",
- "output pin 2",
- "output pin 3",
- "output pin 4",
- "output pin 5",
- "output pin 6",
- "output pin 7",
- "output pin 8",
- "output pin 9",
- "output pin 10",
- "output pin 11",
- "output pin 12",
- "output pin 13",
- "output pin 14",
- "output pin 15",
- "output pin 16")
spawn_flags = IC_SPAWN_RESEARCH
origin_tech = list(TECH_ENGINEERING = 4, TECH_DATA = 4)
power_draw_per_use = 8
+ number_of_pins = 16
/obj/item/integrated_circuit/memory/constant
name = "constant chip"
@@ -120,8 +71,8 @@
icon_state = "memory"
complexity = 1
inputs = list()
- outputs = list("output pin")
- activators = list("push data" = 0)
+ outputs = list("output pin" = IC_PINTYPE_ANY)
+ activators = list("push data" = IC_PINTYPE_PULSE_IN)
var/accepting_refs = 0
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
@@ -142,13 +93,13 @@
new_data = input("Now type in a string.","[src] string writing") as null|text
if(istext(new_data) && CanInteract(user, physical_state))
O.data = new_data
- to_chat(user, "You set \the [src]'s memory to [O.display_data()].")
+ to_chat(user, "You set \the [src]'s memory to [O.display_data(O.data)].")
if("number")
accepting_refs = 0
new_data = input("Now type in a number.","[src] number writing") as null|num
if(isnum(new_data) && CanInteract(user, physical_state))
O.data = new_data
- to_chat(user, "You set \the [src]'s memory to [O.display_data()].")
+ to_chat(user, "You set \the [src]'s memory to [O.display_data(O.data)].")
if("ref")
accepting_refs = 1
to_chat(user, "You turn \the [src]'s ref scanner on. Slide it across \
@@ -162,6 +113,6 @@
var/datum/integrated_io/O = outputs[1]
O.data = weakref(target)
visible_message("[user] slides \a [src]'s over \the [target].")
- to_chat(user, "You set \the [src]'s memory to a reference to [O.display_data()]. The ref scanner is \
+ to_chat(user, "You set \the [src]'s memory to a reference to [O.display_data(O.data)]. The ref scanner is \
now off.")
accepting_refs = 0
\ No newline at end of file
diff --git a/code/modules/integrated_electronics/subtypes/output.dm b/code/modules/integrated_electronics/subtypes/output.dm
new file mode 100644
index 00000000000..beefed282e1
--- /dev/null
+++ b/code/modules/integrated_electronics/subtypes/output.dm
@@ -0,0 +1,339 @@
+/obj/item/integrated_circuit/output
+ category_text = "Output"
+
+/obj/item/integrated_circuit/output/screen
+ name = "small screen"
+ desc = "This small screen can display a single piece of data, when the machine is examined closely."
+ icon_state = "screen"
+ inputs = list("displayed data" = IC_PINTYPE_ANY)
+ outputs = list()
+ activators = list("load data" = IC_PINTYPE_PULSE_IN)
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+ power_draw_per_use = 10
+ var/stuff_to_display = null
+
+
+/obj/item/integrated_circuit/output/screen/disconnect_all()
+ ..()
+ stuff_to_display = null
+
+/obj/item/integrated_circuit/output/screen/any_examine(mob/user)
+ to_chat(user, "There is a little screen labeled '[name]', which displays [!isnull(stuff_to_display) ? "'[stuff_to_display]'" : "nothing"].")
+
+/obj/item/integrated_circuit/output/screen/do_work()
+ var/datum/integrated_io/I = inputs[1]
+ if(isweakref(I.data))
+ var/datum/d = I.data_as_type(/datum)
+ if(d)
+ stuff_to_display = "[d]"
+ else
+ stuff_to_display = I.data
+
+/obj/item/integrated_circuit/output/screen/medium
+ name = "screen"
+ desc = "This screen allows for people holding the device to see a piece of data."
+ icon_state = "screen_medium"
+ power_draw_per_use = 20
+
+/obj/item/integrated_circuit/output/screen/medium/do_work()
+ ..()
+ var/list/nearby_things = range(0, get_turf(src))
+ for(var/mob/M in nearby_things)
+ var/obj/O = assembly ? assembly : src
+ to_chat(M, "\icon[O] [stuff_to_display]")
+
+/obj/item/integrated_circuit/output/screen/large
+ name = "large screen"
+ desc = "This screen allows for people able to see the device to see a piece of data."
+ icon_state = "screen_large"
+ power_draw_per_use = 40
+
+/obj/item/integrated_circuit/output/screen/large/do_work()
+ ..()
+ var/obj/O = assembly ? loc : assembly
+ O.visible_message("\icon[O] [stuff_to_display]")
+
+/obj/item/integrated_circuit/output/light
+ name = "light"
+ desc = "This light can turn on and off on command."
+ icon_state = "light"
+ complexity = 4
+ inputs = list()
+ outputs = list()
+ activators = list("toggle light" = IC_PINTYPE_PULSE_IN)
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+ var/light_toggled = 0
+ var/light_brightness = 3
+ var/light_rgb = "#FFFFFF"
+ power_draw_idle = 0 // Adjusted based on brightness.
+
+/obj/item/integrated_circuit/output/light/do_work()
+ light_toggled = !light_toggled
+ update_lighting()
+
+/obj/item/integrated_circuit/output/light/proc/update_lighting()
+ if(light_toggled)
+ if(assembly)
+ assembly.set_light(l_range = light_brightness, l_power = light_brightness, l_color = light_rgb)
+ else
+ if(assembly)
+ assembly.set_light(0)
+ power_draw_idle = light_toggled ? light_brightness * 2 : 0
+
+/obj/item/integrated_circuit/output/light/advanced/update_lighting()
+ var/new_color = get_pin_data(IC_INPUT, 1)
+ var/brightness = get_pin_data(IC_INPUT, 2)
+
+ if(new_color && isnum(brightness))
+ brightness = Clamp(brightness, 0, 6)
+ light_rgb = new_color
+ light_brightness = brightness
+
+ ..()
+
+/obj/item/integrated_circuit/output/light/power_fail() // Turns off the flashlight if there's no power left.
+ light_toggled = FALSE
+ update_lighting()
+
+/obj/item/integrated_circuit/output/light/advanced
+ name = "advanced light"
+ desc = "This light can turn on and off on command, in any color, and in various brightness levels."
+ icon_state = "light_adv"
+ complexity = 8
+ inputs = list(
+ "color" = IC_PINTYPE_COLOR,
+ "brightness" = IC_PINTYPE_NUMBER
+ )
+ outputs = list()
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+ origin_tech = list(TECH_ENGINEERING = 3, TECH_DATA = 3)
+
+/obj/item/integrated_circuit/output/light/advanced/on_data_written()
+ update_lighting()
+
+/obj/item/integrated_circuit/output/sound
+ name = "speaker circuit"
+ desc = "A miniature speaker is attached to this component."
+ icon_state = "speaker"
+ complexity = 8
+ cooldown_per_use = 4 SECONDS
+ inputs = list(
+ "sound ID" = IC_PINTYPE_STRING,
+ "volume" = IC_PINTYPE_NUMBER,
+ "frequency" = IC_PINTYPE_BOOLEAN
+ )
+ outputs = list()
+ activators = list("play sound" = IC_PINTYPE_PULSE_IN)
+ power_draw_per_use = 20
+ var/list/sounds = list()
+
+/obj/item/integrated_circuit/output/text_to_speech
+ name = "text-to-speech circuit"
+ desc = "A miniature speaker is attached to this component."
+ extended_desc = "This unit is more advanced than the plain speaker circuit, able to transpose any valid text to speech."
+ icon_state = "speaker"
+ complexity = 12
+ cooldown_per_use = 4 SECONDS
+ inputs = list("text" = IC_PINTYPE_STRING)
+ outputs = list()
+ activators = list("to speech" = IC_PINTYPE_PULSE_IN)
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+ power_draw_per_use = 60
+
+/obj/item/integrated_circuit/output/text_to_speech/do_work()
+ text = get_pin_data(IC_INPUT, 1)
+ if(!isnull(text))
+ var/obj/O = assembly ? loc : assembly
+ audible_message("\icon[O] \The [O.name] states, \"[text]\"")
+
+/obj/item/integrated_circuit/output/sound/New()
+ ..()
+ extended_desc = list()
+ extended_desc += "The first input pin determines which sound is used. The choices are; "
+ extended_desc += jointext(sounds, ", ")
+ extended_desc += ". The second pin determines the volume of sound that is played"
+ extended_desc += ", and the third determines if the frequency of the sound will vary with each activation."
+ extended_desc = jointext(extended_desc, null)
+
+/obj/item/integrated_circuit/output/sound/do_work()
+ var/ID = get_pin_data(IC_INPUT, 1)
+ var/vol = get_pin_data(IC_INPUT, 2)
+ var/freq = get_pin_data(IC_INPUT, 3)
+ if(!isnull(ID) && !isnull(vol))
+ var/selected_sound = sounds[ID]
+ if(!selected_sound)
+ return
+ vol = between(0, vol, 100)
+ playsound(get_turf(src), selected_sound, vol, freq, -1)
+
+/obj/item/integrated_circuit/output/sound/beeper
+ name = "beeper circuit"
+ desc = "A miniature speaker is attached to this component. This is often used in the construction of motherboards, which use \
+ the speaker to tell the user if something goes very wrong when booting up. It can also do other similar synthetic sounds such \
+ as buzzing, pinging, chiming, and more."
+ sounds = list(
+ "beep" = 'sound/machines/twobeep.ogg',
+ "chime" = 'sound/machines/chime.ogg',
+ "buzz sigh" = 'sound/machines/buzz-sigh.ogg',
+ "buzz twice" = 'sound/machines/buzz-two.ogg',
+ "ping" = 'sound/machines/ping.ogg',
+ "synth yes" = 'sound/machines/synth_yes.ogg',
+ "synth no" = 'sound/machines/synth_no.ogg',
+ "warning buzz" = 'sound/machines/warning-buzzer.ogg'
+ )
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+
+/obj/item/integrated_circuit/output/sound/beepsky
+ name = "securitron sound circuit"
+ desc = "A miniature speaker is attached to this component. Considered by some to be the essential component for a securitron."
+ sounds = list(
+ "creep" = 'sound/voice/bcreep.ogg',
+ "criminal" = 'sound/voice/bcriminal.ogg',
+ "freeze" = 'sound/voice/bfreeze.ogg',
+ "god" = 'sound/voice/bgod.ogg',
+ "i am the law" = 'sound/voice/biamthelaw.ogg',
+ "insult" = 'sound/voice/binsult.ogg',
+ "radio" = 'sound/voice/bradio.ogg',
+ "secure day" = 'sound/voice/bsecureday.ogg',
+ )
+ spawn_flags = IC_SPAWN_RESEARCH
+ origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_ILLEGAL = 1)
+
+/obj/item/integrated_circuit/output/sound/medbot
+ name = "medbot sound circuit"
+ desc = "A miniature speaker is attached to this component, used to annoy patients while they get pricked by a medbot."
+ sounds = list(
+ "surgeon" = 'sound/voice/medbot/msurgeon.ogg',
+ "radar" = 'sound/voice/medbot/mradar.ogg',
+ "feel better" = 'sound/voice/medbot/mfeelbetter.ogg',
+ "patched up" = 'sound/voice/medbot/mpatchedup.ogg',
+ "injured" = 'sound/voice/medbot/minjured.ogg',
+ "insult" = 'sound/voice/medbot/minsult.ogg',
+ "coming" = 'sound/voice/medbot/mcoming.ogg',
+ "help" = 'sound/voice/medbot/mhelp.ogg',
+ "live" = 'sound/voice/medbot/mlive.ogg',
+ "lost" = 'sound/voice/medbot/mlost.ogg',
+ "flies" = 'sound/voice/medbot/mflies.ogg',
+ "catch" = 'sound/voice/medbot/mcatch.ogg',
+ "delicious" = 'sound/voice/medbot/mdelicious.ogg',
+ "apple" = 'sound/voice/medbot/mapple.ogg',
+ "no" = 'sound/voice/medbot/mno.ogg',
+ )
+ spawn_flags = IC_SPAWN_RESEARCH
+ origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_BIO = 1)
+
+/obj/item/integrated_circuit/output/video_camera
+ name = "video camera circuit"
+ desc = "This small camera allows a remote viewer to see what it sees."
+ extended_desc = "The camera is linked to the Research camera network."
+ icon_state = "video_camera"
+ w_class = ITEMSIZE_SMALL
+ complexity = 10
+ inputs = list(
+ "camera name" = IC_PINTYPE_STRING,
+ "camera active" = IC_PINTYPE_BOOLEAN
+ )
+ inputs_default = list("1" = "video camera circuit")
+ outputs = list()
+ activators = list()
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+ power_draw_idle = 5 // Raises to 80 when on.
+ var/obj/machinery/camera/network/research/camera
+
+/obj/item/integrated_circuit/output/video_camera/New()
+ ..()
+ camera = new(src)
+ on_data_written()
+
+/obj/item/integrated_circuit/output/video_camera/Destroy()
+ qdel_null(camera)
+ return ..()
+
+/obj/item/integrated_circuit/output/video_camera/proc/set_camera_status(var/status)
+ if(camera)
+ camera.set_status(status)
+ power_draw_idle = camera.status ? 80 : 5
+ if(camera.status) // Ensure that there's actually power.
+ if(!draw_idle_power())
+ power_fail()
+
+/obj/item/integrated_circuit/output/video_camera/on_data_written()
+ if(camera)
+ var/cam_name = get_pin_data(IC_INPUT, 1)
+ var/cam_active = get_pin_data(IC_INPUT, 2)
+ if(!isnull(cam_name))
+ camera.c_tag = cam_name
+ set_camera_status(cam_active)
+
+/obj/item/integrated_circuit/output/video_camera/power_fail()
+ if(camera)
+ set_camera_status(0)
+ set_pin_data(IC_INPUT, 2, FALSE)
+
+/obj/item/integrated_circuit/output/led
+ name = "light-emitting diode"
+ desc = "This a LED that is lit whenever there is TRUE-equivalent data on its input."
+ extended_desc = "TRUE-equivalent values are: Non-empty strings, non-zero numbers, and valid refs."
+ complexity = 0.1
+ icon_state = "led"
+ inputs = list("lit" = IC_PINTYPE_BOOLEAN)
+ outputs = list()
+ activators = list()
+ power_draw_idle = 0 // Raises to 1 when lit.
+ spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
+ var/led_color
+
+/obj/item/integrated_circuit/output/led/on_data_written()
+ power_draw_idle = get_pin_data(IC_INPUT, 1) ? 1 : 0
+
+/obj/item/integrated_circuit/output/led/power_fail()
+ set_pin_data(IC_INPUT, 1, FALSE)
+
+/obj/item/integrated_circuit/output/led/any_examine(mob/user)
+ var/text_output = list()
+ var/initial_name = initial(name)
+
+ // Doing all this work just to have a color-blind friendly output.
+ text_output += "There is "
+ if(name == initial_name)
+ text_output += "\an [name]"
+ else
+ text_output += "\an ["\improper[initial_name]"] labeled '[name]'"
+ text_output += " which is currently [get_pin_data(IC_INPUT, 1) ? "lit ¤" : "unlit."]"
+ to_chat(user,jointext(text_output,null))
+
+/obj/item/integrated_circuit/output/led/red
+ name = "red LED"
+ led_color = COLOR_RED
+
+/obj/item/integrated_circuit/output/led/orange
+ name = "orange LED"
+ led_color = COLOR_ORANGE
+
+/obj/item/integrated_circuit/output/led/yellow
+ name = "yellow LED"
+ led_color = COLOR_YELLOW
+
+/obj/item/integrated_circuit/output/led/green
+ name = "green LED"
+ led_color = COLOR_GREEN
+
+/obj/item/integrated_circuit/output/led/blue
+ name = "blue LED"
+ led_color = COLOR_BLUE
+
+/obj/item/integrated_circuit/output/led/purple
+ name = "purple LED"
+ led_color = COLOR_PURPLE
+
+/obj/item/integrated_circuit/output/led/cyan
+ name = "cyan LED"
+ led_color = COLOR_CYAN
+
+/obj/item/integrated_circuit/output/led/white
+ name = "white LED"
+ led_color = COLOR_WHITE
+
+/obj/item/integrated_circuit/output/led/pink
+ name = "pink LED"
+ led_color = COLOR_PINK
diff --git a/code/modules/integrated_electronics/subtypes/power.dm b/code/modules/integrated_electronics/subtypes/power.dm
index 215c1ff8568..f5284341294 100644
--- a/code/modules/integrated_electronics/subtypes/power.dm
+++ b/code/modules/integrated_electronics/subtypes/power.dm
@@ -11,9 +11,13 @@
some power is lost due to ineffiency."
w_class = ITEMSIZE_SMALL
complexity = 16
- inputs = list("\[ target")
- outputs = list("\ target cell charge", "\ target cell max charge", "\ target cell percentage")
- activators = list("transmit" = 1)
+ inputs = list("target" = IC_PINTYPE_REF)
+ outputs = list(
+ "target cell charge" = IC_PINTYPE_NUMBER,
+ "target cell max charge" = IC_PINTYPE_NUMBER,
+ "target cell percentage" = IC_PINTYPE_NUMBER
+ )
+ activators = list("transmit" = IC_PINTYPE_PULSE_IN, "on transmit" = IC_PINTYPE_PULSE_OUT)
spawn_flags = IC_SPAWN_RESEARCH
origin_tech = list(TECH_ENGINEERING = 4, TECH_DATA = 4, TECH_POWER = 4, TECH_MAGNET = 3)
power_draw_per_use = 500 // Inefficency has to come from somewhere.
@@ -67,6 +71,7 @@
set_pin_data(IC_OUTPUT, 1, cell.charge)
set_pin_data(IC_OUTPUT, 2, cell.maxcharge)
set_pin_data(IC_OUTPUT, 3, cell.percent())
+ activate_pin(2)
return TRUE
return FALSE
diff --git a/code/modules/integrated_electronics/subtypes/reagents.dm b/code/modules/integrated_electronics/subtypes/reagents.dm
index d67feb1c087..47629abda10 100644
--- a/code/modules/integrated_electronics/subtypes/reagents.dm
+++ b/code/modules/integrated_electronics/subtypes/reagents.dm
@@ -13,13 +13,13 @@
desc = "Unlike most electronics, creating smoke is completely intentional."
icon_state = "smoke"
extended_desc = "This smoke generator creates clouds of smoke on command. It can also hold liquids inside, which will go \
- into the smoke clouds when activated."
+ into the smoke clouds when activated. The reagents are consumed when smoke is made."
flags = OPENCONTAINER
complexity = 20
cooldown_per_use = 30 SECONDS
inputs = list()
outputs = list()
- activators = list("create smoke" = 1)
+ activators = list("create smoke" = IC_PINTYPE_PULSE_IN)
spawn_flags = IC_SPAWN_RESEARCH
origin_tech = list(TECH_ENGINEERING = 3, TECH_DATA = 3, TECH_BIO = 3)
volume = 100
@@ -43,9 +43,10 @@
flags = OPENCONTAINER
complexity = 20
cooldown_per_use = 6 SECONDS
- inputs = list("\][ target", "\ injection amount" = 5)
+ inputs = list("target" = IC_PINTYPE_REF, "injection amount" = IC_PINTYPE_NUMBER)
+ inputs_default = list("2" = 5)
outputs = list()
- activators = list("inject" = 1)
+ activators = list("inject" = IC_PINTYPE_PULSE_IN)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
volume = 30
power_draw_per_use = 15
@@ -88,19 +89,20 @@
outside the machine if it is next to the machine. Note that this cannot be used on entities."
flags = OPENCONTAINER
complexity = 8
- inputs = list("\][ source", "\][ target", "\ injection amount" = 10)
+ inputs = list("source" = IC_PINTYPE_REF, "target" = IC_PINTYPE_REF, "injection amount" = IC_PINTYPE_NUMBER)
+ inputs_default = list("3" = 5)
outputs = list()
- activators = list("transfer reagents" = 1, "on transfer" = 0)
+ activators = list("transfer reagents" = IC_PINTYPE_PULSE_IN, "on transfer" = IC_PINTYPE_PULSE_OUT)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_BIO = 2)
var/transfer_amount = 10
power_draw_per_use = 10
/obj/item/integrated_circuit/reagent/pump/on_data_written()
- var/datum/integrated_io/amount = inputs[3]
- if(isnum(amount.data))
- amount.data = Clamp(amount.data, 0, 50)
- transfer_amount = amount.data
+ var/new_amount = get_pin_data(IC_INPUT, 3)
+ if(!isnull(new_amount))
+ new_amount = Clamp(new_amount, 0, 50)
+ transfer_amount = new_amount
/obj/item/integrated_circuit/reagent/pump/do_work()
var/atom/movable/source = get_pin_data_as_type(IC_INPUT, 1, /atom/movable)
@@ -130,16 +132,15 @@
flags = OPENCONTAINER
complexity = 4
inputs = list()
- outputs = list("volume used")
+ outputs = list("volume used" = IC_PINTYPE_NUMBER)
activators = list()
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
origin_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2, TECH_BIO = 2)
volume = 60
/obj/item/integrated_circuit/reagent/storage/on_reagent_change()
- var/datum/integrated_io/A = outputs[1]
- A.data = reagents.total_volume
- A.push_data()
+ set_pin_data(IC_OUTPUT, 1, reagents.total_volume)
+ push_data()
/obj/item/integrated_circuit/reagent/storage/cryo
name = "cryo reagent storage"
diff --git a/code/modules/integrated_electronics/subtypes/smart.dm b/code/modules/integrated_electronics/subtypes/smart.dm
index 75707341975..14aa9b6eab4 100644
--- a/code/modules/integrated_electronics/subtypes/smart.dm
+++ b/code/modules/integrated_electronics/subtypes/smart.dm
@@ -8,9 +8,9 @@
cannot see the target, it will not be able to calculate the correct direction."
icon_state = "numberpad"
complexity = 25
- inputs = list("\][ target")
- outputs = list("\ dir")
- activators = list("calculate dir" = 1, "on calculated" = 0)
+ inputs = list("target" = IC_PINTYPE_REF)
+ outputs = list("dir" = IC_PINTYPE_DIR)
+ activators = list("calculate dir" = IC_PINTYPE_PULSE_IN, "on calculated" = IC_PINTYPE_PULSE_OUT)
spawn_flags = IC_SPAWN_RESEARCH
origin_tech = list(TECH_ENGINEERING = 4, TECH_DATA = 5)
power_draw_per_use = 40
diff --git a/code/modules/integrated_electronics/subtypes/time.dm b/code/modules/integrated_electronics/subtypes/time.dm
index 64855d2a567..b03a5a2ada0 100644
--- a/code/modules/integrated_electronics/subtypes/time.dm
+++ b/code/modules/integrated_electronics/subtypes/time.dm
@@ -12,7 +12,7 @@
This circuit is set to send a pulse after a delay of two seconds."
icon_state = "delay-20"
var/delay = 2 SECONDS
- activators = list("incoming"= 1,"outgoing" = 0)
+ activators = list("incoming"= IC_PINTYPE_PULSE_IN,"outgoing" = IC_PINTYPE_PULSE_OUT)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
power_draw_per_use = 2
@@ -59,7 +59,7 @@
desc = "This sends a pulse signal out after a delay, critical for ensuring proper control flow in a complex machine. \
This circuit's delay can be customized, between 1/10th of a second to one hour. The delay is updated upon receiving a pulse."
icon_state = "delay"
- inputs = list("\ delay time")
+ inputs = list("delay time" = IC_PINTYPE_NUMBER)
spawn_flags = IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/time/delay/custom/do_work()
@@ -78,8 +78,8 @@
var/ticks_to_pulse = 4
var/ticks_completed = 0
var/is_running = FALSE
- inputs = list("\ enable ticking" = 0)
- activators = list("outgoing pulse" = 0)
+ inputs = list("enable ticking" = IC_PINTYPE_BOOLEAN)
+ activators = list("outgoing pulse" = IC_PINTYPE_PULSE_OUT)
spawn_flags = IC_SPAWN_RESEARCH
power_draw_per_use = 4
@@ -131,8 +131,13 @@
desc = "Tells you what the local time is, specific to your station or planet."
icon_state = "clock"
inputs = list()
- outputs = list("\ time", "\ hours", "\ minutes", "\ seconds")
- activators = list("get time" = 1,"on time got" = 0)
+ outputs = list(
+ "time" = IC_PINTYPE_STRING,
+ "hours" = IC_PINTYPE_NUMBER,
+ "minutes" = IC_PINTYPE_NUMBER,
+ "seconds" = IC_PINTYPE_NUMBER
+ )
+ activators = list("get time" = IC_PINTYPE_PULSE_IN, "on time got" = IC_PINTYPE_PULSE_OUT)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
power_draw_per_use = 4
diff --git a/code/modules/integrated_electronics/subtypes/trig.dm b/code/modules/integrated_electronics/subtypes/trig.dm
index ec773a160b1..daadf52d429 100644
--- a/code/modules/integrated_electronics/subtypes/trig.dm
+++ b/code/modules/integrated_electronics/subtypes/trig.dm
@@ -2,40 +2,35 @@
/obj/item/integrated_circuit/trig
complexity = 1
inputs = list(
- "\ A",
- "\ B",
- "\ C",
- "\ D",
- "\ E",
- "\ F",
- "\ G",
- "\ H"
+ "A" = IC_PINTYPE_NUMBER,
+ "B" = IC_PINTYPE_NUMBER,
+ "C" = IC_PINTYPE_NUMBER,
+ "D" = IC_PINTYPE_NUMBER,
+ "E" = IC_PINTYPE_NUMBER,
+ "F" = IC_PINTYPE_NUMBER,
+ "G" = IC_PINTYPE_NUMBER,
+ "H" = IC_PINTYPE_NUMBER
)
- outputs = list("\ result")
- activators = list("compute" = 1, "on computed" = 0)
+ outputs = list("result" = IC_PINTYPE_NUMBER)
+ activators = list("compute" = IC_PINTYPE_PULSE_IN, "on computed" = IC_PINTYPE_PULSE_OUT)
category_text = "Trig"
extended_desc = "Input and output are in degrees."
- autopulse = 1
power_draw_per_use = 1 // Still cheap math.
-/obj/item/integrated_circuit/trig/on_data_written()
- if(autopulse == 1)
- check_then_do_work()
-
// Sine //
/obj/item/integrated_circuit/trig/sine
name = "sin circuit"
desc = "Has nothing to do with evil, unless you consider trigonometry to be evil. Outputs the sine of A."
icon_state = "sine"
- inputs = list("\ A")
+ inputs = list("A" = IC_PINTYPE_NUMBER)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/trig/sine/do_work()
pull_data()
var/result = null
var/A = get_pin_data(IC_INPUT, 1)
- if(isnum(A))
+ if(!isnull(A))
result = sin(A)
set_pin_data(IC_OUTPUT, 1, result)
@@ -48,14 +43,14 @@
name = "cos circuit"
desc = "Outputs the cosine of A."
icon_state = "cosine"
- inputs = list("\ A")
+ inputs = list("A" = IC_PINTYPE_NUMBER)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/trig/cosine/do_work()
pull_data()
var/result = null
var/A = get_pin_data(IC_INPUT, 1)
- if(isnum(A))
+ if(!isnull(A))
result = cos(A)
set_pin_data(IC_OUTPUT, 1, result)
@@ -68,14 +63,14 @@
name = "tan circuit"
desc = "Outputs the tangent of A. Guaranteed to not go on a tangent about its existance."
icon_state = "tangent"
- inputs = list("\ A")
+ inputs = list("A" = IC_PINTYPE_NUMBER)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/trig/tangent/do_work()
pull_data()
var/result = null
var/A = get_pin_data(IC_INPUT, 1)
- if(isnum(A))
+ if(!isnull(A))
result = Tan(A)
set_pin_data(IC_OUTPUT, 1, result)
@@ -88,14 +83,14 @@
name = "csc circuit"
desc = "Outputs the cosecant of A."
icon_state = "cosecant"
- inputs = list("\ A")
+ inputs = list("A" = IC_PINTYPE_NUMBER)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/trig/cosecant/do_work()
pull_data()
var/result = null
var/A = get_pin_data(IC_INPUT, 1)
- if(isnum(A))
+ if(!isnull(A))
result = Csc(A)
set_pin_data(IC_OUTPUT, 1, result)
@@ -109,14 +104,14 @@
name = "sec circuit"
desc = "Outputs the secant of A. Has nothing to do with the security department."
icon_state = "secant"
- inputs = list("\ A")
+ inputs = list("A" = IC_PINTYPE_NUMBER)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/trig/secant/do_work()
pull_data()
var/result = null
var/A = get_pin_data(IC_INPUT, 1)
- if(isnum(A))
+ if(!isnull(A))
result = Sec(A)
set_pin_data(IC_OUTPUT, 1, result)
@@ -130,14 +125,14 @@
name = "cot circuit"
desc = "Outputs the cotangent of A."
icon_state = "cotangent"
- inputs = list("\ A")
+ inputs = list("A" = IC_PINTYPE_NUMBER)
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
/obj/item/integrated_circuit/trig/cotangent/do_work()
pull_data()
var/result = null
var/A = get_pin_data(IC_INPUT, 1)
- if(isnum(A))
+ if(!isnull(A))
result = Cot(A)
set_pin_data(IC_OUTPUT, 1, result)
diff --git a/code/modules/integrated_electronics/~defines/~defines.dm b/code/modules/integrated_electronics/~defines/~defines.dm
index 78ce72f3655..90aa05acf19 100644
--- a/code/modules/integrated_electronics/~defines/~defines.dm
+++ b/code/modules/integrated_electronics/~defines/~defines.dm
@@ -8,9 +8,29 @@
#undef IC_SPAWN_DEFAULT
//#undef IC_SPAWN_RESEARCH // Research designs depend on this unfortunately.
+#undef IC_FORMAT_ANY
#undef IC_FORMAT_STRING
+#undef IC_FORMAT_CHAR
+#undef IC_FORMAT_COLOR
#undef IC_FORMAT_NUMBER
+#undef IC_FORMAT_DIR
+#undef IC_FORMAT_BOOLEAN
#undef IC_FORMAT_REF
#undef IC_FORMAT_LIST
-#undef IC_FORMAT_ANY
-#undef IC_FORMAT_PULSE
\ No newline at end of file
+
+#undef IC_FORMAT_PULSE
+
+#undef IC_PINTYPE_ANY
+#undef IC_PINTYPE_STRING
+#undef IC_PINTYPE_CHAR
+#undef IC_PINTYPE_COLOR
+#undef IC_PINTYPE_NUMBER
+#undef IC_PINTYPE_DIR
+#undef IC_PINTYPE_BOOLEAN
+#undef IC_PINTYPE_REF
+#undef IC_PINTYPE_LIST
+
+#undef IC_PINTYPE_PULSE_IN
+#undef IC_PINTYPE_PULSE_OUT
+
+#undef IC_MAX_LIST_LENGTH
\ No newline at end of file
diff --git a/code/modules/mining/coins.dm b/code/modules/mining/coins.dm
index 10c8855b7e0..2536f0ac2d2 100644
--- a/code/modules/mining/coins.dm
+++ b/code/modules/mining/coins.dm
@@ -67,7 +67,7 @@
CC.update_icon()
overlays = list()
string_attached = null
- user << "\blue You detach the string from the coin."
+ user << "You detach the string from the coin."
else ..()
/obj/item/weapon/coin/attack_self(mob/user as mob)
diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm
index 08acf59c1fb..d48578c11e1 100644
--- a/code/modules/mining/mine_items.dm
+++ b/code/modules/mining/mine_items.dm
@@ -134,12 +134,12 @@
drill_verb = "drilling"
/obj/item/weapon/pickaxe/borgdrill
- name = "cyborg mining drill"
- icon_state = "diamonddrill"
+ name = "enhanced sonic jackhammer"
+ icon_state = "jackhammer"
item_state = "jackhammer"
digspeed = 15
- desc = ""
- drill_verb = "drilling"
+ desc = "Cracks rocks with sonic blasts. This one seems like an improved design."
+ drill_verb = "hammering"
/*****************************Shovel********************************/
diff --git a/code/modules/mining/mint.dm b/code/modules/mining/mint.dm
index 99dc1956b12..75acc807bca 100644
--- a/code/modules/mining/mint.dm
+++ b/code/modules/mining/mint.dm
@@ -120,7 +120,7 @@
usr.set_machine(src)
src.add_fingerprint(usr)
if(processing==1)
- usr << "\blue The machine is processing."
+ usr << "The machine is processing."
return
if(href_list["choose"])
chosen = href_list["choose"]
diff --git a/code/modules/mining/money_bag.dm b/code/modules/mining/money_bag.dm
index 9884349be95..13ddd4ad577 100644
--- a/code/modules/mining/money_bag.dm
+++ b/code/modules/mining/money_bag.dm
@@ -50,14 +50,14 @@
..()
if (istype(W, /obj/item/weapon/coin))
var/obj/item/weapon/coin/C = W
- user << "\blue You add the [C.name] into the bag."
+ user << "You add the [C.name] into the bag."
usr.drop_item()
contents += C
if (istype(W, /obj/item/weapon/moneybag))
var/obj/item/weapon/moneybag/C = W
for (var/obj/O in C.contents)
contents += O;
- user << "\blue You empty the [C.name] into the bag."
+ user << "You empty the [C.name] into the bag."
return
/obj/item/weapon/moneybag/Topic(href, href_list)
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 89a92f7c493..56c14fc4aed 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -32,7 +32,7 @@ var/global/list/image/ghost_sightless_images = list() //this is a list of images
var/anonsay = 0
var/image/ghostimage = null //this mobs ghost image, for deleting and stuff
var/ghostvision = 1 //is the ghost able to see things humans can't?
- var/seedarkness = 1
+// var/seedarkness = 1
incorporeal_move = 1
var/is_manifest = 0 //If set to 1, the ghost is able to whisper. Usually only set if a cultist drags them through the veil.
@@ -298,10 +298,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
return
if(medHUD)
medHUD = 0
- src << "\blue Medical HUD Disabled"
+ src << "Medical HUD Disabled"
else
medHUD = 1
- src << "\blue Medical HUD Enabled"
+ src << "Medical HUD Enabled"
/mob/observer/dead/verb/toggle_antagHUD()
set category = "Ghost"
@@ -312,11 +312,11 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
return
var/mentor = is_mentor(usr.client)
if(!config.antag_hud_allowed && (!client.holder || mentor))
- src << "\red Admins have disabled this for this round."
+ src << "Admins have disabled this for this round."
return
var/mob/observer/dead/M = src
if(jobban_isbanned(M, "AntagHUD"))
- src << "\red You have been banned from using this feature"
+ src << "You have been banned from using this feature"
return
if(config.antag_hud_restricted && !M.has_enabled_antagHUD && (!client.holder || mentor))
var/response = alert(src, "If you turn this on, you will not be able to take any part in the round.","Are you sure you want to turn this feature on?","Yes","No")
@@ -326,10 +326,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
M.has_enabled_antagHUD = 1
if(M.antagHUD)
M.antagHUD = 0
- src << "\blue AntagHUD Disabled"
+ src << "AntagHUD Disabled"
else
M.antagHUD = 1
- src << "\blue AntagHUD Enabled"
+ src << "AntagHUD Enabled"
/mob/observer/dead/proc/dead_tele(var/area/A in return_sorted_areas())
set category = "Ghost"
@@ -461,11 +461,11 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
/mob/observer/dead/memory()
set hidden = 1
- src << "\red You are dead! You have no mind to store memory!"
+ src << "You are dead! You have no mind to store memory!"
/mob/observer/dead/add_memory()
set hidden = 1
- src << "\red You are dead! You have no mind to store memory!"
+ src << "You are dead! You have no mind to store memory!"
/mob/observer/dead/Post_Incorpmove()
following = null
@@ -485,16 +485,16 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
var/pressure = environment.return_pressure()
var/total_moles = environment.total_moles
- src << "\blue Results:"
+ src << "Results:"
if(abs(pressure - ONE_ATMOSPHERE) < 10)
- src << "\blue Pressure: [round(pressure,0.1)] kPa"
+ src << "Pressure: [round(pressure,0.1)] kPa"
else
- src << "\red Pressure: [round(pressure,0.1)] kPa"
+ src << "Pressure: [round(pressure,0.1)] kPa"
if(total_moles)
for(var/g in environment.gas)
- src << "\blue [gas_data.name[g]]: [round((environment.gas[g] / total_moles) * 100)]% ([round(environment.gas[g], 0.01)] moles)"
- src << "\blue Temperature: [round(environment.temperature-T0C,0.1)]°C ([round(environment.temperature,0.1)]K)"
- src << "\blue Heat Capacity: [round(environment.heat_capacity(),0.1)]"
+ src << "[gas_data.name[g]]: [round((environment.gas[g] / total_moles) * 100)]% ([round(environment.gas[g], 0.01)] moles)"
+ src << "Temperature: [round(environment.temperature-T0C,0.1)]°C ([round(environment.temperature,0.1)]K)"
+ src << "Heat Capacity: [round(environment.heat_capacity(),0.1)]"
/mob/observer/dead/verb/become_mouse()
set name = "Become mouse"
@@ -570,7 +570,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
set desc = "If the round is sufficiently spooky, write a short message in blood on the floor or a wall. Remember, no IC in OOC or OOC in IC."
if(!(config.cult_ghostwriter))
- src << "\red That verb is not currently permitted."
+ src << "That verb is not currently permitted."
return
if (!src.stat)
@@ -635,7 +635,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
W.update_icon()
W.message = message
W.add_hiddenprint(src)
- W.visible_message("\red Invisible fingers crudely paint something in blood on [T]...")
+ W.visible_message("Invisible fingers crudely paint something in blood on [T]...")
/mob/observer/dead/pointed(atom/A as mob|obj|turf in view())
if(!..())
diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm
index 687fb7626d3..d3cab940074 100644
--- a/code/modules/mob/living/carbon/brain/MMI.dm
+++ b/code/modules/mob/living/carbon/brain/MMI.dm
@@ -232,7 +232,7 @@
/obj/item/device/mmi/digital/attack_self(mob/user as mob)
if(brainmob && !brainmob.key && searching == 0)
//Start the process of searching for a new user.
- user << "\blue You carefully locate the manual activation switch and start the [src]'s boot process."
+ user << "You carefully locate the manual activation switch and start the [src]'s boot process."
src.searching = 1
src.request_player()
spawn(600) reset_search()
@@ -256,7 +256,7 @@
var/turf/T = get_turf_or_move(src.loc)
for (var/mob/M in viewers(T))
- M.show_message("\blue The [src] buzzes quietly, and the golden lights fade away. Perhaps you could try again?")
+ M.show_message("The [src] buzzes quietly, and the golden lights fade away. Perhaps you could try again?")
/obj/item/device/mmi/digital/proc/question(var/client/C)
spawn(0)
@@ -285,7 +285,7 @@
var/turf/T = get_turf_or_move(src.loc)
for (var/mob/M in viewers(T))
- M.show_message("\blue The [src] chimes quietly.")
+ M.show_message("The [src] chimes quietly.")
/obj/item/device/mmi/digital/robot
name = "robotic intelligence circuit"
diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm
index 9452337eeb9..1e2185fbf37 100644
--- a/code/modules/mob/living/carbon/brain/posibrain.dm
+++ b/code/modules/mob/living/carbon/brain/posibrain.dm
@@ -16,7 +16,7 @@
/obj/item/device/mmi/digital/posibrain/attack_self(mob/user as mob)
if(brainmob && !brainmob.key && searching == 0)
//Start the process of searching for a new user.
- user << "\blue You carefully locate the manual activation switch and start the positronic brain's boot process."
+ user << "You carefully locate the manual activation switch and start the positronic brain's boot process."
icon_state = "posibrain-searching"
src.searching = 1
src.request_player()
@@ -68,7 +68,7 @@
var/turf/T = get_turf_or_move(src.loc)
for (var/mob/M in viewers(T))
- M.show_message("\blue The positronic brain chimes quietly.")
+ M.show_message("The positronic brain chimes quietly.")
icon_state = "posibrain-occupied"
/obj/item/device/mmi/digital/posibrain/proc/reset_search() //We give the players sixty seconds to decide, then reset the timer.
@@ -81,7 +81,7 @@
var/turf/T = get_turf_or_move(src.loc)
for (var/mob/M in viewers(T))
- M.show_message("\blue The positronic brain buzzes quietly, and the golden lights fade away. Perhaps you could try again?")
+ M.show_message("The positronic brain buzzes quietly, and the golden lights fade away. Perhaps you could try again?")
/obj/item/device/mmi/digital/posibrain/examine(mob/user)
if(!..(user))
diff --git a/code/modules/mob/living/carbon/human/MedicalSideEffects.dm b/code/modules/mob/living/carbon/human/MedicalSideEffects.dm
index 62f9cf75f80..c7009107de2 100644
--- a/code/modules/mob/living/carbon/human/MedicalSideEffects.dm
+++ b/code/modules/mob/living/carbon/human/MedicalSideEffects.dm
@@ -24,7 +24,7 @@
for(var/R in cures)
if(H.reagents.has_reagent(R))
if (cure_message)
- H <<"\blue [cure_message]"
+ H <<"[cure_message]"
return 1
return 0
diff --git a/code/modules/mob/living/carbon/human/chem_side_effects.dm b/code/modules/mob/living/carbon/human/chem_side_effects.dm
index 62f9cf75f80..c7009107de2 100644
--- a/code/modules/mob/living/carbon/human/chem_side_effects.dm
+++ b/code/modules/mob/living/carbon/human/chem_side_effects.dm
@@ -24,7 +24,7 @@
for(var/R in cures)
if(H.reagents.has_reagent(R))
if (cure_message)
- H <<"\blue [cure_message]"
+ H <<"[cure_message]"
return 1
return 0
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 8f7398e0a86..b4321393259 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -399,7 +399,7 @@ emp_act
var/obj/item/organ/external/affecting = get_organ(zone)
var/hit_area = affecting.name
- src.visible_message("\red [src] has been hit in the [hit_area] by [O].")
+ src.visible_message("[src] has been hit in the [hit_area] by [O].")
if(ismob(O.thrower))
var/mob/M = O.thrower
@@ -451,7 +451,7 @@ emp_act
if(O.throw_source && momentum >= THROWNOBJ_KNOCKBACK_SPEED)
var/dir = get_dir(O.throw_source, src)
- visible_message("\red [src] staggers under the impact!","\red You stagger under the impact!")
+ visible_message("[src] staggers under the impact!","You stagger under the impact!")
src.throw_at(get_edge_target_turf(src,dir),1,momentum)
if(!O || !src) return
diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm
index 3afdc07be01..69b55e20ed6 100644
--- a/code/modules/mob/living/carbon/human/human_powers.dm
+++ b/code/modules/mob/living/carbon/human/human_powers.dm
@@ -106,8 +106,8 @@
var/msg = sanitize(input("Message:", "Psychic Whisper") as text|null)
if(msg)
log_say("PsychicWhisper: [key_name(src)]->[M.key] : [msg]")
- M << "\green You hear a strange, alien voice in your head... \italic [msg]"
- src << "\green You said: \"[msg]\" to [M]"
+ M << "You hear a strange, alien voice in your head... [msg]"
+ src << "You said: \"[msg]\" to [M]"
return
/mob/living/carbon/human/proc/diona_split_nymph()
diff --git a/code/modules/mob/living/carbon/human/human_species.dm b/code/modules/mob/living/carbon/human/human_species.dm
index fa7460b19ee..e0dd9998cc6 100644
--- a/code/modules/mob/living/carbon/human/human_species.dm
+++ b/code/modules/mob/living/carbon/human/human_species.dm
@@ -32,6 +32,9 @@
h_style = "Teshari Default"
..(new_loc, "Teshari")
+/mob/living/carbon/human/promethean/New(var/new_loc)
+ ..(new_loc, "Promethean")
+
/mob/living/carbon/human/machine/New(var/new_loc)
h_style = "blue IPC screen"
..(new_loc, "Machine")
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 9918a7e4bda..23dfdb2db34 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -1128,10 +1128,16 @@
see_invisible = SEE_INVISIBLE_LIVING
seer = 0
+ if(!seedarkness)
+ sight = species.get_vision_flags(src)
+ see_in_dark = 8
+ see_invisible = SEE_INVISIBLE_NOLIGHTING
+
else
sight = species.get_vision_flags(src)
see_in_dark = species.darksight
see_invisible = see_in_dark>2 ? SEE_INVISIBLE_LEVEL_ONE : SEE_INVISIBLE_LIVING
+
var/tmp/glasses_processed = 0
var/obj/item/weapon/rig/rig = back
if(istype(rig) && rig.visor)
@@ -1150,7 +1156,7 @@
if(!glasses_processed && (species.get_vision_flags(src) > 0))
sight |= species.get_vision_flags(src)
- if(!seer && !glasses_processed)
+ if(!seer && !glasses_processed && seedarkness)
see_invisible = SEE_INVISIBLE_LIVING
if(healths)
diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans.dm b/code/modules/mob/living/carbon/human/species/station/prometheans.dm
index e239b8118c0..802cf431541 100644
--- a/code/modules/mob/living/carbon/human/species/station/prometheans.dm
+++ b/code/modules/mob/living/carbon/human/species/station/prometheans.dm
@@ -14,7 +14,7 @@ var/datum/species/shapeshifter/promethean/prometheans
blood_color = "#05FF9B"
flesh_color = "#05FFFB"
- hunger_factor = DEFAULT_HUNGER_FACTOR //todo
+ hunger_factor = 0.2
reagent_tag = IS_SLIME
mob_size = MOB_SMALL
bump_flag = SLIME
@@ -31,27 +31,26 @@ var/datum/species/shapeshifter/promethean/prometheans
male_cough_sounds = list('sound/effects/slime_squish.ogg')
female_cough_sounds = list('sound/effects/slime_squish.ogg')
- gluttonous = 1
- virus_immune = 1
- blood_volume = 560
- min_age = 1
- max_age = 5
- brute_mod = 0.5
- burn_mod = 2
- oxy_mod = 0
- total_health = 120
+ gluttonous = 1
+ virus_immune = 1
+ blood_volume = 560
+ min_age = 1
+ max_age = 5
+ brute_mod = 0.75
+ burn_mod = 2
+ oxy_mod = 0
- cold_level_1 = 260
- cold_level_2 = 200
- cold_level_3 = 120
+ cold_level_1 = 280 //Default 260 - Lower is better
+ cold_level_2 = 220 //Default 200
+ cold_level_3 = 130 //Default 120
- heat_level_1 = 360
- heat_level_2 = 400
- heat_level_3 = 1000
+ heat_level_1 = 320 //Default 360
+ heat_level_2 = 370 //Default 400
+ heat_level_3 = 600 //Default 1000
body_temperature = 310.15
- siemens_coefficient = -1
+ siemens_coefficient = 0.3
rarity_value = 5
unarmed_types = list(/datum/unarmed_attack/slime_glomp)
@@ -83,7 +82,7 @@ var/datum/species/shapeshifter/promethean/prometheans
valid_transform_species = list("Human", "Unathi", "Tajara", "Skrell", "Diona", "Teshari", "Monkey")
monochromatic = 1
- var/heal_rate = 5 // Temp. Regen per tick.
+ var/heal_rate = 0.5 // Temp. Regen per tick.
/datum/species/shapeshifter/promethean/New()
..()
diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm
index e49236af940..92fae53d3c5 100644
--- a/code/modules/mob/living/carbon/human/species/station/station.dm
+++ b/code/modules/mob/living/carbon/human/species/station/station.dm
@@ -46,7 +46,7 @@
min_age = 32
max_age = 260
- blurb = "A heavily reptillian species, Unathi (or 'Sinta as they call themselves) hail from the \
+ blurb = "A heavily reptillian species, Unathi hail from the \
Uuosa-Eso system, which roughly translates to 'burning mother'.]
Coming from a harsh, inhospitable \
planet, they mostly hold ideals of honesty, virtue, proficiency and bravery above all \
else, frequently even their own lives. They prefer warmer temperatures than most species and \
@@ -319,6 +319,7 @@
reagent_tag = IS_DIONA
genders = list(PLURAL)
+
/datum/species/diona/can_understand(var/mob/other)
var/mob/living/carbon/alien/diona/D = other
if(istype(D))
diff --git a/code/modules/mob/living/carbon/metroid/emote.dm b/code/modules/mob/living/carbon/metroid/emote.dm
index 3e7535f16bb..6375f23b2a3 100644
--- a/code/modules/mob/living/carbon/metroid/emote.dm
+++ b/code/modules/mob/living/carbon/metroid/emote.dm
@@ -86,7 +86,7 @@
src << "Help for slime emotes. You can use these emotes with say \"*emote\":\n\nbounce, custom, jiggle, light, moan, shiver, sway, twitch, vibrate. You can also set your face with: \n\nnomood, pout, sad, angry, frown, smile"
else
- src << "\blue Unusable emote '[act]'. Say *help for a list."
+ src << "Unusable emote '[act]'. Say *help for a list."
if ((message && src.stat == 0))
if (m_type & 1)
for(var/mob/O in viewers(src, null))
diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm
index 2209c630084..330adf8ddc6 100644
--- a/code/modules/mob/living/life.dm
+++ b/code/modules/mob/living/life.dm
@@ -179,6 +179,10 @@
return
/mob/living/proc/update_sight()
+ if(!seedarkness)
+ see_invisible = SEE_INVISIBLE_NOLIGHTING
+ else
+ see_invisible = initial(see_invisible)
return
/mob/living/proc/handle_hud_icons()
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 0b47ba7870f..8880efe0dac 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -153,7 +153,7 @@ default behaviour is:
if ((src.health < 0 && src.health > (5-src.getMaxHealth()))) // Health below Zero but above 5-away-from-death, as before, but variable
src.adjustOxyLoss(src.health + src.getMaxHealth() * 2) // Deal 2x health in OxyLoss damage, as before but variable.
src.health = src.getMaxHealth() - src.getOxyLoss() - src.getToxLoss() - src.getFireLoss() - src.getBruteLoss()
- src << "\blue You have given up life and succumbed to death."
+ src << "You have given up life and succumbed to death."
/mob/living/proc/updatehealth()
diff --git a/code/modules/mob/living/living_powers.dm b/code/modules/mob/living/living_powers.dm
index 4fb4c1bcbdb..a9bb916413f 100644
--- a/code/modules/mob/living/living_powers.dm
+++ b/code/modules/mob/living/living_powers.dm
@@ -8,7 +8,7 @@
if (layer != 2.45)
layer = 2.45 //Just above cables with their 2.44
- src << text("\blue You are now hiding.")
+ src << text("You are now hiding.")
else
layer = MOB_LAYER
- src << text("\blue You have stopped hiding.")
\ No newline at end of file
+ src << text("You have stopped hiding.")
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm
index 84825559b06..7d40f0c0179 100644
--- a/code/modules/mob/living/silicon/robot/emote.dm
+++ b/code/modules/mob/living/silicon/robot/emote.dm
@@ -240,7 +240,7 @@
if ("help")
src << "salute, bow-(none)/mob, clap, flap, aflap, twitch, twitch_s, nod, deathgasp, glare-(none)/mob, stare-(none)/mob, look, beep, ping, \nbuzz, law, halt, yes, no"
else
- src << "\blue Unusable emote '[act]'. Say *help for a list."
+ src << "Unusable emote '[act]'. Say *help for a list."
if ((message && src.stat == 0))
custom_emote(m_type,message)
diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm
index 8d89201007e..db8d7b2ead6 100644
--- a/code/modules/mob/living/silicon/robot/life.dm
+++ b/code/modules/mob/living/silicon/robot/life.dm
@@ -172,6 +172,12 @@
src.sight |= SEE_MOBS
src.see_in_dark = 8
src.see_invisible = SEE_INVISIBLE_LEVEL_TWO
+ else if (!seedarkness)
+ src.sight &= ~SEE_MOBS
+ src.sight &= ~SEE_TURFS
+ src.sight &= ~SEE_OBJS
+ src.see_in_dark = 8
+ src.see_invisible = SEE_INVISIBLE_NOLIGHTING
else if (src.stat != 2)
src.sight &= ~SEE_MOBS
src.sight &= ~SEE_TURFS
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 67ebfded555..b5c572398b4 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -65,6 +65,7 @@
var/opened = 0
var/emagged = 0
+ var/emag_items = 0
var/wiresexposed = 0
var/locked = 1
var/has_power = 1
@@ -739,7 +740,7 @@
dat += text("[obj]: Activated
")
else
dat += text("[obj]: Activate
")
- if (emagged)
+ if (emagged || emag_items)
if(activated(module.emag))
dat += text("[module.emag]: Activated
")
else
@@ -1056,14 +1057,6 @@
src << "Obey these laws:"
laws.show_laws(src)
src << "ALERT: [user.real_name] is your new master. Obey your new laws and his commands."
- if(src.module)
- var/rebuild = 0
- for(var/obj/item/weapon/pickaxe/borgdrill/D in src.module.modules)
- qdel(D)
- rebuild = 1
- if(rebuild)
- src.module.modules += new /obj/item/weapon/pickaxe/diamonddrill(src.module)
- src.module.rebuild()
updateicon()
else
user << "You fail to hack [src]'s interface."
diff --git a/code/modules/mob/living/silicon/robot/robot_items.dm b/code/modules/mob/living/silicon/robot/robot_items.dm
index 56081c274a0..5953e631aff 100644
--- a/code/modules/mob/living/silicon/robot/robot_items.dm
+++ b/code/modules/mob/living/silicon/robot/robot_items.dm
@@ -166,7 +166,7 @@
overlays += image("icon" = I.icon, "icon_state" = I.icon_state, "layer" = 30 + I.layer)
addedSomething = 1
if ( addedSomething )
- user.visible_message("\blue [user] load some items onto their service tray.")
+ user.visible_message("[user] load some items onto their service tray.")
return
@@ -206,9 +206,9 @@
sleep(rand(2,4))
if ( droppedSomething )
if ( foundtable )
- user.visible_message("\blue [user] unloads their service tray.")
+ user.visible_message("[user] unloads their service tray.")
else
- user.visible_message("\blue [user] drops all the items on their tray.")
+ user.visible_message("[user] drops all the items on their tray.")
return ..()
@@ -288,7 +288,7 @@
deploy_paper(get_turf(src))
/obj/item/weapon/form_printer/proc/deploy_paper(var/turf/T)
- T.visible_message("\blue \The [src.loc] dispenses a sheet of crisp white paper.")
+ T.visible_message("\The [src.loc] dispenses a sheet of crisp white paper.")
new /obj/item/weapon/paper(T)
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index 0f49b3bbe45..b7c2306d74b 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -172,7 +172,7 @@ var/global/list/robot_modules = list(
"Basic" = "robot_old",
"Android" = "droid",
"Drone" = "drone-standard"
- )
+ )
/obj/item/weapon/robot_module/robot/standard/New()
..()
@@ -203,7 +203,8 @@ var/global/list/robot_modules = list(
"Basic" = "Medbot",
"Advanced Droid" = "droid-medical",
"Needles" = "medicalrobot",
- "Drone" = "drone-surgery"
+ "Drone" = "drone-surgery",
+ "Handy" = "handy-med"
)
/obj/item/weapon/robot_module/robot/medical/surgeon/New()
@@ -339,7 +340,8 @@ var/global/list/robot_modules = list(
"Landmate" = "landmate",
"Landmate - Treaded" = "engiborg+tread",
"Drone" = "drone-engineer",
- "Treadwell" = "treadwell"
+ "Treadwell" = "treadwell",
+ "Handy" = "handy-engineer"
)
/obj/item/weapon/robot_module/robot/engineering/construction
@@ -478,7 +480,7 @@ var/global/list/robot_modules = list(
"Basic" = "secborg",
"Black Knight" = "securityrobot",
"Drone" = "drone-sec"
- )
+ )
/obj/item/weapon/robot_module/robot/security/general/New()
..()
@@ -682,6 +684,7 @@ var/global/list/robot_modules = list(
src.modules += new /obj/item/weapon/gripper/miner(src)
src.modules += new /obj/item/weapon/mining_scanner(src)
src.emag = new /obj/item/weapon/pickaxe/plasmacutter(src)
+ src.emag = new /obj/item/weapon/pickaxe/diamonddrill(src)
/obj/item/weapon/robot_module/robot/research
name = "research module"
@@ -693,7 +696,8 @@ var/global/list/robot_modules = list(
"WTDove" = "whitespider",
"WTOperator" = "sleekscience",
"Droid" = "droid-science",
- "Drone" = "drone-science"
+ "Drone" = "drone-science",
+ "Handy" = "handy-science"
)
/obj/item/weapon/robot_module/robot/research/New()
diff --git a/code/modules/mob/living/simple_animal/animals/mouse.dm b/code/modules/mob/living/simple_animal/animals/mouse.dm
index cb06aecb7ee..68c54b3d389 100644
--- a/code/modules/mob/living/simple_animal/animals/mouse.dm
+++ b/code/modules/mob/living/simple_animal/animals/mouse.dm
@@ -49,19 +49,16 @@
for(var/mob/M in view())
M << 'sound/effects/mousesqueek.ogg'
- if(!ckey && stat == CONSCIOUS && prob(0.5))
- stat = UNCONSCIOUS
- icon_state = "mouse_[body_color]_sleep"
- wander = 0
+ if(!resting && prob(0.5))
+ lay_down()
speak_chance = 0
//snuffles
- else if(stat == UNCONSCIOUS)
- if(ckey || prob(1))
- stat = CONSCIOUS
- icon_state = "mouse_[body_color]"
- wander = 1
- else if(prob(5))
+ else if(resting)
+ if(prob(1))
+ lay_down()
+ speak_chance = initial(speak_chance)
+ else if(prob(1))
audible_emote("snuffles.")
/mob/living/simple_animal/mouse/New()
@@ -97,7 +94,7 @@
if( ishuman(AM) )
if(!stat)
var/mob/M = AM
- M << "\blue \icon[src] Squeek!"
+ M << "\icon[src] Squeek!"
M << 'sound/effects/mousesqueek.ogg'
..()
diff --git a/code/modules/mob/living/simple_animal/borer/borer.dm b/code/modules/mob/living/simple_animal/borer/borer.dm
index 9c36518875b..7498c83a7aa 100644
--- a/code/modules/mob/living/simple_animal/borer/borer.dm
+++ b/code/modules/mob/living/simple_animal/borer/borer.dm
@@ -63,16 +63,16 @@
if(host.reagents.has_reagent("sugar"))
if(!docile)
if(controlling)
- host << "\blue You feel the soporific flow of sugar in your host's blood, lulling you into docility."
+ host << "You feel the soporific flow of sugar in your host's blood, lulling you into docility."
else
- src << "\blue You feel the soporific flow of sugar in your host's blood, lulling you into docility."
+ src << "You feel the soporific flow of sugar in your host's blood, lulling you into docility."
docile = 1
else
if(docile)
if(controlling)
- host << "\blue You shake off your lethargy as the sugar leaves your host's blood."
+ host << "You shake off your lethargy as the sugar leaves your host's blood."
else
- src << "\blue You shake off your lethargy as the sugar leaves your host's blood."
+ src << "You shake off your lethargy as the sugar leaves your host's blood."
docile = 0
if(chemicals < 250)
@@ -80,7 +80,7 @@
if(controlling)
if(docile)
- host << "\blue You are feeling far too docile to continue controlling your host..."
+ host << "You are feeling far too docile to continue controlling your host..."
host.release_control()
return
diff --git a/code/modules/mob/living/simple_animal/borer/borer_captive.dm b/code/modules/mob/living/simple_animal/borer/borer_captive.dm
index f07b9d32cee..2290e6ae6a6 100644
--- a/code/modules/mob/living/simple_animal/borer/borer_captive.dm
+++ b/code/modules/mob/living/simple_animal/borer/borer_captive.dm
@@ -7,7 +7,7 @@
if (src.client)
if(client.prefs.muted & MUTE_IC)
- src << "\red You cannot speak in IC (muted)."
+ src << "You cannot speak in IC (muted)."
return
if(istype(src.loc,/mob/living/simple_animal/borer))
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index ca4a54b0e02..427786ad41c 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -210,3 +210,5 @@
var/list/active_genes=list()
var/mob_size = MOB_MEDIUM
var/forbid_seeing_deadchat = FALSE // Used for lings to not see deadchat, and to have ghosting behave as if they were not really dead.
+
+ var/seedarkness = 1 //Determines mob's ability to see shadows. 1 = Normal vision, 0 = darkvision
\ No newline at end of file
diff --git a/code/modules/organs/subtypes/unbreakable.dm b/code/modules/organs/subtypes/unbreakable.dm
index 9492d330e13..fcd819029eb 100644
--- a/code/modules/organs/subtypes/unbreakable.dm
+++ b/code/modules/organs/subtypes/unbreakable.dm
@@ -53,19 +53,19 @@
/obj/item/organ/external/arm/unbreakable/slime
nonsolid = 1
- max_damage = 15
+ max_damage = 5
/obj/item/organ/external/arm/right/unbreakable/slime
nonsolid = 1
- max_damage = 15
+ max_damage = 5
/obj/item/organ/external/leg/unbreakable/slime
nonsolid = 1
- max_damage = 15
+ max_damage = 5
/obj/item/organ/external/leg/right/unbreakable/slime
nonsolid = 1
- max_damage = 15
+ max_damage = 5
/obj/item/organ/external/foot/unbreakable/slime
nonsolid = 1
@@ -85,4 +85,4 @@
/obj/item/organ/external/head/unbreakable/slime
nonsolid = 1
- max_damage = 15
+ max_damage = 5
diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm
index 2c25418b5f2..e7dfe7d0954 100644
--- a/code/modules/paperwork/pen.dm
+++ b/code/modules/paperwork/pen.dm
@@ -67,7 +67,7 @@
if(!ismob(M))
return
user << "You stab [M] with the pen."
-// M << "\red You feel a tiny prick!" //That's a whole lot of meta!
+// M << "You feel a tiny prick!" //That's a whole lot of meta!
M.attack_log += text("\[[time_stamp()]\] Has been stabbed with [name] by [user.name] ([user.ckey])")
user.attack_log += text("\[[time_stamp()]\] Used the [name] to stab [M.name] ([M.ckey])")
msg_admin_attack("[user.name] ([user.ckey]) Used the [name] to stab [M.name] ([M.ckey]) (JMP)")
@@ -197,7 +197,7 @@
var/colourName = "red" //for updateIcon purposes
suicide_act(mob/user)
- viewers(user) << "\red [user] is jamming the [src.name] up \his nose and into \his brain. It looks like \he's trying to commit suicide."
+ viewers(user) << "[user] is jamming the [src.name] up \his nose and into \his brain. It looks like \he's trying to commit suicide."
return (BRUTELOSS|OXYLOSS)
New()
diff --git a/code/modules/power/cable_heavyduty.dm b/code/modules/power/cable_heavyduty.dm
index 67eb09bb1a7..5cbe9b43ab1 100644
--- a/code/modules/power/cable_heavyduty.dm
+++ b/code/modules/power/cable_heavyduty.dm
@@ -16,10 +16,10 @@
return
if(istype(W, /obj/item/weapon/wirecutters))
- usr << "\blue These cables are too tough to be cut with those [W.name]."
+ usr << "These cables are too tough to be cut with those [W.name]."
return
else if(istype(W, /obj/item/stack/cable_coil))
- usr << "\blue You will need heavier cables to connect to these."
+ usr << "You will need heavier cables to connect to these."
return
else
..()
diff --git a/code/modules/power/fractal_reactor.dm b/code/modules/power/fractal_reactor.dm
index 91fe1337fe7..4270fdbc858 100644
--- a/code/modules/power/fractal_reactor.dm
+++ b/code/modules/power/fractal_reactor.dm
@@ -18,7 +18,7 @@
/obj/machinery/power/fractal_reactor/New()
..()
if(!mapped_in)
- world << "WARNING: \black Map testing power source activated at: X:[src.loc.x] Y:[src.loc.y] Z:[src.loc.z]"
+ world << "WARNING: Map testing power source activated at: X:[src.loc.x] Y:[src.loc.y] Z:[src.loc.z]"
/obj/machinery/power/fractal_reactor/process()
if(!powernet && !powernet_connection_failed)
diff --git a/code/modules/power/fusion/fusion_circuits.dm b/code/modules/power/fusion/fusion_circuits.dm
index d3bdc13fad5..f03d9c2db28 100644
--- a/code/modules/power/fusion/fusion_circuits.dm
+++ b/code/modules/power/fusion/fusion_circuits.dm
@@ -6,10 +6,10 @@
/obj/item/weapon/circuitboard/fusion_fuel_compressor
name = "circuit board (fusion fuel compressor)"
build_path = /obj/machinery/fusion_fuel_compressor
- board_type = "machine"
+ board_type = new /datum/frame/frame_types/machine
origin_tech = list(TECH_POWER = 3, TECH_ENGINEERING = 4, TECH_MATERIAL = 4)
req_components = list(
- /obj/item/weapon/stock_parts/manipulator/pico = 2,
+ /obj/item/weapon/stock_parts/manipulator/nano = 2,
/obj/item/weapon/stock_parts/matter_bin/super = 2,
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/stack/cable_coil = 5
@@ -28,12 +28,11 @@
/obj/item/weapon/circuitboard/fusion_core
name = "internal circuitry (fusion core)"
build_path = /obj/machinery/power/fusion_core
- board_type = "machine"
+ board_type = new /datum/frame/frame_types/machine
origin_tech = list(TECH_BLUESPACE = 2, TECH_MAGNET = 4, TECH_POWER = 4)
req_components = list(
- /obj/item/weapon/stock_parts/manipulator/pico = 2,
- /obj/item/weapon/stock_parts/micro_laser/ultra = 1,
- /obj/item/weapon/stock_parts/subspace/crystal = 1,
+ /obj/item/weapon/stock_parts/manipulator/nano = 2,
+ /obj/item/weapon/stock_parts/micro_laser/high = 1,
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/stack/cable_coil = 5
)
@@ -41,16 +40,27 @@
/obj/item/weapon/circuitboard/fusion_injector
name = "internal circuitry (fusion fuel injector)"
build_path = /obj/machinery/fusion_fuel_injector
- board_type = "machine"
+ board_type = new /datum/frame/frame_types/machine
origin_tech = list(TECH_POWER = 3, TECH_ENGINEERING = 4, TECH_MATERIAL = 4)
req_components = list(
- /obj/item/weapon/stock_parts/manipulator/pico = 2,
- /obj/item/weapon/stock_parts/scanning_module/phasic = 1,
+ /obj/item/weapon/stock_parts/manipulator/nano = 2,
+ /obj/item/weapon/stock_parts/scanning_module/adv = 1,
/obj/item/weapon/stock_parts/matter_bin/super = 1,
/obj/item/weapon/stock_parts/console_screen = 1,
/obj/item/stack/cable_coil = 5
)
+/obj/item/weapon/circuitboard/gyrotron
+ name = "circuit board (gyrotron)"
+ build_path = /obj/machinery/power/emitter/gyrotron
+ board_type = new /datum/frame/frame_types/machine
+ origin_tech = list(TECH_POWER = 4, TECH_ENGINEERING = 4, TECH_MATERIAL = 5, TECH_MAGNET = 3)
+ req_components = list(
+ /obj/item/weapon/stock_parts/scanning_module/adv = 1,
+ /obj/item/weapon/stock_parts/micro_laser/high = 3,
+ /obj/item/weapon/stock_parts/capacitor/adv = 1
+ )
+
/datum/design/circuit/fusion
name = "fusion core control console"
id = "fusion_core_control"
diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm
index 53e3dc29c98..0d3a04d56f1 100644
--- a/code/modules/power/singularity/collector.dm
+++ b/code/modules/power/singularity/collector.dm
@@ -54,7 +54,7 @@ var/global/list/rad_collectors = list()
investigate_log("turned [active?"on":"off"] by [user.key]. [P?"Fuel: [round(P.air_contents.gas["phoron"]/0.29)]%":"It is empty"].","singulo")
return
else
- user << "\red The controls are locked!"
+ user << "The controls are locked!"
return
..()
@@ -62,10 +62,10 @@ var/global/list/rad_collectors = list()
/obj/machinery/power/rad_collector/attackby(obj/item/W, mob/user)
if(istype(W, /obj/item/weapon/tank/phoron))
if(!src.anchored)
- user << "\red The [src] needs to be secured to the floor first."
+ user << "The [src] needs to be secured to the floor first."
return 1
if(src.P)
- user << "\red There's already a phoron tank loaded."
+ user << "There's already a phoron tank loaded."
return 1
user.drop_item()
src.P = W
@@ -78,7 +78,7 @@ var/global/list/rad_collectors = list()
return 1
else if(istype(W, /obj/item/weapon/wrench))
if(P)
- user << "\blue Remove the phoron tank first."
+ user << "Remove the phoron tank first."
return 1
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
src.anchored = !src.anchored
@@ -97,9 +97,9 @@ var/global/list/rad_collectors = list()
user << "The controls are now [src.locked ? "locked." : "unlocked."]"
else
src.locked = 0 //just in case it somehow gets locked
- user << "\red The controls can only be locked when the [src] is active"
+ user << "The controls can only be locked when the [src] is active."
else
- user << "\red Access denied!"
+ user << "Access denied!"
return 1
return ..()
diff --git a/code/modules/power/singularity/particle_accelerator/particle.dm b/code/modules/power/singularity/particle_accelerator/particle.dm
index bd7338f00e6..288b4567514 100644
--- a/code/modules/power/singularity/particle_accelerator/particle.dm
+++ b/code/modules/power/singularity/particle_accelerator/particle.dm
@@ -77,7 +77,7 @@
var/radiation = (energy*2)
M.apply_effect((radiation*3),IRRADIATE,0)
M.updatehealth()
- //M << "\red You feel odd."
+ //M << "You feel odd."
return
diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm
index 61d5374cad8..4eba53c42e1 100644
--- a/code/modules/power/smes.dm
+++ b/code/modules/power/smes.dm
@@ -380,7 +380,7 @@
if(src.z in using_map.station_levels)
if(prob(1)) //explosion
for(var/mob/M in viewers(src))
- M.show_message("\red The [src.name] is making strange noises!", 3, "\red You hear sizzling electronics.", 2)
+ M.show_message("The [src.name] is making strange noises!", 3, "You hear sizzling electronics.", 2)
sleep(10*pick(4,5,6,7,10,14))
var/datum/effect/effect/system/smoke_spread/smoke = new /datum/effect/effect/system/smoke_spread()
smoke.set_up(3, 0, src.loc)
diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm
index 85067d987ca..8ecf78bfa98 100644
--- a/code/modules/power/solar.dm
+++ b/code/modules/power/solar.dm
@@ -407,7 +407,7 @@ var/list/solars_list = list()
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
if (src.stat & BROKEN)
- user << "\blue The broken glass falls out."
+ user << "The broken glass falls out."
var/obj/structure/frame/A = new /obj/structure/frame( src.loc )
new /obj/item/weapon/material/shard( src.loc )
var/obj/item/weapon/circuitboard/solar_control/M = new /obj/item/weapon/circuitboard/solar_control( A )
@@ -420,7 +420,7 @@ var/list/solars_list = list()
A.anchored = 1
qdel(src)
else
- user << "\blue You disconnect the monitor."
+ user << "You disconnect the monitor."
var/obj/structure/frame/A = new /obj/structure/frame( src.loc )
var/obj/item/weapon/circuitboard/solar_control/M = new /obj/item/weapon/circuitboard/solar_control( A )
for (var/obj/C in src)
diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm
index b9c7b3f2dbd..b3f9984d6a3 100644
--- a/code/modules/projectiles/guns/projectile.dm
+++ b/code/modules/projectiles/guns/projectile.dm
@@ -32,13 +32,14 @@
//var/list/icon_keys = list() //keys
//var/list/ammo_states = list() //values
-/obj/item/weapon/gun/projectile/New()
+/obj/item/weapon/gun/projectile/New(loc, var/starts_loaded = 1)
..()
- if(ispath(ammo_type) && (load_method & (SINGLE_CASING|SPEEDLOADER)))
- for(var/i in 1 to max_shells)
- loaded += new ammo_type(src)
- if(ispath(magazine_type) && (load_method & MAGAZINE))
- ammo_magazine = new magazine_type(src)
+ if(starts_loaded)
+ if(ispath(ammo_type) && (load_method & (SINGLE_CASING|SPEEDLOADER)))
+ for(var/i in 1 to max_shells)
+ loaded += new ammo_type(src)
+ if(ispath(magazine_type) && (load_method & MAGAZINE))
+ ammo_magazine = new magazine_type(src)
update_icon()
/obj/item/weapon/gun/projectile/consume_next_projectile()
diff --git a/code/modules/projectiles/guns/projectile/dartgun.dm b/code/modules/projectiles/guns/projectile/dartgun.dm
index 8c64b297d1c..b5f384c3157 100644
--- a/code/modules/projectiles/guns/projectile/dartgun.dm
+++ b/code/modules/projectiles/guns/projectile/dartgun.dm
@@ -96,25 +96,25 @@
// return
..()
if (beakers.len)
- user << "\blue [src] contains:"
+ user << "[src] contains:"
for(var/obj/item/weapon/reagent_containers/glass/beaker/B in beakers)
if(B.reagents && B.reagents.reagent_list.len)
for(var/datum/reagent/R in B.reagents.reagent_list)
- user << "\blue [R.volume] units of [R.name]"
+ user << "[R.volume] units of [R.name]"
/obj/item/weapon/gun/projectile/dartgun/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, /obj/item/weapon/reagent_containers/glass))
if(!istype(I, container_type))
- user << "\blue [I] doesn't seem to fit into [src]."
+ user << "[I] doesn't seem to fit into [src]."
return
if(beakers.len >= max_beakers)
- user << "\blue [src] already has [max_beakers] beakers in it - another one isn't going to fit!"
+ user << "[src] already has [max_beakers] beakers in it - another one isn't going to fit!"
return
var/obj/item/weapon/reagent_containers/glass/beaker/B = I
user.drop_item()
B.loc = src
beakers += B
- user << "\blue You slot [B] into [src]."
+ user << "You slot [B] into [src]."
src.updateUsrDialog()
return 1
..()
diff --git a/code/modules/projectiles/guns/projectile/sniper/collapsible_sniper.dm b/code/modules/projectiles/guns/projectile/sniper/collapsible_sniper.dm
new file mode 100644
index 00000000000..7accdbc50bc
--- /dev/null
+++ b/code/modules/projectiles/guns/projectile/sniper/collapsible_sniper.dm
@@ -0,0 +1,176 @@
+////////////// PTR-7 Anti-Materiel Rifle //////////////
+
+/obj/item/weapon/gun/projectile/heavysniper/collapsible
+
+/obj/item/weapon/gun/projectile/heavysniper/collapsible/verb/take_down()
+ set category = "Object"
+ set name = "Disassemble Rifle"
+
+ var/mob/living/carbon/human/user = usr
+ if(user.stat)
+ return
+
+ if(chambered)
+ to_chat(user, "You need to empty the rifle to break it down.")
+ else
+ collapse_rifle(user)
+
+/obj/item/weapon/gun/projectile/heavysniper/proc/collapse_rifle(mob/user)
+ to_chat(user, "You begin removing \the [src]'s barrel.")
+ if(do_after(user, 40))
+ if(user.unEquip(src, force=1))
+ to_chat(user, "You remove \the [src]'s barrel.")
+ qdel(src)
+ var/obj/item/barrel = new /obj/item/sniper_rifle_part/barrel(user)
+ var/obj/item/sniper_rifle_part/assembly = new /obj/item/sniper_rifle_part/trigger_group(user)
+ var/obj/item/sniper_rifle_part/stock/stock = new(assembly)
+ assembly.stock = stock
+ assembly.part_count = 2
+ assembly.update_build()
+ user.put_in_any_hand_if_possible(assembly) || assembly.dropInto(user.loc)
+ user.put_in_any_hand_if_possible(barrel) || barrel.dropInto(user.loc)
+
+
+/obj/item/sniper_rifle_part
+ name = "AM rifle part"
+ desc = "A part of an antimateriel rifle."
+
+ w_class = ITEMSIZE_NORMAL
+
+ icon = 'icons/obj/gun.dmi'
+
+ var/obj/item/sniper_rifle_part/barrel = null
+ var/obj/item/sniper_rifle_part/stock = null
+ var/obj/item/sniper_rifle_part/trigger_group = null
+ var/part_count = 1
+
+
+/obj/item/sniper_rifle_part/barrel
+ name = "AM rifle barrel"
+ icon_state = "heavysniper-barrel"
+
+/obj/item/sniper_rifle_part/barrel/New()
+ ..()
+ barrel = src
+
+/obj/item/sniper_rifle_part/stock
+ name = "AM rifle stock"
+ icon_state = "heavysniper-stock"
+
+/obj/item/sniper_rifle_part/stock/New()
+ ..()
+ stock = src
+
+/obj/item/sniper_rifle_part/trigger_group
+ name = "AM rifle trigger assembly"
+ icon_state = "heavysniper-trig"
+
+/obj/item/sniper_rifle_part/trigger_group/New()
+ ..()
+ trigger_group = src
+
+/obj/item/sniper_rifle_part/attack_self(mob/user as mob)
+ if(part_count == 1)
+ to_chat(user, "You can't disassemble this further!")
+ return
+
+ to_chat(user, "You start disassembling \the [src].")
+ if(!do_after(user, 40))
+ return
+
+ to_chat(user, "You disassemble \the [src].")
+ for(var/obj/item/sniper_rifle_part/P in list(barrel, stock, trigger_group))
+ if(P.barrel != P)
+ P.barrel = null
+ if(P.stock != P)
+ P.stock = null
+ if(P.trigger_group != P)
+ P.trigger_group = null
+ if(P != src)
+ user.put_in_any_hand_if_possible(P) || P.dropInto(loc)
+ P.part_count = 1
+
+ update_build()
+
+/obj/item/sniper_rifle_part/attackby(var/obj/item/sniper_rifle_part/A as obj, mob/user as mob)
+
+ to_chat(user, "You begin adding \the [A] to \the [src].")
+ if(!do_after(user, 30))
+ return
+
+
+
+ if(istype(A, /obj/item/sniper_rifle_part/trigger_group))
+ if(A.part_count > 1 && src.part_count > 1)
+ to_chat(user, "Disassemble one of these parts first!")
+ return
+
+ if(!trigger_group)
+ if(user.unEquip(A, force=1))
+ trigger_group = A
+ else
+ to_chat(user, "There's already a trigger group!")
+ return
+
+ else if(istype(A, /obj/item/sniper_rifle_part/barrel))
+ if(!barrel)
+ if(user.unEquip(A, force=1))
+ barrel = A
+ else
+ to_chat(user, "There's already a barrel!")
+ return
+
+ else if(istype(A, /obj/item/sniper_rifle_part/stock))
+ if(!stock)
+ if(user.unEquip(A, force=1))
+ stock = A
+ else
+ to_chat(user, "There's already a stock!")
+ return
+
+ A.forceMove(src)
+ to_chat(user, "You install \the [A].")
+
+ if(A.barrel && !src.barrel)
+ src.barrel = A.barrel
+ if(A.stock && !src.stock)
+ src.stock = A.stock
+ if(A.trigger_group && !src.trigger_group)
+ src.trigger_group = A.trigger_group
+
+
+ part_count = A.part_count + src.part_count
+ update_build(user)
+
+
+/obj/item/sniper_rifle_part/proc/update_build()
+ switch(part_count)
+ if(1)
+ name = initial(name)
+ w_class = ITEMSIZE_NORMAL
+ icon_state = initial(icon_state)
+ if(2)
+ if(barrel && trigger_group)
+ name = "AM rifle barrel-trigger assembly"
+ icon_state = "heavysniper-trigbar"
+ else if(stock && trigger_group)
+ name = "AM rifle stock-trigger assembly"
+ icon_state = "heavysniper-trigstock"
+ else if(stock && barrel)
+ name = "AM rifle stock-barrel assembly"
+ icon_state = "heavysniper-barstock"
+ w_class = ITEMSIZE_LARGE
+
+ if(3)
+ var/obj/item/weapon/gun/projectile/heavysniper/collapsible/gun = new (get_turf(src), 0)
+ if(usr && istype(usr, /mob/living/carbon/human))
+ var/mob/living/carbon/human/user = usr
+ user.unEquip(src, force=1)
+ user.put_in_any_hand_if_possible(gun) || gun.dropInto(loc)
+ qdel(src)
+
+/obj/item/weapon/gun/projectile/heavysniper/update_icon()
+ if(bolt_open)
+ icon_state = "heavysniper-open"
+ else
+ icon_state = "heavysniper"
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
index eb56b0904ac..ebc3650ee54 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
@@ -258,7 +258,7 @@
/datum/reagent/oxycodone/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
M.add_chemical_effect(CE_PAINKILLER, 200)
- M.eye_blurry += 10
+ M.eye_blurry = min(M.eye_blurry + 10, 250)
M.Confuse(5)
/datum/reagent/oxycodone/overdose(var/mob/living/carbon/M, var/alien)
@@ -291,6 +291,23 @@
M.adjustToxLoss(5 * removed) // It used to be incredibly deadly due to an oversight. Not anymore!
M.add_chemical_effect(CE_PAINKILLER, 20)
+/datum/reagent/hyperzine
+ name = "Hyperzine"
+ id = "hyperzine"
+ description = "Hyperzine is a highly effective, long lasting, muscle stimulant."
+ taste_description = "bitterness"
+ reagent_state = LIQUID
+ color = "#FF3300"
+ overdose = REAGENTS_OVERDOSE * 0.5
+
+/datum/reagent/hyperzine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
+ if(alien == IS_TAJARA)
+ removed *= 1.25
+ ..()
+ if(prob(5))
+ M.emote(pick("twitch", "blink_r", "shiver"))
+ M.add_chemical_effect(CE_SPEEDBOOST, 1)
+
/datum/reagent/alkysine
name = "Alkysine"
id = "alkysine"
@@ -352,7 +369,7 @@
I.damage = max(I.damage - removed, 0)
H.Confuse(5)
if(I.damage <= 5 && I.organ_tag == O_EYES)
- H.eye_blurry += 10 //Eyes need to reset, or something
+ H.eye_blurry = min(M.eye_blurry + 10, 250) //Eyes need to reset, or something
H.sdisabilities &= ~BLIND
/datum/reagent/osteodaxon
@@ -391,7 +408,7 @@
/datum/reagent/myelamine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(alien == IS_DIONA)
return
- M.eye_blurry += (repair_strength * removed)
+ M.eye_blurry += min(M.eye_blurry + (repair_strength * removed), 250)
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/wound_heal = removed * repair_strength
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
index 1120192c6ba..25f6025b989 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
@@ -128,24 +128,6 @@
M.adjustOxyLoss(20 * removed)
M.sleeping += 1
-/datum/reagent/toxin/hyperzine
- name = "Hyperzine"
- id = "hyperzine"
- description = "Hyperzine is a highly effective, long lasting, muscle stimulant."
- taste_description = "bitterness"
- reagent_state = LIQUID
- color = "#FF3300"
- overdose = REAGENTS_OVERDOSE * 0.5
- strength = 2
-
-/datum/reagent/toxin/hyperzine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_TAJARA)
- removed *= 1.25
- ..()
- if(prob(5))
- M.emote(pick("twitch", "blink_r", "shiver"))
- M.add_chemical_effect(CE_SPEEDBOOST, 1)
-
/datum/reagent/toxin/stimm //Homemade Hyperzine
name = "Stimm"
id = "stimm"
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index a7da54dabfd..fd75b22eaf5 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -1595,6 +1595,24 @@ CIRCUITS BELOW
build_path = /obj/item/device/assembly/electronic_assembly
sort_string = "VCAAF"
+/datum/design/item/custom_circuit_printer
+ name = "Portable integrated circuit printer"
+ desc = "A portable(ish) printer for modular machines."
+ id = "ic_printer"
+ req_tech = list(TECH_MATERIAL = 3, TECH_ENGINEERING = 4, TECH_DATA = 5)
+ materials = list(DEFAULT_WALL_MATERIAL = 10000)
+ build_path = /obj/item/device/integrated_circuit_printer
+ sort_string = "VCAAG"
+
+/datum/design/item/custom_circuit_printer
+ name = "Integrated circuit printer upgrade - advanced designs"
+ desc = "Allows the integrated circuit printer to create advanced circuits"
+ id = "ic_printer_upgrade_adv"
+ req_tech = list(TECH_ENGINEERING = 3, TECH_DATA = 4)
+ materials = list(DEFAULT_WALL_MATERIAL = 2000)
+ build_path = /obj/item/weapon/disk/integrated_circuit/upgrade/advanced
+ sort_string = "VCAAH"
+
/datum/design/item/translator
name = "handheld translator"
id = "translator"
diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm
index 53d534a619f..49c300933d8 100644
--- a/code/modules/research/message_server.dm
+++ b/code/modules/research/message_server.dm
@@ -136,7 +136,7 @@ var/global/list/obj/machinery/message_server/message_servers = list()
/obj/machinery/message_server/attack_hand(user as mob)
-// user << "\blue There seem to be some parts missing from this server. They should arrive on the station in a few days, give or take a few CentCom delays."
+// user << "There seem to be some parts missing from this server. They should arrive on the station in a few days, give or take a few CentCom delays."
user << "You toggle PDA message passing from [active ? "On" : "Off"] to [active ? "Off" : "On"]"
active = !active
update_icon()
diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm
index 1730eb639ba..22a8bc1a3f8 100644
--- a/code/modules/research/research.dm
+++ b/code/modules/research/research.dm
@@ -54,7 +54,7 @@ research holder datum.
known_tech += new T(src)
for(var/D in typesof(/datum/design) - /datum/design)
possible_designs += new D(src)
- generate_integrated_circuit_designs()
+// generate_integrated_circuit_designs()
RefreshResearch()
/datum/research/techonly
@@ -129,7 +129,7 @@ research holder datum.
var/datum/tech/check_tech = T
if(initial(check_tech.id) == ID)
return initial(check_tech.name)
-
+/*
/datum/research/proc/generate_integrated_circuit_designs()
spawn(2 SECONDS) // So the list has time to initialize.
for(var/obj/item/integrated_circuit/IC in all_integrated_circuits)
@@ -143,6 +143,7 @@ research holder datum.
D.req_tech = list(TECH_ENGINEERING = 2, TECH_DATA = 2)
D.build_path = IC.type
possible_designs += D
+*/
/***************************************************************
** Technology Datums **
diff --git a/code/modules/security levels/keycard authentication.dm b/code/modules/security levels/keycard authentication.dm
index 7c9fea54da1..1e7ab795889 100644
--- a/code/modules/security levels/keycard authentication.dm
+++ b/code/modules/security levels/keycard authentication.dm
@@ -173,7 +173,7 @@
feedback_inc("alert_keycard_auth_maintRevoke",1)
if("Emergency Response Team")
if(is_ert_blocked())
- usr << "\red All emergency response teams are dispatched and can not be called at this time."
+ usr << "All emergency response teams are dispatched and can not be called at this time."
return
trigger_armed_response_team(1)
diff --git a/code/modules/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm
index 31fcc73bc62..e42196b56b3 100644
--- a/code/modules/shuttles/shuttle.dm
+++ b/code/modules/shuttles/shuttle.dm
@@ -43,38 +43,55 @@
world << "warning: shuttle with docking tag [docking_controller_tag] could not find it's controller!"
/datum/shuttle/proc/short_jump(var/area/origin,var/area/destination)
- if(moving_status != SHUTTLE_IDLE) return
+ if(moving_status != SHUTTLE_IDLE)
+ return
- //it would be cool to play a sound here
moving_status = SHUTTLE_WARMUP
spawn(warmup_time*10)
+
+ make_sounds(origin, HYPERSPACE_WARMUP)
+ sleep(5 SECONDS) // so the sound finishes.
+
if (moving_status == SHUTTLE_IDLE)
+ make_sounds(origin, HYPERSPACE_END)
return //someone cancelled the launch
moving_status = SHUTTLE_INTRANSIT //shouldn't matter but just to be safe
move(origin, destination)
moving_status = SHUTTLE_IDLE
+ make_sounds(destination, HYPERSPACE_END)
/datum/shuttle/proc/long_jump(var/area/departing, var/area/destination, var/area/interim, var/travel_time, var/direction)
//world << "shuttle/long_jump: departing=[departing], destination=[destination], interim=[interim], travel_time=[travel_time]"
- if(moving_status != SHUTTLE_IDLE) return
+ if(moving_status != SHUTTLE_IDLE)
+ return
//it would be cool to play a sound here
moving_status = SHUTTLE_WARMUP
spawn(warmup_time*10)
+
+ make_sounds(departing, HYPERSPACE_WARMUP)
+ sleep(5 SECONDS) // so the sound finishes.
+
if (moving_status == SHUTTLE_IDLE)
+ make_sounds(departing, HYPERSPACE_END)
return //someone cancelled the launch
arrive_time = world.time + travel_time*10
moving_status = SHUTTLE_INTRANSIT
move(departing, interim, direction)
-
+ var/last_progress_sound = 0
while (world.time < arrive_time)
+ // Make the shuttle make sounds every four seconds, since the sound file is five seconds.
+ if(last_progress_sound + 4 SECONDS < world.time)
+ make_sounds(interim, HYPERSPACE_PROGRESS)
+ last_progress_sound = world.time
sleep(5)
move(interim, destination, direction)
moving_status = SHUTTLE_IDLE
+ make_sounds(destination, HYPERSPACE_END)
/datum/shuttle/proc/dock()
if (!docking_controller)
@@ -104,7 +121,7 @@
//If you want to conditionally cancel shuttle launches, that logic must go in short_jump() or long_jump()
/datum/shuttle/proc/move(var/area/origin, var/area/destination, var/direction=null)
- //world << "move_shuttle() called for [shuttle_tag] leaving [origin] en route to [destination]."
+ //world << "move_shuttle() called for [name] leaving [origin] en route to [destination]."
//world << "area_coming_from: [origin]"
//world << "destination: [destination]"
@@ -167,3 +184,15 @@
//returns 1 if the shuttle has a valid arrive time
/datum/shuttle/proc/has_arrive_time()
return (moving_status == SHUTTLE_INTRANSIT)
+
+/datum/shuttle/proc/make_sounds(var/area/A, var/sound_type)
+ var/sound_to_play = null
+ switch(sound_type)
+ if(HYPERSPACE_WARMUP)
+ sound_to_play = 'sound/effects/shuttles/hyperspace_begin.ogg'
+ if(HYPERSPACE_PROGRESS)
+ sound_to_play = 'sound/effects/shuttles/hyperspace_progress.ogg'
+ if(HYPERSPACE_END)
+ sound_to_play = 'sound/effects/shuttles/hyperspace_end.ogg'
+ for(var/obj/machinery/door/E in A) //dumb, I know, but playing it on the engines doesn't do it justice
+ playsound(E, sound_to_play, 50, FALSE)
\ No newline at end of file
diff --git a/code/modules/shuttles/shuttle_specops.dm b/code/modules/shuttles/shuttle_specops.dm
index d9cc121f790..74acd095f71 100644
--- a/code/modules/shuttles/shuttle_specops.dm
+++ b/code/modules/shuttles/shuttle_specops.dm
@@ -4,7 +4,7 @@
req_access = list(access_cent_specops)
/obj/machinery/computer/shuttle_control/specops/attack_ai(user as mob)
- user << "\red Access Denied."
+ user << "Access Denied."
return 1
//for shuttles that may use a different docking port at each location
@@ -64,14 +64,14 @@
var/obj/machinery/computer/C = user
if(world.time <= reset_time)
- C.visible_message("\blue [using_map.boss_name] will not allow the Special Operations shuttle to launch yet.")
+ C.visible_message("[using_map.boss_name] will not allow the Special Operations shuttle to launch yet.")
if (((world.time - reset_time)/10) > 60)
- C.visible_message("\blue [-((world.time - reset_time)/10)/60] minutes remain!")
+ C.visible_message("[-((world.time - reset_time)/10)/60] minutes remain!")
else
- C.visible_message("\blue [-(world.time - reset_time)/10] seconds remain!")
+ C.visible_message("[-(world.time - reset_time)/10] seconds remain!")
return
- C.visible_message("\blue The Special Operations shuttle will depart in [(specops_countdown_time/10)] seconds.")
+ C.visible_message("The Special Operations shuttle will depart in [(specops_countdown_time/10)] seconds.")
if (location) //returning
radio_announce("THE SPECIAL OPERATIONS SHUTTLE IS PREPARING TO RETURN")
@@ -113,7 +113,7 @@
radio_announce("ALERT: LAUNCH SEQUENCE ABORTED")
if (istype(in_use, /obj/machinery/computer))
var/obj/machinery/computer/C = in_use
- C.visible_message("\red Launch sequence aborted.")
+ C.visible_message("Launch sequence aborted.")
..()
diff --git a/code/modules/shuttles/shuttle_supply.dm b/code/modules/shuttles/shuttle_supply.dm
index 9a6b7f33801..7565d7f4665 100644
--- a/code/modules/shuttles/shuttle_supply.dm
+++ b/code/modules/shuttles/shuttle_supply.dm
@@ -19,12 +19,18 @@
//it would be cool to play a sound here
moving_status = SHUTTLE_WARMUP
spawn(warmup_time*10)
+
+ make_sounds(origin, HYPERSPACE_WARMUP)
+ sleep(5 SECONDS) // so the sound finishes.
+
if (moving_status == SHUTTLE_IDLE)
+ make_sounds(origin, HYPERSPACE_END)
return //someone cancelled the launch
if (at_station() && forbidden_atoms_check())
//cancel the launch because of forbidden atoms. announce over supply channel?
moving_status = SHUTTLE_IDLE
+ make_sounds(origin, HYPERSPACE_END)
return
if (!at_station()) //at centcom
@@ -51,6 +57,7 @@
move(away_area, destination)
moving_status = SHUTTLE_IDLE
+ make_sounds(destination, HYPERSPACE_END)
if (!at_station()) //at centcom
supply_controller.sell()
diff --git a/code/modules/shuttles/shuttles_multi.dm b/code/modules/shuttles/shuttles_multi.dm
index 9dc7e4312eb..85155f61198 100644
--- a/code/modules/shuttles/shuttles_multi.dm
+++ b/code/modules/shuttles/shuttles_multi.dm
@@ -2,10 +2,12 @@
/datum/shuttle/multi_shuttle
flags = SHUTTLE_FLAGS_NONE
- var/cloaked = 1
+ var/cloaked = FALSE
+ var/can_cloak = FALSE
var/at_origin = 1
var/returned_home = 0
- var/move_time = 240
+// var/move_time = 240
+ var/move_time = 60
var/cooldown = 20
var/last_move = 0 //the time at which we last moved
@@ -103,7 +105,8 @@
else
dat += "Engines ready.
"
- dat += "
Toggle cloaking field
"
+ if(MS.can_cloak)
+ dat += "
Toggle cloaking field
"
dat += "Move ship
"
dat += "Return to base"
@@ -171,7 +174,7 @@
return
if (MS.moving_status != SHUTTLE_IDLE)
- usr << "\blue [shuttle_tag] vessel is moving."
+ usr << "[shuttle_tag] vessel is moving."
return
if(href_list["dock_command"])
@@ -184,36 +187,38 @@
if(href_list["start"])
if(MS.at_origin)
- usr << "\red You are already at your home base."
+ usr << "You are already at your home base."
return
if((MS.last_move + MS.cooldown*10) > world.time)
- usr << "\red The ship's drive is inoperable while the engines are charging."
+ usr << "The ship's drive is inoperable while the engines are charging."
return
if(!check_docking(MS))
updateUsrDialog()
return
- if(!MS.return_warning)
- usr << "\red Returning to your home base will end your mission. If you are sure, press the button again."
- //TODO: Actually end the mission.
- MS.return_warning = 1
- return
+ // No point giving a warning if it does literally nothing.
+// if(!MS.return_warning)
+// usr << "Returning to your home base will end your mission. If you are sure, press the button again."
+// //TODO: Actually end the mission.
+// MS.return_warning = 1
+// return
- MS.long_jump(MS.last_departed,MS.origin,MS.interim,MS.move_time)
+ MS.long_jump(MS.last_departed, MS.origin, MS.interim, MS.move_time)
MS.last_departed = MS.origin
MS.last_location = MS.start_location
MS.at_origin = 1
if(href_list["toggle_cloak"])
-
+ if(!MS.can_cloak)
+ return
MS.cloaked = !MS.cloaked
- usr << "\red Ship stealth systems have been [(MS.cloaked ? "activated. The station will not" : "deactivated. The station will")] be warned of our arrival."
+ usr << "Ship stealth systems have been [(MS.cloaked ? "activated. The station will not" : "deactivated. The station will")] be warned of our arrival."
if(href_list["move_multi"])
if((MS.last_move + MS.cooldown*10) > world.time)
- usr << "\red The ship's drive is inoperable while the engines are charging."
+ usr << "The ship's drive is inoperable while the engines are charging."
return
if(!check_docking(MS))
@@ -223,7 +228,7 @@
var/choice = input("Select a destination.") as null|anything in MS.destinations
if(!choice) return
- usr << "\blue [shuttle_tag] main computer recieved message."
+ usr << "[shuttle_tag] main computer recieved message."
if(MS.at_origin)
MS.announce_arrival()
diff --git a/code/modules/surgery/limb_reattach.dm b/code/modules/surgery/limb_reattach.dm
index 0d10b535c32..3310ffe6a50 100644
--- a/code/modules/surgery/limb_reattach.dm
+++ b/code/modules/surgery/limb_reattach.dm
@@ -25,15 +25,16 @@
can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/obj/item/organ/external/E = tool
var/obj/item/organ/external/P = target.organs_by_name[E.parent_organ]
+ var/obj/item/organ/external/affected = target.get_organ(target_zone)
+ if (affected)
+ user << "Something is in the way! You can't attach [E] here!"
+ return 0
if(!P)
user << "There's nothing to attach [E] to!"
return 0
else if((P.robotic >= ORGAN_ROBOT) && (E.robotic < ORGAN_ROBOT))
user << "Attaching [E] to [P] wouldn't work well."
return 0
- else if(P.children.len)
- user << "Something is in the way! You can't attach [E] here!"
- return 0
else
return 1
diff --git a/code/modules/virus2/biohazard destroyer.dm b/code/modules/virus2/biohazard destroyer.dm
index c6281e16805..694251a76e5 100644
--- a/code/modules/virus2/biohazard destroyer.dm
+++ b/code/modules/virus2/biohazard destroyer.dm
@@ -17,4 +17,4 @@
I.loc = src.loc
for(var/mob/O in hearers(src, null))
- O.show_message("\icon[src] \blue The [src.name] beeps", 2)
\ No newline at end of file
+ O.show_message("\icon[src] The [src.name] beeps.", 2)
\ No newline at end of file
diff --git a/code/modules/virus2/items_devices.dm b/code/modules/virus2/items_devices.dm
index 887a547e0df..ae56c35087b 100644
--- a/code/modules/virus2/items_devices.dm
+++ b/code/modules/virus2/items_devices.dm
@@ -31,7 +31,7 @@
report("Antibodies detected: [antigens2string(C.antibodies)]", user)
/obj/item/device/antibody_scanner/proc/report(var/text, mob/user as mob)
- user << "\blue \icon[src] \The [src] beeps, \"[text]\""
+ user << "\icon[src] \The [src] beeps, \"[text]\""
///////////////VIRUS DISH///////////////
diff --git a/code/modules/xenoarcheaology/artifacts/replicator.dm b/code/modules/xenoarcheaology/artifacts/replicator.dm
index 5ae161f6a44..46e5ad70fb0 100644
--- a/code/modules/xenoarcheaology/artifacts/replicator.dm
+++ b/code/modules/xenoarcheaology/artifacts/replicator.dm
@@ -74,13 +74,13 @@
viables.Remove(type)
construction[button_desc] = type
- fail_message = "\blue \icon[src] a [pick("loud","soft","sinister","eery","triumphant","depressing","cheerful","angry")] \
+ fail_message = "\icon[src] a [pick("loud","soft","sinister","eery","triumphant","depressing","cheerful","angry")] \
[pick("horn","beep","bing","bleep","blat","honk","hrumph","ding")] sounds and a \
[pick("yellow","purple","green","blue","red","orange","white")] \
[pick("light","dial","meter","window","protrusion","knob","antenna","swirly thing")] \
[pick("swirls","flashes","whirrs","goes schwing","blinks","flickers","strobes","lights up")] on the \
[pick("front","side","top","bottom","rear","inside")] of [src]. A [pick("slot","funnel","chute","tube")] opens up in the \
- [pick("front","side","top","bottom","rear","inside")]."
+ [pick("front","side","top","bottom","rear","inside")]."
/obj/machinery/replicator/process()
if(spawning_types.len && powered())
diff --git a/code/modules/xenoarcheaology/finds/talking.dm b/code/modules/xenoarcheaology/finds/talking.dm
index 0baa9586dd8..72ff1330de4 100644
--- a/code/modules/xenoarcheaology/finds/talking.dm
+++ b/code/modules/xenoarcheaology/finds/talking.dm
@@ -54,7 +54,7 @@
var/list/options = list("[holder_atom] seems to be listening intently to [source]...",\
"[holder_atom] seems to be focusing on [source]...",\
"[holder_atom] seems to turn it's attention to [source]...")
- holder_atom.loc.visible_message("\blue \icon[holder_atom] [pick(options)]")
+ holder_atom.loc.visible_message("\icon[holder_atom] [pick(options)]")
if(prob(20))
spawn(2)
@@ -118,5 +118,5 @@
listening|=M
for(var/mob/M in listening)
- M << "\icon[holder_atom] [holder_atom] reverberates, \blue\"[msg]\""
+ M << "\icon[holder_atom] [holder_atom] reverberates, \"[msg]\""
last_talk_time = world.time
diff --git a/code/modules/xenoarcheaology/tools/ano_device_battery.dm b/code/modules/xenoarcheaology/tools/ano_device_battery.dm
index 85376724ea1..72a6e399807 100644
--- a/code/modules/xenoarcheaology/tools/ano_device_battery.dm
+++ b/code/modules/xenoarcheaology/tools/ano_device_battery.dm
@@ -39,7 +39,7 @@
/obj/item/weapon/anodevice/attackby(var/obj/I as obj, var/mob/user as mob)
if(istype(I, /obj/item/weapon/anobattery))
if(!inserted_battery)
- user << "\blue You insert the battery."
+ user << "You insert the battery."
user.drop_item()
I.loc = src
inserted_battery = I
@@ -130,13 +130,13 @@
//work out if we need to shutdown
if(inserted_battery.stored_charge <= 0)
- src.loc.visible_message("\blue \icon[src] [src] buzzes.", "\blue \icon[src] You hear something buzz.")
+ src.loc.visible_message("\icon[src] [src] buzzes.", "\icon[src] You hear something buzz.")
shutdown_emission()
else if(world.time > time_end)
- src.loc.visible_message("\blue \icon[src] [src] chimes.", "\blue \icon[src] You hear something chime.")
+ src.loc.visible_message("\icon[src] [src] chimes.", "\icon[src] You hear something chime.")
shutdown_emission()
else
- src.visible_message("\blue \icon[src] [src] buzzes.", "\blue \icon[src] You hear something buzz.")
+ src.visible_message("\icon[src] [src] buzzes.", "\icon[src] You hear something buzz.")
shutdown_emission()
last_process = world.time
@@ -163,7 +163,7 @@
if(href_list["startup"])
if(inserted_battery && inserted_battery.battery_effect && (inserted_battery.stored_charge > 0) )
activated = 1
- src.visible_message("\blue \icon[src] [src] whirrs.", "\icon[src]\blue You hear something whirr.")
+ src.visible_message("\icon[src] [src] whirrs.", "\icon[src]You hear something whirr.")
if(!inserted_battery.battery_effect.activated)
inserted_battery.battery_effect.ToggleActivate(1)
time_end = world.time + duration
@@ -200,9 +200,9 @@
if(activated && inserted_battery.battery_effect.effect == EFFECT_TOUCH && !isnull(inserted_battery))
inserted_battery.battery_effect.DoEffectTouch(M)
inserted_battery.use_power(energy_consumed_on_touch)
- user.visible_message("\blue [user] taps [M] with [src], and it shudders on contact.")
+ user.visible_message("[user] taps [M] with [src], and it shudders on contact.")
else
- user.visible_message("\blue [user] taps [M] with [src], but nothing happens.")
+ user.visible_message("[user] taps [M] with [src], but nothing happens.")
//admin logging
user.lastattacked = M
diff --git a/code/modules/xenoarcheaology/tools/geosample_scanner.dm b/code/modules/xenoarcheaology/tools/geosample_scanner.dm
index 9e3343b6802..156a59799e2 100644
--- a/code/modules/xenoarcheaology/tools/geosample_scanner.dm
+++ b/code/modules/xenoarcheaology/tools/geosample_scanner.dm
@@ -234,16 +234,16 @@
//emergency stop if seal integrity reaches 0
if(scanner_seal_integrity <= 0 || (scanner_temperature >= 1273 && !rad_shield))
stop_scanning()
- src.visible_message("\blue \icon[src] buzzes unhappily. It has failed mid-scan!", 2)
+ src.visible_message("\icon[src] buzzes unhappily. It has failed mid-scan!", 2)
if(prob(5))
- src.visible_message("\blue \icon[src] [pick("whirrs","chuffs","clicks")][pick(" excitedly"," energetically"," busily")].", 2)
+ src.visible_message("\icon[src] [pick("whirrs","chuffs","clicks")][pick(" excitedly"," energetically"," busily")].", 2)
else
//gradually cool down over time
if(scanner_temperature > 0)
scanner_temperature = max(scanner_temperature - 5 - 10 * rand(), 0)
if(prob(0.75))
- src.visible_message("\blue \icon[src] [pick("plinks","hisses")][pick(" quietly"," softly"," sadly"," plaintively")].", 2)
+ src.visible_message("\icon[src] [pick("plinks","hisses")][pick(" quietly"," softly"," sadly"," plaintively")].", 2)
last_process_worldtime = world.time
/obj/machinery/radiocarbon_spectrometer/proc/stop_scanning()
@@ -261,7 +261,7 @@
used_coolant = 0
/obj/machinery/radiocarbon_spectrometer/proc/complete_scan()
- src.visible_message("\blue \icon[src] makes an insistent chime.", 2)
+ src.visible_message("\icon[src] makes an insistent chime.", 2)
if(scanned_item)
//create report
diff --git a/code/unit_tests/integrated_circuits/data_transfer.dm b/code/unit_tests/integrated_circuits/data_transfer.dm
deleted file mode 100644
index 1d02e8f837e..00000000000
--- a/code/unit_tests/integrated_circuits/data_transfer.dm
+++ /dev/null
@@ -1,17 +0,0 @@
-/datum/unit_test/integrated_circuits/splitter
- name = "Data Transfer Circuits: Splitter"
- circuit_type = /obj/item/integrated_circuit/transfer/splitter
- inputs_to_give = list("Test")
- expected_outputs = list("Test", "Test")
-
-/datum/unit_test/integrated_circuits/splitter4
- name = "Data Transfer Circuits: Splitter 4"
- circuit_type = /obj/item/integrated_circuit/transfer/splitter/medium
- inputs_to_give = list("Test")
- expected_outputs = list("Test", "Test", "Test", "Test")
-
-/datum/unit_test/integrated_circuits/splitter8
- name = "Data Transfer Circuits: Splitter 8"
- circuit_type = /obj/item/integrated_circuit/transfer/splitter/large
- inputs_to_give = list("Test")
- expected_outputs = list("Test", "Test", "Test", "Test", "Test", "Test", "Test", "Test")
\ No newline at end of file
diff --git a/html/changelogs/Nalarac - Robots.yml b/html/changelogs/Nalarac - Robots.yml
new file mode 100644
index 00000000000..32a9c7786de
--- /dev/null
+++ b/html/changelogs/Nalarac - Robots.yml
@@ -0,0 +1,41 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+#################################
+
+# Your name.
+author: Nalarac
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - tweak: "Modifies the illegal equipment module for borgs to scrambled equipment module that only activates the special items and doesn't actually emag the borg"
+ - bugfix: "Mining cyborg diamond drill is now obtainable in a more sensible manner"
+ - tweak: "Click dragging has been added to the cryogenics tubes, cloning pod, and all methods of cryostorage"
+ - tweak: "Some quality of life changes for research, crisis, surgeon, and service cyborgs"
+ - bugfix: "Jumper cables readded"
+ - tweak: "Construction cyborgs merged back with engineering cyborgs"
diff --git a/icons/mob/hands.dmi b/icons/mob/hands.dmi
index 6e8381b244a..0197a18e010 100644
Binary files a/icons/mob/hands.dmi and b/icons/mob/hands.dmi differ
diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi
index 577007423f5..8d4e919f541 100644
Binary files a/icons/mob/robots.dmi and b/icons/mob/robots.dmi differ
diff --git a/icons/mob/screen_spells.dmi b/icons/mob/screen_spells.dmi
index 343203f2845..48c07894878 100644
Binary files a/icons/mob/screen_spells.dmi and b/icons/mob/screen_spells.dmi differ
diff --git a/icons/mob/species/seromi/gloves.dmi b/icons/mob/species/seromi/gloves.dmi
index 1eaab4f913c..02af18fa29b 100644
Binary files a/icons/mob/species/seromi/gloves.dmi and b/icons/mob/species/seromi/gloves.dmi differ
diff --git a/icons/obj/electronic_assemblies.dmi b/icons/obj/electronic_assemblies.dmi
index e81053bc364..6ad2b65b2f9 100644
Binary files a/icons/obj/electronic_assemblies.dmi and b/icons/obj/electronic_assemblies.dmi differ
diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi
index a548850ef96..7463976d4bd 100644
Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ
diff --git a/icons/obj/machines/research.dmi b/icons/obj/machines/research.dmi
index 00bb9d9e137..7b7238c3ab7 100644
Binary files a/icons/obj/machines/research.dmi and b/icons/obj/machines/research.dmi differ
diff --git a/icons/obj/spells.dmi b/icons/obj/spells.dmi
index 01ced388513..554aac86785 100644
Binary files a/icons/obj/spells.dmi and b/icons/obj/spells.dmi differ
diff --git a/maps/southern_cross/southern_cross-1.dmm b/maps/southern_cross/southern_cross-1.dmm
index d8ebce2b76a..a36a4c2e21b 100644
--- a/maps/southern_cross/southern_cross-1.dmm
+++ b/maps/southern_cross/southern_cross-1.dmm
@@ -8681,1383 +8681,1385 @@
"dkW" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor/carpet,/area/crew_quarters/sleep/vistor_room_2)
"dkX" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/universal,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/maintenance{req_access = null; req_one_access = list(12,25,27,28,35)},/turf/simulated/floor/plating,/area/maintenance/locker)
"dkY" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/wall,/area/maintenance/locker)
-"dkZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dla" = (/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlb" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/dockhallway)
-"dlc" = (/turf/simulated/wall,/area/storage/primary)
-"dld" = (/turf/simulated/wall,/area/hallway/primary/seconddeck/dockhallway)
-"dle" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/dockhallway)
-"dlf" = (/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/dockhallway)
-"dlg" = (/obj/structure/sign/deck/second,/turf/simulated/wall/r_wall,/area/hallway/primary/seconddeck/dockhallway)
-"dlh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Hallway Three"},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dli" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/dockhallway)
-"dlj" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/seconddeck/dockhallway)
-"dlk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/dockhallway)
-"dll" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/dockhallway)
-"dlm" = (/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dln" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlo" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlp" = (/obj/structure/bed/chair,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlq" = (/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/obj/structure/bed/chair,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlr" = (/obj/structure/table/glass,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dls" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/structure/bed/chair,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlt" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlv" = (/obj/item/weapon/book/codex,/obj/structure/table/glass,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlx" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dly" = (/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlz" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlA" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlJ" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlK" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlM" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/sign/dock/one,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Hallway One"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlP" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlQ" = (/obj/machinery/status_display{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlR" = (/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlS" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlT" = (/obj/machinery/embedded_controller/radio/docking_port_multi{child_names_txt = "Airlock One;Airlock Two;Airlock Three;Airlock Four"; child_tags_txt = "escape_dock_north_airlock;escape_dock_south_airlock;escape_dock_snorth_airlock;escape_dock_ssouth_airlock"; frequency = 1380; id_tag = "escape_dock"; pixel_y = -25; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlU" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlV" = (/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Hallway Two"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlW" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/ai_status_display{pixel_y = -32},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlX" = (/obj/machinery/light,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/dockhallway)
-"dlY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/sign/dock/two,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dlZ" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/dockhallway)
-"dma" = (/obj/machinery/ai_status_display{pixel_y = -32},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dmb" = (/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Hallway Four"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dmc" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dmd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/sign/dock/three,/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Hallway Five"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
-"dme" = (/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/D1)
-"dmf" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass{name = "Dock"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dmg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/glass{name = "Dock"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dmh" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/seconddeck/dockhallway)
-"dmi" = (/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/D2)
-"dmj" = (/obj/structure/sign/directions/engineering{dir = 1; pixel_y = 10},/obj/structure/sign/directions/cargo{dir = 1},/obj/structure/sign/directions/security{dir = 1; pixel_y = -10},/turf/simulated/wall,/area/hallway/secondary/entry/D2)
-"dmk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Dock"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dml" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/glass{name = "Dock"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dmm" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Dock"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dmn" = (/obj/structure/sign/directions/bridge{dir = 1; pixel_y = 10},/obj/structure/sign/directions/science{dir = 1},/obj/structure/sign/directions/medical{dir = 1; pixel_y = -10},/turf/simulated/wall,/area/hallway/secondary/entry/D2)
-"dmo" = (/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/D3)
-"dmp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/glass{name = "Dock"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dmq" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass{name = "Dock"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dmr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dms" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dmt" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
-"dmu" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
-"dmv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dmw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dmx" = (/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dmy" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
-"dmz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dmA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dmB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dmC" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
-"dmD" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
-"dmE" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
-"dmF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dmG" = (/turf/space,/area/shuttle/transport1/station)
-"dmH" = (/obj/structure/sign/warning/docking_area,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
-"dmI" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
-"dmJ" = (/obj/structure/closet/emcloset,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dmK" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dmL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dmM" = (/turf/space,/area/shuttle/escape/station)
-"dmN" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dmO" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dmP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dmQ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dmR" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/structure/closet/emcloset,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dmS" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
-"dmT" = (/obj/structure/sign/warning/docking_area,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
-"dmU" = (/obj/machinery/shield_diffuser,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "s1s_dock_outer"; locked = 1; name = "Dock One External Airlock"; req_access = list(13)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "s1s_dock_airlock"; name = "exterior access button"; pixel_x = -5; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
-"dmV" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 8},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "s1s_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dmW" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 4},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "shuttle1_shuttle"; pixel_x = 0; pixel_y = 30; req_one_access = list(13); tag_airpump = "s1s_dock_pump"; tag_chamber_sensor = "s1s_dock_sensor"; tag_exterior_door = "s1s_dock_outer"; tag_interior_door = "s1s_dock_inner"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "s1s_dock_pump"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "s1s_dock_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dmX" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "s1s_dock_inner"; locked = 1; name = "Dock One Internal Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
-"dmY" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "s1s_dock_airlock"; name = "interior access button"; pixel_x = -28; pixel_y = 26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dmZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dna" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dnb" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dnc" = (/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dnd" = (/turf/simulated/shuttle/wall,/area/shuttle/arrival/station)
-"dne" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station)
-"dnf" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dng" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dnh" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "centcom_dock_airlock"; name = "interior access button"; pixel_x = 28; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dni" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "centcom_dock_inner"; locked = 1; name = "Dock Three Internal Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
-"dnj" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 8},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "centcom_shuttle_dock_airlock"; pixel_x = 0; pixel_y = 30; req_one_access = list(13); tag_airpump = "centcom_dock_pump"; tag_chamber_sensor = "centcom_dock_sensor"; tag_exterior_door = "centcom_dock_outer"; tag_interior_door = "centcom_dock_inner"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "centcom_dock_sensor"; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "centcom_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dnk" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 4},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "centcom_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dnl" = (/obj/machinery/shield_diffuser,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "centcom_dock_airlock"; name = "exterior access button"; pixel_x = 5; pixel_y = -26; req_one_access = list(13)},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "centcom_dock_outer"; locked = 1; name = "Dock Three External Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
-"dnm" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
-"dnn" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
-"dno" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
-"dnp" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dnq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dnr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dns" = (/turf/simulated/shuttle/wall/hard_corner,/area/shuttle/arrival/station)
-"dnt" = (/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
-"dnu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dnv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dnw" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dnx" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
-"dny" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
-"dnz" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
-"dnA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dnB" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
-"dnC" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
-"dnD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dnE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock One Fore"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dnF" = (/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Two Fore"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dnG" = (/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
-"dnH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Three Fore"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dnI" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dnJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dnK" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dnL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dnM" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dnN" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
-"dnO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dnP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dnQ" = (/obj/structure/sign/warning/docking_area,/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/D1)
-"dnR" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dnS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dnT" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
-"dnU" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
-"dnV" = (/obj/structure/sign/warning/docking_area,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
-"dnW" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
-"dnX" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
-"dnY" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
-"dnZ" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"doa" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dob" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"doc" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
-"dod" = (/obj/structure/closet/emcloset,/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
-"doe" = (/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
-"dof" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
-"dog" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"doh" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"doi" = (/obj/structure/sign/warning/docking_area,/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/D3)
-"doj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dok" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "escape_dock_north_airlock"; name = "interior access button"; pixel_x = 26; pixel_y = 26; req_one_access = list(13)},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dol" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_north_inner"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
-"dom" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "escape_dock_north_pump"},/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"don" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "escape_dock_north_pump"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{frequency = 1380; id_tag = "escape_dock_north_airlock"; master_tag = "escape_dock"; pixel_y = 30; req_one_access = list(13); tag_airlock_mech_sensor = "escape_dock_north_mech"; tag_airpump = "escape_dock_north_pump"; tag_chamber_sensor = "escape_dock_north_sensor"; tag_exterior_door = "escape_dock_north_outer"; tag_interior_door = "escape_dock_north_inner"; tag_shuttle_mech_sensor = "shuttle_dock_north_mech"},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
-"doo" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_north_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/machinery/shield_diffuser,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
-"dop" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_north_starboard_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
-"doq" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "escape_dock_north_starboard_pump"},/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{frequency = 1380; id_tag = "escape_dock_snorth_airlock"; master_tag = "escape_dock"; pixel_y = 30; req_one_access = list(13); tag_airlock_mech_sensor = "escape_dock_north_starboard_mech"; tag_airpump = "escape_dock_north_starboard_pump"; tag_chamber_sensor = "escape_dock_north_starboard_sensor"; tag_exterior_door = "escape_dock_north_starboard_outer"; tag_interior_door = "escape_dock_north_starboard_inner"; tag_shuttle_mech_sensor = "shuttle_dock_north_starboard_mech"},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
-"dor" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "escape_dock_north_starboard_pump"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dos" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_north_starboard_inner"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
-"dot" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "escape_dock_north_starboard_airlock"; name = "interior access button"; pixel_x = -26; pixel_y = 26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dou" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dov" = (/obj/machinery/door/airlock/glass_external,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
-"dow" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dox" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
-"doy" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
-"doz" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
-"doA" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
-"doB" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"doC" = (/obj/machinery/door/airlock/glass_external,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
-"doD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"doE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/ai_status_display{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"doF" = (/turf/space,/area/shuttle/shuttle2/arrivals_dock)
-"doG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"doH" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_north_pump"},/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"doI" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_north_pump"},/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "escape_dock_north_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
-"doJ" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "escape_dock_north_airlock"; name = "exterior access button"; pixel_x = 4; pixel_y = -26; req_one_access = list(13)},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_north_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/machinery/shield_diffuser,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
-"doK" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "escape_dock_north_starboard_airlock"; name = "exterior access button"; pixel_x = -4; pixel_y = -26; req_one_access = list(13)},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_north_starboard_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
-"doL" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_north_starboard_pump"},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "escape_dock_north_starboard_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
-"doM" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_north_starboard_pump"},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"doN" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"doO" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"doP" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
-"doQ" = (/obj/structure/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/effect/landmark{name = "JoinLate"},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
-"doR" = (/obj/structure/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/effect/landmark{name = "JoinLate"},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
-"doS" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
-"doT" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"doU" = (/turf/space,/area/shuttle/response_ship/arrivals_dock)
-"doV" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"doW" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"doX" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
-"doY" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
-"doZ" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
-"dpa" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
-"dpb" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dpc" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dpd" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dpe" = (/turf/simulated/shuttle/wall/no_join,/area/shuttle/arrival/station)
-"dpf" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
-"dpg" = (/obj/effect/landmark/start,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
-"dph" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
-"dpi" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dpj" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dpk" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/sign/warning/airlock,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
-"dpl" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
-"dpm" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
-"dpn" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dpo" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dpp" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dpq" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dpr" = (/obj/structure/bed/chair{dir = 4},/obj/effect/landmark{name = "JoinLate"},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
-"dps" = (/obj/structure/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
-"dpt" = (/obj/structure/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
-"dpu" = (/obj/structure/bed/chair{dir = 8},/obj/effect/landmark{name = "JoinLate"},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
-"dpv" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dpw" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dpx" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
-"dpy" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
-"dpz" = (/obj/machinery/shield_diffuser,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_dock_outer"; locked = 1; name = "Dock One External Airlock"; req_access = list(13)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "specops_dock_airlock"; name = "exterior access button"; pixel_x = -5; pixel_y = -26; req_one_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
-"dpA" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 8},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "specops_dock_pump"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dpB" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 4},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "specops_dock_pump"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "specops_dock_sensor"; pixel_x = 0; pixel_y = -25},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "response_shuttle_dock_airlock"; pixel_x = 0; pixel_y = 30; req_one_access = list(13); tag_airpump = "specops_dock_pump"; tag_chamber_sensor = "specops_dock_sensor"; tag_exterior_door = "specops_dock_outer"; tag_interior_door = "specops_dock_inner"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dpC" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_dock_inner"; locked = 1; name = "Dock One Internal Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
-"dpD" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "specops_dock_airlock"; name = "interior access button"; pixel_x = -28; pixel_y = 26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dpE" = (/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dpF" = (/obj/structure/closet/emcloset,/obj/structure/extinguisher_cabinet{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dpG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dpH" = (/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dpI" = (/obj/structure/bed/chair{dir = 4},/obj/effect/landmark{name = "JoinLate"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
-"dpJ" = (/obj/machinery/hologram/holopad,/obj/effect/landmark{name = "Observer-Start"},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
-"dpK" = (/obj/structure/bed/chair{dir = 8},/obj/effect/landmark{name = "JoinLate"},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
-"dpL" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dpM" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "s2s_dock_airlock"; name = "interior access button"; pixel_x = 28; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dpN" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "s2s_dock_inner"; locked = 1; name = "Dock Three Internal Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
-"dpO" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 8},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "s2s_dock_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "shuttle2_shuttle"; pixel_x = 0; pixel_y = 30; req_one_access = list(13); tag_airpump = "s2s_dock_pump"; tag_chamber_sensor = "s2s_dock_sensor"; tag_exterior_door = "s2s_dock_outer"; tag_interior_door = "s2s_dock_inner"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "s2s_dock_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dpP" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 4},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "s2s_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dpQ" = (/obj/machinery/shield_diffuser,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "s2s_dock_outer"; locked = 1; name = "Dock Three External Airlock"; req_access = list(13)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "s2s_dock_airlock"; name = "exterior access button"; pixel_x = 5; pixel_y = 26; req_one_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
-"dpR" = (/obj/structure/closet/emcloset,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dpS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dpT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dpU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dpV" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dpW" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dpX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dpY" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dpZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dqa" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dqb" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dqc" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dqd" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dqe" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dqf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dqg" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dqh" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_inner"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
-"dqi" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "escape_dock_south_pump"},/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dqj" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "escape_dock_south_pump"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "escape_dock_south_sensor"; pixel_x = 0; pixel_y = 25},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
-"dqk" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "escape_dock_south_airlock"; name = "exterior access button"; pixel_x = 4; pixel_y = 26; req_one_access = list(13)},/obj/machinery/shield_diffuser,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
-"dql" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "escape_dock_south_starboard_airlock"; name = "exterior access button"; pixel_x = -4; pixel_y = 26; req_one_access = list(13)},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_starboard_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
-"dqm" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "escape_dock_south_starboard_pump"},/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "escape_dock_south_starboard_sensor"; pixel_x = 0; pixel_y = 25},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
-"dqn" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "escape_dock_south_starboard_pump"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dqo" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_starboard_inner"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
-"dqp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dqq" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dqr" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dqs" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dqt" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "escape_dock_south_airlock"; name = "interior access button"; pixel_x = 26; pixel_y = -26; req_one_access = list(13)},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dqu" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_south_pump"},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/light/small,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dqv" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_south_pump"},/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{frequency = 1380; id_tag = "escape_dock_south_airlock"; master_tag = "escape_dock"; pixel_y = -30; req_one_access = list(13); tag_airlock_mech_sensor = "escape_dock_south_mech"; tag_airpump = "escape_dock_south_pump"; tag_chamber_sensor = "escape_dock_south_sensor"; tag_exterior_door = "escape_dock_south_outer"; tag_interior_door = "escape_dock_south_inner"; tag_shuttle_mech_sensor = "shuttle_dock_south_mech"},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
-"dqw" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/machinery/shield_diffuser,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
-"dqx" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_starboard_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
-"dqy" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_south_starboard_pump"},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{frequency = 1380; id_tag = "escape_dock_ssouth_airlock"; master_tag = "escape_dock"; pixel_y = -30; req_one_access = list(13); tag_airlock_mech_sensor = "escape_dock_south_starboard_mech"; tag_airpump = "escape_dock_south_starboard_pump"; tag_chamber_sensor = "escape_dock_south_starboard_sensor"; tag_exterior_door = "escape_dock_south_starboard_outer"; tag_interior_door = "escape_dock_south_starboard_inner"; tag_shuttle_mech_sensor = "shuttle_dock_south_starboard_mech"},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
-"dqz" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_south_starboard_pump"},/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/light/small,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dqA" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "escape_dock_south_starboard_airlock"; name = "interior access button"; pixel_x = -26; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dqB" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/light/small,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dqC" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/light/small,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dqD" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock One Aft"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dqE" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dqF" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Two Aft"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dqG" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dqH" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dqI" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Three Aft"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dqJ" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dqK" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dqL" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dqM" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dqN" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dqO" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/shuttle/arrival/station)
-"dqP" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dqQ" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dqR" = (/obj/effect/floor_decal/sign/dock/one,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dqS" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"dqT" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dqU" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/sign/dock/two,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dqV" = (/turf/space,/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/arrival/station)
-"dqW" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating/airless,/area/shuttle/arrival/station)
-"dqX" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dqY" = (/obj/effect/floor_decal/sign/dock/three,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dqZ" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
-"dra" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "trade_shuttle_dock_airlock"; name = "interior access button"; pixel_x = -28; pixel_y = -26; req_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"drb" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"drc" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
-"drd" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "admin_shuttle_dock_airlock"; name = "interior access button"; pixel_x = 26; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dre" = (/obj/structure/closet/emcloset,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"drf" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
-"drg" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"drh" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "nuke_shuttle_dock_airlock"; name = "interior access button"; pixel_x = 26; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dri" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
-"drj" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/D1)
-"drk" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "trade_shuttle_dock_inner"; locked = 1; name = "Dock One Internal Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
-"drl" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "trade_shuttle_dock_inner"; locked = 1; name = "Dock One Internal Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
-"drm" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_dock_inner"; locked = 1; name = "Dock Two Internal Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
-"drn" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/D3)
-"dro" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1331; icon_state = "door_locked"; id_tag = "nuke_shuttle_dock_inner"; locked = 1; name = "Dock Three Internal Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
-"drp" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
-"drq" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "trade_shuttle_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"drr" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "trade_shuttle_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"drs" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
-"drt" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "admin_shuttle_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"dru" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"drv" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "admin_shuttle_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"drw" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
-"drx" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "nuke_shuttle_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"dry" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "nuke_shuttle_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"drz" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
-"drA" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "trade_shuttle_dock_pump"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "trade_shuttle_dock_sensor"; pixel_x = -28; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"drB" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "trade_shuttle_dock_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "trade_shuttle_dock_airlock"; pixel_x = 28; pixel_y = 0; req_one_access = list(13); tag_airpump = "trade_shuttle_dock_pump"; tag_chamber_sensor = "trade_shuttle_dock_sensor"; tag_exterior_door = "trade_shuttle_dock_outer"; tag_interior_door = "trade_shuttle_dock_inner"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
-"drC" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "admin_shuttle_dock_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "admin_shuttle_dock_airlock"; pixel_x = -28; pixel_y = 0; req_one_access = list(13); tag_airpump = "admin_shuttle_dock_pump"; tag_chamber_sensor = "admin_shuttle_dock_sensor"; tag_exterior_door = "admin_shuttle_dock_outer"; tag_interior_door = "admin_shuttle_dock_inner"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"drD" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"drE" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "admin_shuttle_dock_pump"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "admin_shuttle_dock_sensor"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
-"drF" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
-"drG" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "nuke_shuttle_dock_sensor"; pixel_x = -28; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "nuke_shuttle_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"drH" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1331; id_tag = "nuke_shuttle_dock_airlock"; pixel_x = 28; pixel_y = 0; req_access = list(0); req_one_access = list(13); tag_airpump = "nuke_shuttle_dock_pump"; tag_chamber_sensor = "nuke_shuttle_dock_sensor"; tag_exterior_door = "nuke_shuttle_dock_outer"; tag_interior_door = "nuke_shuttle_dock_inner"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "nuke_shuttle_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
-"drI" = (/obj/machinery/shield_diffuser,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "trade_shuttle_dock_outer"; locked = 1; name = "Dock One External Access"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
-"drJ" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "admin_shuttle_dock_airlock"; name = "exterior access button"; pixel_x = 28; pixel_y = -6; req_one_access = list(13)},/obj/machinery/shield_diffuser,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "trade_shuttle_dock_outer"; locked = 1; name = "Dock One External Access"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
-"drK" = (/obj/structure/sign/warning/docking_area,/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/D2)
-"drL" = (/obj/machinery/shield_diffuser,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "admin_shuttle_dock_airlock"; name = "exterior access button"; pixel_x = 28; pixel_y = -6; req_one_access = list(13)},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_dock_outer"; locked = 1; name = "Dock Two External Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
-"drM" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "nuke_shuttle_dock_airlock"; name = "exterior access button"; pixel_x = -28; pixel_y = -6; req_one_access = list(13)},/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "nuke_shuttle_dock_outer"; locked = 1; name = "Dock Three External Airlock"; req_access = list(13)},/obj/machinery/shield_diffuser,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
-"drN" = (/obj/machinery/shield_diffuser,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "nuke_shuttle_dock_outer"; locked = 1; name = "Dock Three External Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
-"drO" = (/turf/space,/area/syndicate_station/arrivals_dock)
-"drP" = (/turf/space,/area/shuttle/merchant/away)
-"drQ" = (/turf/space,/area/shuttle/administration/station)
-"drR" = (/turf/simulated/floor/reinforced/airless,/area/thirddeck/roof)
-"drS" = (/turf/space,/area/shuttle/response_ship/thirddeck)
-"drT" = (/turf/simulated/floor/airless,/area/thirddeck/roof)
-"drU" = (/turf/simulated/wall/r_wall,/area/ai)
-"drV" = (/obj/structure/table/standard,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/structure/flora/pottedplant/unusual{name = "Steve"; pixel_y = 15},/obj/item/device/radio/intercom/custom{dir = 8; pixel_x = -21; pixel_y = 0},/obj/item/device/radio/intercom/private{dir = 4; pixel_x = 21; pixel_y = 0},/turf/simulated/floor/greengrid,/area/ai)
-"drW" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/ai)
-"drX" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/dark,/area/ai)
-"drY" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/dark,/area/ai)
-"drZ" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/porta_turret/ai_defense,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/dark,/area/ai)
-"dsa" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/dark,/area/ai)
-"dsb" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/ai)
-"dsc" = (/obj/machinery/porta_turret/ai_defense,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/dark,/area/ai)
-"dsd" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/ai)
-"dse" = (/turf/simulated/floor/greengrid,/area/ai)
-"dsf" = (/obj/effect/floor_decal/industrial/warning/cee,/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled/dark,/area/ai)
-"dsg" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/greengrid,/area/ai)
-"dsh" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai)
-"dsi" = (/obj/machinery/porta_turret/ai_defense,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/dark,/area/ai)
-"dsj" = (/turf/space,/area/skipjack_station/thirddeck)
-"dsk" = (/obj/machinery/power/solar{id = "foreportsolar"; name = "Port Solar Array"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/foreportsolar)
-"dsl" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/solar/foreportsolar)
-"dsm" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "foreportsolar"; name = "Port Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/foreportsolar)
-"dsn" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark,/area/ai)
-"dso" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/dark,/area/ai)
-"dsp" = (/obj/machinery/ai_slipper{icon_state = "motion0"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/greengrid,/area/ai)
-"dsq" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/greengrid,/area/ai)
-"dsr" = (/obj/structure/cable/cyan,/obj/machinery/power/smes/buildable{charge = 5e+006; input_attempt = 1; input_level = 200000; output_level = 200000},/obj/machinery/flasher{id = "AI"; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/plating,/area/ai)
-"dss" = (/obj/machinery/ai_slipper{icon_state = "motion0"},/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/greengrid,/area/ai)
-"dst" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled/dark,/area/ai)
-"dsu" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark,/area/ai)
-"dsv" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/solar{id = "forestarboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/forestarboardsolar)
-"dsw" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
-"dsx" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "forestarboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/forestarboardsolar)
-"dsy" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/solar{id = "foreportsolar"; name = "Port Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/foreportsolar)
-"dsz" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/foreportsolar)
-"dsA" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled/dark,/area/ai)
-"dsB" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/greengrid,/area/ai)
-"dsC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/greengrid,/area/ai)
-"dsD" = (/turf/simulated/wall/durasteel,/area/ai)
-"dsE" = (/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/greengrid,/area/ai)
-"dsF" = (/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/greengrid,/area/ai)
-"dsG" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled/dark,/area/ai)
-"dsH" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
-"dsI" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/item/device/radio/intercom/private{pixel_y = -21},/obj/item/device/radio/intercom/custom{dir = 1; pixel_y = 21},/turf/simulated/floor/greengrid,/area/ai)
-"dsJ" = (/obj/machinery/porta_turret/ai_defense,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai)
-"dsK" = (/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled/dark,/area/ai)
-"dsL" = (/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/ai)
-"dsM" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; id_tag = null; locked = 1; name = "AI Core"; req_access = list(16)},/turf/simulated/floor/tiled/dark,/area/ai)
-"dsN" = (/obj/machinery/ai_slipper{icon_state = "motion0"},/obj/machinery/turretid/stun{check_synth = 1; name = "AI Chamber turret control"; pixel_x = -30; pixel_y = -24},/obj/machinery/flasher{id = "AI"; pixel_x = 24; pixel_y = -25},/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for the AI core maintenance door."; id = "AICore"; name = "AI Maintenance Hatch"; pixel_x = 8; pixel_y = 25; req_access = list(16)},/obj/machinery/light/small{dir = 1},/obj/machinery/camera/xray/command{c_tag = "AI - Core"; dir = 2},/turf/simulated/floor/tiled/dark,/area/ai)
-"dsO" = (/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai)
-"dsP" = (/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled/dark,/area/ai)
-"dsQ" = (/obj/machinery/porta_turret/ai_defense,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/dark,/area/ai)
-"dsR" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/item/device/radio/intercom/private{dir = 1; pixel_y = 21},/obj/item/device/radio/intercom/custom{pixel_y = -21},/turf/simulated/floor/greengrid,/area/ai)
-"dsS" = (/turf/simulated/wall/r_wall,/area/maintenance/thirddeck/foreport)
-"dsT" = (/obj/effect/landmark/start{name = "AI"},/obj/machinery/requests_console{department = "AI"; departmentType = 5; pixel_x = 30; pixel_y = -32},/obj/machinery/newscaster/security_unit{pixel_x = -32; pixel_y = -32},/obj/item/device/radio/intercom/private{dir = 4; pixel_x = 21; pixel_y = -10},/obj/item/device/radio/intercom/custom{dir = 8; pixel_x = -21; pixel_y = -10},/obj/item/device/radio/intercom{broadcasting = 1; name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/greengrid,/area/ai)
-"dsU" = (/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc/super/critical{dir = 8; is_critical = 1; name = "west bump"; pixel_x = -24; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/greengrid,/area/ai)
-"dsV" = (/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/greengrid,/area/ai)
-"dsW" = (/turf/simulated/wall/r_wall,/area/maintenance/thirddeck/forestarboard)
-"dsX" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
-"dsY" = (/turf/simulated/wall/r_wall,/area/maintenance/solars/foreportsolar)
-"dsZ" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dta" = (/obj/machinery/alarm{pixel_y = 22},/obj/machinery/portable_atmospherics/powered/pump/filled,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dtb" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dtc" = (/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dtd" = (/obj/structure/closet/crate,/obj/item/weapon/storage/box/lights/mixed,/obj/random/maintenance/security,/obj/random/maintenance/security,/obj/random/maintenance/security,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dte" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/reinforced/airless,/area/thirddeck/roof)
-"dtf" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/reinforced/airless,/area/thirddeck/roof)
-"dtg" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall/r_wall,/area/ai)
-"dth" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light,/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/ai)
-"dti" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/dark,/area/ai)
-"dtj" = (/obj/machinery/ai_slipper{icon_state = "motion0"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/greengrid,/area/ai)
-"dtk" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled/dark,/area/ai)
-"dtl" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/light,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/ai)
-"dtm" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dtn" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dto" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dtp" = (/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dtq" = (/obj/structure/firedoor_assembly,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dtr" = (/turf/simulated/wall/r_wall,/area/maintenance/solars/forestarboardsolar)
-"dts" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
-"dtt" = (/obj/structure/cable/yellow,/turf/simulated/floor/airless,/area/solar/foreportsolar)
-"dtu" = (/obj/item/stack/cable_coil/yellow,/turf/simulated/floor/reinforced/airless,/area/thirddeck/roof)
-"dtv" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
-"dtw" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/power/solar_control{id = "foreportsolar"; name = "Fore Port Solar Control"; track = 0},/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
-"dtx" = (/obj/machinery/light/small{dir = 1},/obj/machinery/camera/network/engineering{c_tag = "ENG - Solar Fore Port"; dir = 2},/obj/item/stack/cable_coil/yellow,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
-"dty" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
-"dtz" = (/turf/simulated/wall,/area/maintenance/solars/foreportsolar)
-"dtA" = (/obj/machinery/light/small{dir = 8},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dtB" = (/obj/structure/ladder,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dtC" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/reinforced/airless,/area/thirddeck/roof)
-"dtD" = (/obj/machinery/porta_turret/ai_defense,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai)
-"dtE" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled/dark,/area/ai)
-"dtF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/greengrid,/area/ai)
-"dtG" = (/obj/effect/floor_decal/industrial/warning/cee{tag = "icon-warningcee (NORTH)"; icon_state = "warningcee"; dir = 1},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled/dark,/area/ai)
-"dtH" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/dark,/area/ai)
-"dtI" = (/obj/machinery/porta_turret/ai_defense,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/dark,/area/ai)
-"dtJ" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dtK" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dtL" = (/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dtM" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dtN" = (/turf/simulated/wall,/area/maintenance/solars/forestarboardsolar)
-"dtO" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/item/stack/cable_coil/yellow,/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
-"dtP" = (/obj/machinery/light/small{dir = 1},/obj/machinery/camera/network/engineering{c_tag = "ENG - Solar Fore Starboard"; dir = 2},/obj/item/stack/cable_coil/yellow,/obj/item/stack/cable_coil/yellow,/obj/item/weapon/stool,/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
-"dtQ" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/power/solar_control{id = "forestarboardsolar"; name = "Fore Starboard Solar Control"; track = 0},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
-"dtR" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
-"dtS" = (/obj/structure/cable/yellow,/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
-"dtT" = (/obj/machinery/power/tracker,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless,/area/solar/foreportsolar)
-"dtU" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/airless,/area/solar/foreportsolar)
-"dtV" = (/turf/simulated/floor/airless,/area/solar/foreportsolar)
-"dtW" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless,/area/solar/foreportsolar)
-"dtX" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/solar/foreportsolar)
-"dtY" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; layer = 3.3; master_tag = "fore_port_solar_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = -25; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/airless,/area/solar/foreportsolar)
-"dtZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "fore_port_solar_outer"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
-"dua" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 8},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "fore_port_solar_airlock"; layer = 3.3; pixel_x = 0; pixel_y = -25; req_access = list(13); tag_airpump = "fore_port_solar_pump"; tag_chamber_sensor = "fore_port_solar_sensor"; tag_exterior_door = "fore_port_solar_outer"; tag_interior_door = "fore_port_solar_inner"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "fore_port_solar_sensor"; layer = 3.3; pixel_x = 0; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "fore_port_solar_pump"},/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
-"dub" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 4},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "fore_port_solar_pump"},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
-"duc" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "fore_port_solar_inner"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
-"dud" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/meter,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; layer = 3.3; master_tag = "fore_port_solar_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = 25; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
-"due" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
-"duf" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/binary/pump/on{dir = 8; target_pressure = 200},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
-"dug" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Fore Port Solar Access"; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
-"duh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dui" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"duj" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"duk" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dul" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dum" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/thirddeck/roof)
-"dun" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/dark,/area/ai)
-"duo" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/dark,/area/ai)
-"dup" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/ai)
-"duq" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/dark,/area/ai)
-"dur" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/dark,/area/ai)
-"dus" = (/obj/structure/lattice,/obj/structure/cable{d1 = 32; d2 = 4; icon_state = "32-4"},/turf/simulated/open,/area/maintenance/thirddeck/forestarboard)
-"dut" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"duu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"duv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"duw" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Fore Starboard Solar Access"; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
-"dux" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/binary/pump/on{dir = 4; target_pressure = 200},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
-"duy" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
-"duz" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/meter,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; layer = 3.3; master_tag = "fore_starboard_solar_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
-"duA" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "fore_starboard_solar_inner"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
-"duB" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 8},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small,/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "fore_starboard_solar_pump"},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
-"duC" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "fore_starboard_solar_airlock"; layer = 3.3; pixel_x = 0; pixel_y = -25; req_access = list(13); tag_airpump = "fore_starboard_solar_pump"; tag_chamber_sensor = "fore_starboard_solar_sensor"; tag_exterior_door = "fore_starboard_solar_outer"; tag_interior_door = "fore_starboard_solar_inner"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "fore_starboard_solar_sensor"; layer = 3.3; pixel_x = 0; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "fore_starboard_solar_pump"},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
-"duD" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "fore_starboard_solar_outer"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
-"duE" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; layer = 3.3; master_tag = "fore_starboard_solar_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
-"duF" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
-"duG" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
-"duH" = (/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
-"duI" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
-"duJ" = (/obj/machinery/power/tracker,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
-"duK" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/airless,/area/solar/foreportsolar)
-"duL" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
-"duM" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
-"duN" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
-"duO" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/sign/warning/airlock{pixel_y = -32},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
-"duP" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/yellow,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/table/steel,/obj/item/stack/cable_coil/yellow,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
-"duQ" = (/obj/structure/cable,/obj/machinery/power/smes/buildable{charge = 0; RCon_tag = "Solar - Fore Port"},/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
-"duR" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/sign/warning/high_voltage{pixel_x = -32; pixel_y = 0},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/camera/network/engineering{c_tag = "ENG - Solar Fore Port Access"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"duS" = (/obj/structure/table/rack,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/item/clothing/glasses/meson,/obj/random/maintenance/cargo,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor,/area/maintenance/thirddeck/foreport)
-"duT" = (/obj/structure/lattice,/obj/structure/cable{d1 = 32; icon_state = "32-1"},/turf/simulated/open,/area/maintenance/thirddeck/foreport)
-"duU" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/greengrid,/area/ai)
-"duV" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"duW" = (/obj/structure/ladder,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"duX" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/sign/warning/high_voltage{pixel_x = 32; pixel_y = 0},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/camera/network/engineering{c_tag = "ENG - Solar Fore Starboard Access"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"duY" = (/obj/structure/cable,/obj/machinery/power/smes/buildable{charge = 0; RCon_tag = "Solar - Fore Starboard"},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
-"duZ" = (/obj/machinery/power/terminal{dir = 8},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/structure/cable/yellow,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
-"dva" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/structure/sign/warning/airlock{pixel_y = -32},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
-"dvb" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
-"dvc" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
-"dvd" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
-"dve" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
-"dvf" = (/turf/space,/area/ninja_dojo/thirddeck)
-"dvg" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/foreportsolar)
-"dvh" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_one_access = list(12,19)},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dvi" = (/turf/simulated/wall,/area/maintenance/thirddeck/foreport)
-"dvj" = (/turf/simulated/wall/r_wall,/area/ai/ai_upload)
-"dvk" = (/obj/machinery/door/airlock/vault/bolted{name = "AI core"; req_access = list(16)},/obj/machinery/door/blast/regular{id = "AICore"; name = "AI core maintenance hatch"},/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/ai)
-"dvl" = (/obj/structure/sign/warning/lethal_turrets,/turf/simulated/wall/r_wall,/area/ai)
-"dvm" = (/obj/structure/sign/kiddieplaque,/turf/simulated/wall/r_wall,/area/ai/ai_upload)
-"dvn" = (/turf/simulated/wall,/area/maintenance/thirddeck/forestarboard)
-"dvo" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_one_access = list(12,19)},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dvp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
-"dvq" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dvr" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/freeform,/obj/item/weapon/aiModule/protectStation{pixel_x = -3; pixel_y = 2},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
-"dvs" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/porta_turret/ai_defense,/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
-"dvt" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
-"dvu" = (/obj/machinery/computer/aiupload,/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
-"dvv" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/device/radio/intercom/locked/ai_private{dir = 1; pixel_x = -36; pixel_y = 21},/obj/machinery/flasher{id = "AI"; pixel_x = -22; pixel_y = 24},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
-"dvw" = (/obj/machinery/computer/borgupload,/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
-"dvx" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/camera/network/command{c_tag = "AI - Upload"; dir = 2},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
-"dvy" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/nanotrasen,/obj/item/weapon/aiModule/reset{pixel_x = 2; pixel_y = 3; pixel_z = 0},/obj/structure/window/reinforced{dir = 8},/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
-"dvz" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dvA" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dvB" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dvC" = (/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
-"dvD" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
-"dvE" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
-"dvF" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
-"dvG" = (/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/ai_slipper{icon_state = "motion0"},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
-"dvH" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
-"dvI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
-"dvJ" = (/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
-"dvK" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dvL" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dvM" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dvN" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36; pixel_y = 0},/obj/structure/cable/cyan,/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
-"dvO" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/porta_turret/ai_defense,/obj/machinery/light,/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
-"dvP" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
-"dvQ" = (/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
-"dvR" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dvS" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dvT" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless,/area/solar/foreportsolar)
-"dvU" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dvV" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/asimov,/obj/item/weapon/aiModule/freeformcore,/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Core Modules"; req_access = list(20)},/obj/item/weapon/aiModule/corp,/obj/item/weapon/aiModule/paladin,/obj/item/weapon/aiModule/robocop,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
-"dvW" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
-"dvX" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
-"dvY" = (/obj/item/device/radio/intercom/locked/ai_private{dir = 4; pixel_x = 21},/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
-"dvZ" = (/obj/structure/extinguisher_cabinet{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
-"dwa" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/oxygen,/obj/item/weapon/aiModule/oneHuman,/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "High-Risk Modules"; req_access = list(20)},/obj/item/weapon/aiModule/purge,/obj/item/weapon/aiModule/antimov,/obj/item/weapon/aiModule/teleporterOffline,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
-"dwb" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dwc" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
-"dwd" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dwe" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dwf" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dwg" = (/turf/simulated/wall/r_wall,/area/ai/ai_server_room)
-"dwh" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/ai/ai_server_room)
-"dwi" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/highsecurity{name = "AI Upload"; req_access = list(16)},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
-"dwj" = (/turf/simulated/wall/r_wall,/area/ai/ai_cyborg_station)
-"dwk" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/ai/ai_cyborg_station)
-"dwl" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dwm" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/structure/closet/crate,/obj/random/powercell,/obj/random/powercell,/obj/random/powercell,/obj/random/toolbox,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dwn" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dwo" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dwp" = (/obj/machinery/atmospherics/binary/pump/on{dir = 1; target_pressure = 200},/obj/structure/table/rack,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/storage/belt/utility,/obj/random/maintenance/security,/obj/random/maintenance/security,/obj/random/maintenance/security,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dwq" = (/obj/machinery/message_server,/obj/machinery/camera/network/command{c_tag = "AI - Messaging Server"; dir = 4},/turf/simulated/floor/bluegrid,/area/ai/ai_server_room)
-"dwr" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid,/area/ai/ai_server_room)
-"dws" = (/obj/machinery/blackbox_recorder,/turf/simulated/floor/bluegrid,/area/ai/ai_server_room)
-"dwt" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/item/device/radio/intercom/locked/ai_private{dir = 1; pixel_y = 21},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/camera/network/command{c_tag = "AI - Upload Foyer"; dir = 2},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload_foyer)
-"dwu" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload_foyer)
-"dwv" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/turretid/stun{control_area = "\improper AI Upload Chamber"; name = "AI Upload turret control"; pixel_x = 0; pixel_y = 24},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 0},/obj/structure/cable/cyan{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/flasher{id = "AIFoyer"; pixel_x = 0; pixel_y = 36},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload_foyer)
-"dww" = (/obj/machinery/recharge_station,/turf/simulated/floor/bluegrid,/area/ai/ai_cyborg_station)
-"dwx" = (/obj/machinery/recharge_station,/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid,/area/ai/ai_cyborg_station)
-"dwy" = (/obj/structure/table/standard,/obj/item/weapon/phone,/obj/machinery/camera/network/command{c_tag = "AI - Cyborg Station"; dir = 8},/turf/simulated/floor/bluegrid,/area/ai/ai_cyborg_station)
-"dwz" = (/obj/machinery/atmospherics/binary/pump/on{dir = 1; target_pressure = 200},/obj/structure/largecrate,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dwA" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dwB" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dwC" = (/obj/machinery/atmospherics/pipe/simple/visible/universal,/obj/structure/table/rack{dir = 1},/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dwD" = (/obj/machinery/computer/message_monitor,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/bluegrid,/area/ai/ai_server_room)
-"dwE" = (/obj/structure/bed/chair/office/light{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai/ai_server_room)
-"dwF" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai/ai_server_room)
-"dwG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/dark,/area/ai/ai_server_room)
-"dwH" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/highsecurity{name = "Messaging Server"; req_access = list(16)},/turf/simulated/floor/tiled/dark,/area/ai/ai_server_room)
-"dwI" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload_foyer)
-"dwJ" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/hologram/holopad,/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled/dark,/area/ai/ai_upload_foyer)
-"dwK" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light,/turf/simulated/floor/tiled/dark,/area/ai/ai_upload_foyer)
-"dwL" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/highsecurity{name = "Synthetic Storage Access"; req_access = list(16)},/turf/simulated/floor/tiled/dark,/area/ai/ai_cyborg_station)
-"dwM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/landmark/start{name = "Cyborg"},/turf/simulated/floor/tiled/dark,/area/ai/ai_cyborg_station)
-"dwN" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/landmark/start{name = "Cyborg"},/turf/simulated/floor/tiled/dark,/area/ai/ai_cyborg_station)
-"dwO" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/bed/chair/office/light{dir = 4},/obj/effect/landmark{name = "JoinLateCyborg"},/turf/simulated/floor/tiled/dark,/area/ai/ai_cyborg_station)
-"dwP" = (/obj/machinery/computer/aifixer,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/bluegrid,/area/ai/ai_cyborg_station)
-"dwQ" = (/obj/machinery/atmospherics/pipe/simple/visible/universal,/obj/structure/largecrate,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dwR" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dwS" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dwT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dwU" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/hop/quarters)
-"dwV" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/hop/quarters)
-"dwW" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/hop/quarters)
-"dwX" = (/turf/simulated/wall/r_wall,/area/maintenance/substation/command)
-"dwY" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/maintenance/substation/command)
-"dwZ" = (/obj/structure/closet/crate{name = "Camera Assembly Crate"},/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/turf/simulated/floor/bluegrid,/area/ai/ai_server_room)
-"dxa" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/dark,/area/ai/ai_server_room)
-"dxb" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/tiled/dark,/area/ai/ai_server_room)
-"dxc" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{pixel_x = 36; pixel_y = 0},/obj/structure/cable/cyan,/turf/simulated/floor/tiled/dark,/area/ai/ai_server_room)
-"dxd" = (/turf/simulated/wall/r_wall,/area/ai/ai_upload_foyer)
-"dxe" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/highsecurity{name = "AI Upload Access"; req_access = list(16)},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload_foyer)
-"dxf" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36; pixel_y = 0},/obj/structure/cable/cyan,/turf/simulated/floor/tiled/dark,/area/ai/ai_cyborg_station)
-"dxg" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/tiled/dark,/area/ai/ai_cyborg_station)
-"dxh" = (/obj/effect/landmark{name = "JoinLateCyborg"},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/dark,/area/ai/ai_cyborg_station)
-"dxi" = (/obj/machinery/cryopod/robot{dir = 4},/turf/simulated/floor/bluegrid,/area/ai/ai_cyborg_station)
-"dxj" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/cmo/quarters)
-"dxk" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/cmo/quarters)
-"dxl" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/cmo/quarters)
-"dxm" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/hor/quarters)
-"dxn" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/hor/quarters)
-"dxo" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/hor/quarters)
-"dxp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dxq" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dxr" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dxs" = (/obj/structure/closet/secure_closet/hop2,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hop/quarters)
-"dxt" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hop/quarters)
-"dxu" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp/green,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hop/quarters)
-"dxv" = (/turf/simulated/wall,/area/maintenance/substation/command)
-"dxw" = (/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/maintenance/substation/command)
-"dxx" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor,/area/maintenance/substation/command)
-"dxy" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/zpipe/down/scrubbers,/obj/machinery/atmospherics/pipe/zpipe/down/supply,/obj/structure/disposalpipe/down{dir = 8},/obj/structure/cable{d1 = 32; d2 = 2; icon_state = "32-2"},/turf/simulated/open,/area/maintenance/substation/command)
-"dxz" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/ai/ai_server_room)
-"dxA" = (/obj/structure/sign/warning/secure_area,/turf/simulated/wall/r_wall,/area/ai/ai_server_room)
-"dxB" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
-"dxC" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
-"dxD" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
-"dxE" = (/obj/structure/sign/warning/lethal_turrets,/turf/simulated/wall/r_wall,/area/ai/ai_cyborg_station)
-"dxF" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/ai/ai_cyborg_station)
-"dxG" = (/obj/structure/closet/secure_closet/CMO/wardrobe,/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/cmo/quarters)
-"dxH" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/cmo/quarters)
-"dxI" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp/green,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/cmo/quarters)
-"dxJ" = (/turf/simulated/wall,/area/crew_quarters/heads/sc/cmo/quarters)
-"dxK" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp/green,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hor/quarters)
-"dxL" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hor/quarters)
-"dxM" = (/obj/structure/closet/secure_closet/RD/wardrobe,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hor/quarters)
-"dxN" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dxO" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dxP" = (/obj/structure/closet,/obj/item/weapon/storage/backpack,/obj/random/maintenance/clean,/obj/random/maintenance/cargo,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dxQ" = (/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36; pixel_y = -6},/obj/machinery/button/windowtint{id = "hopquarters"; pixel_x = -36; pixel_y = 6},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hop/quarters)
-"dxR" = (/obj/structure/bed/chair/office/dark{dir = 1},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hop/quarters)
-"dxS" = (/obj/structure/table/standard,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/blue_hop,/obj/item/weapon/pen/multi,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hop/quarters)
-"dxT" = (/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green,/obj/machinery/power/sensor{name = "Powernet Sensor - Command Subgrid"; name_tag = "Command Subgrid"},/obj/machinery/light/small{dir = 8},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor,/area/maintenance/substation/command)
-"dxU" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/terminal,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor,/area/maintenance/substation/command)
-"dxV" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor,/area/maintenance/substation/command)
-"dxW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dxX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dxY" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dxZ" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dya" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dyb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dyc" = (/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36; pixel_y = -6},/obj/machinery/button/windowtint{id = "cmoquarters"; pixel_x = -36; pixel_y = 6},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/cmo/quarters)
-"dyd" = (/obj/structure/bed/chair/office/dark{dir = 1},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/cmo/quarters)
-"dye" = (/obj/structure/table/standard,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/white_cmo,/obj/item/weapon/pen/multi,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/cmo/quarters)
-"dyf" = (/obj/structure/table/standard,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/white_rd,/obj/item/weapon/pen/multi,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hor/quarters)
-"dyg" = (/obj/structure/bed/chair/office/dark{dir = 1},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hor/quarters)
-"dyh" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/light_switch{pixel_x = 36; pixel_y = -6},/obj/machinery/button/windowtint{id = "rdquarters"; pixel_x = 36; pixel_y = 6},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hor/quarters)
-"dyi" = (/obj/structure/closet/crate,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/effect/decal/cleanable/dirt,/obj/random/maintenance/research,/obj/random/maintenance/research,/obj/random/maintenance/cargo,/obj/random/maintenance/cargo,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dyj" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dyk" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_one_access = list(12,19)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
-"dyl" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hop/quarters)
-"dym" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hop/quarters)
-"dyn" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/hop,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hop/quarters)
-"dyo" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor,/area/maintenance/substation/command)
-"dyp" = (/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes/buildable{charge = 0; RCon_tag = "Substation - Command"},/turf/simulated/floor,/area/maintenance/substation/command)
-"dyq" = (/obj/machinery/power/breakerbox/activated{RCon_tag = "Command Substation Bypass"},/turf/simulated/floor,/area/maintenance/substation/command)
-"dyr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dys" = (/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dyt" = (/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dyu" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/corner/blue{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dyv" = (/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dyw" = (/obj/effect/floor_decal/corner/blue{dir = 10},/obj/machinery/camera/network/third_deck{c_tag = "Third Deck - Central Fore"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dyx" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dyy" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/corner/blue{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dyz" = (/obj/effect/floor_decal/corner/blue{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dyA" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/cmo/quarters)
-"dyB" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/cmo/quarters)
-"dyC" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/medical,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/cmo/quarters)
-"dyD" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/rd,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hor/quarters)
-"dyE" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hor/quarters)
-"dyF" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hor/quarters)
-"dyG" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_one_access = list(12,19)},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
-"dyH" = (/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/port)
-"dyI" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/port)
-"dyJ" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/port)
-"dyK" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/port)
-"dyL" = (/obj/machinery/firealarm{pixel_y = 24},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dyM" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dyN" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dyO" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/port)
-"dyP" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/thirddeck/port)
-"dyQ" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced/polarized{id = "hopquarters"},/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/hop/quarters)
-"dyR" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{name = "Head of Personnel Quarters"; req_access = list(57)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hop/quarters)
-"dyS" = (/turf/simulated/wall,/area/crew_quarters/heads/sc/hop/quarters)
-"dyT" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{name = "Command Substation"; req_one_access = list(11,19,24,47)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/maintenance/substation/command)
-"dyU" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/maintenance/substation/command)
-"dyV" = (/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/central)
-"dyW" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/cmo/quarters)
-"dyX" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced/polarized{id = "cmoquarters"},/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/cmo/quarters)
-"dyY" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{id_tag = null; name = "CMO's Quarters"; req_access = list(40)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/cmo/quarters)
-"dyZ" = (/turf/simulated/wall,/area/crew_quarters/heads/sc/hor/quarters)
-"dza" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{id_tag = null; name = "Research Director Quarters"; req_access = list(30)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hor/quarters)
-"dzb" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced/polarized{id = "rdquarters"},/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/hor/quarters)
-"dzc" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/thirddeck/starboard)
-"dzd" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard)
-"dze" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dzf" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dzg" = (/obj/machinery/firealarm{pixel_y = 24},/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dzh" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard)
-"dzi" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard)
-"dzj" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard)
-"dzk" = (/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard)
-"dzl" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless,/area/hallway/primary/thirddeck/port)
-"dzm" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "d3_port_outer"; locked = 1; name = "External Airlock Access"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/port)
-"dzn" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "d3_port_pump"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "d3_port_sensor"; pixel_x = 0; pixel_y = 25},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dzo" = (/obj/structure/sign/warning/airlock{pixel_y = 32},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "d3_port_pump"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dzp" = (/obj/machinery/door/airlock/glass_external{frequency = 1379; icon_state = "door_locked"; id_tag = "crg_aft__inner"; locked = 1; name = "Internal Airlock Access"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/port)
-"dzq" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "d3_port_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = 26; req_access = list(18)},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dzr" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dzs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dzt" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dzu" = (/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dzv" = (/obj/effect/floor_decal/corner/blue{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dzw" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/effect/floor_decal/corner/blue{dir = 5},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dzx" = (/obj/effect/floor_decal/corner/blue{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dzy" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dzz" = (/obj/machinery/camera/network/third_deck{c_tag = "Third Deck - Port Hallway One"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dzA" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dzB" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dzC" = (/obj/structure/sign/warning/high_voltage{pixel_y = 32},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dzD" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dzE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dzF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dzG" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dzH" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/flora/pottedplant/fern,/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
-"dzI" = (/turf/unsimulated/mask,/area/hallway/primary/thirddeck/central)
-"dzJ" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/flora/pottedplant/stoutbush,/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
-"dzK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dzL" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dzM" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dzN" = (/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dzO" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dzP" = (/obj/effect/floor_decal/corner/blue{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dzQ" = (/obj/machinery/alarm{pixel_y = 22},/obj/effect/floor_decal/corner/blue{dir = 5},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dzR" = (/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/camera/network/third_deck{c_tag = "Third Deck - Starboard Hallway One"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dzS" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/corner/blue{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dzT" = (/obj/effect/floor_decal/corner/blue{dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dzU" = (/obj/effect/floor_decal/corner/blue{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dzV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dzW" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dzX" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "d3_starboard_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 26; req_access = list(18)},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dzY" = (/obj/machinery/door/airlock/glass_external{frequency = 1379; icon_state = "door_locked"; id_tag = "d3_starboard_inner"; locked = 1; name = "Internal Airlock Access"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/starboard)
-"dzZ" = (/obj/structure/sign/warning/airlock{pixel_y = 32},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "d3_starboard_pump"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dAa" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "d3_starboard_pump"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "d3_starboard_sensor"; pixel_x = 0; pixel_y = 25},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dAb" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "d3_starboard_outer"; locked = 1; name = "External Airlock Access"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/starboard)
-"dAc" = (/obj/machinery/light/small{dir = 1},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/airless,/area/hallway/primary/thirddeck/starboard)
-"dAd" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "d3_port_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = -26; req_access = list(18)},/turf/simulated/floor/airless,/area/hallway/primary/thirddeck/port)
-"dAe" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "d3_port_airlock"; pixel_x = 0; pixel_y = -26; req_access = list(18); tag_airpump = "d3_port_pump"; tag_chamber_sensor = "d3_port_sensor"; tag_exterior_door = "d3_port_outer"; tag_interior_door = "d3_port_inner"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "d3_port_pump"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAf" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "d3_port_pump"},/obj/machinery/light/small,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAh" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAi" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/camera/network/third_deck{c_tag = "Third Deck - Port Hallway Two"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAj" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/hallway/primary/thirddeck/port)
-"dAk" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAl" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAm" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAn" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAo" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAp" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAq" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAr" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAs" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAt" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/hallway/primary/thirddeck/port)
-"dAu" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dAv" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/corner/blue{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dAw" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
-"dAx" = (/obj/effect/floor_decal/corner/blue{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dAy" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dAz" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/hallway/primary/thirddeck/starboard)
-"dAA" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dAB" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dAC" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dAD" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dAE" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dAF" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dAG" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/camera/network/third_deck{c_tag = "Third Deck - Starboard Hallway Two"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dAH" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dAI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dAJ" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/light/small,/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "d3_starboard_pump"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dAK" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "d3_starboard_pump"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "d3_starboard_airlock"; pixel_x = 0; pixel_y = -26; req_access = list(18); tag_airpump = "d3_starboard_pump"; tag_chamber_sensor = "d3_starboard_sensor"; tag_exterior_door = "d3_starboard_outer"; tag_interior_door = "d3_starboard_inner"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dAL" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "d3_starboard_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -26; req_access = list(18)},/turf/simulated/floor/airless,/area/hallway/primary/thirddeck/starboard)
-"dAM" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/port)
-"dAN" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/port)
-"dAO" = (/obj/structure/sign/deck/third,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/port)
-"dAP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAQ" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAR" = (/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAS" = (/obj/effect/floor_decal/corner/blue{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAT" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/corner/blue{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAU" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAV" = (/obj/effect/floor_decal/corner/blue{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dAW" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dAX" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/effect/floor_decal/corner/blue{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dAY" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/obj/effect/floor_decal/corner/blue{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dAZ" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dBa" = (/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dBb" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dBc" = (/obj/effect/floor_decal/corner/blue{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dBd" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/green,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dBe" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dBf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dBg" = (/obj/structure/sign/deck/third,/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard)
-"dBh" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard)
-"dBi" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard)
-"dBj" = (/turf/simulated/shuttle/wall,/area/shuttle/escape_pod7/station)
-"dBk" = (/turf/simulated/shuttle/wall/no_join{base_state = "orange"; icon = 'icons/turf/shuttle_orange.dmi'; icon_state = "orange"},/area/shuttle/escape_pod7/station)
-"dBl" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall,/area/shuttle/escape_pod7/station)
-"dBm" = (/turf/simulated/wall,/area/hallway/primary/thirddeck/port)
-"dBn" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dBo" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dBp" = (/obj/machinery/alarm{dir = 8; pixel_x = 25; pixel_y = 0},/obj/effect/floor_decal/corner/white,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dBq" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/restroom)
-"dBr" = (/turf/simulated/wall,/area/crew_quarters/heads/sc/restroom)
-"dBs" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{name = "Command Restroom"; req_access = list(19)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
-"dBt" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/chief/quarters)
-"dBu" = (/turf/simulated/wall,/area/crew_quarters/heads/sc/chief/quarters)
-"dBv" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{name = "Chief Engineer Quarters"; req_access = list(56)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/chief/quarters)
-"dBw" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced/polarized{id = "cequarters"},/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/chief/quarters)
-"dBx" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/chief/quarters)
-"dBy" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/camera/network/third_deck{c_tag = "Third Deck - Central Port"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dBz" = (/obj/structure/table/glass,/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
-"dBA" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/camera/network/third_deck{c_tag = "Third Deck - Central Starboard"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dBB" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/hos/quarters)
-"dBC" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced/polarized{id = "hosquarters"},/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/hos/quarters)
-"dBD" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{id_tag = null; name = "Head of Security Quarters"; req_access = list(58)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos/quarters)
-"dBE" = (/turf/simulated/wall,/area/crew_quarters/heads/sc/hos/quarters)
-"dBF" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/hos/quarters)
-"dBG" = (/turf/simulated/wall,/area/crew_quarters/heads/sc/bs)
-"dBH" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{name = "Secretary Quarters"; req_access = list(19)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/bs)
-"dBI" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced/polarized{id = "bsquarters"},/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/bs)
-"dBJ" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/bs)
-"dBK" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/obj/effect/floor_decal/corner/white{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dBL" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dBM" = (/turf/simulated/wall,/area/hallway/primary/thirddeck/starboard)
-"dBN" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 8},/turf/simulated/shuttle/wall,/area/shuttle/escape_pod8/station)
-"dBO" = (/turf/simulated/shuttle/wall,/area/shuttle/escape_pod8/station)
-"dBP" = (/turf/simulated/shuttle/wall/no_join{base_state = "orange"; icon = 'icons/turf/shuttle_orange.dmi'; icon_state = "orange"},/area/shuttle/escape_pod8/station)
-"dBQ" = (/obj/structure/grille,/obj/structure/window/reinforced/full,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4; health = 1e+006},/turf/simulated/shuttle/plating,/area/shuttle/escape_pod7/station)
-"dBR" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod{frequency = 1380; id_tag = "escape_pod_7"; pixel_x = 0; pixel_y = -25; tag_door = "escape_pod_7_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod7/station)
-"dBS" = (/obj/structure/bed/chair{dir = 8},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/structure/closet/walllocker/emerglocker{pixel_y = -32},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod7/station)
-"dBT" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 0; pixel_y = -30},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod7/station)
-"dBU" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_7_hatch"; locked = 1; name = "Escape Pod Hatch 7"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod7/station)
-"dBV" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_7_berth_hatch"; locked = 1; name = "Escape Pod 7"; req_access = list(13)},/turf/simulated/floor,/area/hallway/primary/thirddeck/port)
-"dBW" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth{frequency = 1380; id_tag = "escape_pod_7_berth"; pixel_x = -25; pixel_y = 30; tag_door = "escape_pod_7_berth_hatch"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dBX" = (/obj/effect/floor_decal/corner/white,/obj/effect/floor_decal/corner/red{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dBY" = (/obj/machinery/recharge_station,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
-"dBZ" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
-"dCa" = (/obj/structure/sink{pixel_y = 16},/obj/structure/mirror{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
-"dCb" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
-"dCc" = (/obj/structure/table/standard,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
-"dCd" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/ce,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/chief/quarters)
-"dCe" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/chief/quarters)
-"dCf" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/chief/quarters)
-"dCg" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dCh" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dCi" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/flora/pottedplant/stoutbush,/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
-"dCj" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/flora/pottedplant/fern,/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
-"dCk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dCl" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dCm" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos/quarters)
-"dCn" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos/quarters)
-"dCo" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/hos,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos/quarters)
-"dCp" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/bs)
-"dCq" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/bs)
-"dCr" = (/obj/structure/closet/lawcloset,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/bs)
-"dCs" = (/obj/effect/floor_decal/corner/red{dir = 1},/obj/effect/floor_decal/corner/white{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dCt" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth{frequency = 1380; id_tag = "escape_pod_8_berth"; pixel_x = 25; pixel_y = 30; tag_door = "escape_pod_8_berth_hatch"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dCu" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_8_berth_hatch"; locked = 1; name = "Escape Pod 8"; req_access = list(13)},/turf/simulated/floor,/area/hallway/primary/thirddeck/starboard)
-"dCv" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_8_hatch"; locked = 1; name = "Escape Pod Hatch 8"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod8/station)
-"dCw" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 0; pixel_y = 30},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod8/station)
-"dCx" = (/obj/structure/bed/chair{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/structure/closet/walllocker/emerglocker{pixel_y = 32},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod8/station)
-"dCy" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod{frequency = 1380; id_tag = "escape_pod_8"; pixel_x = 0; pixel_y = 25; tag_door = "escape_pod_8_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod8/station)
-"dCz" = (/obj/structure/grille,/obj/structure/window/reinforced/full,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4; health = 1e+006},/turf/simulated/shuttle/plating,/area/shuttle/escape_pod8/station)
-"dCA" = (/obj/structure/sign/warning/pods{dir = 8},/turf/simulated/wall,/area/hallway/primary/thirddeck/port)
-"dCB" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dCC" = (/obj/effect/floor_decal/corner/white,/obj/effect/floor_decal/corner/red{dir = 4},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
-"dCD" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/restroom)
-"dCE" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
-"dCF" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
-"dCG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
-"dCH" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
-"dCI" = (/obj/structure/table/standard,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/yellow_ce,/obj/item/weapon/pen/multi,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/chief/quarters)
-"dCJ" = (/obj/structure/bed/chair/office/dark,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/chief/quarters)
-"dCK" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/button/windowtint{id = "cequarters"; pixel_x = 36; pixel_y = 6},/obj/machinery/light_switch{pixel_x = 36; pixel_y = -6},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/chief/quarters)
-"dCL" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/corner/blue{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dCM" = (/obj/structure/sign/directions/engineering{dir = 1; pixel_y = 10},/obj/structure/sign/directions/cargo{dir = 1},/obj/structure/sign/directions/security{dir = 1; pixel_y = -10},/turf/simulated/wall,/area/hallway/primary/thirddeck/central)
-"dCN" = (/obj/structure/sign/directions/bridge{dir = 2; pixel_y = 10},/obj/structure/sign/directions/science{dir = 1},/obj/structure/sign/directions/medical{dir = 1; pixel_y = -10},/turf/simulated/wall,/area/hallway/primary/thirddeck/central)
-"dCO" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
-"dCP" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
-"dCQ" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
-"dCR" = (/obj/structure/sign/directions/evac{dir = 1},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/central)
-"dCS" = (/obj/effect/floor_decal/corner/blue{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dCT" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/light_switch{pixel_x = -36; pixel_y = -6},/obj/machinery/button/windowtint{id = "hosquarters"; pixel_x = -36; pixel_y = 6},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos/quarters)
-"dCU" = (/obj/structure/bed/chair/office/dark,/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos/quarters)
-"dCV" = (/obj/structure/table/standard,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/red_hos,/obj/item/weapon/pen/multi,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos/quarters)
-"dCW" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/bs)
-"dCX" = (/obj/structure/bed/chair/office/dark,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/bs)
-"dCY" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/button/windowtint{id = "bsoffice"; pixel_x = 36; pixel_y = 6},/obj/machinery/light_switch{pixel_x = 36; pixel_y = -6},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/bs)
-"dCZ" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard)
-"dDa" = (/obj/effect/floor_decal/corner/red{dir = 1},/obj/effect/floor_decal/corner/white{dir = 8},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dDb" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
-"dDc" = (/obj/structure/sign/warning/pods{dir = 4},/turf/simulated/wall,/area/hallway/primary/thirddeck/starboard)
-"dDd" = (/turf/simulated/wall/r_wall,/area/maintenance/thirddeck/aftport)
-"dDe" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_one_access = list(12,19)},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dDf" = (/turf/simulated/wall,/area/maintenance/thirddeck/aftport)
-"dDg" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
-"dDh" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
-"dDi" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
-"dDj" = (/obj/machinery/shower{dir = 1},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
-"dDk" = (/obj/structure/undies_wardrobe,/obj/structure/window/basic{dir = 8},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
-"dDl" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp/green,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/chief/quarters)
-"dDm" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/chief/quarters)
-"dDn" = (/obj/structure/closet/secure_closet/engineering_chief/wardrobe,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/chief/quarters)
-"dDo" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dDp" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dDq" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/corner/blue{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dDr" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/corner/blue{dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dDs" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/corner/blue{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dDt" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dDu" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/corner/blue{dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dDv" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dDw" = (/obj/structure/closet/secure_closet/hos/wardrobe,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos/quarters)
-"dDx" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos/quarters)
-"dDy" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp/green,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos/quarters)
-"dDz" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/blue,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/bs)
-"dDA" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/blue,/obj/item/weapon/pen/multi,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/bs)
-"dDB" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/blue,/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/bs)
-"dDC" = (/turf/simulated/wall/r_wall,/area/maintenance/thirddeck/aftstarboard)
-"dDD" = (/turf/simulated/wall,/area/maintenance/thirddeck/aftstarboard)
-"dDE" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_one_access = list(12,19)},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dDF" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dDG" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dDH" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dDI" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dDJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dDK" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dDL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dDM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dDN" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dDO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/third_deck{c_tag = "Third Deck - Central Aft"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dDP" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dDQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dDR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dDS" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dDT" = (/obj/structure/closet,/obj/item/weapon/storage/backpack,/obj/random/maintenance/medical,/obj/random/maintenance/medical,/obj/random/maintenance/medical,/obj/random/firstaid,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dDU" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dDV" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dDW" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dDX" = (/turf/simulated/wall/r_wall,/area/bridge/meeting_room)
-"dDY" = (/obj/structure/flora/pottedplant/largebush,/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dDZ" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dEa" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dEb" = (/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dEc" = (/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dEd" = (/obj/machinery/newscaster{pixel_y = 30},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dEe" = (/obj/machinery/vending/coffee,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dEf" = (/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/bridge)
-"dEg" = (/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/bridge)
-"dEh" = (/obj/structure/sign/warning/secure_area,/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/central)
-"dEi" = (/turf/simulated/wall,/area/hallway/primary/thirddeck/central)
-"dEj" = (/obj/structure/sign/deck/third,/turf/simulated/wall,/area/hallway/primary/thirddeck/central)
-"dEk" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dEl" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dEm" = (/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/bridge)
-"dEn" = (/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/bridge)
-"dEo" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/sd)
-"dEp" = (/obj/structure/table/wooden_reinforced,/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = -32; pixel_y = 0},/obj/item/device/flashlight/lamp/green,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
-"dEq" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/storage/photo_album{pixel_y = -10},/obj/item/device/camera,/obj/machinery/firealarm{pixel_y = 24},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
-"dEr" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/captain,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
-"dEs" = (/obj/structure/closet/wardrobe/captain{name = "station director's wardrobe"},/obj/random/drinkbottle,/obj/machinery/light{dir = 1},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
-"dEt" = (/obj/structure/sink{pixel_y = 16},/obj/structure/mirror{pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/sd)
-"dEu" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/item/weapon/soap/deluxe,/obj/item/weapon/towel{color = "#FFD700"; name = "gold towel"},/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/sd)
-"dEv" = (/obj/structure/closet,/obj/item/weapon/weldingtool,/obj/effect/decal/cleanable/dirt,/obj/random/maintenance/clean,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dEw" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dEx" = (/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dEy" = (/obj/machinery/button/remote/blast_door{id = "heads_meeting"; name = "Security Shutters"; pixel_x = -26; pixel_y = 0},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dEz" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
-"dEA" = (/obj/structure/bed/chair/comfy/blue,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
-"dEB" = (/obj/structure/bed/chair/comfy/blue,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
-"dEC" = (/obj/structure/bed/chair/comfy/blue,/turf/simulated/floor/carpet,/area/bridge/meeting_room)
-"dED" = (/turf/simulated/floor/carpet,/area/bridge/meeting_room)
-"dEE" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{pixel_x = 36; pixel_y = 0},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dEF" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access = list(19)},/turf/simulated/floor/tiled,/area/bridge)
-"dEG" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access = list(19)},/turf/simulated/floor/tiled,/area/bridge)
-"dEH" = (/turf/simulated/open,/area/hallway/primary/thirddeck/central)
-"dEI" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dEJ" = (/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dEK" = (/obj/machinery/vending/snack,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dEL" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_command{id_tag = "sbridgedoor"; name = "Bridge"; req_access = list(19)},/turf/simulated/floor/tiled,/area/bridge)
-"dEM" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass_command{id_tag = "sbridgedoor"; name = "Bridge"; req_access = list(19)},/turf/simulated/floor/tiled,/area/bridge)
-"dEN" = (/obj/structure/table/wooden_reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/weapon/storage/box/matches,/obj/item/clothing/mask/smokable/cigarette/cigar,/obj/item/weapon/reagent_containers/food/drinks/flask{pixel_x = 8},/obj/random_multi/single_item/captains_spare_id,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
-"dEO" = (/obj/structure/bed/chair/comfy/brown{dir = 8},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
-"dEP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
-"dEQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
-"dER" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Bathroom"},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/sd)
-"dES" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/sd)
-"dET" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/sd)
-"dEU" = (/obj/structure/closet/crate,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/effect/decal/cleanable/dirt,/obj/random/maintenance/medical,/obj/random/maintenance/medical,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dEV" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dEW" = (/obj/structure/table/steel,/obj/random/maintenance/engineering,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dEX" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dEY" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "heads_meeting"; name = "Meeting Room Window Shutters"; opacity = 0},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green,/turf/simulated/floor/plating,/area/bridge/meeting_room)
-"dEZ" = (/obj/structure/bed/chair/comfy/blue{dir = 4},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
-"dFa" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/folder/red,/obj/item/weapon/folder/blue{pixel_x = -2; pixel_y = -2},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
-"dFb" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/effect/landmark{name = "blobstart"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
-"dFc" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/book/manual/security_space_law,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
-"dFd" = (/obj/structure/bed/chair/comfy/blue{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
-"dFe" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dFf" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/command{name = "Conference Room"; req_access = list(19)},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dFg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/turf/simulated/floor/tiled,/area/bridge)
-"dFh" = (/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j2"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/bridge)
-"dFi" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/central)
-"dFj" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dFk" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dFl" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dFm" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dFn" = (/obj/machinery/vending/cola,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dFo" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/central)
-"dFp" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/bridge)
-"dFq" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled,/area/bridge)
-"dFr" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/command{name = "Station Director's Quarters"; req_access = list(20)},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
-"dFs" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
-"dFt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
-"dFu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
-"dFv" = (/obj/structure/closet/secure_closet/captains{name = "station director's locker"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
-"dFw" = (/obj/structure/toilet{dir = 1},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/sd)
-"dFx" = (/obj/machinery/shower{dir = 1},/obj/structure/curtain/open/shower,/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/machinery/door/window/northright,/obj/item/weapon/bikehorn/rubberducky,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/sd)
-"dFy" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dFz" = (/obj/structure/closet/crate,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/item/weapon/crowbar,/obj/item/weapon/wirecutters,/obj/random/maintenance/medical,/obj/random/maintenance/medical,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/maintenance/thirddeck/aftstarboard)
-"dFA" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dFB" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dFC" = (/obj/structure/table/steel,/obj/random/tech_supply,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dFD" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "heads_meeting"; name = "Meeting Room Window Shutters"; opacity = 0},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/bridge/meeting_room)
-"dFE" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dFF" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
-"dFG" = (/obj/structure/bed/chair/comfy/blue{dir = 1},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
-"dFH" = (/obj/structure/bed/chair/comfy/blue{dir = 1},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/carpet,/area/bridge/meeting_room)
-"dFI" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
-"dFJ" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/camera/network/command{c_tag = "COM - Conference Room"; dir = 8},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dFK" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled,/area/bridge)
-"dFL" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled,/area/bridge)
-"dFM" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/effect/floor_decal/corner/blue{dir = 10},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dFN" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dFO" = (/obj/effect/floor_decal/corner/blue{dir = 8},/obj/machinery/camera/network/third_deck{c_tag = "Third Deck - Stairwell"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dFP" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dFQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dFR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dFS" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/effect/floor_decal/corner/blue{dir = 10},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
-"dFT" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled,/area/bridge)
-"dFU" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled,/area/bridge)
-"dFV" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/command{name = "Station Director's Quarters"; req_access = list(20)},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
-"dFW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dFX" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dFY" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dFZ" = (/obj/item/frame,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dGa" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "heads_meeting"; name = "Meeting Room Window Shutters"; opacity = 0},/obj/structure/cable/green,/turf/simulated/floor/plating,/area/bridge/meeting_room)
-"dGb" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/storage/box/donut,/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dGc" = (/obj/machinery/hologram/holopad,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dGd" = (/obj/structure/disposalpipe/segment,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dGe" = (/turf/simulated/wall/r_wall,/area/bridge)
-"dGf" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced/polarized{id = "bridge_center"},/turf/simulated/floor/plating,/area/bridge)
-"dGg" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced/polarized{id = "bridge_center"},/turf/simulated/floor/plating,/area/bridge)
-"dGh" = (/obj/machinery/door/firedoor/glass,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access = list(19)},/turf/simulated/floor/tiled,/area/bridge)
-"dGi" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced/polarized{id = "bridge_center"},/turf/simulated/floor/plating,/area/bridge)
-"dGj" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced/polarized{id = "bridge_center"},/turf/simulated/floor/plating,/area/bridge)
-"dGk" = (/obj/structure/displaycase,/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dGl" = (/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dGm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dGn" = (/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/machinery/camera/network/command{c_tag = "COM - Station Director's Office"; dir = 2},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dGo" = (/obj/structure/table/wooden_reinforced,/obj/machinery/photocopier/faxmachine{department = "Captain's Office"},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dGp" = (/obj/machinery/computer/card,/obj/random_multi/single_item/captains_spare_id,/obj/machinery/light{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dGq" = (/obj/machinery/computer/communications,/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dGr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dGs" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dGt" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/solar{id = "aftportsolar"; name = "Port Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/aftportsolar)
-"dGu" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/solar/aftportsolar)
-"dGv" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "aftportsolar"; name = "Port Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/aftportsolar)
-"dGw" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dGx" = (/obj/structure/sign/warning/high_voltage,/turf/simulated/wall/r_wall,/area/bridge/meeting_room)
-"dGy" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/hand_labeler,/obj/item/device/retail_scanner/command,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dGz" = (/obj/structure/table/wooden_reinforced,/obj/machinery/recharger{pixel_y = 0},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dGA" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dGB" = (/obj/machinery/light,/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dGC" = (/obj/machinery/papershredder,/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dGD" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dGE" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/bridge/meeting_room)
-"dGF" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/bridge)
-"dGG" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/bridge)
-"dGH" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/camera/network/command{c_tag = "COM - Bridge Port"; dir = 6},/obj/machinery/light{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/closet/secure_closet/guncabinet/sidearm{anchored = 1},/turf/simulated/floor/tiled,/area/bridge)
-"dGI" = (/obj/structure/noticeboard{pixel_y = 27},/obj/effect/floor_decal/corner/blue{dir = 5},/turf/simulated/floor/tiled,/area/bridge)
-"dGJ" = (/obj/effect/floor_decal/corner/blue{dir = 5},/turf/simulated/floor/tiled,/area/bridge)
-"dGK" = (/obj/effect/floor_decal/corner/blue{dir = 1},/turf/simulated/floor/tiled,/area/bridge)
-"dGL" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/bridge)
-"dGM" = (/obj/effect/floor_decal/corner/blue{dir = 4},/turf/simulated/floor/tiled,/area/bridge)
-"dGN" = (/obj/structure/closet/fireaxecabinet{pixel_y = 32},/obj/effect/floor_decal/corner/blue{dir = 5},/turf/simulated/floor/tiled,/area/bridge)
-"dGO" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/camera/network/command{c_tag = "COM - Bridge Starboard"},/obj/machinery/light{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/bridge)
-"dGP" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/bridge)
-"dGQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/bridge)
-"dGR" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/sd)
-"dGS" = (/obj/structure/filingcabinet,/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dGT" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dGU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dGV" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dGW" = (/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dGX" = (/obj/structure/bed/chair/office/dark,/obj/effect/landmark/start{name = "Colony Director"},/obj/machinery/button/remote/airlock{desc = "A remote control switch for the Starboard Bridge Doors."; id = "sbridgedoor"; name = "Starboard Bridge Door Control"; pixel_x = 30; pixel_y = -6},/obj/machinery/button/remote/airlock{desc = "A remote control switch for the captain's office."; id = "captaindoor"; name = "Office Door Control"; pixel_x = 30; pixel_y = 6},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dGY" = (/obj/structure/table/wooden_reinforced,/obj/machinery/requests_console{announcementConsole = 1; department = "Station Director's Desk"; departmentType = 5; name = "Station Administrator RC"; pixel_x = 30; pixel_y = 0},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dGZ" = (/obj/structure/table/rack{dir = 4},/obj/item/clothing/mask/gas,/obj/random/maintenance/engineering,/obj/random/maintenance/clean,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dHa" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/solar{id = "aftstarboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/aftstarboardsolar)
-"dHb" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
-"dHc" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "aftstarboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/aftstarboardsolar)
-"dHd" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/aftportsolar)
-"dHe" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dHf" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge/meeting_room)
-"dHg" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge/meeting_room)
-"dHh" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/command{name = "Conference Room"; req_access = list(19)},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dHi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/bridge)
-"dHj" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/bridge)
-"dHk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/bridge)
-"dHl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/bridge)
-"dHm" = (/obj/structure/bed/chair,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/bridge)
-"dHn" = (/obj/structure/disposalpipe/junction{dir = 8},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/bridge)
-"dHo" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/bridge)
-"dHp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/bridge)
-"dHq" = (/obj/structure/table/rack,/obj/structure/window/reinforced,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/clothing/mask/gas,/obj/item/clothing/suit/armor/captain,/obj/item/clothing/head/helmet/space/capspace,/obj/structure/window/basic{dir = 1},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dHr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/window/southleft{name = "Director's Desk Door"; req_access = list(20)},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dHs" = (/obj/structure/table/wooden_reinforced,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/blue,/obj/item/device/megaphone,/obj/item/weapon/pen/multi,/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dHt" = (/obj/structure/table/wooden_reinforced,/obj/machinery/computer/skills,/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dHu" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/folder/blue_captain,/obj/item/weapon/stamp/denied{pixel_x = -2; pixel_y = -2},/obj/item/weapon/stamp/captain,/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dHv" = (/obj/structure/table/wooden_reinforced,/obj/item/device/flashlight/lamp/green,/obj/machinery/newscaster/security_unit{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dHw" = (/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/visible/universal,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dHx" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
-"dHy" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dHz" = (/obj/structure/closet,/obj/item/weapon/storage/backpack,/obj/random/maintenance/clean,/obj/random/maintenance/cargo,/obj/random/maintenance/clean,/obj/random/drinkbottle,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dHA" = (/obj/structure/flora/pottedplant{icon_state = "plant-01"; pixel_y = 10; tag = "icon-plant-01"},/obj/structure/table/woodentable,/obj/machinery/alarm{pixel_y = 22},/obj/structure/extinguisher_cabinet{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dHB" = (/obj/structure/table/woodentable,/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/obj/item/weapon/storage/box/cups,/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dHC" = (/obj/structure/reagent_dispensers/water_cooler/full,/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dHD" = (/obj/machinery/camera/network/command{c_tag = "COM - Secretary Office"; dir = 2},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dHE" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/command{name = "Secretary Office"; req_access = list(19)},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dHF" = (/obj/machinery/computer/guestpass{pixel_y = 28},/turf/simulated/floor/tiled,/area/bridge)
-"dHG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/bridge)
-"dHH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/bridge)
-"dHI" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/bridge)
-"dHJ" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/yellow/full,/obj/item/weapon/folder/yellow,/obj/item/device/flashlight,/obj/item/device/flashlight{pixel_x = 2; pixel_y = 2},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/dark,/area/bridge)
-"dHK" = (/obj/machinery/computer/atmos_alert,/obj/effect/floor_decal/corner/yellow{dir = 10},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/dark,/area/bridge)
-"dHL" = (/obj/machinery/computer/atmos_alert,/obj/effect/floor_decal/corner/yellow/full{tag = "icon-corner_white_full (EAST)"; icon_state = "corner_white_full"; dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/dark,/area/bridge)
-"dHM" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor/tiled/dark,/area/bridge)
-"dHN" = (/obj/machinery/computer/rcon,/obj/effect/floor_decal/corner/yellow/full,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/dark,/area/bridge)
-"dHO" = (/obj/machinery/computer/power_monitor,/obj/effect/floor_decal/corner/yellow{dir = 10},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/dark,/area/bridge)
-"dHP" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/yellow/full{tag = "icon-corner_white_full (EAST)"; icon_state = "corner_white_full"; dir = 4},/obj/item/weapon/storage/box/lights/mixed,/obj/item/device/multitool,/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/dark,/area/bridge)
-"dHQ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/bridge)
-"dHR" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/bridge)
-"dHS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/bridge)
-"dHT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/requests_console{announcementConsole = 1; department = "Bridge"; departmentType = 5; name = "Bridge RC"; pixel_x = 0; pixel_y = 30},/turf/simulated/floor/tiled,/area/bridge)
-"dHU" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/command{id_tag = "captaindoor"; name = "Station Director's Office"; req_access = list(20)},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dHV" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dHW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dHX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dHY" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dHZ" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dIa" = (/obj/structure/table/woodentable,/obj/item/weapon/melee/chainofcommand,/obj/item/weapon/hand_tele,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dIb" = (/obj/machinery/atmospherics/pipe/tank/air,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dIc" = (/obj/machinery/atmospherics/pipe/tank/air,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dId" = (/obj/machinery/atmospherics/valve,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dIe" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_one_access = list(12,19)},/turf/simulated/floor/plating,/area/bridge/meeting_room)
-"dIf" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dIg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dIh" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dIi" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dIj" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dIk" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dIl" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/bridge)
-"dIm" = (/obj/structure/bed/chair,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/bridge)
-"dIn" = (/turf/simulated/floor/tiled,/area/bridge)
-"dIo" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/bridge)
-"dIp" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled,/area/bridge)
-"dIq" = (/obj/structure/disposalpipe/segment,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dIr" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dIs" = (/obj/machinery/papershredder,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dIt" = (/obj/structure/closet/crate/internals,/obj/item/weapon/tank/emergency/oxygen/engi,/obj/item/weapon/tank/emergency/oxygen/engi,/obj/item/weapon/tank/emergency/oxygen/double,/obj/random/tank,/obj/random/maintenance/research,/obj/random/maintenance/research,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dIu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dIv" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/machinery/meter,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dIw" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
-"dIx" = (/turf/simulated/wall/r_wall,/area/maintenance/solars/aftportsolar)
-"dIy" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_one_access = list(12,19)},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dIz" = (/obj/machinery/photocopier,/obj/machinery/button/remote/blast_door{id = "csblast"; name = "Blastdoors"; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dIA" = (/obj/structure/table/wooden_reinforced,/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dIB" = (/obj/structure/bed/chair/office/dark,/obj/effect/landmark/start{name = "Command Secretary"},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dIC" = (/obj/structure/bed/chair/office/dark,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/start{name = "Command Secretary"},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dID" = (/obj/structure/filingcabinet,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dIE" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/bridge/meeting_room)
-"dIF" = (/obj/machinery/computer/secure_data,/obj/effect/floor_decal/corner/red/full,/turf/simulated/floor/tiled,/area/bridge)
-"dIG" = (/obj/structure/table/reinforced,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/red{dir = 10},/obj/item/weapon/folder/red,/turf/simulated/floor/tiled,/area/bridge)
-"dIH" = (/obj/machinery/computer/security,/obj/effect/floor_decal/corner/red/full{dir = 4},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/tiled,/area/bridge)
-"dII" = (/obj/structure/cable/green,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/effect/floor_decal/corner/blue/full,/turf/simulated/floor/tiled,/area/bridge)
-"dIJ" = (/obj/effect/floor_decal/corner/blue{dir = 8},/turf/simulated/floor/tiled,/area/bridge)
-"dIK" = (/obj/structure/bed/chair,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/bridge)
-"dIL" = (/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled,/area/bridge)
-"dIM" = (/obj/machinery/button/remote/blast_door{id = "bridge blast"; name = "Bridge Blastdoors"; pixel_x = 0; pixel_y = -36},/obj/machinery/button/windowtint{id = "bridge_center"; pixel_x = -11; pixel_y = -24},/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/obj/effect/floor_decal/corner/blue/full{dir = 4},/turf/simulated/floor/tiled,/area/bridge)
-"dIN" = (/obj/machinery/computer/crew,/obj/effect/floor_decal/corner/white/full,/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/simulated/floor/tiled,/area/bridge)
-"dIO" = (/obj/structure/table/reinforced,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/white{dir = 10},/obj/item/weapon/folder/white,/turf/simulated/floor/tiled,/area/bridge)
-"dIP" = (/obj/machinery/computer/med_data,/obj/effect/floor_decal/corner/white/full{tag = "icon-corner_white_full (EAST)"; icon_state = "corner_white_full"; dir = 4},/turf/simulated/floor/tiled,/area/bridge)
-"dIQ" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/sd)
-"dIR" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dIS" = (/obj/structure/bed/chair/comfy/brown{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
-"dIT" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/security_space_law,/obj/item/device/tape/random,/obj/item/device/taperecorder,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
-"dIU" = (/obj/structure/table/woodentable,/obj/machinery/recharger,/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = -26},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dIV" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_one_access = list(12,19)},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dIW" = (/turf/simulated/wall/r_wall,/area/maintenance/solars/aftstarboardsolar)
-"dIX" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
-"dIY" = (/obj/structure/cable/yellow,/turf/simulated/floor/airless,/area/solar/aftportsolar)
-"dIZ" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
-"dJa" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
-"dJb" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
-"dJc" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
-"dJd" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/structure/sign/warning/airlock{pixel_y = 32},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
-"dJe" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/alarm{pixel_y = 22},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/item/stack/cable_coil/yellow,/obj/item/stack/cable_coil/yellow,/obj/item/stack/cable_coil/yellow,/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
-"dJf" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/smes/buildable{charge = 0; RCon_tag = "Solar - Aft Port"},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
-"dJg" = (/turf/simulated/wall,/area/maintenance/solars/aftportsolar)
-"dJh" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/sign/warning/high_voltage{pixel_x = -32; pixel_y = 0},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/camera/network/engineering{c_tag = "ENG - Solar Aft Port Access"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dJi" = (/obj/item/stack/cable_coil/yellow,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dJj" = (/obj/structure/ladder,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dJk" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dJl" = (/obj/structure/table/wooden_reinforced,/obj/machinery/computer/skills,/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dJm" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen/blue{pixel_y = -5},/obj/item/weapon/pen/red{pixel_y = 5},/obj/item/weapon/pen,/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dJn" = (/obj/structure/table/wooden_reinforced,/obj/machinery/photocopier/faxmachine{department = "Bridge"},/obj/machinery/light,/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dJo" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/pen/blue{pixel_y = -5},/obj/item/weapon/pen/red{pixel_y = 5},/obj/item/weapon/pen,/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dJp" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge)
-"dJq" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/structure/cable/green,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge)
-"dJr" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge)
-"dJs" = (/obj/structure/table/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/newscaster{pixel_y = -30},/obj/item/weapon/storage/secure/briefcase,/obj/effect/floor_decal/corner/blue/full,/turf/simulated/floor/tiled,/area/bridge)
-"dJt" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/PDAs{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/ids,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/bridge)
-"dJu" = (/obj/machinery/computer/card,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/bridge)
-"dJv" = (/obj/structure/table/reinforced,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/paper_bin,/obj/item/weapon/folder/red,/obj/item/weapon/folder/blue,/obj/item/weapon/pen,/obj/effect/floor_decal/corner/blue{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled,/area/bridge)
-"dJw" = (/obj/machinery/computer/communications,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/bridge)
-"dJx" = (/obj/structure/table/reinforced,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/aicard,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/bridge)
-"dJy" = (/obj/structure/table/reinforced,/obj/machinery/light{dir = 4},/obj/structure/extinguisher_cabinet{pixel_y = -30},/obj/machinery/recharger{pixel_y = 0},/obj/effect/floor_decal/corner/blue/full{dir = 4},/turf/simulated/floor/tiled,/area/bridge)
-"dJz" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/bridge)
-"dJA" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/bridge)
-"dJB" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/bridge)
-"dJC" = (/obj/machinery/button/remote/blast_door{id = "directorblast"; name = "Security Shutters"; pixel_x = -26; pixel_y = 0},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dJD" = (/obj/structure/bed/chair/comfy/brown{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
-"dJE" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/box/donut,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
-"dJF" = (/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
-"dJG" = (/obj/structure/lattice,/obj/structure/cable{d1 = 32; d2 = 2; icon_state = "32-2"},/turf/simulated/open,/area/maintenance/thirddeck/aftstarboard)
-"dJH" = (/obj/structure/table/rack,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/suit/storage/hazardvest,/obj/item/device/radio,/obj/random/maintenance/medical,/obj/random/maintenance/medical,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dJI" = (/obj/structure/table/rack,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dJJ" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning/corner,/obj/structure/sign/warning/high_voltage{pixel_x = 32; pixel_y = 0},/obj/machinery/camera/network/engineering{c_tag = "ENG - Solar Aft Starboard Access"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dJK" = (/turf/simulated/wall,/area/maintenance/solars/aftstarboardsolar)
-"dJL" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/smes/buildable{charge = 0; RCon_tag = "Solar - Aft Starboard"},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
-"dJM" = (/obj/machinery/alarm{pixel_y = 22},/obj/machinery/power/terminal{dir = 8},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
-"dJN" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/structure/sign/warning/airlock{pixel_y = 32},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
-"dJO" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
-"dJP" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
-"dJQ" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
-"dJR" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
-"dJS" = (/obj/structure/cable/yellow,/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
-"dJT" = (/obj/machinery/power/tracker,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless,/area/solar/aftportsolar)
-"dJU" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/airless,/area/solar/aftportsolar)
-"dJV" = (/turf/simulated/floor/airless,/area/solar/aftportsolar)
-"dJW" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless,/area/solar/aftportsolar)
-"dJX" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/solar/aftportsolar)
-"dJY" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; layer = 3.3; master_tag = "aft_port_solar_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = -25; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/airless,/area/solar/aftportsolar)
-"dJZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "aft_port_solar_outer"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
-"dKa" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "aft_port_solar_airlock"; layer = 3.3; pixel_x = 0; pixel_y = 25; req_access = list(13); tag_airpump = "aft_port_solar_pump"; tag_chamber_sensor = "aft_port_solar_sensor"; tag_exterior_door = "aft_port_solar_outer"; tag_interior_door = "aft_port_solar_inner"},/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 8},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "aft_port_solar_sensor"; layer = 3.3; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "aft_port_solar_pump"},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
-"dKb" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 4},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "aft_port_solar_pump"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
-"dKc" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "aft_port_solar_inner"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
-"dKd" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; layer = 3.3; master_tag = "aft_port_solar_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = 25; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
-"dKe" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
-"dKf" = (/obj/machinery/atmospherics/binary/pump/on{dir = 8; target_pressure = 200},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
-"dKg" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Aft Port Solar Access"; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
-"dKh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dKi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dKj" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dKk" = (/obj/structure/lattice,/obj/structure/cable{d1 = 32; d2 = 8; icon_state = "32-8"},/turf/simulated/open,/area/maintenance/thirddeck/aftport)
-"dKl" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "csblast"; name = "Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge/meeting_room)
-"dKm" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "csblast"; name = "Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge/meeting_room)
-"dKn" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "csblast"; name = "Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge/meeting_room)
-"dKo" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "csblast"; name = "Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge/meeting_room)
-"dKp" = (/obj/structure/sign/warning/secure_area,/turf/simulated/wall/r_wall,/area/bridge)
-"dKq" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge)
-"dKr" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge)
-"dKs" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge)
-"dKt" = (/obj/structure/sign/warning/high_voltage,/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/sd)
-"dKu" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "directorblast"; name = "Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/sd)
-"dKv" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green,/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "directorblast"; name = "Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/sd)
-"dKw" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "directorblast"; name = "Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/sd)
-"dKx" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "directorblast"; name = "Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/sd)
-"dKy" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dKz" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dKA" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dKB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dKC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dKD" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Aft Starboard Solar Access"; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
-"dKE" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/binary/pump/on{dir = 4; target_pressure = 200},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
-"dKF" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
-"dKG" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/meter,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; layer = 3.3; master_tag = "aft_starboard_solar_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
-"dKH" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "aft_starboard_solar_inner"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
-"dKI" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "aft_starboard_solar_pump"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
-"dKJ" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "aft_starboard_solar_pump"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "aft_starboard_solar_airlock"; layer = 3.3; pixel_x = 0; pixel_y = 25; req_access = list(13); tag_airpump = "aft_starboard_solar_pump"; tag_chamber_sensor = "aft_starboard_solar_sensor"; tag_exterior_door = "aft_starboard_solar_outer"; tag_interior_door = "aft_starboard_solar_inner"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "aft_starboard_solar_sensor"; layer = 3.3; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
-"dKK" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "aft_starboard_solar_outer"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
-"dKL" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; layer = 3.3; master_tag = "aft_starboard_solar_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
-"dKM" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
-"dKN" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
-"dKO" = (/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
-"dKP" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
-"dKQ" = (/obj/machinery/power/tracker,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
-"dKR" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/airless,/area/solar/aftportsolar)
-"dKS" = (/obj/structure/cable/yellow,/obj/machinery/power/solar_control{id = "aftportsolar"; name = "Aft Port Solar Control"; track = 0},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
-"dKT" = (/obj/machinery/camera/network/engineering{c_tag = "ENG - Solar Aft Port"; dir = 1},/obj/machinery/light/small,/obj/item/weapon/stool,/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
-"dKU" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
-"dKV" = (/obj/machinery/light/small{dir = 8},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dKW" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dKX" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dKY" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/reinforced/airless,/area/thirddeck/roof)
-"dKZ" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/reinforced/airless,/area/thirddeck/roof)
-"dLa" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/reinforced/airless,/area/thirddeck/roof)
-"dLb" = (/obj/structure/sign/warning/high_voltage{pixel_y = 32},/turf/simulated/floor/reinforced/airless,/area/thirddeck/roof)
-"dLc" = (/obj/structure/ladder,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dLd" = (/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dLe" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dLf" = (/obj/structure/cable,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/table/steel,/obj/item/stack/cable_coil/yellow,/obj/item/stack/cable_coil/yellow,/obj/item/stack/cable_coil/yellow,/obj/item/stack/cable_coil/yellow,/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
-"dLg" = (/obj/machinery/light/small,/obj/machinery/camera/network/engineering{c_tag = "ENG - Solar Aft Starboard"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
-"dLh" = (/obj/structure/cable/yellow,/obj/machinery/power/solar_control{id = "aftstarboardsolar"; name = "Aft Starboard Solar Control"; track = 0},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
-"dLi" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
-"dLj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/aftportsolar)
-"dLk" = (/obj/structure/table/steel,/obj/random/maintenance/cargo,/obj/random/maintenance/cargo,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dLl" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/table/steel,/obj/random/maintenance/cargo,/obj/random/maintenance/cargo,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dLm" = (/obj/structure/closet/wardrobe/grey,/obj/item/weapon/storage/backpack,/obj/item/weapon/storage/backpack,/obj/random/maintenance/cargo,/obj/random/maintenance/cargo,/obj/random/maintenance/cargo,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dLn" = (/obj/structure/closet/firecloset/full,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/random/maintenance/security,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
-"dLo" = (/obj/structure/table/rack,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/item/clothing/glasses/meson,/obj/random/maintenance/cargo,/turf/simulated/floor,/area/maintenance/thirddeck/aftport)
-"dLp" = (/obj/structure/table/rack{dir = 4},/obj/item/weapon/storage/toolbox/mechanical,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/maintenance/medical,/turf/simulated/floor,/area/maintenance/thirddeck/aftstarboard)
-"dLq" = (/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dLr" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dLs" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
-"dLt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
-"dLu" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/solar/aftportsolar)
-"dLv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
-"dLw" = (/turf/space,/area/syndicate_station/thirddeck)
-"dLx" = (/obj/effect/landmark/map_data{height = 3},/turf/space,/area/space)
+"dkZ" = (/turf/space,/area/shuttle/shuttle1/seconddeck)
+"dla" = (/turf/space,/area/shuttle/shuttle2/seconddeck)
+"dlb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlc" = (/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dld" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/dockhallway)
+"dle" = (/turf/simulated/wall,/area/storage/primary)
+"dlf" = (/turf/simulated/wall,/area/hallway/primary/seconddeck/dockhallway)
+"dlg" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/dockhallway)
+"dlh" = (/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/dockhallway)
+"dli" = (/obj/structure/sign/deck/second,/turf/simulated/wall/r_wall,/area/hallway/primary/seconddeck/dockhallway)
+"dlj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Hallway Three"},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlk" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/dockhallway)
+"dll" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/seconddeck/dockhallway)
+"dlm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/dockhallway)
+"dln" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/dockhallway)
+"dlo" = (/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlp" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlq" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlr" = (/obj/structure/bed/chair,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dls" = (/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/obj/structure/bed/chair,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlt" = (/obj/structure/table/glass,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlu" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/structure/bed/chair,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlv" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlx" = (/obj/item/weapon/book/codex,/obj/structure/table/glass,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dly" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlz" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlA" = (/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlB" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlC" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlL" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlM" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlO" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/sign/dock/one,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Hallway One"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlR" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlS" = (/obj/machinery/status_display{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlT" = (/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlU" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlV" = (/obj/machinery/embedded_controller/radio/docking_port_multi{child_names_txt = "Airlock One;Airlock Two;Airlock Three;Airlock Four"; child_tags_txt = "escape_dock_north_airlock;escape_dock_south_airlock;escape_dock_snorth_airlock;escape_dock_ssouth_airlock"; frequency = 1380; id_tag = "escape_dock"; pixel_y = -25; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlW" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlX" = (/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Hallway Two"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlY" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/ai_status_display{pixel_y = -32},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dlZ" = (/obj/machinery/light,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/dockhallway)
+"dma" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/sign/dock/two,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dmb" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/dockhallway)
+"dmc" = (/obj/machinery/ai_status_display{pixel_y = -32},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dmd" = (/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Hallway Four"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dme" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dmf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/sign/dock/three,/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Hallway Five"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
+"dmg" = (/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/D1)
+"dmh" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass{name = "Dock"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dmi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/glass{name = "Dock"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dmj" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/seconddeck/dockhallway)
+"dmk" = (/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/D2)
+"dml" = (/obj/structure/sign/directions/engineering{dir = 1; pixel_y = 10},/obj/structure/sign/directions/cargo{dir = 1},/obj/structure/sign/directions/security{dir = 1; pixel_y = -10},/turf/simulated/wall,/area/hallway/secondary/entry/D2)
+"dmm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Dock"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dmn" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/glass{name = "Dock"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dmo" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Dock"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dmp" = (/obj/structure/sign/directions/bridge{dir = 1; pixel_y = 10},/obj/structure/sign/directions/science{dir = 1},/obj/structure/sign/directions/medical{dir = 1; pixel_y = -10},/turf/simulated/wall,/area/hallway/secondary/entry/D2)
+"dmq" = (/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/D3)
+"dmr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/glass{name = "Dock"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dms" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass{name = "Dock"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dmt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dmu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dmv" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
+"dmw" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
+"dmx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dmy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dmz" = (/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dmA" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
+"dmB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dmC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dmD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dmE" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
+"dmF" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
+"dmG" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
+"dmH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dmI" = (/turf/space,/area/shuttle/transport1/station)
+"dmJ" = (/obj/structure/sign/warning/docking_area,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
+"dmK" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
+"dmL" = (/obj/structure/closet/emcloset,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dmM" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dmN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dmO" = (/turf/space,/area/shuttle/escape/station)
+"dmP" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dmQ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dmR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dmS" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dmT" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/structure/closet/emcloset,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dmU" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
+"dmV" = (/obj/structure/sign/warning/docking_area,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
+"dmW" = (/obj/machinery/shield_diffuser,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "s1s_dock_outer"; locked = 1; name = "Dock One External Airlock"; req_access = list(13)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "s1s_dock_airlock"; name = "exterior access button"; pixel_x = -5; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
+"dmX" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 8},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "s1s_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dmY" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 4},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "shuttle1_shuttle"; pixel_x = 0; pixel_y = 30; req_one_access = list(13); tag_airpump = "s1s_dock_pump"; tag_chamber_sensor = "s1s_dock_sensor"; tag_exterior_door = "s1s_dock_outer"; tag_interior_door = "s1s_dock_inner"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "s1s_dock_pump"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "s1s_dock_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dmZ" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "s1s_dock_inner"; locked = 1; name = "Dock One Internal Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
+"dna" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "s1s_dock_airlock"; name = "interior access button"; pixel_x = -28; pixel_y = 26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dnb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dnc" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dnd" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dne" = (/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dnf" = (/turf/simulated/shuttle/wall,/area/shuttle/arrival/station)
+"dng" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station)
+"dnh" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dni" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dnj" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "centcom_dock_airlock"; name = "interior access button"; pixel_x = 28; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dnk" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "centcom_dock_inner"; locked = 1; name = "Dock Three Internal Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
+"dnl" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 8},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "centcom_shuttle_dock_airlock"; pixel_x = 0; pixel_y = 30; req_one_access = list(13); tag_airpump = "centcom_dock_pump"; tag_chamber_sensor = "centcom_dock_sensor"; tag_exterior_door = "centcom_dock_outer"; tag_interior_door = "centcom_dock_inner"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "centcom_dock_sensor"; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "centcom_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dnm" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 4},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "centcom_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dnn" = (/obj/machinery/shield_diffuser,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "centcom_dock_airlock"; name = "exterior access button"; pixel_x = 5; pixel_y = -26; req_one_access = list(13)},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "centcom_dock_outer"; locked = 1; name = "Dock Three External Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
+"dno" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
+"dnp" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
+"dnq" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
+"dnr" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dns" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dnt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dnu" = (/turf/simulated/shuttle/wall/hard_corner,/area/shuttle/arrival/station)
+"dnv" = (/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
+"dnw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dnx" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dny" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dnz" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
+"dnA" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
+"dnB" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
+"dnC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dnD" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
+"dnE" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
+"dnF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dnG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock One Fore"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dnH" = (/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Two Fore"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dnI" = (/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
+"dnJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Three Fore"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dnK" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dnL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dnM" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dnN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dnO" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dnP" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
+"dnQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dnR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dnS" = (/obj/structure/sign/warning/docking_area,/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/D1)
+"dnT" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dnU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dnV" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
+"dnW" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
+"dnX" = (/obj/structure/sign/warning/docking_area,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
+"dnY" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
+"dnZ" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
+"doa" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
+"dob" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"doc" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dod" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"doe" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
+"dof" = (/obj/structure/closet/emcloset,/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
+"dog" = (/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
+"doh" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
+"doi" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"doj" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dok" = (/obj/structure/sign/warning/docking_area,/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/D3)
+"dol" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dom" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "escape_dock_north_airlock"; name = "interior access button"; pixel_x = 26; pixel_y = 26; req_one_access = list(13)},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"don" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_north_inner"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
+"doo" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "escape_dock_north_pump"},/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dop" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "escape_dock_north_pump"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{frequency = 1380; id_tag = "escape_dock_north_airlock"; master_tag = "escape_dock"; pixel_y = 30; req_one_access = list(13); tag_airlock_mech_sensor = "escape_dock_north_mech"; tag_airpump = "escape_dock_north_pump"; tag_chamber_sensor = "escape_dock_north_sensor"; tag_exterior_door = "escape_dock_north_outer"; tag_interior_door = "escape_dock_north_inner"; tag_shuttle_mech_sensor = "shuttle_dock_north_mech"},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
+"doq" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_north_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/machinery/shield_diffuser,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
+"dor" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_north_starboard_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
+"dos" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "escape_dock_north_starboard_pump"},/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{frequency = 1380; id_tag = "escape_dock_snorth_airlock"; master_tag = "escape_dock"; pixel_y = 30; req_one_access = list(13); tag_airlock_mech_sensor = "escape_dock_north_starboard_mech"; tag_airpump = "escape_dock_north_starboard_pump"; tag_chamber_sensor = "escape_dock_north_starboard_sensor"; tag_exterior_door = "escape_dock_north_starboard_outer"; tag_interior_door = "escape_dock_north_starboard_inner"; tag_shuttle_mech_sensor = "shuttle_dock_north_starboard_mech"},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
+"dot" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "escape_dock_north_starboard_pump"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dou" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_north_starboard_inner"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
+"dov" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "escape_dock_north_starboard_airlock"; name = "interior access button"; pixel_x = -26; pixel_y = 26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dow" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dox" = (/obj/machinery/door/airlock/glass_external,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
+"doy" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"doz" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
+"doA" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
+"doB" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
+"doC" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
+"doD" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"doE" = (/obj/machinery/door/airlock/glass_external,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
+"doF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"doG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/ai_status_display{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"doH" = (/turf/space,/area/shuttle/shuttle2/arrivals_dock)
+"doI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"doJ" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_north_pump"},/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"doK" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_north_pump"},/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "escape_dock_north_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
+"doL" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "escape_dock_north_airlock"; name = "exterior access button"; pixel_x = 4; pixel_y = -26; req_one_access = list(13)},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_north_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/machinery/shield_diffuser,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
+"doM" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "escape_dock_north_starboard_airlock"; name = "exterior access button"; pixel_x = -4; pixel_y = -26; req_one_access = list(13)},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_north_starboard_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
+"doN" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_north_starboard_pump"},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "escape_dock_north_starboard_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
+"doO" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_north_starboard_pump"},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"doP" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"doQ" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"doR" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
+"doS" = (/obj/structure/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/effect/landmark{name = "JoinLate"},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
+"doT" = (/obj/structure/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/effect/landmark{name = "JoinLate"},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
+"doU" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
+"doV" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"doW" = (/turf/space,/area/shuttle/response_ship/arrivals_dock)
+"doX" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"doY" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"doZ" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
+"dpa" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
+"dpb" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
+"dpc" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
+"dpd" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dpe" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dpf" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dpg" = (/turf/simulated/shuttle/wall/no_join,/area/shuttle/arrival/station)
+"dph" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
+"dpi" = (/obj/effect/landmark/start,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
+"dpj" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
+"dpk" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dpl" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dpm" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/sign/warning/airlock,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
+"dpn" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
+"dpo" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
+"dpp" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dpq" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dpr" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dps" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dpt" = (/obj/structure/bed/chair{dir = 4},/obj/effect/landmark{name = "JoinLate"},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
+"dpu" = (/obj/structure/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
+"dpv" = (/obj/structure/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
+"dpw" = (/obj/structure/bed/chair{dir = 8},/obj/effect/landmark{name = "JoinLate"},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
+"dpx" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dpy" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dpz" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
+"dpA" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
+"dpB" = (/obj/machinery/shield_diffuser,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_dock_outer"; locked = 1; name = "Dock One External Airlock"; req_access = list(13)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "specops_dock_airlock"; name = "exterior access button"; pixel_x = -5; pixel_y = -26; req_one_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
+"dpC" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 8},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "specops_dock_pump"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dpD" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 4},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "specops_dock_pump"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "specops_dock_sensor"; pixel_x = 0; pixel_y = -25},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "response_shuttle_dock_airlock"; pixel_x = 0; pixel_y = 30; req_one_access = list(13); tag_airpump = "specops_dock_pump"; tag_chamber_sensor = "specops_dock_sensor"; tag_exterior_door = "specops_dock_outer"; tag_interior_door = "specops_dock_inner"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dpE" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_dock_inner"; locked = 1; name = "Dock One Internal Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
+"dpF" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "specops_dock_airlock"; name = "interior access button"; pixel_x = -28; pixel_y = 26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dpG" = (/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dpH" = (/obj/structure/closet/emcloset,/obj/structure/extinguisher_cabinet{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dpI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dpJ" = (/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dpK" = (/obj/structure/bed/chair{dir = 4},/obj/effect/landmark{name = "JoinLate"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
+"dpL" = (/obj/machinery/hologram/holopad,/obj/effect/landmark{name = "Observer-Start"},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
+"dpM" = (/obj/structure/bed/chair{dir = 8},/obj/effect/landmark{name = "JoinLate"},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
+"dpN" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dpO" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "s2s_dock_airlock"; name = "interior access button"; pixel_x = 28; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dpP" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "s2s_dock_inner"; locked = 1; name = "Dock Three Internal Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
+"dpQ" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 8},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "s2s_dock_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "shuttle2_shuttle"; pixel_x = 0; pixel_y = 30; req_one_access = list(13); tag_airpump = "s2s_dock_pump"; tag_chamber_sensor = "s2s_dock_sensor"; tag_exterior_door = "s2s_dock_outer"; tag_interior_door = "s2s_dock_inner"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "s2s_dock_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dpR" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 4},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "s2s_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dpS" = (/obj/machinery/shield_diffuser,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "s2s_dock_outer"; locked = 1; name = "Dock Three External Airlock"; req_access = list(13)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "s2s_dock_airlock"; name = "exterior access button"; pixel_x = 5; pixel_y = 26; req_one_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
+"dpT" = (/obj/structure/closet/emcloset,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dpU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dpV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dpW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dpX" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dpY" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dpZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dqa" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dqb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dqc" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dqd" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dqe" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dqf" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dqg" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dqh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dqi" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dqj" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_inner"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
+"dqk" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "escape_dock_south_pump"},/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dql" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "escape_dock_south_pump"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "escape_dock_south_sensor"; pixel_x = 0; pixel_y = 25},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
+"dqm" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "escape_dock_south_airlock"; name = "exterior access button"; pixel_x = 4; pixel_y = 26; req_one_access = list(13)},/obj/machinery/shield_diffuser,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
+"dqn" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "escape_dock_south_starboard_airlock"; name = "exterior access button"; pixel_x = -4; pixel_y = 26; req_one_access = list(13)},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_starboard_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
+"dqo" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "escape_dock_south_starboard_pump"},/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "escape_dock_south_starboard_sensor"; pixel_x = 0; pixel_y = 25},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
+"dqp" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "escape_dock_south_starboard_pump"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dqq" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_starboard_inner"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
+"dqr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dqs" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dqt" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dqu" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dqv" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "escape_dock_south_airlock"; name = "interior access button"; pixel_x = 26; pixel_y = -26; req_one_access = list(13)},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dqw" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_south_pump"},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/light/small,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dqx" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_south_pump"},/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{frequency = 1380; id_tag = "escape_dock_south_airlock"; master_tag = "escape_dock"; pixel_y = -30; req_one_access = list(13); tag_airlock_mech_sensor = "escape_dock_south_mech"; tag_airpump = "escape_dock_south_pump"; tag_chamber_sensor = "escape_dock_south_sensor"; tag_exterior_door = "escape_dock_south_outer"; tag_interior_door = "escape_dock_south_inner"; tag_shuttle_mech_sensor = "shuttle_dock_south_mech"},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
+"dqy" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/machinery/shield_diffuser,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
+"dqz" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_starboard_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
+"dqA" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_south_starboard_pump"},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{frequency = 1380; id_tag = "escape_dock_ssouth_airlock"; master_tag = "escape_dock"; pixel_y = -30; req_one_access = list(13); tag_airlock_mech_sensor = "escape_dock_south_starboard_mech"; tag_airpump = "escape_dock_south_starboard_pump"; tag_chamber_sensor = "escape_dock_south_starboard_sensor"; tag_exterior_door = "escape_dock_south_starboard_outer"; tag_interior_door = "escape_dock_south_starboard_inner"; tag_shuttle_mech_sensor = "shuttle_dock_south_starboard_mech"},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
+"dqB" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_south_starboard_pump"},/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/light/small,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dqC" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "escape_dock_south_starboard_airlock"; name = "interior access button"; pixel_x = -26; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dqD" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/light/small,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dqE" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/light/small,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dqF" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock One Aft"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dqG" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dqH" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Two Aft"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dqI" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dqJ" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dqK" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Three Aft"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dqL" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dqM" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dqN" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dqO" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dqP" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dqQ" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/shuttle/arrival/station)
+"dqR" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dqS" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dqT" = (/obj/effect/floor_decal/sign/dock/one,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dqU" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dqV" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dqW" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/sign/dock/two,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dqX" = (/turf/space,/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/arrival/station)
+"dqY" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating/airless,/area/shuttle/arrival/station)
+"dqZ" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"dra" = (/obj/effect/floor_decal/sign/dock/three,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"drb" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
+"drc" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "trade_shuttle_dock_airlock"; name = "interior access button"; pixel_x = -28; pixel_y = -26; req_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"drd" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dre" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
+"drf" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "admin_shuttle_dock_airlock"; name = "interior access button"; pixel_x = 26; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"drg" = (/obj/structure/closet/emcloset,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"drh" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
+"dri" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"drj" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "nuke_shuttle_dock_airlock"; name = "interior access button"; pixel_x = 26; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"drk" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
+"drl" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/D1)
+"drm" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "trade_shuttle_dock_inner"; locked = 1; name = "Dock One Internal Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
+"drn" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "trade_shuttle_dock_inner"; locked = 1; name = "Dock One Internal Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
+"dro" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_dock_inner"; locked = 1; name = "Dock Two Internal Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
+"drp" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/D3)
+"drq" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1331; icon_state = "door_locked"; id_tag = "nuke_shuttle_dock_inner"; locked = 1; name = "Dock Three Internal Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
+"drr" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
+"drs" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "trade_shuttle_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"drt" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "trade_shuttle_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"dru" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
+"drv" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "admin_shuttle_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"drw" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"drx" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "admin_shuttle_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"dry" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
+"drz" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "nuke_shuttle_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"drA" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "nuke_shuttle_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"drB" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
+"drC" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "trade_shuttle_dock_pump"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "trade_shuttle_dock_sensor"; pixel_x = -28; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"drD" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "trade_shuttle_dock_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "trade_shuttle_dock_airlock"; pixel_x = 28; pixel_y = 0; req_one_access = list(13); tag_airpump = "trade_shuttle_dock_pump"; tag_chamber_sensor = "trade_shuttle_dock_sensor"; tag_exterior_door = "trade_shuttle_dock_outer"; tag_interior_door = "trade_shuttle_dock_inner"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
+"drE" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "admin_shuttle_dock_pump"},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "admin_shuttle_dock_airlock"; pixel_x = -28; pixel_y = 0; req_one_access = list(13); tag_airpump = "admin_shuttle_dock_pump"; tag_chamber_sensor = "admin_shuttle_dock_sensor"; tag_exterior_door = "admin_shuttle_dock_outer"; tag_interior_door = "admin_shuttle_dock_inner"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"drF" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"drG" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "admin_shuttle_dock_pump"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "admin_shuttle_dock_sensor"; pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
+"drH" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
+"drI" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "nuke_shuttle_dock_sensor"; pixel_x = -28; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1331; id_tag = "nuke_shuttle_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"drJ" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1331; id_tag = "nuke_shuttle_dock_airlock"; pixel_x = 28; pixel_y = 0; req_access = list(0); req_one_access = list(13); tag_airpump = "nuke_shuttle_dock_pump"; tag_chamber_sensor = "nuke_shuttle_dock_sensor"; tag_exterior_door = "nuke_shuttle_dock_outer"; tag_interior_door = "nuke_shuttle_dock_inner"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1331; id_tag = "nuke_shuttle_dock_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
+"drK" = (/obj/machinery/shield_diffuser,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "trade_shuttle_dock_outer"; locked = 1; name = "Dock One External Access"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
+"drL" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "admin_shuttle_dock_airlock"; name = "exterior access button"; pixel_x = 28; pixel_y = -6; req_one_access = list(13)},/obj/machinery/shield_diffuser,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "trade_shuttle_dock_outer"; locked = 1; name = "Dock One External Access"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D1)
+"drM" = (/obj/structure/sign/warning/docking_area,/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/D2)
+"drN" = (/obj/machinery/shield_diffuser,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "admin_shuttle_dock_airlock"; name = "exterior access button"; pixel_x = 28; pixel_y = -6; req_one_access = list(13)},/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "admin_shuttle_dock_outer"; locked = 1; name = "Dock Two External Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
+"drO" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1331; master_tag = "nuke_shuttle_dock_airlock"; name = "exterior access button"; pixel_x = -28; pixel_y = -6; req_one_access = list(13)},/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "nuke_shuttle_dock_outer"; locked = 1; name = "Dock Three External Airlock"; req_access = list(13)},/obj/machinery/shield_diffuser,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
+"drP" = (/obj/machinery/shield_diffuser,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "nuke_shuttle_dock_outer"; locked = 1; name = "Dock Three External Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
+"drQ" = (/turf/space,/area/syndicate_station/arrivals_dock)
+"drR" = (/turf/space,/area/shuttle/merchant/away)
+"drS" = (/turf/space,/area/shuttle/administration/station)
+"drT" = (/turf/simulated/floor/reinforced/airless,/area/thirddeck/roof)
+"drU" = (/turf/space,/area/shuttle/response_ship/thirddeck)
+"drV" = (/turf/simulated/floor/airless,/area/thirddeck/roof)
+"drW" = (/turf/simulated/wall/r_wall,/area/ai)
+"drX" = (/obj/structure/table/standard,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/structure/flora/pottedplant/unusual{name = "Steve"; pixel_y = 15},/obj/item/device/radio/intercom/custom{dir = 8; pixel_x = -21; pixel_y = 0},/obj/item/device/radio/intercom/private{dir = 4; pixel_x = 21; pixel_y = 0},/turf/simulated/floor/greengrid,/area/ai)
+"drY" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/ai)
+"drZ" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/dark,/area/ai)
+"dsa" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/dark,/area/ai)
+"dsb" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/porta_turret/ai_defense,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/dark,/area/ai)
+"dsc" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/dark,/area/ai)
+"dsd" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/ai)
+"dse" = (/obj/machinery/porta_turret/ai_defense,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/dark,/area/ai)
+"dsf" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/ai)
+"dsg" = (/turf/simulated/floor/greengrid,/area/ai)
+"dsh" = (/obj/effect/floor_decal/industrial/warning/cee,/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled/dark,/area/ai)
+"dsi" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/greengrid,/area/ai)
+"dsj" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai)
+"dsk" = (/obj/machinery/porta_turret/ai_defense,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/dark,/area/ai)
+"dsl" = (/turf/space,/area/skipjack_station/thirddeck)
+"dsm" = (/obj/machinery/power/solar{id = "foreportsolar"; name = "Port Solar Array"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/foreportsolar)
+"dsn" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/solar/foreportsolar)
+"dso" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "foreportsolar"; name = "Port Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/foreportsolar)
+"dsp" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark,/area/ai)
+"dsq" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/dark,/area/ai)
+"dsr" = (/obj/machinery/ai_slipper{icon_state = "motion0"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/greengrid,/area/ai)
+"dss" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/greengrid,/area/ai)
+"dst" = (/obj/structure/cable/cyan,/obj/machinery/power/smes/buildable{charge = 5e+006; input_attempt = 1; input_level = 200000; output_level = 200000},/obj/machinery/flasher{id = "AI"; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/plating,/area/ai)
+"dsu" = (/obj/machinery/ai_slipper{icon_state = "motion0"},/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/greengrid,/area/ai)
+"dsv" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled/dark,/area/ai)
+"dsw" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/dark,/area/ai)
+"dsx" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/solar{id = "forestarboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/forestarboardsolar)
+"dsy" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
+"dsz" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "forestarboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/forestarboardsolar)
+"dsA" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/solar{id = "foreportsolar"; name = "Port Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/foreportsolar)
+"dsB" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/foreportsolar)
+"dsC" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled/dark,/area/ai)
+"dsD" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/greengrid,/area/ai)
+"dsE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/greengrid,/area/ai)
+"dsF" = (/turf/simulated/wall/durasteel,/area/ai)
+"dsG" = (/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/greengrid,/area/ai)
+"dsH" = (/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/greengrid,/area/ai)
+"dsI" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled/dark,/area/ai)
+"dsJ" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
+"dsK" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/item/device/radio/intercom/private{pixel_y = -21},/obj/item/device/radio/intercom/custom{dir = 1; pixel_y = 21},/turf/simulated/floor/greengrid,/area/ai)
+"dsL" = (/obj/machinery/porta_turret/ai_defense,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/industrial/warning/corner,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai)
+"dsM" = (/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled/dark,/area/ai)
+"dsN" = (/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/ai)
+"dsO" = (/obj/machinery/door/airlock/hatch{icon_state = "door_locked"; id_tag = null; locked = 1; name = "AI Core"; req_access = list(16)},/turf/simulated/floor/tiled/dark,/area/ai)
+"dsP" = (/obj/machinery/ai_slipper{icon_state = "motion0"},/obj/machinery/turretid/stun{check_synth = 1; name = "AI Chamber turret control"; pixel_x = -30; pixel_y = -24},/obj/machinery/flasher{id = "AI"; pixel_x = 24; pixel_y = -25},/obj/machinery/button/remote/blast_door{desc = "A remote control-switch for the AI core maintenance door."; id = "AICore"; name = "AI Maintenance Hatch"; pixel_x = 8; pixel_y = 25; req_access = list(16)},/obj/machinery/light/small{dir = 1},/obj/machinery/camera/xray/command{c_tag = "AI - Core"; dir = 2},/turf/simulated/floor/tiled/dark,/area/ai)
+"dsQ" = (/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/dark,/area/ai)
+"dsR" = (/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/turf/simulated/floor/tiled/dark,/area/ai)
+"dsS" = (/obj/machinery/porta_turret/ai_defense,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/dark,/area/ai)
+"dsT" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/item/device/radio/intercom/private{dir = 1; pixel_y = 21},/obj/item/device/radio/intercom/custom{pixel_y = -21},/turf/simulated/floor/greengrid,/area/ai)
+"dsU" = (/turf/simulated/wall/r_wall,/area/maintenance/thirddeck/foreport)
+"dsV" = (/obj/effect/landmark/start{name = "AI"},/obj/machinery/requests_console{department = "AI"; departmentType = 5; pixel_x = 30; pixel_y = -32},/obj/machinery/newscaster/security_unit{pixel_x = -32; pixel_y = -32},/obj/item/device/radio/intercom/private{dir = 4; pixel_x = 21; pixel_y = -10},/obj/item/device/radio/intercom/custom{dir = 8; pixel_x = -21; pixel_y = -10},/obj/item/device/radio/intercom{broadcasting = 1; name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/greengrid,/area/ai)
+"dsW" = (/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc/super/critical{dir = 8; is_critical = 1; name = "west bump"; pixel_x = -24; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/greengrid,/area/ai)
+"dsX" = (/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/greengrid,/area/ai)
+"dsY" = (/turf/simulated/wall/r_wall,/area/maintenance/thirddeck/forestarboard)
+"dsZ" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
+"dta" = (/turf/simulated/wall/r_wall,/area/maintenance/solars/foreportsolar)
+"dtb" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dtc" = (/obj/machinery/alarm{pixel_y = 22},/obj/machinery/portable_atmospherics/powered/pump/filled,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dtd" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dte" = (/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dtf" = (/obj/structure/closet/crate,/obj/item/weapon/storage/box/lights/mixed,/obj/random/maintenance/security,/obj/random/maintenance/security,/obj/random/maintenance/security,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dtg" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/reinforced/airless,/area/thirddeck/roof)
+"dth" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/reinforced/airless,/area/thirddeck/roof)
+"dti" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall/r_wall,/area/ai)
+"dtj" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light,/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/tiled/dark,/area/ai)
+"dtk" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/dark,/area/ai)
+"dtl" = (/obj/machinery/ai_slipper{icon_state = "motion0"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/greengrid,/area/ai)
+"dtm" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled/dark,/area/ai)
+"dtn" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/light,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/ai)
+"dto" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dtp" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dtq" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dtr" = (/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dts" = (/obj/structure/firedoor_assembly,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dtt" = (/turf/simulated/wall/r_wall,/area/maintenance/solars/forestarboardsolar)
+"dtu" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
+"dtv" = (/obj/structure/cable/yellow,/turf/simulated/floor/airless,/area/solar/foreportsolar)
+"dtw" = (/obj/item/stack/cable_coil/yellow,/turf/simulated/floor/reinforced/airless,/area/thirddeck/roof)
+"dtx" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
+"dty" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/power/solar_control{id = "foreportsolar"; name = "Fore Port Solar Control"; track = 0},/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
+"dtz" = (/obj/machinery/light/small{dir = 1},/obj/machinery/camera/network/engineering{c_tag = "ENG - Solar Fore Port"; dir = 2},/obj/item/stack/cable_coil/yellow,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
+"dtA" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
+"dtB" = (/turf/simulated/wall,/area/maintenance/solars/foreportsolar)
+"dtC" = (/obj/machinery/light/small{dir = 8},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dtD" = (/obj/structure/ladder,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dtE" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/reinforced/airless,/area/thirddeck/roof)
+"dtF" = (/obj/machinery/porta_turret/ai_defense,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai)
+"dtG" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled/dark,/area/ai)
+"dtH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/greengrid,/area/ai)
+"dtI" = (/obj/effect/floor_decal/industrial/warning/cee{tag = "icon-warningcee (NORTH)"; icon_state = "warningcee"; dir = 1},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled/dark,/area/ai)
+"dtJ" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/dark,/area/ai)
+"dtK" = (/obj/machinery/porta_turret/ai_defense,/obj/effect/floor_decal/industrial/outline/grey,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/dark,/area/ai)
+"dtL" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dtM" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dtN" = (/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dtO" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dtP" = (/turf/simulated/wall,/area/maintenance/solars/forestarboardsolar)
+"dtQ" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/item/stack/cable_coil/yellow,/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
+"dtR" = (/obj/machinery/light/small{dir = 1},/obj/machinery/camera/network/engineering{c_tag = "ENG - Solar Fore Starboard"; dir = 2},/obj/item/stack/cable_coil/yellow,/obj/item/stack/cable_coil/yellow,/obj/item/weapon/stool,/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
+"dtS" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/power/solar_control{id = "forestarboardsolar"; name = "Fore Starboard Solar Control"; track = 0},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
+"dtT" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
+"dtU" = (/obj/structure/cable/yellow,/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
+"dtV" = (/obj/machinery/power/tracker,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless,/area/solar/foreportsolar)
+"dtW" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/airless,/area/solar/foreportsolar)
+"dtX" = (/turf/simulated/floor/airless,/area/solar/foreportsolar)
+"dtY" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless,/area/solar/foreportsolar)
+"dtZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/solar/foreportsolar)
+"dua" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; layer = 3.3; master_tag = "fore_port_solar_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = -25; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/airless,/area/solar/foreportsolar)
+"dub" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "fore_port_solar_outer"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
+"duc" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 8},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "fore_port_solar_airlock"; layer = 3.3; pixel_x = 0; pixel_y = -25; req_access = list(13); tag_airpump = "fore_port_solar_pump"; tag_chamber_sensor = "fore_port_solar_sensor"; tag_exterior_door = "fore_port_solar_outer"; tag_interior_door = "fore_port_solar_inner"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "fore_port_solar_sensor"; layer = 3.3; pixel_x = 0; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "fore_port_solar_pump"},/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
+"dud" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 4},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "fore_port_solar_pump"},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
+"due" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "fore_port_solar_inner"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
+"duf" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/meter,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; layer = 3.3; master_tag = "fore_port_solar_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = 25; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
+"dug" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
+"duh" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/binary/pump/on{dir = 8; target_pressure = 200},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
+"dui" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Fore Port Solar Access"; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
+"duj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"duk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dul" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dum" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dun" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"duo" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/thirddeck/roof)
+"dup" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/dark,/area/ai)
+"duq" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/dark,/area/ai)
+"dur" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/ai)
+"dus" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/dark,/area/ai)
+"dut" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/dark,/area/ai)
+"duu" = (/obj/structure/lattice,/obj/structure/cable{d1 = 32; d2 = 4; icon_state = "32-4"},/turf/simulated/open,/area/maintenance/thirddeck/forestarboard)
+"duv" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"duw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dux" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"duy" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Fore Starboard Solar Access"; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
+"duz" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/binary/pump/on{dir = 4; target_pressure = 200},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
+"duA" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
+"duB" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/meter,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; layer = 3.3; master_tag = "fore_starboard_solar_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
+"duC" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "fore_starboard_solar_inner"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
+"duD" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 8},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small,/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "fore_starboard_solar_pump"},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
+"duE" = (/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "fore_starboard_solar_airlock"; layer = 3.3; pixel_x = 0; pixel_y = -25; req_access = list(13); tag_airpump = "fore_starboard_solar_pump"; tag_chamber_sensor = "fore_starboard_solar_sensor"; tag_exterior_door = "fore_starboard_solar_outer"; tag_interior_door = "fore_starboard_solar_inner"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "fore_starboard_solar_sensor"; layer = 3.3; pixel_x = 0; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "fore_starboard_solar_pump"},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
+"duF" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "fore_starboard_solar_outer"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
+"duG" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; layer = 3.3; master_tag = "fore_starboard_solar_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
+"duH" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
+"duI" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
+"duJ" = (/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
+"duK" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
+"duL" = (/obj/machinery/power/tracker,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
+"duM" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/airless,/area/solar/foreportsolar)
+"duN" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
+"duO" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
+"duP" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
+"duQ" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/sign/warning/airlock{pixel_y = -32},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
+"duR" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/yellow,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/table/steel,/obj/item/stack/cable_coil/yellow,/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
+"duS" = (/obj/structure/cable,/obj/machinery/power/smes/buildable{charge = 0; RCon_tag = "Solar - Fore Port"},/turf/simulated/floor/plating,/area/maintenance/solars/foreportsolar)
+"duT" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/sign/warning/high_voltage{pixel_x = -32; pixel_y = 0},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/camera/network/engineering{c_tag = "ENG - Solar Fore Port Access"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"duU" = (/obj/structure/table/rack,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/item/clothing/glasses/meson,/obj/random/maintenance/cargo,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor,/area/maintenance/thirddeck/foreport)
+"duV" = (/obj/structure/lattice,/obj/structure/cable{d1 = 32; icon_state = "32-1"},/turf/simulated/open,/area/maintenance/thirddeck/foreport)
+"duW" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/greengrid,/area/ai)
+"duX" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"duY" = (/obj/structure/ladder,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"duZ" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/sign/warning/high_voltage{pixel_x = 32; pixel_y = 0},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/camera/network/engineering{c_tag = "ENG - Solar Fore Starboard Access"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dva" = (/obj/structure/cable,/obj/machinery/power/smes/buildable{charge = 0; RCon_tag = "Solar - Fore Starboard"},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
+"dvb" = (/obj/machinery/power/terminal{dir = 8},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/structure/cable/yellow,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
+"dvc" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/structure/sign/warning/airlock{pixel_y = -32},/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
+"dvd" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
+"dve" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
+"dvf" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/forestarboardsolar)
+"dvg" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
+"dvh" = (/turf/space,/area/ninja_dojo/thirddeck)
+"dvi" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/foreportsolar)
+"dvj" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_one_access = list(12,19)},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dvk" = (/turf/simulated/wall,/area/maintenance/thirddeck/foreport)
+"dvl" = (/turf/simulated/wall/r_wall,/area/ai/ai_upload)
+"dvm" = (/obj/machinery/door/airlock/vault/bolted{name = "AI core"; req_access = list(16)},/obj/machinery/door/blast/regular{id = "AICore"; name = "AI core maintenance hatch"},/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/ai)
+"dvn" = (/obj/structure/sign/warning/lethal_turrets,/turf/simulated/wall/r_wall,/area/ai)
+"dvo" = (/obj/structure/sign/kiddieplaque,/turf/simulated/wall/r_wall,/area/ai/ai_upload)
+"dvp" = (/turf/simulated/wall,/area/maintenance/thirddeck/forestarboard)
+"dvq" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_one_access = list(12,19)},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dvr" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
+"dvs" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dvt" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/freeform,/obj/item/weapon/aiModule/protectStation{pixel_x = -3; pixel_y = 2},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
+"dvu" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/porta_turret/ai_defense,/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
+"dvv" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
+"dvw" = (/obj/machinery/computer/aiupload,/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
+"dvx" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/device/radio/intercom/locked/ai_private{dir = 1; pixel_x = -36; pixel_y = 21},/obj/machinery/flasher{id = "AI"; pixel_x = -22; pixel_y = 24},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
+"dvy" = (/obj/machinery/computer/borgupload,/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
+"dvz" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/camera/network/command{c_tag = "AI - Upload"; dir = 2},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
+"dvA" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/nanotrasen,/obj/item/weapon/aiModule/reset{pixel_x = 2; pixel_y = 3; pixel_z = 0},/obj/structure/window/reinforced{dir = 8},/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
+"dvB" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dvC" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dvD" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dvE" = (/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
+"dvF" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
+"dvG" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
+"dvH" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
+"dvI" = (/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/ai_slipper{icon_state = "motion0"},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
+"dvJ" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
+"dvK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
+"dvL" = (/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
+"dvM" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dvN" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dvO" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dvP" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36; pixel_y = 0},/obj/structure/cable/cyan,/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
+"dvQ" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/porta_turret/ai_defense,/obj/machinery/light,/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
+"dvR" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
+"dvS" = (/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
+"dvT" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dvU" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dvV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless,/area/solar/foreportsolar)
+"dvW" = (/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dvX" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/asimov,/obj/item/weapon/aiModule/freeformcore,/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Core Modules"; req_access = list(20)},/obj/item/weapon/aiModule/corp,/obj/item/weapon/aiModule/paladin,/obj/item/weapon/aiModule/robocop,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
+"dvY" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
+"dvZ" = (/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
+"dwa" = (/obj/item/device/radio/intercom/locked/ai_private{dir = 4; pixel_x = 21},/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
+"dwb" = (/obj/structure/extinguisher_cabinet{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
+"dwc" = (/obj/structure/table/standard,/obj/item/weapon/aiModule/oxygen,/obj/item/weapon/aiModule/oneHuman,/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "High-Risk Modules"; req_access = list(20)},/obj/item/weapon/aiModule/purge,/obj/item/weapon/aiModule/antimov,/obj/item/weapon/aiModule/teleporterOffline,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/bluegrid,/area/ai/ai_upload)
+"dwd" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dwe" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless,/area/solar/forestarboardsolar)
+"dwf" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dwg" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dwh" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dwi" = (/turf/simulated/wall/r_wall,/area/ai/ai_server_room)
+"dwj" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/ai/ai_server_room)
+"dwk" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/highsecurity{name = "AI Upload"; req_access = list(16)},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload)
+"dwl" = (/turf/simulated/wall/r_wall,/area/ai/ai_cyborg_station)
+"dwm" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/ai/ai_cyborg_station)
+"dwn" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dwo" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/structure/closet/crate,/obj/random/powercell,/obj/random/powercell,/obj/random/powercell,/obj/random/toolbox,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dwp" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dwq" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dwr" = (/obj/machinery/atmospherics/binary/pump/on{dir = 1; target_pressure = 200},/obj/structure/table/rack,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/storage/belt/utility,/obj/random/maintenance/security,/obj/random/maintenance/security,/obj/random/maintenance/security,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dws" = (/obj/machinery/message_server,/obj/machinery/camera/network/command{c_tag = "AI - Messaging Server"; dir = 4},/turf/simulated/floor/bluegrid,/area/ai/ai_server_room)
+"dwt" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid,/area/ai/ai_server_room)
+"dwu" = (/obj/machinery/blackbox_recorder,/turf/simulated/floor/bluegrid,/area/ai/ai_server_room)
+"dwv" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/item/device/radio/intercom/locked/ai_private{dir = 1; pixel_y = 21},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/camera/network/command{c_tag = "AI - Upload Foyer"; dir = 2},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload_foyer)
+"dww" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload_foyer)
+"dwx" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/turretid/stun{control_area = "\improper AI Upload Chamber"; name = "AI Upload turret control"; pixel_x = 0; pixel_y = 24},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 0},/obj/structure/cable/cyan{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/flasher{id = "AIFoyer"; pixel_x = 0; pixel_y = 36},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload_foyer)
+"dwy" = (/obj/machinery/recharge_station,/turf/simulated/floor/bluegrid,/area/ai/ai_cyborg_station)
+"dwz" = (/obj/machinery/recharge_station,/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid,/area/ai/ai_cyborg_station)
+"dwA" = (/obj/structure/table/standard,/obj/item/weapon/phone,/obj/machinery/camera/network/command{c_tag = "AI - Cyborg Station"; dir = 8},/turf/simulated/floor/bluegrid,/area/ai/ai_cyborg_station)
+"dwB" = (/obj/machinery/atmospherics/binary/pump/on{dir = 1; target_pressure = 200},/obj/structure/largecrate,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dwC" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dwD" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dwE" = (/obj/machinery/atmospherics/pipe/simple/visible/universal,/obj/structure/table/rack{dir = 1},/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dwF" = (/obj/machinery/computer/message_monitor,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/bluegrid,/area/ai/ai_server_room)
+"dwG" = (/obj/structure/bed/chair/office/light{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai/ai_server_room)
+"dwH" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai/ai_server_room)
+"dwI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/dark,/area/ai/ai_server_room)
+"dwJ" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/highsecurity{name = "Messaging Server"; req_access = list(16)},/turf/simulated/floor/tiled/dark,/area/ai/ai_server_room)
+"dwK" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload_foyer)
+"dwL" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/hologram/holopad,/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled/dark,/area/ai/ai_upload_foyer)
+"dwM" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light,/turf/simulated/floor/tiled/dark,/area/ai/ai_upload_foyer)
+"dwN" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/highsecurity{name = "Synthetic Storage Access"; req_access = list(16)},/turf/simulated/floor/tiled/dark,/area/ai/ai_cyborg_station)
+"dwO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/landmark/start{name = "Cyborg"},/turf/simulated/floor/tiled/dark,/area/ai/ai_cyborg_station)
+"dwP" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/landmark/start{name = "Cyborg"},/turf/simulated/floor/tiled/dark,/area/ai/ai_cyborg_station)
+"dwQ" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/bed/chair/office/light{dir = 4},/obj/effect/landmark{name = "JoinLateCyborg"},/turf/simulated/floor/tiled/dark,/area/ai/ai_cyborg_station)
+"dwR" = (/obj/machinery/computer/aifixer,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/bluegrid,/area/ai/ai_cyborg_station)
+"dwS" = (/obj/machinery/atmospherics/pipe/simple/visible/universal,/obj/structure/largecrate,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dwT" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dwU" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dwV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dwW" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/hop/quarters)
+"dwX" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/hop/quarters)
+"dwY" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/hop/quarters)
+"dwZ" = (/turf/simulated/wall/r_wall,/area/maintenance/substation/command)
+"dxa" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/maintenance/substation/command)
+"dxb" = (/obj/structure/closet/crate{name = "Camera Assembly Crate"},/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/obj/item/weapon/camera_assembly,/turf/simulated/floor/bluegrid,/area/ai/ai_server_room)
+"dxc" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/dark,/area/ai/ai_server_room)
+"dxd" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/tiled/dark,/area/ai/ai_server_room)
+"dxe" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{pixel_x = 36; pixel_y = 0},/obj/structure/cable/cyan,/turf/simulated/floor/tiled/dark,/area/ai/ai_server_room)
+"dxf" = (/turf/simulated/wall/r_wall,/area/ai/ai_upload_foyer)
+"dxg" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/highsecurity{name = "AI Upload Access"; req_access = list(16)},/turf/simulated/floor/tiled/dark,/area/ai/ai_upload_foyer)
+"dxh" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36; pixel_y = 0},/obj/structure/cable/cyan,/turf/simulated/floor/tiled/dark,/area/ai/ai_cyborg_station)
+"dxi" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/tiled/dark,/area/ai/ai_cyborg_station)
+"dxj" = (/obj/effect/landmark{name = "JoinLateCyborg"},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled/dark,/area/ai/ai_cyborg_station)
+"dxk" = (/obj/machinery/cryopod/robot{dir = 4},/turf/simulated/floor/bluegrid,/area/ai/ai_cyborg_station)
+"dxl" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/cmo/quarters)
+"dxm" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/cmo/quarters)
+"dxn" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/cmo/quarters)
+"dxo" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/hor/quarters)
+"dxp" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/hor/quarters)
+"dxq" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/hor/quarters)
+"dxr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dxs" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dxt" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dxu" = (/obj/structure/closet/secure_closet/hop2,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hop/quarters)
+"dxv" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hop/quarters)
+"dxw" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp/green,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hop/quarters)
+"dxx" = (/turf/simulated/wall,/area/maintenance/substation/command)
+"dxy" = (/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/maintenance/substation/command)
+"dxz" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor,/area/maintenance/substation/command)
+"dxA" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/zpipe/down/scrubbers,/obj/machinery/atmospherics/pipe/zpipe/down/supply,/obj/structure/disposalpipe/down{dir = 8},/obj/structure/cable{d1 = 32; d2 = 2; icon_state = "32-2"},/turf/simulated/open,/area/maintenance/substation/command)
+"dxB" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/ai/ai_server_room)
+"dxC" = (/obj/structure/sign/warning/secure_area,/turf/simulated/wall/r_wall,/area/ai/ai_server_room)
+"dxD" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
+"dxE" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
+"dxF" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
+"dxG" = (/obj/structure/sign/warning/lethal_turrets,/turf/simulated/wall/r_wall,/area/ai/ai_cyborg_station)
+"dxH" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/ai/ai_cyborg_station)
+"dxI" = (/obj/structure/closet/secure_closet/CMO/wardrobe,/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/cmo/quarters)
+"dxJ" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/cmo/quarters)
+"dxK" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp/green,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/cmo/quarters)
+"dxL" = (/turf/simulated/wall,/area/crew_quarters/heads/sc/cmo/quarters)
+"dxM" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp/green,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hor/quarters)
+"dxN" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hor/quarters)
+"dxO" = (/obj/structure/closet/secure_closet/RD/wardrobe,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hor/quarters)
+"dxP" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dxQ" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dxR" = (/obj/structure/closet,/obj/item/weapon/storage/backpack,/obj/random/maintenance/clean,/obj/random/maintenance/cargo,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dxS" = (/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36; pixel_y = -6},/obj/machinery/button/windowtint{id = "hopquarters"; pixel_x = -36; pixel_y = 6},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hop/quarters)
+"dxT" = (/obj/structure/bed/chair/office/dark{dir = 1},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hop/quarters)
+"dxU" = (/obj/structure/table/standard,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/blue_hop,/obj/item/weapon/pen/multi,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hop/quarters)
+"dxV" = (/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green,/obj/machinery/power/sensor{name = "Powernet Sensor - Command Subgrid"; name_tag = "Command Subgrid"},/obj/machinery/light/small{dir = 8},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor,/area/maintenance/substation/command)
+"dxW" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/terminal,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor,/area/maintenance/substation/command)
+"dxX" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/obj/effect/floor_decal/industrial/warning,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor,/area/maintenance/substation/command)
+"dxY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dxZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dya" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dyb" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dyc" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dyd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dye" = (/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36; pixel_y = -6},/obj/machinery/button/windowtint{id = "cmoquarters"; pixel_x = -36; pixel_y = 6},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/cmo/quarters)
+"dyf" = (/obj/structure/bed/chair/office/dark{dir = 1},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/cmo/quarters)
+"dyg" = (/obj/structure/table/standard,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/white_cmo,/obj/item/weapon/pen/multi,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/cmo/quarters)
+"dyh" = (/obj/structure/table/standard,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/white_rd,/obj/item/weapon/pen/multi,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hor/quarters)
+"dyi" = (/obj/structure/bed/chair/office/dark{dir = 1},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hor/quarters)
+"dyj" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/light_switch{pixel_x = 36; pixel_y = -6},/obj/machinery/button/windowtint{id = "rdquarters"; pixel_x = 36; pixel_y = 6},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hor/quarters)
+"dyk" = (/obj/structure/closet/crate,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/effect/decal/cleanable/dirt,/obj/random/maintenance/research,/obj/random/maintenance/research,/obj/random/maintenance/cargo,/obj/random/maintenance/cargo,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dyl" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dym" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_one_access = list(12,19)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/foreport)
+"dyn" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hop/quarters)
+"dyo" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hop/quarters)
+"dyp" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/hop,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hop/quarters)
+"dyq" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor,/area/maintenance/substation/command)
+"dyr" = (/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/smes/buildable{charge = 0; RCon_tag = "Substation - Command"},/turf/simulated/floor,/area/maintenance/substation/command)
+"dys" = (/obj/machinery/power/breakerbox/activated{RCon_tag = "Command Substation Bypass"},/turf/simulated/floor,/area/maintenance/substation/command)
+"dyt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dyu" = (/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dyv" = (/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dyw" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/corner/blue{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dyx" = (/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dyy" = (/obj/effect/floor_decal/corner/blue{dir = 10},/obj/machinery/camera/network/third_deck{c_tag = "Third Deck - Central Fore"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dyz" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dyA" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/corner/blue{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dyB" = (/obj/effect/floor_decal/corner/blue{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dyC" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/cmo/quarters)
+"dyD" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/cmo/quarters)
+"dyE" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/medical,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/cmo/quarters)
+"dyF" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/rd,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hor/quarters)
+"dyG" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hor/quarters)
+"dyH" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hor/quarters)
+"dyI" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_one_access = list(12,19)},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/thirddeck/forestarboard)
+"dyJ" = (/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/port)
+"dyK" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/port)
+"dyL" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/port)
+"dyM" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/port)
+"dyN" = (/obj/machinery/firealarm{pixel_y = 24},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dyO" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dyP" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dyQ" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/port)
+"dyR" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/thirddeck/port)
+"dyS" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced/polarized{id = "hopquarters"},/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/hop/quarters)
+"dyT" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{name = "Head of Personnel Quarters"; req_access = list(57)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hop/quarters)
+"dyU" = (/turf/simulated/wall,/area/crew_quarters/heads/sc/hop/quarters)
+"dyV" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{name = "Command Substation"; req_one_access = list(11,19,24,47)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/maintenance/substation/command)
+"dyW" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/maintenance/substation/command)
+"dyX" = (/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/central)
+"dyY" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/cmo/quarters)
+"dyZ" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced/polarized{id = "cmoquarters"},/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/cmo/quarters)
+"dza" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{id_tag = null; name = "CMO's Quarters"; req_access = list(40)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/cmo/quarters)
+"dzb" = (/turf/simulated/wall,/area/crew_quarters/heads/sc/hor/quarters)
+"dzc" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{id_tag = null; name = "Research Director Quarters"; req_access = list(30)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hor/quarters)
+"dzd" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced/polarized{id = "rdquarters"},/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/hor/quarters)
+"dze" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/thirddeck/starboard)
+"dzf" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard)
+"dzg" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dzh" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dzi" = (/obj/machinery/firealarm{pixel_y = 24},/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dzj" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard)
+"dzk" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard)
+"dzl" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard)
+"dzm" = (/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard)
+"dzn" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless,/area/hallway/primary/thirddeck/port)
+"dzo" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "d3_port_outer"; locked = 1; name = "External Airlock Access"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/port)
+"dzp" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "d3_port_pump"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "d3_port_sensor"; pixel_x = 0; pixel_y = 25},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dzq" = (/obj/structure/sign/warning/airlock{pixel_y = 32},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "d3_port_pump"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dzr" = (/obj/machinery/door/airlock/glass_external{frequency = 1379; icon_state = "door_locked"; id_tag = "crg_aft__inner"; locked = 1; name = "Internal Airlock Access"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/port)
+"dzs" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "d3_port_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = 26; req_access = list(18)},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dzt" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dzu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dzv" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dzw" = (/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dzx" = (/obj/effect/floor_decal/corner/blue{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dzy" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/effect/floor_decal/corner/blue{dir = 5},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dzz" = (/obj/effect/floor_decal/corner/blue{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dzA" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dzB" = (/obj/machinery/camera/network/third_deck{c_tag = "Third Deck - Port Hallway One"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dzC" = (/obj/machinery/firealarm{pixel_y = 24},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dzD" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dzE" = (/obj/structure/sign/warning/high_voltage{pixel_y = 32},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dzF" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dzG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dzH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dzI" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dzJ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/flora/pottedplant/fern,/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
+"dzK" = (/turf/unsimulated/mask,/area/hallway/primary/thirddeck/central)
+"dzL" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/flora/pottedplant/stoutbush,/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
+"dzM" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dzN" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dzO" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dzP" = (/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dzQ" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dzR" = (/obj/effect/floor_decal/corner/blue{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dzS" = (/obj/machinery/alarm{pixel_y = 22},/obj/effect/floor_decal/corner/blue{dir = 5},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dzT" = (/obj/effect/floor_decal/corner/blue{dir = 1},/obj/machinery/camera/network/third_deck{c_tag = "Third Deck - Starboard Hallway One"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dzU" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/corner/blue{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dzV" = (/obj/effect/floor_decal/corner/blue{dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dzW" = (/obj/effect/floor_decal/corner/blue{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dzX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dzY" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dzZ" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "d3_starboard_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 26; req_access = list(18)},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dAa" = (/obj/machinery/door/airlock/glass_external{frequency = 1379; icon_state = "door_locked"; id_tag = "d3_starboard_inner"; locked = 1; name = "Internal Airlock Access"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/starboard)
+"dAb" = (/obj/structure/sign/warning/airlock{pixel_y = 32},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "d3_starboard_pump"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dAc" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "d3_starboard_pump"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "d3_starboard_sensor"; pixel_x = 0; pixel_y = 25},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dAd" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "d3_starboard_outer"; locked = 1; name = "External Airlock Access"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/starboard)
+"dAe" = (/obj/machinery/light/small{dir = 1},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/airless,/area/hallway/primary/thirddeck/starboard)
+"dAf" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "d3_port_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = -26; req_access = list(18)},/turf/simulated/floor/airless,/area/hallway/primary/thirddeck/port)
+"dAg" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "d3_port_airlock"; pixel_x = 0; pixel_y = -26; req_access = list(18); tag_airpump = "d3_port_pump"; tag_chamber_sensor = "d3_port_sensor"; tag_exterior_door = "d3_port_outer"; tag_interior_door = "d3_port_inner"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "d3_port_pump"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAh" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "d3_port_pump"},/obj/machinery/light/small,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAj" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAk" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/camera/network/third_deck{c_tag = "Third Deck - Port Hallway Two"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAl" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/hallway/primary/thirddeck/port)
+"dAm" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAn" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAo" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAp" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAq" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAr" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAs" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAt" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAu" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAv" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/hallway/primary/thirddeck/port)
+"dAw" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dAx" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/corner/blue{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dAy" = (/obj/structure/closet/emcloset,/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
+"dAz" = (/obj/effect/floor_decal/corner/blue{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dAA" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dAB" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/hallway/primary/thirddeck/starboard)
+"dAC" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dAD" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dAE" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dAF" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dAG" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dAH" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dAI" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/camera/network/third_deck{c_tag = "Third Deck - Starboard Hallway Two"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dAJ" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dAK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dAL" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/light/small,/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "d3_starboard_pump"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dAM" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "d3_starboard_pump"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "d3_starboard_airlock"; pixel_x = 0; pixel_y = -26; req_access = list(18); tag_airpump = "d3_starboard_pump"; tag_chamber_sensor = "d3_starboard_sensor"; tag_exterior_door = "d3_starboard_outer"; tag_interior_door = "d3_starboard_inner"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dAN" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "d3_starboard_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -26; req_access = list(18)},/turf/simulated/floor/airless,/area/hallway/primary/thirddeck/starboard)
+"dAO" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/port)
+"dAP" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/port)
+"dAQ" = (/obj/structure/sign/deck/third,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/port)
+"dAR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAS" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAT" = (/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAU" = (/obj/effect/floor_decal/corner/blue{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAV" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/corner/blue{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAW" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAX" = (/obj/effect/floor_decal/corner/blue{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dAY" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dAZ" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/effect/floor_decal/corner/blue{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dBa" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/obj/effect/floor_decal/corner/blue{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dBb" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dBc" = (/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dBd" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dBe" = (/obj/effect/floor_decal/corner/blue{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dBf" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/green,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dBg" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dBh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dBi" = (/obj/structure/sign/deck/third,/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard)
+"dBj" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard)
+"dBk" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard)
+"dBl" = (/turf/simulated/shuttle/wall,/area/shuttle/escape_pod7/station)
+"dBm" = (/turf/simulated/shuttle/wall/no_join{base_state = "orange"; icon = 'icons/turf/shuttle_orange.dmi'; icon_state = "orange"},/area/shuttle/escape_pod7/station)
+"dBn" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall,/area/shuttle/escape_pod7/station)
+"dBo" = (/turf/simulated/wall,/area/hallway/primary/thirddeck/port)
+"dBp" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dBq" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dBr" = (/obj/machinery/alarm{dir = 8; pixel_x = 25; pixel_y = 0},/obj/effect/floor_decal/corner/white,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dBs" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/restroom)
+"dBt" = (/turf/simulated/wall,/area/crew_quarters/heads/sc/restroom)
+"dBu" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{name = "Command Restroom"; req_access = list(19)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
+"dBv" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/chief/quarters)
+"dBw" = (/turf/simulated/wall,/area/crew_quarters/heads/sc/chief/quarters)
+"dBx" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{name = "Chief Engineer Quarters"; req_access = list(56)},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/chief/quarters)
+"dBy" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced/polarized{id = "cequarters"},/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/chief/quarters)
+"dBz" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/chief/quarters)
+"dBA" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/camera/network/third_deck{c_tag = "Third Deck - Central Port"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dBB" = (/obj/structure/table/glass,/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
+"dBC" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/camera/network/third_deck{c_tag = "Third Deck - Central Starboard"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dBD" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/hos/quarters)
+"dBE" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced/polarized{id = "hosquarters"},/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/hos/quarters)
+"dBF" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{id_tag = null; name = "Head of Security Quarters"; req_access = list(58)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos/quarters)
+"dBG" = (/turf/simulated/wall,/area/crew_quarters/heads/sc/hos/quarters)
+"dBH" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/hos/quarters)
+"dBI" = (/turf/simulated/wall,/area/crew_quarters/heads/sc/bs)
+"dBJ" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/command{name = "Secretary Quarters"; req_access = list(19)},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/bs)
+"dBK" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced/polarized{id = "bsquarters"},/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/bs)
+"dBL" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/bs)
+"dBM" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/obj/effect/floor_decal/corner/white{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dBN" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dBO" = (/turf/simulated/wall,/area/hallway/primary/thirddeck/starboard)
+"dBP" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 8},/turf/simulated/shuttle/wall,/area/shuttle/escape_pod8/station)
+"dBQ" = (/turf/simulated/shuttle/wall,/area/shuttle/escape_pod8/station)
+"dBR" = (/turf/simulated/shuttle/wall/no_join{base_state = "orange"; icon = 'icons/turf/shuttle_orange.dmi'; icon_state = "orange"},/area/shuttle/escape_pod8/station)
+"dBS" = (/obj/structure/grille,/obj/structure/window/reinforced/full,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4; health = 1e+006},/turf/simulated/shuttle/plating,/area/shuttle/escape_pod7/station)
+"dBT" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod{frequency = 1380; id_tag = "escape_pod_7"; pixel_x = 0; pixel_y = -25; tag_door = "escape_pod_7_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod7/station)
+"dBU" = (/obj/structure/bed/chair{dir = 8},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/structure/closet/walllocker/emerglocker{pixel_y = -32},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod7/station)
+"dBV" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 0; pixel_y = -30},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod7/station)
+"dBW" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_7_hatch"; locked = 1; name = "Escape Pod Hatch 7"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod7/station)
+"dBX" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_7_berth_hatch"; locked = 1; name = "Escape Pod 7"; req_access = list(13)},/turf/simulated/floor,/area/hallway/primary/thirddeck/port)
+"dBY" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth{frequency = 1380; id_tag = "escape_pod_7_berth"; pixel_x = -25; pixel_y = 30; tag_door = "escape_pod_7_berth_hatch"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dBZ" = (/obj/effect/floor_decal/corner/white,/obj/effect/floor_decal/corner/red{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dCa" = (/obj/machinery/recharge_station,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
+"dCb" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
+"dCc" = (/obj/structure/sink{pixel_y = 16},/obj/structure/mirror{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
+"dCd" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
+"dCe" = (/obj/structure/table/standard,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
+"dCf" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/ce,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/chief/quarters)
+"dCg" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/chief/quarters)
+"dCh" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/chief/quarters)
+"dCi" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dCj" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 6},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dCk" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/flora/pottedplant/stoutbush,/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
+"dCl" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/structure/flora/pottedplant/fern,/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
+"dCm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 9},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dCn" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dCo" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos/quarters)
+"dCp" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos/quarters)
+"dCq" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/hos,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos/quarters)
+"dCr" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/bs)
+"dCs" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/bs)
+"dCt" = (/obj/structure/closet/lawcloset,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/bs)
+"dCu" = (/obj/effect/floor_decal/corner/red{dir = 1},/obj/effect/floor_decal/corner/white{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dCv" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth{frequency = 1380; id_tag = "escape_pod_8_berth"; pixel_x = 25; pixel_y = 30; tag_door = "escape_pod_8_berth_hatch"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dCw" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_8_berth_hatch"; locked = 1; name = "Escape Pod 8"; req_access = list(13)},/turf/simulated/floor,/area/hallway/primary/thirddeck/starboard)
+"dCx" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_pod_8_hatch"; locked = 1; name = "Escape Pod Hatch 8"; req_access = list(13)},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod8/station)
+"dCy" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 0; pixel_y = 30},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod8/station)
+"dCz" = (/obj/structure/bed/chair{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/structure/closet/walllocker/emerglocker{pixel_y = 32},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod8/station)
+"dCA" = (/obj/structure/bed/chair{dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod{frequency = 1380; id_tag = "escape_pod_8"; pixel_x = 0; pixel_y = 25; tag_door = "escape_pod_8_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod8/station)
+"dCB" = (/obj/structure/grille,/obj/structure/window/reinforced/full,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4; health = 1e+006},/turf/simulated/shuttle/plating,/area/shuttle/escape_pod8/station)
+"dCC" = (/obj/structure/sign/warning/pods{dir = 8},/turf/simulated/wall,/area/hallway/primary/thirddeck/port)
+"dCD" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dCE" = (/obj/effect/floor_decal/corner/white,/obj/effect/floor_decal/corner/red{dir = 4},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/port)
+"dCF" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/restroom)
+"dCG" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
+"dCH" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
+"dCI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
+"dCJ" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
+"dCK" = (/obj/structure/table/standard,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/yellow_ce,/obj/item/weapon/pen/multi,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/chief/quarters)
+"dCL" = (/obj/structure/bed/chair/office/dark,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/chief/quarters)
+"dCM" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/button/windowtint{id = "cequarters"; pixel_x = 36; pixel_y = 6},/obj/machinery/light_switch{pixel_x = 36; pixel_y = -6},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/chief/quarters)
+"dCN" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/corner/blue{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dCO" = (/obj/structure/sign/directions/engineering{dir = 1; pixel_y = 10},/obj/structure/sign/directions/cargo{dir = 1},/obj/structure/sign/directions/security{dir = 1; pixel_y = -10},/turf/simulated/wall,/area/hallway/primary/thirddeck/central)
+"dCP" = (/obj/structure/sign/directions/bridge{dir = 2; pixel_y = 10},/obj/structure/sign/directions/science{dir = 1},/obj/structure/sign/directions/medical{dir = 1; pixel_y = -10},/turf/simulated/wall,/area/hallway/primary/thirddeck/central)
+"dCQ" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
+"dCR" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
+"dCS" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled/dark,/area/hallway/primary/thirddeck/central)
+"dCT" = (/obj/structure/sign/directions/evac{dir = 1},/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/central)
+"dCU" = (/obj/effect/floor_decal/corner/blue{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dCV" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/light_switch{pixel_x = -36; pixel_y = -6},/obj/machinery/button/windowtint{id = "hosquarters"; pixel_x = -36; pixel_y = 6},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos/quarters)
+"dCW" = (/obj/structure/bed/chair/office/dark,/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos/quarters)
+"dCX" = (/obj/structure/table/standard,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/red_hos,/obj/item/weapon/pen/multi,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos/quarters)
+"dCY" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/bs)
+"dCZ" = (/obj/structure/bed/chair/office/dark,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/bs)
+"dDa" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/button/windowtint{id = "bsoffice"; pixel_x = 36; pixel_y = 6},/obj/machinery/light_switch{pixel_x = 36; pixel_y = -6},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/bs)
+"dDb" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/starboard)
+"dDc" = (/obj/effect/floor_decal/corner/red{dir = 1},/obj/effect/floor_decal/corner/white{dir = 8},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dDd" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/starboard)
+"dDe" = (/obj/structure/sign/warning/pods{dir = 4},/turf/simulated/wall,/area/hallway/primary/thirddeck/starboard)
+"dDf" = (/turf/simulated/wall/r_wall,/area/maintenance/thirddeck/aftport)
+"dDg" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_one_access = list(12,19)},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dDh" = (/turf/simulated/wall,/area/maintenance/thirddeck/aftport)
+"dDi" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
+"dDj" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
+"dDk" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
+"dDl" = (/obj/machinery/shower{dir = 1},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
+"dDm" = (/obj/structure/undies_wardrobe,/obj/structure/window/basic{dir = 8},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/restroom)
+"dDn" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp/green,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/chief/quarters)
+"dDo" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/chief/quarters)
+"dDp" = (/obj/structure/closet/secure_closet/engineering_chief/wardrobe,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/chief/quarters)
+"dDq" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dDr" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dDs" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/corner/blue{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dDt" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/corner/blue{dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dDu" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/corner/blue{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dDv" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dDw" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/corner/blue{dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dDx" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dDy" = (/obj/structure/closet/secure_closet/hos/wardrobe,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos/quarters)
+"dDz" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos/quarters)
+"dDA" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp/green,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/hos/quarters)
+"dDB" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/blue,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/bs)
+"dDC" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/blue,/obj/item/weapon/pen/multi,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/bs)
+"dDD" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/blue,/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/sc/bs)
+"dDE" = (/turf/simulated/wall/r_wall,/area/maintenance/thirddeck/aftstarboard)
+"dDF" = (/turf/simulated/wall,/area/maintenance/thirddeck/aftstarboard)
+"dDG" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_one_access = list(12,19)},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dDH" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dDI" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dDJ" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dDK" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dDL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dDM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dDN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dDO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dDP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dDQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/third_deck{c_tag = "Third Deck - Central Aft"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dDR" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dDS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dDT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dDU" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dDV" = (/obj/structure/closet,/obj/item/weapon/storage/backpack,/obj/random/maintenance/medical,/obj/random/maintenance/medical,/obj/random/maintenance/medical,/obj/random/firstaid,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dDW" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dDX" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dDY" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dDZ" = (/turf/simulated/wall/r_wall,/area/bridge/meeting_room)
+"dEa" = (/obj/structure/flora/pottedplant/largebush,/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dEb" = (/obj/structure/extinguisher_cabinet{pixel_y = 30},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dEc" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dEd" = (/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dEe" = (/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dEf" = (/obj/machinery/newscaster{pixel_y = 30},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dEg" = (/obj/machinery/vending/coffee,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dEh" = (/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/bridge)
+"dEi" = (/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/bridge)
+"dEj" = (/obj/structure/sign/warning/secure_area,/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/central)
+"dEk" = (/turf/simulated/wall,/area/hallway/primary/thirddeck/central)
+"dEl" = (/obj/structure/sign/deck/third,/turf/simulated/wall,/area/hallway/primary/thirddeck/central)
+"dEm" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dEn" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dEo" = (/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled,/area/bridge)
+"dEp" = (/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/bridge)
+"dEq" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/sd)
+"dEr" = (/obj/structure/table/wooden_reinforced,/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/computer/security/telescreen/entertainment{icon_state = "frame"; pixel_x = -32; pixel_y = 0},/obj/item/device/flashlight/lamp/green,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
+"dEs" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/storage/photo_album{pixel_y = -10},/obj/item/device/camera,/obj/machinery/firealarm{pixel_y = 24},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
+"dEt" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/captain,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
+"dEu" = (/obj/structure/closet/wardrobe/captain{name = "station director's wardrobe"},/obj/random/drinkbottle,/obj/machinery/light{dir = 1},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
+"dEv" = (/obj/structure/sink{pixel_y = 16},/obj/structure/mirror{pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/sd)
+"dEw" = (/obj/structure/table/standard,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/item/weapon/soap/deluxe,/obj/item/weapon/towel{color = "#FFD700"; name = "gold towel"},/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/sd)
+"dEx" = (/obj/structure/closet,/obj/item/weapon/weldingtool,/obj/effect/decal/cleanable/dirt,/obj/random/maintenance/clean,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dEy" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dEz" = (/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dEA" = (/obj/machinery/button/remote/blast_door{id = "heads_meeting"; name = "Security Shutters"; pixel_x = -26; pixel_y = 0},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dEB" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
+"dEC" = (/obj/structure/bed/chair/comfy/blue,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
+"dED" = (/obj/structure/bed/chair/comfy/blue,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
+"dEE" = (/obj/structure/bed/chair/comfy/blue,/turf/simulated/floor/carpet,/area/bridge/meeting_room)
+"dEF" = (/turf/simulated/floor/carpet,/area/bridge/meeting_room)
+"dEG" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{pixel_x = 36; pixel_y = 0},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dEH" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access = list(19)},/turf/simulated/floor/tiled,/area/bridge)
+"dEI" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access = list(19)},/turf/simulated/floor/tiled,/area/bridge)
+"dEJ" = (/turf/simulated/open,/area/hallway/primary/thirddeck/central)
+"dEK" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dEL" = (/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dEM" = (/obj/machinery/vending/snack,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dEN" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_command{id_tag = "sbridgedoor"; name = "Bridge"; req_access = list(19)},/turf/simulated/floor/tiled,/area/bridge)
+"dEO" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/glass_command{id_tag = "sbridgedoor"; name = "Bridge"; req_access = list(19)},/turf/simulated/floor/tiled,/area/bridge)
+"dEP" = (/obj/structure/table/wooden_reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/weapon/storage/box/matches,/obj/item/clothing/mask/smokable/cigarette/cigar,/obj/item/weapon/reagent_containers/food/drinks/flask{pixel_x = 8},/obj/random_multi/single_item/captains_spare_id,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
+"dEQ" = (/obj/structure/bed/chair/comfy/brown{dir = 8},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
+"dER" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
+"dES" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
+"dET" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Bathroom"},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/sd)
+"dEU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/sd)
+"dEV" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/sd)
+"dEW" = (/obj/structure/closet/crate,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/effect/decal/cleanable/dirt,/obj/random/maintenance/medical,/obj/random/maintenance/medical,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dEX" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dEY" = (/obj/structure/table/steel,/obj/random/maintenance/engineering,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dEZ" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dFa" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "heads_meeting"; name = "Meeting Room Window Shutters"; opacity = 0},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green,/turf/simulated/floor/plating,/area/bridge/meeting_room)
+"dFb" = (/obj/structure/bed/chair/comfy/blue{dir = 4},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
+"dFc" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/folder/red,/obj/item/weapon/folder/blue{pixel_x = -2; pixel_y = -2},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
+"dFd" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/effect/landmark{name = "blobstart"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
+"dFe" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/book/manual/security_space_law,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
+"dFf" = (/obj/structure/bed/chair/comfy/blue{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
+"dFg" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dFh" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/command{name = "Conference Room"; req_access = list(19)},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dFi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/turf/simulated/floor/tiled,/area/bridge)
+"dFj" = (/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j2"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/bridge)
+"dFk" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/central)
+"dFl" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dFm" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dFn" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dFo" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dFp" = (/obj/machinery/vending/cola,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dFq" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/hallway/primary/thirddeck/central)
+"dFr" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/bridge)
+"dFs" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 5},/turf/simulated/floor/tiled,/area/bridge)
+"dFt" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/command{name = "Station Director's Quarters"; req_access = list(20)},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
+"dFu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
+"dFv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
+"dFw" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
+"dFx" = (/obj/structure/closet/secure_closet/captains{name = "station director's locker"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
+"dFy" = (/obj/structure/toilet{dir = 1},/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/sd)
+"dFz" = (/obj/machinery/shower{dir = 1},/obj/structure/curtain/open/shower,/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/machinery/door/window/northright,/obj/item/weapon/bikehorn/rubberducky,/turf/simulated/floor/tiled/freezer,/area/crew_quarters/heads/sc/sd)
+"dFA" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dFB" = (/obj/structure/closet/crate,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/item/weapon/crowbar,/obj/item/weapon/wirecutters,/obj/random/maintenance/medical,/obj/random/maintenance/medical,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/maintenance/thirddeck/aftstarboard)
+"dFC" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dFD" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dFE" = (/obj/structure/table/steel,/obj/random/tech_supply,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dFF" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "heads_meeting"; name = "Meeting Room Window Shutters"; opacity = 0},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/bridge/meeting_room)
+"dFG" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dFH" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
+"dFI" = (/obj/structure/bed/chair/comfy/blue{dir = 1},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
+"dFJ" = (/obj/structure/bed/chair/comfy/blue{dir = 1},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/carpet,/area/bridge/meeting_room)
+"dFK" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
+"dFL" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/camera/network/command{c_tag = "COM - Conference Room"; dir = 8},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dFM" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled,/area/bridge)
+"dFN" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled,/area/bridge)
+"dFO" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/effect/floor_decal/corner/blue{dir = 10},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dFP" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dFQ" = (/obj/effect/floor_decal/corner/blue{dir = 8},/obj/machinery/camera/network/third_deck{c_tag = "Third Deck - Stairwell"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dFR" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dFS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dFT" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/corner/blue{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dFU" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/effect/floor_decal/corner/blue{dir = 10},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled,/area/hallway/primary/thirddeck/central)
+"dFV" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled,/area/bridge)
+"dFW" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled,/area/bridge)
+"dFX" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/command{name = "Station Director's Quarters"; req_access = list(20)},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
+"dFY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dFZ" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dGa" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dGb" = (/obj/item/frame,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dGc" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "heads_meeting"; name = "Meeting Room Window Shutters"; opacity = 0},/obj/structure/cable/green,/turf/simulated/floor/plating,/area/bridge/meeting_room)
+"dGd" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/storage/box/donut,/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dGe" = (/obj/machinery/hologram/holopad,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dGf" = (/obj/structure/disposalpipe/segment,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dGg" = (/turf/simulated/wall/r_wall,/area/bridge)
+"dGh" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced/polarized{id = "bridge_center"},/turf/simulated/floor/plating,/area/bridge)
+"dGi" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced/polarized{id = "bridge_center"},/turf/simulated/floor/plating,/area/bridge)
+"dGj" = (/obj/machinery/door/firedoor/glass,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access = list(19)},/turf/simulated/floor/tiled,/area/bridge)
+"dGk" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced/polarized{id = "bridge_center"},/turf/simulated/floor/plating,/area/bridge)
+"dGl" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced/polarized{id = "bridge_center"},/turf/simulated/floor/plating,/area/bridge)
+"dGm" = (/obj/structure/displaycase,/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dGn" = (/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dGo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dGp" = (/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/machinery/camera/network/command{c_tag = "COM - Station Director's Office"; dir = 2},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dGq" = (/obj/structure/table/wooden_reinforced,/obj/machinery/photocopier/faxmachine{department = "Captain's Office"},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dGr" = (/obj/machinery/computer/card,/obj/random_multi/single_item/captains_spare_id,/obj/machinery/light{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dGs" = (/obj/machinery/computer/communications,/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dGt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dGu" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dGv" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/solar{id = "aftportsolar"; name = "Port Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/aftportsolar)
+"dGw" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/solar/aftportsolar)
+"dGx" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "aftportsolar"; name = "Port Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/aftportsolar)
+"dGy" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dGz" = (/obj/structure/sign/warning/high_voltage,/turf/simulated/wall/r_wall,/area/bridge/meeting_room)
+"dGA" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/hand_labeler,/obj/item/device/retail_scanner/command,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dGB" = (/obj/structure/table/wooden_reinforced,/obj/machinery/recharger{pixel_y = 0},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dGC" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dGD" = (/obj/machinery/light,/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dGE" = (/obj/machinery/papershredder,/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dGF" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dGG" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/bridge/meeting_room)
+"dGH" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/bridge)
+"dGI" = (/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/bridge)
+"dGJ" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/camera/network/command{c_tag = "COM - Bridge Port"; dir = 6},/obj/machinery/light{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/closet/secure_closet/guncabinet/sidearm{anchored = 1},/turf/simulated/floor/tiled,/area/bridge)
+"dGK" = (/obj/structure/noticeboard{pixel_y = 27},/obj/effect/floor_decal/corner/blue{dir = 5},/turf/simulated/floor/tiled,/area/bridge)
+"dGL" = (/obj/effect/floor_decal/corner/blue{dir = 5},/turf/simulated/floor/tiled,/area/bridge)
+"dGM" = (/obj/effect/floor_decal/corner/blue{dir = 1},/turf/simulated/floor/tiled,/area/bridge)
+"dGN" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/bridge)
+"dGO" = (/obj/effect/floor_decal/corner/blue{dir = 4},/turf/simulated/floor/tiled,/area/bridge)
+"dGP" = (/obj/structure/closet/fireaxecabinet{pixel_y = 32},/obj/effect/floor_decal/corner/blue{dir = 5},/turf/simulated/floor/tiled,/area/bridge)
+"dGQ" = (/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/obj/machinery/camera/network/command{c_tag = "COM - Bridge Starboard"},/obj/machinery/light{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/bridge)
+"dGR" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/bridge)
+"dGS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/bridge)
+"dGT" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/sd)
+"dGU" = (/obj/structure/filingcabinet,/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dGV" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dGW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dGX" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dGY" = (/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dGZ" = (/obj/structure/bed/chair/office/dark,/obj/effect/landmark/start{name = "Colony Director"},/obj/machinery/button/remote/airlock{desc = "A remote control switch for the Starboard Bridge Doors."; id = "sbridgedoor"; name = "Starboard Bridge Door Control"; pixel_x = 30; pixel_y = -6},/obj/machinery/button/remote/airlock{desc = "A remote control switch for the captain's office."; id = "captaindoor"; name = "Office Door Control"; pixel_x = 30; pixel_y = 6},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dHa" = (/obj/structure/table/wooden_reinforced,/obj/machinery/requests_console{announcementConsole = 1; department = "Station Director's Desk"; departmentType = 5; name = "Station Administrator RC"; pixel_x = 30; pixel_y = 0},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dHb" = (/obj/structure/table/rack{dir = 4},/obj/item/clothing/mask/gas,/obj/random/maintenance/engineering,/obj/random/maintenance/clean,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dHc" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/solar{id = "aftstarboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/aftstarboardsolar)
+"dHd" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
+"dHe" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "aftstarboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/aftstarboardsolar)
+"dHf" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/aftportsolar)
+"dHg" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dHh" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge/meeting_room)
+"dHi" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge/meeting_room)
+"dHj" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/airlock/command{name = "Conference Room"; req_access = list(19)},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dHk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/bridge)
+"dHl" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/bridge)
+"dHm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/bridge)
+"dHn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/bridge)
+"dHo" = (/obj/structure/bed/chair,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/bridge)
+"dHp" = (/obj/structure/disposalpipe/junction{dir = 8},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/bridge)
+"dHq" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/bridge)
+"dHr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/bridge)
+"dHs" = (/obj/structure/table/rack,/obj/structure/window/reinforced,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/clothing/mask/gas,/obj/item/clothing/suit/armor/captain,/obj/item/clothing/head/helmet/space/capspace,/obj/structure/window/basic{dir = 1},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dHt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/window/southleft{name = "Director's Desk Door"; req_access = list(20)},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dHu" = (/obj/structure/table/wooden_reinforced,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/folder/blue,/obj/item/device/megaphone,/obj/item/weapon/pen/multi,/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dHv" = (/obj/structure/table/wooden_reinforced,/obj/machinery/computer/skills,/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dHw" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/folder/blue_captain,/obj/item/weapon/stamp/denied{pixel_x = -2; pixel_y = -2},/obj/item/weapon/stamp/captain,/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dHx" = (/obj/structure/table/wooden_reinforced,/obj/item/device/flashlight/lamp/green,/obj/machinery/newscaster/security_unit{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dHy" = (/obj/machinery/alarm{dir = 4; pixel_x = -22; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/visible/universal,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dHz" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
+"dHA" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dHB" = (/obj/structure/closet,/obj/item/weapon/storage/backpack,/obj/random/maintenance/clean,/obj/random/maintenance/cargo,/obj/random/maintenance/clean,/obj/random/drinkbottle,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dHC" = (/obj/structure/flora/pottedplant{icon_state = "plant-01"; pixel_y = 10; tag = "icon-plant-01"},/obj/structure/table/woodentable,/obj/machinery/alarm{pixel_y = 22},/obj/structure/extinguisher_cabinet{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dHD" = (/obj/structure/table/woodentable,/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/obj/item/weapon/storage/box/cups,/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dHE" = (/obj/structure/reagent_dispensers/water_cooler/full,/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dHF" = (/obj/machinery/camera/network/command{c_tag = "COM - Secretary Office"; dir = 2},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dHG" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/command{name = "Secretary Office"; req_access = list(19)},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dHH" = (/obj/machinery/computer/guestpass{pixel_y = 28},/turf/simulated/floor/tiled,/area/bridge)
+"dHI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/bridge)
+"dHJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/bridge)
+"dHK" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/bridge)
+"dHL" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/yellow/full,/obj/item/weapon/folder/yellow,/obj/item/device/flashlight,/obj/item/device/flashlight{pixel_x = 2; pixel_y = 2},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/dark,/area/bridge)
+"dHM" = (/obj/machinery/computer/atmos_alert,/obj/effect/floor_decal/corner/yellow{dir = 10},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/dark,/area/bridge)
+"dHN" = (/obj/machinery/computer/atmos_alert,/obj/effect/floor_decal/corner/yellow/full{tag = "icon-corner_white_full (EAST)"; icon_state = "corner_white_full"; dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/dark,/area/bridge)
+"dHO" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor/tiled/dark,/area/bridge)
+"dHP" = (/obj/machinery/computer/rcon,/obj/effect/floor_decal/corner/yellow/full,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/dark,/area/bridge)
+"dHQ" = (/obj/machinery/computer/power_monitor,/obj/effect/floor_decal/corner/yellow{dir = 10},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/dark,/area/bridge)
+"dHR" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/corner/yellow/full{tag = "icon-corner_white_full (EAST)"; icon_state = "corner_white_full"; dir = 4},/obj/item/weapon/storage/box/lights/mixed,/obj/item/device/multitool,/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/tiled/dark,/area/bridge)
+"dHS" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/bridge)
+"dHT" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/bridge)
+"dHU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/bridge)
+"dHV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/requests_console{announcementConsole = 1; department = "Bridge"; departmentType = 5; name = "Bridge RC"; pixel_x = 0; pixel_y = 30},/turf/simulated/floor/tiled,/area/bridge)
+"dHW" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/command{id_tag = "captaindoor"; name = "Station Director's Office"; req_access = list(20)},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dHX" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dHY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dHZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dIa" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dIb" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dIc" = (/obj/structure/table/woodentable,/obj/item/weapon/melee/chainofcommand,/obj/item/weapon/hand_tele,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dId" = (/obj/machinery/atmospherics/pipe/tank/air,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dIe" = (/obj/machinery/atmospherics/pipe/tank/air,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dIf" = (/obj/machinery/atmospherics/valve,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dIg" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_one_access = list(12,19)},/turf/simulated/floor/plating,/area/bridge/meeting_room)
+"dIh" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dIi" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dIj" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dIk" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dIl" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dIm" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dIn" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/bridge)
+"dIo" = (/obj/structure/bed/chair,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/bridge)
+"dIp" = (/turf/simulated/floor/tiled,/area/bridge)
+"dIq" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/bridge)
+"dIr" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled,/area/bridge)
+"dIs" = (/obj/structure/disposalpipe/segment,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dIt" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dIu" = (/obj/machinery/papershredder,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dIv" = (/obj/structure/closet/crate/internals,/obj/item/weapon/tank/emergency/oxygen/engi,/obj/item/weapon/tank/emergency/oxygen/engi,/obj/item/weapon/tank/emergency/oxygen/double,/obj/random/tank,/obj/random/maintenance/research,/obj/random/maintenance/research,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dIw" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dIx" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/machinery/meter,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dIy" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
+"dIz" = (/turf/simulated/wall/r_wall,/area/maintenance/solars/aftportsolar)
+"dIA" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_one_access = list(12,19)},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dIB" = (/obj/machinery/photocopier,/obj/machinery/button/remote/blast_door{id = "csblast"; name = "Blastdoors"; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dIC" = (/obj/structure/table/wooden_reinforced,/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dID" = (/obj/structure/bed/chair/office/dark,/obj/effect/landmark/start{name = "Command Secretary"},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dIE" = (/obj/structure/bed/chair/office/dark,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/start{name = "Command Secretary"},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dIF" = (/obj/structure/filingcabinet,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dIG" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/bridge/meeting_room)
+"dIH" = (/obj/machinery/computer/secure_data,/obj/effect/floor_decal/corner/red/full,/turf/simulated/floor/tiled,/area/bridge)
+"dII" = (/obj/structure/table/reinforced,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/red{dir = 10},/obj/item/weapon/folder/red,/turf/simulated/floor/tiled,/area/bridge)
+"dIJ" = (/obj/machinery/computer/security,/obj/effect/floor_decal/corner/red/full{dir = 4},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/tiled,/area/bridge)
+"dIK" = (/obj/structure/cable/green,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/effect/floor_decal/corner/blue/full,/turf/simulated/floor/tiled,/area/bridge)
+"dIL" = (/obj/effect/floor_decal/corner/blue{dir = 8},/turf/simulated/floor/tiled,/area/bridge)
+"dIM" = (/obj/structure/bed/chair,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/bridge)
+"dIN" = (/obj/effect/floor_decal/corner/blue,/turf/simulated/floor/tiled,/area/bridge)
+"dIO" = (/obj/machinery/button/remote/blast_door{id = "bridge blast"; name = "Bridge Blastdoors"; pixel_x = 0; pixel_y = -36},/obj/machinery/button/windowtint{id = "bridge_center"; pixel_x = -11; pixel_y = -24},/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/obj/effect/floor_decal/corner/blue/full{dir = 4},/turf/simulated/floor/tiled,/area/bridge)
+"dIP" = (/obj/machinery/computer/crew,/obj/effect/floor_decal/corner/white/full,/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/simulated/floor/tiled,/area/bridge)
+"dIQ" = (/obj/structure/table/reinforced,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/corner/white{dir = 10},/obj/item/weapon/folder/white,/turf/simulated/floor/tiled,/area/bridge)
+"dIR" = (/obj/machinery/computer/med_data,/obj/effect/floor_decal/corner/white/full{tag = "icon-corner_white_full (EAST)"; icon_state = "corner_white_full"; dir = 4},/turf/simulated/floor/tiled,/area/bridge)
+"dIS" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/sd)
+"dIT" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dIU" = (/obj/structure/bed/chair/comfy/brown{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
+"dIV" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/security_space_law,/obj/item/device/tape/random,/obj/item/device/taperecorder,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
+"dIW" = (/obj/structure/table/woodentable,/obj/machinery/recharger,/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = -26},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dIX" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Maintenance Access"; req_one_access = list(12,19)},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dIY" = (/turf/simulated/wall/r_wall,/area/maintenance/solars/aftstarboardsolar)
+"dIZ" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
+"dJa" = (/obj/structure/cable/yellow,/turf/simulated/floor/airless,/area/solar/aftportsolar)
+"dJb" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
+"dJc" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
+"dJd" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
+"dJe" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
+"dJf" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/structure/sign/warning/airlock{pixel_y = 32},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
+"dJg" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/alarm{pixel_y = 22},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/item/stack/cable_coil/yellow,/obj/item/stack/cable_coil/yellow,/obj/item/stack/cable_coil/yellow,/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
+"dJh" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/smes/buildable{charge = 0; RCon_tag = "Solar - Aft Port"},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
+"dJi" = (/turf/simulated/wall,/area/maintenance/solars/aftportsolar)
+"dJj" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/sign/warning/high_voltage{pixel_x = -32; pixel_y = 0},/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/camera/network/engineering{c_tag = "ENG - Solar Aft Port Access"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dJk" = (/obj/item/stack/cable_coil/yellow,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dJl" = (/obj/structure/ladder,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dJm" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dJn" = (/obj/structure/table/wooden_reinforced,/obj/machinery/computer/skills,/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dJo" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen/blue{pixel_y = -5},/obj/item/weapon/pen/red{pixel_y = 5},/obj/item/weapon/pen,/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dJp" = (/obj/structure/table/wooden_reinforced,/obj/machinery/photocopier/faxmachine{department = "Bridge"},/obj/machinery/light,/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dJq" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/pen/blue{pixel_y = -5},/obj/item/weapon/pen/red{pixel_y = 5},/obj/item/weapon/pen,/turf/simulated/floor/wood,/area/bridge/meeting_room)
+"dJr" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge)
+"dJs" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/structure/cable/green,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge)
+"dJt" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge)
+"dJu" = (/obj/structure/table/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/newscaster{pixel_y = -30},/obj/item/weapon/storage/secure/briefcase,/obj/effect/floor_decal/corner/blue/full,/turf/simulated/floor/tiled,/area/bridge)
+"dJv" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/PDAs{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/ids,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/bridge)
+"dJw" = (/obj/machinery/computer/card,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/bridge)
+"dJx" = (/obj/structure/table/reinforced,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/paper_bin,/obj/item/weapon/folder/red,/obj/item/weapon/folder/blue,/obj/item/weapon/pen,/obj/effect/floor_decal/corner/blue{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled,/area/bridge)
+"dJy" = (/obj/machinery/computer/communications,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/bridge)
+"dJz" = (/obj/structure/table/reinforced,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/aicard,/obj/effect/floor_decal/corner/blue{dir = 10},/turf/simulated/floor/tiled,/area/bridge)
+"dJA" = (/obj/structure/table/reinforced,/obj/machinery/light{dir = 4},/obj/structure/extinguisher_cabinet{pixel_y = -30},/obj/machinery/recharger{pixel_y = 0},/obj/effect/floor_decal/corner/blue/full{dir = 4},/turf/simulated/floor/tiled,/area/bridge)
+"dJB" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/bridge)
+"dJC" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/bridge)
+"dJD" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/bridge)
+"dJE" = (/obj/machinery/button/remote/blast_door{id = "directorblast"; name = "Security Shutters"; pixel_x = -26; pixel_y = 0},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dJF" = (/obj/structure/bed/chair/comfy/brown{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
+"dJG" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/box/donut,/turf/simulated/floor/carpet,/area/crew_quarters/heads/sc/sd)
+"dJH" = (/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/wood,/area/crew_quarters/heads/sc/sd)
+"dJI" = (/obj/structure/lattice,/obj/structure/cable{d1 = 32; d2 = 2; icon_state = "32-2"},/turf/simulated/open,/area/maintenance/thirddeck/aftstarboard)
+"dJJ" = (/obj/structure/table/rack,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/suit/storage/hazardvest,/obj/item/device/radio,/obj/random/maintenance/medical,/obj/random/maintenance/medical,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dJK" = (/obj/structure/table/rack,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dJL" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning/corner,/obj/structure/sign/warning/high_voltage{pixel_x = 32; pixel_y = 0},/obj/machinery/camera/network/engineering{c_tag = "ENG - Solar Aft Starboard Access"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dJM" = (/turf/simulated/wall,/area/maintenance/solars/aftstarboardsolar)
+"dJN" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/smes/buildable{charge = 0; RCon_tag = "Solar - Aft Starboard"},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
+"dJO" = (/obj/machinery/alarm{pixel_y = 22},/obj/machinery/power/terminal{dir = 8},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
+"dJP" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/portable_atmospherics/canister/air/airlock,/obj/structure/sign/warning/airlock{pixel_y = 32},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
+"dJQ" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
+"dJR" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
+"dJS" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
+"dJT" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
+"dJU" = (/obj/structure/cable/yellow,/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
+"dJV" = (/obj/machinery/power/tracker,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless,/area/solar/aftportsolar)
+"dJW" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/airless,/area/solar/aftportsolar)
+"dJX" = (/turf/simulated/floor/airless,/area/solar/aftportsolar)
+"dJY" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless,/area/solar/aftportsolar)
+"dJZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/solar/aftportsolar)
+"dKa" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; layer = 3.3; master_tag = "aft_port_solar_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = -25; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/airless,/area/solar/aftportsolar)
+"dKb" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "aft_port_solar_outer"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
+"dKc" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "aft_port_solar_airlock"; layer = 3.3; pixel_x = 0; pixel_y = 25; req_access = list(13); tag_airpump = "aft_port_solar_pump"; tag_chamber_sensor = "aft_port_solar_sensor"; tag_exterior_door = "aft_port_solar_outer"; tag_interior_door = "aft_port_solar_inner"},/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 8},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "aft_port_solar_sensor"; layer = 3.3; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "aft_port_solar_pump"},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
+"dKd" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning/cee{icon_state = "warningcee"; dir = 4},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "aft_port_solar_pump"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
+"dKe" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "aft_port_solar_inner"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
+"dKf" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; layer = 3.3; master_tag = "aft_port_solar_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = 25; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
+"dKg" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
+"dKh" = (/obj/machinery/atmospherics/binary/pump/on{dir = 8; target_pressure = 200},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
+"dKi" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Aft Port Solar Access"; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
+"dKj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dKk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dKl" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dKm" = (/obj/structure/lattice,/obj/structure/cable{d1 = 32; d2 = 8; icon_state = "32-8"},/turf/simulated/open,/area/maintenance/thirddeck/aftport)
+"dKn" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "csblast"; name = "Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge/meeting_room)
+"dKo" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "csblast"; name = "Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge/meeting_room)
+"dKp" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "csblast"; name = "Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge/meeting_room)
+"dKq" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "csblast"; name = "Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge/meeting_room)
+"dKr" = (/obj/structure/sign/warning/secure_area,/turf/simulated/wall/r_wall,/area/bridge)
+"dKs" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge)
+"dKt" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge)
+"dKu" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/bridge)
+"dKv" = (/obj/structure/sign/warning/high_voltage,/turf/simulated/wall/r_wall,/area/crew_quarters/heads/sc/sd)
+"dKw" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "directorblast"; name = "Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/sd)
+"dKx" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green,/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "directorblast"; name = "Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/sd)
+"dKy" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "directorblast"; name = "Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/sd)
+"dKz" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/blast/regular{density = 0; dir = 8; icon_state = "pdoor0"; id = "directorblast"; name = "Blast Doors"; opacity = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/heads/sc/sd)
+"dKA" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dKB" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dKC" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dKD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dKE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"; tag = "icon-intact-f (NORTHEAST)"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dKF" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Aft Starboard Solar Access"; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
+"dKG" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/binary/pump/on{dir = 4; target_pressure = 200},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
+"dKH" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
+"dKI" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/meter,/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; layer = 3.3; master_tag = "aft_starboard_solar_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
+"dKJ" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "aft_starboard_solar_inner"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
+"dKK" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "aft_starboard_solar_pump"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
+"dKL" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "aft_starboard_solar_pump"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "aft_starboard_solar_airlock"; layer = 3.3; pixel_x = 0; pixel_y = 25; req_access = list(13); tag_airpump = "aft_starboard_solar_pump"; tag_chamber_sensor = "aft_starboard_solar_sensor"; tag_exterior_door = "aft_starboard_solar_outer"; tag_interior_door = "aft_starboard_solar_inner"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "aft_starboard_solar_sensor"; layer = 3.3; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
+"dKM" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "aft_starboard_solar_outer"; locked = 1; name = "Engineering External Access"; req_access = list(11,13)},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
+"dKN" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; layer = 3.3; master_tag = "aft_starboard_solar_airlock"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access = list(); req_one_access = list(11,24)},/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
+"dKO" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
+"dKP" = (/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
+"dKQ" = (/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
+"dKR" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
+"dKS" = (/obj/machinery/power/tracker,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
+"dKT" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/airless,/area/solar/aftportsolar)
+"dKU" = (/obj/structure/cable/yellow,/obj/machinery/power/solar_control{id = "aftportsolar"; name = "Aft Port Solar Control"; track = 0},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
+"dKV" = (/obj/machinery/camera/network/engineering{c_tag = "ENG - Solar Aft Port"; dir = 1},/obj/machinery/light/small,/obj/item/weapon/stool,/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
+"dKW" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/plating,/area/maintenance/solars/aftportsolar)
+"dKX" = (/obj/machinery/light/small{dir = 8},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dKY" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dKZ" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dLa" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/reinforced/airless,/area/thirddeck/roof)
+"dLb" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/reinforced/airless,/area/thirddeck/roof)
+"dLc" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/reinforced/airless,/area/thirddeck/roof)
+"dLd" = (/obj/structure/sign/warning/high_voltage{pixel_y = 32},/turf/simulated/floor/reinforced/airless,/area/thirddeck/roof)
+"dLe" = (/obj/structure/ladder,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dLf" = (/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dLg" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dLh" = (/obj/structure/cable,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/table/steel,/obj/item/stack/cable_coil/yellow,/obj/item/stack/cable_coil/yellow,/obj/item/stack/cable_coil/yellow,/obj/item/stack/cable_coil/yellow,/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
+"dLi" = (/obj/machinery/light/small,/obj/machinery/camera/network/engineering{c_tag = "ENG - Solar Aft Starboard"; dir = 1},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
+"dLj" = (/obj/structure/cable/yellow,/obj/machinery/power/solar_control{id = "aftstarboardsolar"; name = "Aft Starboard Solar Control"; track = 0},/turf/simulated/floor/plating,/area/maintenance/solars/aftstarboardsolar)
+"dLk" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
+"dLl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/aftportsolar)
+"dLm" = (/obj/structure/table/steel,/obj/random/maintenance/cargo,/obj/random/maintenance/cargo,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dLn" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/table/steel,/obj/random/maintenance/cargo,/obj/random/maintenance/cargo,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dLo" = (/obj/structure/closet/wardrobe/grey,/obj/item/weapon/storage/backpack,/obj/item/weapon/storage/backpack,/obj/random/maintenance/cargo,/obj/random/maintenance/cargo,/obj/random/maintenance/cargo,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dLp" = (/obj/structure/closet/firecloset/full,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/random/maintenance/security,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftport)
+"dLq" = (/obj/structure/table/rack,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/item/clothing/glasses/meson,/obj/random/maintenance/cargo,/turf/simulated/floor,/area/maintenance/thirddeck/aftport)
+"dLr" = (/obj/structure/table/rack{dir = 4},/obj/item/weapon/storage/toolbox/mechanical,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/maintenance/medical,/turf/simulated/floor,/area/maintenance/thirddeck/aftstarboard)
+"dLs" = (/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dLt" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dLu" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/turf/simulated/floor/plating,/area/maintenance/thirddeck/aftstarboard)
+"dLv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
+"dLw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/solar/aftportsolar)
+"dLx" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless,/area/solar/aftstarboardsolar)
+"dLy" = (/turf/space,/area/syndicate_station/thirddeck)
+"dLz" = (/obj/effect/landmark/map_data{height = 3},/turf/space,/area/space)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -10506,57 +10508,57 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadezdezdezdezdezdezdezdjtdjudhDdgzdjvdjwdjxdjydjzdgydjAdhJdjBdjCdjDdhmdjEdjFdjGdhndhPcMccMbdhQdjHdjIdiAdjJdjKdhSdiCdjLdjmdjMdjNdjOdjodjPdjQdjRdjodjSdeLdjTdjUdevdevdevaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadezdjVdjWdimdgzdjXdhfdjXdjYdjZdgydkadhJdkbdhJdkcdhmdkddkedkfdhndkgcMccMbdhQdjHdkhdkidkjdkkdhSdkldkmdjmdkndkodkpdjodkqdkrdksdjodktdeLdkudkvdevaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwaaaaaaaaaaaaaaaaaadezdkxdkydgGdgydkzdkAdkBdjXdkCdkDdkEdkFdkGdkFdkHdhmdhmdhmdhmdkIdkJdkKdkLdkMdkJdkNdkOdkPdkkdkQdhSdkmdjmdkRdkSdkTdjodkUdkVdkWdjodjSdeLdkXdkYdevaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwaaaaaaaaaaaadkJdkJdkZdladlbdgydgydgzdgzdgzdgydgydlcdhjdhjdhjdlcdlddledlfdlbdlgdlfdladlhdkZdlidkJdlddljdljdljdljdlddjmdjmdjmdjmdjodjodjodjodjodeLdeLdlkdlldkJdkJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwaaaaaaaaaaaadkJdlmdkZdladladljdlndladlodlpdlqdlpdlrdlrdlpdlsdlpdladkZdladladltdladlodludkZdladltdladladlodladlpdlpdlpdlrdlvdlsdlqdlpdladladlndljdladlwdlxdlydkJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwaaaaaaaaaaaadkJdlzdlAdlBdlCdlDdlEdlEdlFdlEdlEdlCdlGdlEdlEdlFdlEdlEdlHdlEdlEdlDdlEdlIdlJdlHdlEdlDdlEdlEdlFdlEdlEdlCdlEdlEdlGdlFdlEdlEdlCdlEdlEdlDdlCdlKdlLdlMdkJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwaaaaaaaaaaaadkJdkJdlNdlOdlPdltdladlQdlRdlSdladlPdlTdlUdlVdladladlSdlWdkJdlddkJdlXdkZdlYdlPdlZdkJdlddkJdmadlSdladlPdmbdlUdladladladlSdmcdlQdladltdlPdlOdmddkJdkJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwaaaaaaaaaaaaaaadmedmfdmgdmedkJdljdkJdkJdljdmhdljdkJdkJdkJdljdmhdljdkJdkJaaadmidmjdmkdmldmmdmndmiaaadkJdkJdljdmhdljdkJdkJdkJdljdmhdljdkJdkJdljdkJdmodmpdmqdmoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwaaaaaaaaaaaaaaadmedmrdmsdmtaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadmudmvdmwdmxdmuaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadmydmzdmAdmoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwdkwdkwaaaaaaaaadmtdmedmBdmsdmCaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadmDdmvdmwdmxdmDaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadmEdmzdmFdmodmyaaaaaaaaadmGdmGdmGdmGdmGdmGdmGdmGdmGdmGdmGdmGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwdkwdkwdmHdmIdmtdmtdmJdmKdmLdmtaaaaaaaafaaaaaadmMdmMdmMdmMdmMdmMdmMaaaaaaaafaaaaaadmudmvdmNdmOdmuaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadmydmPdmQdmRdmydmydmSdmTdmGdmGdmGdmGdmGdmGdmGdmGdmGdmGdmGdmGdmGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwdkwdkwdmUdmVdmWdmXdmYdmZdnadmeaaaaaaaafaaadmMdmMdmMdmMdmMdmMdmMdmMdmMaaaaafaaaaaadmidnbdmwdncdmiaaaaaaaafaaaaaadnddnednednednednedndaaaaaaaafaaaaaadmodnfdngdnhdnidnjdnkdnldmGdmGdmGdmGdmGdmGdmGdmGdmGdmGdmGdmGdmGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwdkwdkwdmIdnmdnndnodnpdnqdnrdmtaaaaaaaafaafdmMdmMdmMdmMdmMdmMdmMdmMdmMaafaafaaaaaadmudmxdmwdmxdmuaaaaaaaafaafdnddnsdntdntdntdntdntdnsdndaafaafaaaaaadmydnudnvdnwdnxdnydnzdmSdmGdmGdmGdmGdmGdmGdmGdmGdmGdmGdmGdmGdmGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwdkwdkwaaaaaaaaadmtdmtdmrdnAdmtaaaaaaaafaaadmMdmMdmMdmMdmMdmMdmMdmMdmMaaaaafaaaaaadmudmxdmwdmxdmuaaaaaaaafaaadnednBdnCdnCdntdnCdnCdnBdneaaaaafaaaaaadmydnDdmAdmydmyaaaaaaaaadmGdmGdmGdmGdmGdmGdmGdmGdmGdmGdmGdmGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwaaaaaaaaadkwdkwdkwaaaaaaaaaaaadmtdmrdnEdmtaaaaaaaafaaadmMdmMdmMdmMdmMdmMdmMdmMdmMaaaaafaaaaaadmudnFdmwdmxdmuaaaaaaaafaaadnddntdnGdntdntdntdnGdntdndaaaaafaaaaaadmydnHdmAdmyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwaaaaaaaaaaaaaaadkwdkwaaaaaaaaaaaadmednIdnJdmeaaaaaaaaadmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMaaaaaaaaadmidnKdnLdnMdmiaaaaaaaaadnddnsdnddnddnddnNdnddnddnddnsdndaaaaaaaaadmodnOdnPdmoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnQdmedmedmedmednRdnSdnodnTdnUdmHdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdnVdnWdnXdnYdnZdoadobdmudmudocdnVdnddoddntdoedntdntdntdoedntdoddnddmTdmSdofdmydogdohdmodmodmodmodoiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmedojdokdoldomdondoodmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdopdoqdordosdotdmwdoudovdowdoxdoydnNdntdntdntdntdntdntdntdntdntdnNdozdoAdoBdoCdoDdoEdmoaaaaaaaaaaaadoFdoFaaaaaaaaaaaaaaadoFdoFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmtdmrdoGdoldoHdoIdoJdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdoKdoLdoMdosdoNdmwdoudovdoOdoPdoydnNdntdntdoQdoRdntdoQdoRdntdntdnNdozdoSdoTdoCdoDdmAdmyaaaaaaaaaaaadoFdoFdoFaaaaaaaaadoFdoFdoFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoUdoUdoUdoUdoUdoUdoUdoUdoUdoUdoUaaaaaaaaaaaadmtdmtdoVdoWdnodoXdoYdmIdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdocdoZdpadnYdpbdpcdpddmudmudocdocdpedpfdntdoQdoRdpgdoQdoRdntdphdpedmSdmSdofdmydpidpjdmydmyaaaaaaaaadoFdoFdoFdoFdoFdoFdoFdoFdoFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoUdoUdoUdoUdoUdoUdoUdoUdoUdoUdoUdoUdpkdpldpmdnodpndnqdnrdpodmtaaaaaadmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMaaaaaadmudppdmxdmwdmxdpqdmuaaaaaadnedprdntdoQdpsdntdptdoRdntdpudneaaaaaadmydpvdnudnvdpwdnxdpxdpydmSdoFdoFdoFdoFdoFdoFdoFdoFdoFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoUdoUdoUdoUdoUdoUdoUdoUdoUdoUdoUdoUdpzdpAdpBdpCdpDdmZdnAdpEdmeaaaaaadmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMaaaaaadmidpFdmxdpGdmxdpHdmiaaaaaadnedpIdntdoQdpsdpJdptdoRdntdpKdneaaaaaadmodpLdnDdngdpMdpNdpOdpPdpQdoFdoFdoFdoFdoFdoFdoFdoFdoFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoUdoUdoUdoUdoUdoUdoUdoUdoUdoUdoUdoUdmIdmIdmtdmtdpRdpSdpTdpodmtaaaaaadmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMaaaaaadmudppdmxdpUdpVdpqdmuaaaaaadnedprdntdoQdpsdntdptdoRdntdpudneaaaaaadmydpvdpWdpXdpYdmydmydmSdmTdoFdoFdoFdoFdoFdoFdoFdoFdoFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoUdoUdoUdoUdoUdoUdoUdoUdoUdoUdoUaaaaaaaaaaaadmtdmtdpZdqadnodnTdnUdmIdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdocdnWdnXdnYdqbdqcdqddmudmudocdocdpedpfdntdoQdoRdntdoQdoRdntdphdpedmSdmSdofdmydqedqfdmydmyaaaaaaaaadoFdoFdoFdoFdoFdoFdoFdoFdoFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmtdmrdqgdqhdqidqjdqkdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdqldqmdqndqodoNdqpdoudovdqqdoxdoydnNdntdntdoQdoRdntdoQdoRdntdntdnNdozdoAdqrdoCdqsdmAdmyaaaaaaaaaaaaaaadoFdoFdoFdoFdoFdoFdoFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmedmrdqtdqhdqudqvdqwdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdqxdqydqzdqodqAdqpdoudovdqBdoPdoydnNdntdntdntdntdntdntdntdntdntdnNdozdoSdqCdoCdqsdmAdmoaaaaaaaaaaaaaaadoFdoFdoFdoFdoFdoFdoFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnQdmedmedmedmedqDdqEdnodoXdoYdmHdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdnVdoZdpadnYdqFdqcdqGdmudmudocdnVdnddoddntdnGdntdntdntdnGdntdoddnddmTdmSdofdmydqHdqIdmodmodmodmodoiaaadoFdoFdoFdoFdoFdoFdoFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmedqJdqKdmeaaaaaaaaadmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMaaaaaaaaadmidqLdqMdqNdmiaaaaaaaaadnddqOdqOdnsdnddnddnddnsdqOdqOdndaaaaaaaaadmodqPdqQdmoaaaaaaaaaaaaaaadoFdoFdoFdoFdoFdoFdoFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmtdqRdqSdmtaaaaaaaaadmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMaaaaaaaaadmDdqTdqUdmxdmDaaaaaaaaadnddqVdqVdnddqWdqWdqWdnddqVdqVdndaaaaaaaaadmydqXdqYdmyaaaaaaaaaaaaaaadoFdoFdoFdoFdoFdoFdoFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqZdradrbdrcaaaaaaaaadmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMaaaaaaaaadmudobdrddredmuaaaaaaaaaaaaaaaaaadnddqVdqVdqVdndaaaaaaaaaaaaaaaaaadrfdrgdrhdriaaaaaaaaaaaaaaadoFdoFdoFdoFdoFdoFdoFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrjdrkdrldrjaaaaaaaaadmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMaaaaaaaaadmidmudrmdmidmiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrndrodrodrnaaaaaaaaaaaaaaaaaadoFdoFdoFdoFdoFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrpdrqdrrdrsaaaaaaaaadmMdmMdmMdmMdmMdmMdmMdmMdmMdmMdmMaaaaaaaaadmudrtdrudrvdmuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrwdrxdrydrzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnmdrAdrBdoYaaaaaaaaaaaaaaaaaadmMdmMdmMdmMdmMaaaaaaaaaaaaaaaaaadocdrCdrDdrEdocaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrFdrGdrHdnzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnQdrIdrJdmeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrKdocdrLdmidmiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmodrMdrNdoiaaaaaaaaaaaaaaaaaadrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrPdrPdrPaaaaaaaaaaaadrPdrPdrPdrPdrPaaaaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrOdrOdrOdrOaaaaaaaaadrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrPdrPdrPdrPdrPdrPdrPdrPdrPaaaaaaaaaaaaaaadrPdrPdrPdrPdrPdrPaaaaaadrPdrPdrPdrPdrPdrPaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaadrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPaaaaaaaaadrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaadrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaadrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaadrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaadrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaadrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPaaaaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaadrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaadrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaadrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaadrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaadrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPaaaaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaadrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPaaaaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaadrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPaaaaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrOdrOdrOdrOaaaaaaaaadrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOdrOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPaaaaaaaaadrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPdrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrPdrPdrPdrPdrPdrPdrPdrPdrPaaaaaaaaaaaaaaadrPdrPdrPdrPdrPdrPaaaaaadrPdrPdrPdrPdrPdrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrPdrPdrPaaaaaaaaaaaadrPdrPdrPdrPdrPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkZdkZdkZdkZdkZaaaaaaaaadladlaaaaaaaaaaaaaaaadladlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwaaaaaaaaaaaadkJdkJdlbdlcdlddgydgydgzdgzdgzdgydgydledhjdhjdhjdledlfdlgdlhdlddlidlhdlcdljdlbdlkdkJdlfdlldlldlldlldlfdjmdjmdjmdjmdjodjodjodjodjodeLdeLdlmdlndkJdkJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkZdkZdkZdkZdkZdkZdkZaaaaaadladladlaaaaaaaaaadladladlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwaaaaaaaaaaaadkJdlodlbdlcdlcdlldlpdlcdlqdlrdlsdlrdltdltdlrdludlrdlcdlbdlcdlcdlvdlcdlqdlwdlbdlcdlvdlcdlcdlqdlcdlrdlrdlrdltdlxdludlsdlrdlcdlcdlpdlldlcdlydlzdlAdkJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkZdkZdkZdkZdkZdkZdkZaaaaaadladladladladladladladladlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwaaaaaaaaaaaadkJdlBdlCdlDdlEdlFdlGdlGdlHdlGdlGdlEdlIdlGdlGdlHdlGdlGdlJdlGdlGdlFdlGdlKdlLdlJdlGdlFdlGdlGdlHdlGdlGdlEdlGdlGdlIdlHdlGdlGdlEdlGdlGdlFdlEdlMdlNdlOdkJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkZdkZdkZdkZdkZdkZdkZaaaaaadladladladladladladladladlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwaaaaaaaaaaaadkJdkJdlPdlQdlRdlvdlcdlSdlTdlUdlcdlRdlVdlWdlXdlcdlcdlUdlYdkJdlfdkJdlZdlbdmadlRdmbdkJdlfdkJdmcdlUdlcdlRdmddlWdlcdlcdlcdlUdmedlSdlcdlvdlRdlQdmfdkJdkJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkZdkZdkZdkZdkZdkZdkZaaaaaadladladladladladladladladlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwaaaaaaaaaaaaaaadmgdmhdmidmgdkJdlldkJdkJdlldmjdlldkJdkJdkJdlldmjdlldkJdkJaaadmkdmldmmdmndmodmpdmkaaadkJdkJdlldmjdlldkJdkJdkJdlldmjdlldkJdkJdlldkJdmqdmrdmsdmqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkZdkZdkZdkZdkZdkZdkZaaaaaadladladladladladladladladlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwaaaaaaaaaaaaaaadmgdmtdmudmvaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadmwdmxdmydmzdmwaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadmAdmBdmCdmqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkZdkZdkZdkZdkZdkZdkZaaaaaadladladladladladladladladlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwdkwdkwaaaaaaaaadmvdmgdmDdmudmEaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadmFdmxdmydmzdmFaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadmGdmBdmHdmqdmAaaaaaaaaadmIdmIdmIdmIdmIdmIdmIdmIdmIdmIdmIdmIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkZdkZdkZdkZdkZdkZdkZdkZdkZaaaaaadladladladladladladlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwdkwdkwdmJdmKdmvdmvdmLdmMdmNdmvaaaaaaaafaaaaaadmOdmOdmOdmOdmOdmOdmOaaaaaaaafaaaaaadmwdmxdmPdmQdmwaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadmAdmRdmSdmTdmAdmAdmUdmVdmIdmIdmIdmIdmIdmIdmIdmIdmIdmIdmIdmIdmIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkZdkZdkZdkZdkZdkZdkZdkZdkZaaaaaadladladladladladladlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwdkwdkwdmWdmXdmYdmZdnadnbdncdmgaaaaaaaafaaadmOdmOdmOdmOdmOdmOdmOdmOdmOaaaaafaaaaaadmkdnddmydnedmkaaaaaaaafaaaaaadnfdngdngdngdngdngdnfaaaaaaaafaaaaaadmqdnhdnidnjdnkdnldnmdnndmIdmIdmIdmIdmIdmIdmIdmIdmIdmIdmIdmIdmIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkZdkZdkZdkZdkZdkZdkZdkZdkZaaaaaadladladladladladladlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwdkwdkwdmKdnodnpdnqdnrdnsdntdmvaaaaaaaafaafdmOdmOdmOdmOdmOdmOdmOdmOdmOaafaafaaaaaadmwdmzdmydmzdmwaaaaaaaafaafdnfdnudnvdnvdnvdnvdnvdnudnfaafaafaaaaaadmAdnwdnxdnydnzdnAdnBdmUdmIdmIdmIdmIdmIdmIdmIdmIdmIdmIdmIdmIdmIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkZdkZdkZdkZdkZdkZdkZdkZdkZaaaaaadladladladladladladlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwdkwdkwdkwdkwdkwdkwaaaaaaaaadmvdmvdmtdnCdmvaaaaaaaafaaadmOdmOdmOdmOdmOdmOdmOdmOdmOaaaaafaaaaaadmwdmzdmydmzdmwaaaaaaaafaaadngdnDdnEdnEdnvdnEdnEdnDdngaaaaafaaaaaadmAdnFdmCdmAdmAaaaaaaaaadmIdmIdmIdmIdmIdmIdmIdmIdmIdmIdmIdmIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkZdkZdkZdkZdkZdkZdkZdkZdkZaaaaaadladladladladladladlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwdkwaaaaaaaaadkwdkwdkwaaaaaaaaaaaadmvdmtdnGdmvaaaaaaaafaaadmOdmOdmOdmOdmOdmOdmOdmOdmOaaaaafaaaaaadmwdnHdmydmzdmwaaaaaaaafaaadnfdnvdnIdnvdnvdnvdnIdnvdnfaaaaafaaaaaadmAdnJdmCdmAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkZdkZdkZaaaaaaaaadkZdkZdkZaaaaaadladladladladladladlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkwdkwaaaaaaaaaaaaaaadkwdkwaaaaaaaaaaaadmgdnKdnLdmgaaaaaaaaadmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOaaaaaaaaadmkdnMdnNdnOdmkaaaaaaaaadnfdnudnfdnfdnfdnPdnfdnfdnfdnudnfaaaaaaaaadmqdnQdnRdmqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkZdkZaaaaaaaaaaaaaaadkZdkZaaaaaaaaadladladladladlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnSdmgdmgdmgdmgdnTdnUdnqdnVdnWdmJdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdnXdnYdnZdoadobdocdoddmwdmwdoednXdnfdofdnvdogdnvdnvdnvdogdnvdofdnfdmVdmUdohdmAdoidojdmqdmqdmqdmqdokaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmgdoldomdondoodopdoqdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdordosdotdoudovdmydowdoxdoydozdoAdnPdnvdnvdnvdnvdnvdnvdnvdnvdnvdnPdoBdoCdoDdoEdoFdoGdmqaaaaaaaaaaaadoHdoHaaaaaaaaaaaaaaadoHdoHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmvdmtdoIdondoJdoKdoLdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdoMdoNdoOdoudoPdmydowdoxdoQdoRdoAdnPdnvdnvdoSdoTdnvdoSdoTdnvdnvdnPdoBdoUdoVdoEdoFdmCdmAaaaaaaaaaaaadoHdoHdoHaaaaaaaaadoHdoHdoHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoWdoWdoWdoWdoWdoWdoWdoWdoWdoWdoWaaaaaaaaaaaadmvdmvdoXdoYdnqdoZdpadmKdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdoedpbdpcdoadpddpedpfdmwdmwdoedoedpgdphdnvdoSdoTdpidoSdoTdnvdpjdpgdmUdmUdohdmAdpkdpldmAdmAaaaaaaaaadoHdoHdoHdoHdoHdoHdoHdoHdoHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoWdoWdoWdoWdoWdoWdoWdoWdoWdoWdoWdoWdpmdpndpodnqdppdnsdntdpqdmvaaaaaadmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOaaaaaadmwdprdmzdmydmzdpsdmwaaaaaadngdptdnvdoSdpudnvdpvdoTdnvdpwdngaaaaaadmAdpxdnwdnxdpydnzdpzdpAdmUdoHdoHdoHdoHdoHdoHdoHdoHdoHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoWdoWdoWdoWdoWdoWdoWdoWdoWdoWdoWdoWdpBdpCdpDdpEdpFdnbdnCdpGdmgaaaaaadmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOaaaaaadmkdpHdmzdpIdmzdpJdmkaaaaaadngdpKdnvdoSdpudpLdpvdoTdnvdpMdngaaaaaadmqdpNdnFdnidpOdpPdpQdpRdpSdoHdoHdoHdoHdoHdoHdoHdoHdoHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoWdoWdoWdoWdoWdoWdoWdoWdoWdoWdoWdoWdmKdmKdmvdmvdpTdpUdpVdpqdmvaaaaaadmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOaaaaaadmwdprdmzdpWdpXdpsdmwaaaaaadngdptdnvdoSdpudnvdpvdoTdnvdpwdngaaaaaadmAdpxdpYdpZdqadmAdmAdmUdmVdoHdoHdoHdoHdoHdoHdoHdoHdoHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoWdoWdoWdoWdoWdoWdoWdoWdoWdoWdoWaaaaaaaaaaaadmvdmvdqbdqcdnqdnVdnWdmKdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdoednYdnZdoadqddqedqfdmwdmwdoedoedpgdphdnvdoSdoTdnvdoSdoTdnvdpjdpgdmUdmUdohdmAdqgdqhdmAdmAaaaaaaaaadoHdoHdoHdoHdoHdoHdoHdoHdoHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmvdmtdqidqjdqkdqldqmdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdqndqodqpdqqdoPdqrdowdoxdqsdozdoAdnPdnvdnvdoSdoTdnvdoSdoTdnvdnvdnPdoBdoCdqtdoEdqudmCdmAaaaaaaaaaaaaaaadoHdoHdoHdoHdoHdoHdoHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmgdmtdqvdqjdqwdqxdqydmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdqzdqAdqBdqqdqCdqrdowdoxdqDdoRdoAdnPdnvdnvdnvdnvdnvdnvdnvdnvdnvdnPdoBdoUdqEdoEdqudmCdmqaaaaaaaaaaaaaaadoHdoHdoHdoHdoHdoHdoHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnSdmgdmgdmgdmgdqFdqGdnqdoZdpadmJdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdnXdpbdpcdoadqHdqedqIdmwdmwdoednXdnfdofdnvdnIdnvdnvdnvdnIdnvdofdnfdmVdmUdohdmAdqJdqKdmqdmqdmqdmqdokaaadoHdoHdoHdoHdoHdoHdoHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmgdqLdqMdmgaaaaaaaaadmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOaaaaaaaaadmkdqNdqOdqPdmkaaaaaaaaadnfdqQdqQdnudnfdnfdnfdnudqQdqQdnfaaaaaaaaadmqdqRdqSdmqaaaaaaaaaaaaaaadoHdoHdoHdoHdoHdoHdoHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmvdqTdqUdmvaaaaaaaaadmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOaaaaaaaaadmFdqVdqWdmzdmFaaaaaaaaadnfdqXdqXdnfdqYdqYdqYdnfdqXdqXdnfaaaaaaaaadmAdqZdradmAaaaaaaaaaaaaaaadoHdoHdoHdoHdoHdoHdoHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrbdrcdrddreaaaaaaaaadmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOaaaaaaaaadmwdoddrfdrgdmwaaaaaaaaaaaaaaaaaadnfdqXdqXdqXdnfaaaaaaaaaaaaaaaaaadrhdridrjdrkaaaaaaaaaaaaaaadoHdoHdoHdoHdoHdoHdoHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrldrmdrndrlaaaaaaaaadmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOaaaaaaaaadmkdmwdrodmkdmkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrpdrqdrqdrpaaaaaaaaaaaaaaaaaadoHdoHdoHdoHdoHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrrdrsdrtdruaaaaaaaaadmOdmOdmOdmOdmOdmOdmOdmOdmOdmOdmOaaaaaaaaadmwdrvdrwdrxdmwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrydrzdrAdrBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnodrCdrDdpaaaaaaaaaaaaaaaaaaadmOdmOdmOdmOdmOaaaaaaaaaaaaaaaaaadoedrEdrFdrGdoeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrHdrIdrJdnBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnSdrKdrLdmgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrMdoedrNdmkdmkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmqdrOdrPdokaaaaaaaaaaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaaaaaadrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrQdrQdrQdrQaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRaaaaaadrRdrRdrRdrRdrRdrRaaaaaaaaadrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSaaaaaaaaaaaaaaaaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaadrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSaaaaaaaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaadrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaadrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaadrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaadrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSaaaaaaaaaaaaaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaadrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSaaaaaaaaaaaaaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaadrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSaaaaaaaaaaaaaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaadrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaadrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaadrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaadrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSaaaaaaaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaadrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSaaaaaaaaaaaaaaaaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaadrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrQdrQdrQdrQaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQdrQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRaaaaaadrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -10644,157 +10646,157 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaadaadaadaafaafaaaaaaaaaaafaaaaaaaaaaaaaagaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaadaafaaaaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaafaaaaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaadaadaadaadaadaagaafaafaadaadaadaaaaagaadaadaadaaaaaaaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaafaaaaaaaadaadaadaafaafaadaadaadaGCaafaafaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaadrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTfaadaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaafaagaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbadcaadaaaaaaaafaaaaaaaafaaaaaaaafaaaaafaaaaaaaadaadaadaagaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaagaaaaaaaaaaaaaafaaaaaaaafaaaaaaaafaaaaafaaaaaaaaaaaaaaaaafaadaaaaaaaaaaaaaaaaaaaadaafaafaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaafaafaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaadrRdrRdrRdrRdrRaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaabaRaaaaaaaaaaaaaaaaaRaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaafaaaaaaaaaaafaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaagaadaafaafaafaafaafaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafdrRdrRdrRdrRaaaaafaafaafaadaaaaaaaaaaaaaadaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaafaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafdrRdrRdrRdrRaaaaaaaaaaaaaadaaaaaaaaaaaaaadaafaafaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafdrRdrRdrRdrRaaaaaaaaaaaaaadaadaaaaaaaaaaadaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaafaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafdrRdrRdrRdrRaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrRbeYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaafaaaaafaafaaaaafaafaaaaafaaaaafaafaaaaaaaaaaaaaaaaaaaafbaRaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaagaaaaaaaaaaaaaaaaaadrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSaaaaaaaaaaaaaaaaaaaaaaaadrRaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaafaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaadaaaaaaaadaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaaaaaaaaaaaaaaaaaadrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSaaaaaaaaaaaaaaaaaadrTdrTdrTaafaafaafaaaaaaaaaaafaafaafdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaafaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafaafaafaadaafaaRaadaafaafaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafaafaafaadaaaaaaaaaaaaaaaaaadrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSaaaaaaaaaaaaaaaaaadrRdrRdrRaaaaaaaafaaaaaaaaaaafaaaaaadrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaafaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaafaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaaaaaaaaaaaaaaaaaadrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSaaaaaaaaaaaaaaaaaadrTdrTdrTaafaafaafaaaaaaaaaaafaafaafdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaafdrRdrRdrRdrRaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaafaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrSdrSdrSdrSdrSdrSdrSdrSdrSdrSdrSaaaaaaaaaaaaaaaaaaaaaaaadrRaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrRdrRdrRdrRaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrRdrRdrRdrRaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcaafaafaafaafdrRdrRdrRdrRaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaadrRdrRdrRdrRaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrUdrUdrUdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaagaaaaaaaaaaaaaaadrRaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrRaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaafdrRdrRdrRdrRaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrUdrUdrUdrUdrUdrUdrUdrUdrUdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRaaaaafaaaaaaaafaaaaaaaaaaaaaaadrRaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrRaaaaaaaadaaRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrRdrRdrRdrRaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrUdrUdrUdrUdrVdrUdrUdrUdrUdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaafaaaaaaaaaaaaaaadrRaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrRaaaaaaaaaaafaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrRdrRdrRdrRaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrUdrUdrUdrWdrXdrYdrZdrYdsadsbdrUdrUdrUdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaadrRaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrRaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaafdrRdrRdrRdrRaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrUdrUdrUdscdsddsedsfdsgdshdsidrUdrUdrUdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaadrRaaaaaaaaaaafdrRdrRdrRdrRdrRdrRdrRdrRdrRaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsjdsjdsjdsjaaaaaaaaadsjaaaaaaaaaaaaaaadsjaaaaaaaaadsjdsjdsjdsjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdskdsldsmdrRdskdsldsmdrRdskdsldsmdrRdskdsldsmdrRdskdsldsmdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrUdrUdsndsodspdsqdsrdsedssdstdsudrUdrUdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsvdswdsxdrRdsvdswdsxdrRdsvdswdsxdrRdsvdswdsxdrRdsvdswdsxdrRdrRdrRaaadrRaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsjdsjdsjdsjaaaaaaaaadsjdsjdsjdsjdsjdsjdsjaaaaaaaaadsjdsjdsjdsjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaafaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdsydszdsmdrRdsydszdsmdrRdsydszdsmdrRdsydszdsmdrRdsydszdsmdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrUdrUdrUdsAdsBdsCdsDdsDdsDdsEdsFdsGdrUdrUdrUdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsvdsHdsxdrRdsvdsHdsxdrRdsvdsHdsxdrRdsvdsHdsxdrRdsvdsHdsxdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsjdsjdsjdsjaaaaaadsjdsjdsjdsjdsjdsjdsjdsjdsjaaaaaadsjdsjdsjdsjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaafaafaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsydszdsmdrRdsydszdsmdrRdsydszdsmdrRdsydszdsmdrRdsydszdsmdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrUdrUdsIdsJdsKdsLdsMdsNdsMdsOdsPdsQdsRdrUdrUdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsvdsHdsxdrRdsvdsHdsxdrRdsvdsHdsxdrRdsvdsHdsxdrRdsvdsHdsxdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsjdsjdsjdsjaaaaaadsjdsjdsjdsjdsjdsjdsjdsjdsjaaaaaadsjdsjdsjdsjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaadaadaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsydszdsmdrRdsydszdsmdrRdsydszdsmdrRdsydszdsmdrRdsydszdsmdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsSdsSdsSdsSdsSdsSdsSdrRdrRdrRdrRdrRdrRdrRdrUdrUdrUdsAdsBdsCdsDdsTdsDdsUdsVdsGdrUdrUdrUdrRdrRdrRdrRdrRdrRdrRdsWdsWdsWdsWdsWdsWdsWdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsvdsHdsxdrRdsvdsHdsxdrRdsvdsHdsxdrRdsvdsHdsxdrRdsvdsHdsxdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaagaafaaaaafaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsydszdsmdrRdsydszdsmdrRdsydszdsmdrRdsydszdsmdrRdsydszdsmdrRdrRdrRdrRdrRdrRdsXdsYdsYdsYdsYdsZdtadtbdtcdtddsSdrRdrRdrRdrRdrRdtedtfdtfdtgdtgdthdtidtjdsDdsDdsDdssdtkdtldrUdrUdrRdrRdrRdrRdrRdrRdrRdrRdsWdtmdtndtodtpdtqdtrdtrdtrdtrdtsdrRdrRdrRdrRdrRdrRdsvdsHdsxdrRdsvdsHdsxdrRdsvdsHdsxdrRdsvdsHdsxdrRdsvdsHdsxdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdttdrRdrRdrRdttdrRdrRdrRdttdrRdrRdrRdttdrRdrRdrRdttdrRdrRdtudrRdtvdtvdtvdsXdtwdtxdtydtzdtAdtcdtcdtcdtBdsSdrRdrRdrRdrRdrRdtCdrRdrRdrUdrUdrUdtDdtEdtFdtGdtFdtHdtIdrUdrUdrUdrRdrRdrRdrRdrRdrRdrRdrRdsWdtJdtKdtLdtLdtMdtNdtOdtPdtQdtsdtRdtRdtRdrRdrRdrRdrRdtSdrRdrRdrRdtSdrRdrRdrRdtSdrRdrRdrRdtSdrRdrRdrRdtSdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaafaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdtTdtUdtVdtVdtVdtVdtVdtVdtVdtVdtVdtVdtVdtVdtVdtVdtVdtVdtVdtVdtVdtVdtWdtXdtYdtZduadubducdudduedufdugduhduidujdukduldsSaaaaaaaaaaaaaaadumaaaaaadrUdrUdrUdsbdunduodupduqdurdrWdrUdrUdrUaaaaaadrTaaaaaaaaaaaaaaadsWdusdutduuduuduvduwduxduyduzduAduBduCduDduEduFduGduHduHduHduHduHduHduHduHduHduHduHduHduHduHduHduHduHduHduHduHduIduJdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRduKdrRdrRdrRduKdrRdrRdrRduKdrRdrRdrRduKdrRdrRdrRduKdrRdrRdrRdrRdtvduLduMduNduOduPduQdtzduRdtcduSduTdsSdsSaaaaaaaaaaaaaaadumaaaaaaaaaaaadrUdrUdrUdrUduUdrUdrUdrUdrUaaaaaaaaaaaadrTaaaaaaaaaaaaaaadsWdsWduVduWdtLduXdtNduYduZdvadvbdvcdvddtRdrRdrRdrRdrRdvedrRdrRdrRdvedrRdrRdrRdvedrRdrRdrRdvedrRdrRdrRdvedrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvfaaaaaaaaadvfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsydvgdsmdrRdsydvgdsmdrRdsydvgdsmdrRdsydvgdsmdrRdsydvgdsmdrRdrRdrRdrRdrRdrRdsXdsYdsYdsYdsSdvhdvidsSdsSdsSaaaaaaaaaaaaaaaaaadtCdrRdrRdrRdvjdvjdvjdvjdrUdvkdvldvmdvjdvjdvjdrRdrRdrRdrRaaaaaaaaaaaaaaaaaadsWdsWdsWdvndvodsWdtrdtrdtrdtsdrRdrRdrRdrRdrRdrRdsvdvpdsxdrRdsvdvpdsxdrRdsvdvpdsxdrRdsvdvpdsxdrRdsvdvpdsxdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvfaaaaaaaaadvfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaafaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsydvgdsmdrRdsydvgdsmdrRdsydvgdsmdrRdsydvgdsmdrRdsydvgdsmdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsSdvqdtcdsSaaaaaaaaaaaaaaaaaadrRdrRdtCdrRdrRdrRdvjdvrdvsdvtdvudvvdvwdvxdvsdvydvjdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaadsWdtLdvzdsWdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsvdvpdsxdrRdsvdvpdsxdrRdsvdvpdsxdrRdsvdvpdsxdrRdsvdvpdsxdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvfaaaaaaaaadvfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsydvgdsmdrRdsydvgdsmdrRdsydvgdsmdrRdsydvgdsmdrRdsydvgdsmdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsSdvAdvBdsSaaaaaaaaaaaaaaadrRdrRdrRdtCdrRdrRdrRdvjdvCdvDdvEdvFdvGdvHdvIdvJdvJdvjdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaadsWdtJdvKdsWdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsvdvpdsxdrRdsvdvpdsxdrRdsvdvpdsxdrRdsvdvpdsxdrRdsvdvpdsxdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvfdvfdvfdvfdvfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaafaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsydvgdsmdrRdsydvgdsmdrRdsydvgdsmdrRdsydvgdsmdrRdsydvgdsmdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsSdvLdvMdsSaaaaaaaaaaaadrRdrRdrRdrRdtCdrRdrRdrRdvjdvNdvJdvOdvJdvPdvJdvOdvJdvQdvjdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaadsWdvRdvSdsWdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsvdvpdsxdrRdsvdvpdsxdrRdsvdvpdsxdrRdsvdvpdsxdrRdsvdvpdsxdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvfdvfdvfdvfdvfdvfdvfdvfdvfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaafaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsydvTdsmdrRdsydvTdsmdrRdsydvTdsmdrRdsydvTdsmdrRdsydvTdsmdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsSdvLdvUdsSaaaaaaaaadrRdrRdrRdrRdrRdtCdrRdrRdrRdvjdvVdvJdvjdvWdvXdvYdvjdvZdwadvjdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaadsWdwbdvSdsWdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsvdwcdsxdrRdsvdwcdsxdrRdsvdwcdsxdrRdsvdwcdsxdrRdsvdwcdsxdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaRaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvfdvfdvfdvfdvfdvfdvfdvfdvfdvfdvfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsSdwddwedwfaaaaaaaaadrRdrRdrRdrRdrRdtCdrRdrRdwgdwgdwhdwgdwgdvjdwidvjdwjdwjdwkdwjdwjdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaadwldwmdwndsWdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaadaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvfdvfdvfdvfdvfdvfdvfdvfdvfdvfdvfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsSdwodwpdwfaaaaaadrRdrRdrRdrRdrRdrRdtCdrRdwgdwgdwqdwrdwsdwgdwtdwudwvdwjdwwdwxdwydwjdwjdrRdrRdrRdrRdrRdrRdrRdrRaaaaaadwldwzdwAdsWdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvfdvfdvfdvfdvfdvfdvfdvfdvfdvfdvfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsSdwBdwCdwfaaaaaadrRdrRdrRdrRdrRdrRdtCdrRdwgdwDdwEdwFdwGdwHdwIdwJdwKdwLdwMdwNdwOdwPdwjdrRdrRdrRdrRdrRdrRdrRdrRaaaaaadwldwQdwRdsWdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjdsjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvfdvfdvfdvfdvfdvfdvfdvfdvfdvfdvfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsSdwSdwTdsSaaaaaadwUdwVdwWdwVdwXdwXdwYdwXdwXdwZdxadxbdxcdwgdxddxedxddwjdxfdxgdxhdxidxjdxkdxldxkdxjdxmdxndxmdxoaaaaaadsWdxpdxqdsWdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsjdsjdsjdsjdsjdsjdsjdsjdsjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvfdvfdvfdvfdvfdvfdvfdvfdvfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsSdxrdtcdsSaaaaaadwUdxsdxtdxudxvdxwdxxdxydwXdwgdwgdwgdxzdxAdxBdxCdxDdxEdxFdwjdwjdwjdxjdxGdxHdxIdxJdxKdxLdxMdxoaaaaaadsWdtLdxNdsWdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsjdsjdsjdsjdsjdsjdsjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvfdvfdvfdvfdvfdvfdvfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsSdxOdxPdsSaaaaaadwUdxQdxRdxSdxvdxTdxUdxVdwXdxWdxXdxXdxYdxXdxXdxZdxXdxXdyadxXdxXdybdxjdycdyddyedxJdyfdygdyhdxoaaaaaadsWdyidyjdsWdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvfdvfdvfdvfdvfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdsSdsSdykdvidsSaaaaaadwUdyldymdyndxvdyodypdyqdwXdyrdysdytdyudyvdywdyxdyvdyvdyydyzdysdyrdxjdyAdyBdyCdxJdyDdyEdyFdxoaaaaaadsWdvndyGdsWdsWdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdyHdyHdyIdyJdyKdyLdyMdyNdyOdyPdyPdwUdyQdyRdySdwXdyTdxvdxvdyUdyrdytdyVdyVdyVdyVdyVdyVdyVdyVdyVdyzdyrdyWdyXdyYdxJdxjdyZdzadzbdxodzcdzcdzddzedzfdzgdzhdzidzjdzkdzkdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdzldzmdzndzodzpdzqdzrdzsdztdzudzvdzwdzxdzydzzdzAdzBdzCdzDdzEdzFdzGdzHdyVdzIdzIdzIdzIdzIdyVdzJdzKdzLdzMdzNdzOdzPdzQdzRdzOdzSdzTdzUdzNdzMdzVdzWdzXdzYdzZdAadAbdAcdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdAddzmdAedAfdzpdAgdAhdAidAjdAkdAkdAldAmdAndAodApdAqdArdAsdAtdAudAvdAwdyVdzIdzIdzIdzIdzIdyVdAwdAxdAydAzdAAdABdACdADdACdABdAEdAFdACdACdAzdAGdAHdAIdzYdAJdAKdAbdALdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdyHdyHdAMdANdAOdAPdAQdzudztdzudARdASdATdzydARdAUdAVdzydzudztdAWdAXdyVdyVdzIdzIdzIdzIdzIdyVdyVdAYdAZdzMdzNdzOdBadBbdBcdzOdBadBddBcdzNdzMdzNdBedBfdBgdBhdBidzkdzkdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdBjdBjdBkdBjdBldBmdBndBodBpdBqdBqdBqdBqdBrdBsdBrdBtdBudBvdBwdBxdBydAvdBzdyVdzIdzIdzIdzIdzIdyVdBzdAxdBAdBBdBCdBDdBEdBFdBGdBHdBIdBJdzcdzcdzkdBKdzWdBLdBMdBNdBOdBPdBOdBOdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdBQdBRdBSdBTdBUdBVdBWdBodBXdBqdBYdBZdCadCadCbdCcdBudCddCedCfdBtdCgdChdCidyVdzIdzIdzIdzIdzIdyVdCjdCkdCldBFdCmdCndCodBEdCpdCqdCrdBJdrRdrRdzkdCsdzWdCtdCudCvdCwdCxdCydCzdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdBjdBjdBkdBjdBldCAdCBdBodCCdCDdBqdBqdCEdCFdCGdCHdBudCIdCJdCKdBtdAZdCLdyVdCMdCNdCOdCPdCQdyVdCRdyVdCSdAZdBFdCTdCUdCVdBEdCWdCXdCYdBJdrRdrRdCZdDadzWdDbdDcdBNdBOdBPdBOdBOdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdDddDddDddDddDddDddDedDfdBqdDgdDhdDidDjdDjdDkdBudDldDmdDndBtdDodDpdDqdDrdDsdDtdDtdDtdDqdDudDsdDtdDvdBFdDwdDxdDydBEdDzdDAdDBdBJaaaaaadDCdDDdDEdDCdDCdDCdDCdDCdDCdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaadaaRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdDddDFdDGdBqdBqdBqdBqdBqdBqdBqdBtdBtdBtdBtdBtdDHdDIdDJdDKdDLdDLdDMdDNdDOdDPdDQdDRdDSdBFdBFdBFdBFdBFdBJdBJdBJdBJaaaaaadDCdDTdDUdDCdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdDddDVdDWdDdaaaaaadDXdDYdDZdEadEbdEcdEddEedDXdEfdEgdEhdEidEjdEkdEldEkdEidEidEhdEmdEndEodEpdEqdErdEsdEodEtdEudEoaaaaaadDCdEvdEwdDCdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafaafaafaadaTfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdDddDFdExdDdaaaaaadDXdEydEzdEAdEBdECdEDdEEdDXdEFdEGdyVdEHdEIdysdyrdysdEJdEKdyVdELdEMdEodENdEOdEPdEQdERdESdETdEoaaaaaadDCdEUdEVdDCdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdDddDFdEWdEXaaaaaadEYdEcdEZdFadFbdFcdFddFedFfdFgdFhdFidEHdFjdFkdFldFmdysdFndFodFpdFqdFrdFsdFtdFudFvdEodFwdFxdEoaaaaaadFydFzdFAdDCdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdDddFBdFCdEXaaaaaadFDdFEdFFdFGdFHdFGdFIdFJdDXdFKdFLdyVdFMdFNdFOdFPdFQdFRdFSdyVdFTdFUdEodEodEodFVdEodEodEodEodEoaaaaaadFydFWdFXdDCdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaafaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdDddFYdFZdEXaaaaaadGadGbdEcdEcdGcdEcdEcdGddDXdEFdEGdGedGedGfdGgdGhdGidGjdGedGedELdEMdEodGkdGldGmdGndGodGpdGqdEoaaaaaadFydGrdGsdDCdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaafaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdGtdGudGvdrRdGtdGudGvdrRdGtdGudGvdrRdGtdGudGvdrRdGtdGudGvdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdDddFYdGwdDdaaaaaadGxdGydGzdEcdGAdGBdGCdGDdGEdGFdGGdGHdGIdGJdGKdGLdGMdGJdGNdGOdGPdGQdGRdGSdGTdGUdGVdGWdGXdGYdEoaaaaaadDCdGZdGsdDCdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdHadHbdHcdrRdHadHbdHcdrRdHadHbdHcdrRdHadHbdHcdrRdHadHbdHcdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafaafaafaaRaafaaaaaaaagaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdGtdHddGvdrRdGtdHddGvdrRdGtdHddGvdrRdGtdHddGvdrRdGtdHddGvdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdDddFYdHedDddDddDXdDXdDXdHfdHgdHhdHgdHfdDXdDXdHidHjdHkdHldHmdHldHndHldHmdHldHldHodHpdEodEodHqdHrdHsdHtdHudHvdEodEodDCdDCdHwdGsdDCdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdHadHxdHcdrRdHadHxdHcdrRdHadHxdHcdrRdHadHxdHcdrRdHadHxdHcdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaafaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdGtdHddGvdrRdGtdHddGvdrRdGtdHddGvdrRdGtdHddGvdrRdGtdHddGvdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdDddFYdExdHydHzdDXdHAdHBdHCdHDdGAdEcdEcdHEdHFdHGdHHdHIdHJdHKdHLdHMdHNdHOdHPdHQdHRdHSdHTdHUdHVdHWdHXdHYdHZdGWdIadEodIbdIcdIddGsdDCdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdHadHxdHcdrRdHadHxdHcdrRdHadHxdHcdrRdHadHxdHcdrRdHadHxdHcdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdGtdHddGvdrRdGtdHddGvdrRdGtdHddGvdrRdGtdHddGvdrRdGtdHddGvdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdDddFYdExdExdExdIedEcdIfdIgdIhdIidIjdIkdDXdIldImdIndIodIndIndIndIodIndIndIndIndIndImdIpdEodIqdGWdGVdIrdGWdGWdIsdEodItdIudIvdGsdDCdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdHadHxdHcdrRdHadHxdHcdrRdHadHxdHcdrRdHadHxdHcdrRdHadHxdHcdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdGtdHddGvdrRdGtdHddGvdrRdGtdHddGvdrRdGtdHddGvdrRdGtdHddGvdrRdrRdrRdrRdrRdrRdIwdIxdIxdIxdDddIydDfdDfdDfdDXdIzdIAdIBdEcdICdIAdIDdIEdIFdIGdIHdIIdIJdIndIndIKdIndIndILdIMdINdIOdIPdIQdIRdGWdISdITdEOdGWdIUdEodDDdDDdDDdIVdDCdIWdIWdIWdIXdrRdrRdrRdrRdrRdrRdHadHxdHcdrRdHadHxdHcdrRdHadHxdHcdrRdHadHxdHcdrRdHadHxdHcdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdIYdrRdrRdrRdIYdrRdrRdrRdIYdrRdrRdrRdIYdrRdrRdrRdIYdrRdrRdrRdrRdIZdJadJbdJcdJddJedJfdJgdJhdJidJjdJkdDXdDXdJldJmdJndJodJldDXdDXdJpdJqdJrdGedJsdJtdJudJvdJwdJxdJydGedJzdJAdJBdEodEodJCdJDdJEdEOdJFdEodEodJGdJHdJIdJJdJKdJLdJMdJNdJOdJPdJQdJRdrRdrRdrRdrRdJSdrRdrRdrRdJSdrRdrRdrRdJSdrRdrRdrRdJSdrRdrRdrRdJSdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdJTdJUdJVdJVdJVdJVdJVdJVdJVdJVdJVdJVdJVdJVdJVdJVdJVdJVdJVdJVdJVdJVdJWdJXdJYdJZdKadKbdKcdKddKedKfdKgdKhdKidKidKjdKkdDXdDXdKldKmdKndKodGxaaaaaaaaaaaadKpdGedJpdKqdKrdKsdJrdGedGeaaaaaaaaaaaadKtdKudKvdKwdKxdEodEodKydKzdKAdKBdKCdKDdKEdKFdKGdKHdKIdKJdKKdKLdKMdKNdKOdKOdKOdKOdKOdKOdKOdKOdKOdKOdKOdKOdKOdKOdKOdKOdKOdKOdKOdKOdKPdKQdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdKRdrRdrRdrRdKRdrRdrRdrRdKRdrRdrRdrRdKRdrRdrRdrRdKRdrRdrRdrRdrRdIZdIZdIZdIwdKSdKTdKUdJgdKVdExdExdKWdKXdDddKYdKZdKZdKZdKZdLadrRdrRdrRdrRdrRdKYdKZdKZdKZdKZdKZdLadLbdrRdrRdrRdrRdKYdKZdKZdKZdKZdLadDCdLcdLddLddLddLedJKdLfdLgdLhdIXdJRdJRdJRdrRdrRdrRdrRdLidrRdrRdrRdLidrRdrRdrRdLidrRdrRdrRdLidrRdrRdrRdLidrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaagaafaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdGtdLjdGvdrRdGtdLjdGvdrRdGtdLjdGvdrRdGtdLjdGvdrRdGtdLjdGvdrRdrRdrRdrRdrRdrRdIwdIxdIxdIxdIxdLkdLldLmdLndLodDddrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdDCdLpdLddLqdLrdLsdIWdIWdIWdIWdIXdrRdrRdrRdrRdrRdrRdHadLtdHcdrRdHadLtdHcdrRdHadLtdHcdrRdHadLtdHcdrRdHadLtdHcdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdGtdLjdGvdrRdGtdLjdGvdrRdGtdLjdGvdrRdGtdLjdGvdrRdGtdLjdGvdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdDddDddDddDddDddDddDddrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdDCdDCdDCdDCdDCdDCdDCdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdHadLtdHcdrRdHadLtdHcdrRdHadLtdHcdrRdHadLtdHcdrRdHadLtdHcdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaadaadaaRaadaadaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdGtdLjdGvdrRdGtdLjdGvdrRdGtdLjdGvdrRdGtdLjdGvdrRdGtdLjdGvdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdHadLtdHcdrRdHadLtdHcdrRdHadLtdHcdrRdHadLtdHcdrRdHadLtdHcdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaRaafaafaafaafaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdGtdLjdGvdrRdGtdLjdGvdrRdGtdLjdGvdrRdGtdLjdGvdrRdGtdLjdGvdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdHadLtdHcdrRdHadLtdHcdrRdHadLtdHcdrRdHadLtdHcdrRdHadLtdHcdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaafaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdGtdLudGvdrRdGtdLudGvdrRdGtdLudGvdrRdGtdLudGvdrRdGtdLudGvdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdHadLvdHcdrRdHadLvdHcdrRdHadLvdHcdrRdHadLvdHcdrRdHadLvdHcdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafaafaafaaRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaadaadaadaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaagaadaadaadaagaaRaagaagaadaadaadaadaafaaeaaaaafaagaadaadaadaadaadaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaafaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaafaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaRaagaadaafaaaaaaaaaaadaadaadaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaafaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaafaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaafaafaafaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaagaaRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaadaagaaaaaaaaaaaRaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaagaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaafaaaaaaaafaafaadaadaadaafaaeaagaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaafaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaadaadaafaadaadaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaagaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLwdLwdLwdLwaaaaaaaaadLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaadLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaadLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaadLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaadLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaadLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaadLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLwdLwdLwdLwaaaaaaaaadLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwdLwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaadrRdrRdrRdrRdrRdrRdrRaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRdrRdrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrRdrRdrRdrRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaadrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTfaadaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaafaagaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbadcaadaaaaaaaafaaaaaaaafaaaaaaaafaaaaafaaaaaaaadaadaadaagaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaagaaaaaaaaaaaaaafaaaaaaaafaaaaaaaafaaaaafaaaaaaaaaaaaaaaaafaadaaaaaaaaaaaaaaaaaaaadaafaafaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaafaafaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaaadrTdrTdrTdrTdrTaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaabaRaaaaaaaaaaaaaaaaaRaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaaaaafaaaaaaaaaaafaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaagaadaafaafaafaafaafaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafdrTdrTdrTdrTaaaaafaafaafaadaaaaaaaaaaaaaadaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaafaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafdrTdrTdrTdrTaaaaaaaaaaaaaadaaaaaaaaaaaaaadaafaafaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafdrTdrTdrTdrTaaaaaaaaaaaaaadaadaaaaaaaaaaadaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaafaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafdrTdrTdrTdrTaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrTbeYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaafaaaaafaafaaaaafaafaaaaafaaaaafaafaaaaaaaaaaaaaaaaaaaafbaRaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaagaaaaaaaaaaaaaaaaaadrUdrUdrUdrUdrUdrUdrUdrUdrUdrUdrUaaaaaaaaaaaaaaaaaaaaaaaadrTaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaafaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaadaaaaaaaadaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaaaaaaaaaaaaaaaaaadrUdrUdrUdrUdrUdrUdrUdrUdrUdrUdrUdrUaaaaaaaaaaaaaaaaaadrVdrVdrVaafaafaafaaaaaaaaaaafaafaafdrVdrVdrVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaafaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafaafaafaadaafaaRaadaafaafaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafaafaafaadaaaaaaaaaaaaaaaaaadrUdrUdrUdrUdrUdrUdrUdrUdrUdrUdrUdrUaaaaaaaaaaaaaaaaaadrTdrTdrTaaaaaaaafaaaaaaaaaaafaaaaaadrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaafaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaafaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaaaaaaaaaaaaaaaaaadrUdrUdrUdrUdrUdrUdrUdrUdrUdrUdrUdrUaaaaaaaaaaaaaaaaaadrVdrVdrVaafaafaafaaaaaaaaaaafaafaafdrVdrVdrVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaafdrTdrTdrTdrTaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaafaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrUdrUdrUdrUdrUdrUdrUdrUdrUdrUdrUaaaaaaaaaaaaaaaaaaaaaaaadrTaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrTdrTdrTdrTaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrTdrTdrTdrTaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcaafaafaafaafdrTdrTdrTdrTaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaadrTdrTdrTdrTaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrWdrWdrWdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaagaaaaaaaaaaaaaaadrTaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrTaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaafdrTdrTdrTdrTaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrWdrWdrWdrWdrWdrWdrWdrWdrWdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTaaaaafaaaaaaaafaaaaaaaaaaaaaaadrTaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrTaaaaaaaadaaRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrTdrTdrTdrTaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrWdrWdrWdrWdrXdrWdrWdrWdrWdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaafaaaaaaaaaaaaaaadrTaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrTaaaaaaaaaaafaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrTdrTdrTdrTaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrWdrWdrWdrYdrZdsadsbdsadscdsddrWdrWdrWdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaadrTaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadrTaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaafdrTdrTdrTdrTaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrWdrWdrWdsedsfdsgdshdsidsjdskdrWdrWdrWdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaadrTaaaaaaaaaaafdrTdrTdrTdrTdrTdrTdrTdrTdrTaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldsldsldslaaaaaaaaadslaaaaaaaaaaaaaaadslaaaaaaaaadsldsldsldslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdsmdsndsodrTdsmdsndsodrTdsmdsndsodrTdsmdsndsodrTdsmdsndsodrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrWdrWdspdsqdsrdssdstdsgdsudsvdswdrWdrWdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsxdsydszdrTdsxdsydszdrTdsxdsydszdrTdsxdsydszdrTdsxdsydszdrTdrTdrTaaadrTaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldsldsldslaaaaaaaaadsldsldsldsldsldsldslaaaaaaaaadsldsldsldslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaafaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdsAdsBdsodrTdsAdsBdsodrTdsAdsBdsodrTdsAdsBdsodrTdsAdsBdsodrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrWdrWdrWdsCdsDdsEdsFdsFdsFdsGdsHdsIdrWdrWdrWdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsxdsJdszdrTdsxdsJdszdrTdsxdsJdszdrTdsxdsJdszdrTdsxdsJdszdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldsldsldslaaaaaadsldsldsldsldsldsldsldsldslaaaaaadsldsldsldslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaafaafaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsAdsBdsodrTdsAdsBdsodrTdsAdsBdsodrTdsAdsBdsodrTdsAdsBdsodrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrWdrWdsKdsLdsMdsNdsOdsPdsOdsQdsRdsSdsTdrWdrWdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsxdsJdszdrTdsxdsJdszdrTdsxdsJdszdrTdsxdsJdszdrTdsxdsJdszdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldsldsldslaaaaaadsldsldsldsldsldsldsldsldslaaaaaadsldsldsldslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaadaadaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsAdsBdsodrTdsAdsBdsodrTdsAdsBdsodrTdsAdsBdsodrTdsAdsBdsodrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsUdsUdsUdsUdsUdsUdsUdrTdrTdrTdrTdrTdrTdrTdrWdrWdrWdsCdsDdsEdsFdsVdsFdsWdsXdsIdrWdrWdrWdrTdrTdrTdrTdrTdrTdrTdsYdsYdsYdsYdsYdsYdsYdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsxdsJdszdrTdsxdsJdszdrTdsxdsJdszdrTdsxdsJdszdrTdsxdsJdszdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaagaafaaaaafaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsAdsBdsodrTdsAdsBdsodrTdsAdsBdsodrTdsAdsBdsodrTdsAdsBdsodrTdrTdrTdrTdrTdrTdsZdtadtadtadtadtbdtcdtddtedtfdsUdrTdrTdrTdrTdrTdtgdthdthdtidtidtjdtkdtldsFdsFdsFdsudtmdtndrWdrWdrTdrTdrTdrTdrTdrTdrTdrTdsYdtodtpdtqdtrdtsdttdttdttdttdtudrTdrTdrTdrTdrTdrTdsxdsJdszdrTdsxdsJdszdrTdsxdsJdszdrTdsxdsJdszdrTdsxdsJdszdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdtvdrTdrTdrTdtvdrTdrTdrTdtvdrTdrTdrTdtvdrTdrTdrTdtvdrTdrTdtwdrTdtxdtxdtxdsZdtydtzdtAdtBdtCdtedtedtedtDdsUdrTdrTdrTdrTdrTdtEdrTdrTdrWdrWdrWdtFdtGdtHdtIdtHdtJdtKdrWdrWdrWdrTdrTdrTdrTdrTdrTdrTdrTdsYdtLdtMdtNdtNdtOdtPdtQdtRdtSdtudtTdtTdtTdrTdrTdrTdrTdtUdrTdrTdrTdtUdrTdrTdrTdtUdrTdrTdrTdtUdrTdrTdrTdtUdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaafaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdtVdtWdtXdtXdtXdtXdtXdtXdtXdtXdtXdtXdtXdtXdtXdtXdtXdtXdtXdtXdtXdtXdtYdtZduadubducdudduedufdugduhduidujdukduldumdundsUaaaaaaaaaaaaaaaduoaaaaaadrWdrWdrWdsddupduqdurdusdutdrYdrWdrWdrWaaaaaadrVaaaaaaaaaaaaaaadsYduuduvduwduwduxduyduzduAduBduCduDduEduFduGduHduIduJduJduJduJduJduJduJduJduJduJduJduJduJduJduJduJduJduJduJduJduKduLdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTduMdrTdrTdrTduMdrTdrTdrTduMdrTdrTdrTduMdrTdrTdrTduMdrTdrTdrTdrTdtxduNduOduPduQduRduSdtBduTdteduUduVdsUdsUaaaaaaaaaaaaaaaduoaaaaaaaaaaaadrWdrWdrWdrWduWdrWdrWdrWdrWaaaaaaaaaaaadrVaaaaaaaaaaaaaaadsYdsYduXduYdtNduZdtPdvadvbdvcdvddvedvfdtTdrTdrTdrTdrTdvgdrTdrTdrTdvgdrTdrTdrTdvgdrTdrTdrTdvgdrTdrTdrTdvgdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvhaaaaaaaaadvhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsAdvidsodrTdsAdvidsodrTdsAdvidsodrTdsAdvidsodrTdsAdvidsodrTdrTdrTdrTdrTdrTdsZdtadtadtadsUdvjdvkdsUdsUdsUaaaaaaaaaaaaaaaaaadtEdrTdrTdrTdvldvldvldvldrWdvmdvndvodvldvldvldrTdrTdrTdrTaaaaaaaaaaaaaaaaaadsYdsYdsYdvpdvqdsYdttdttdttdtudrTdrTdrTdrTdrTdrTdsxdvrdszdrTdsxdvrdszdrTdsxdvrdszdrTdsxdvrdszdrTdsxdvrdszdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvhaaaaaaaaadvhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaafaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsAdvidsodrTdsAdvidsodrTdsAdvidsodrTdsAdvidsodrTdsAdvidsodrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsUdvsdtedsUaaaaaaaaaaaaaaaaaadrTdrTdtEdrTdrTdrTdvldvtdvudvvdvwdvxdvydvzdvudvAdvldrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaadsYdtNdvBdsYdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsxdvrdszdrTdsxdvrdszdrTdsxdvrdszdrTdsxdvrdszdrTdsxdvrdszdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvhaaaaaaaaadvhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsAdvidsodrTdsAdvidsodrTdsAdvidsodrTdsAdvidsodrTdsAdvidsodrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsUdvCdvDdsUaaaaaaaaaaaaaaadrTdrTdrTdtEdrTdrTdrTdvldvEdvFdvGdvHdvIdvJdvKdvLdvLdvldrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaadsYdtLdvMdsYdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsxdvrdszdrTdsxdvrdszdrTdsxdvrdszdrTdsxdvrdszdrTdsxdvrdszdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvhdvhdvhdvhdvhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaafaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsAdvidsodrTdsAdvidsodrTdsAdvidsodrTdsAdvidsodrTdsAdvidsodrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsUdvNdvOdsUaaaaaaaaaaaadrTdrTdrTdrTdtEdrTdrTdrTdvldvPdvLdvQdvLdvRdvLdvQdvLdvSdvldrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaadsYdvTdvUdsYdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsxdvrdszdrTdsxdvrdszdrTdsxdvrdszdrTdsxdvrdszdrTdsxdvrdszdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldsldslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvhdvhdvhdvhdvhdvhdvhdvhdvhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaafaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsAdvVdsodrTdsAdvVdsodrTdsAdvVdsodrTdsAdvVdsodrTdsAdvVdsodrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsUdvNdvWdsUaaaaaaaaadrTdrTdrTdrTdrTdtEdrTdrTdrTdvldvXdvLdvldvYdvZdwadvldwbdwcdvldrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaadsYdwddvUdsYdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsxdwedszdrTdsxdwedszdrTdsxdwedszdrTdsxdwedszdrTdsxdwedszdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaRaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldsldsldsldsldsldsldsldsldsldsldsldslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvhdvhdvhdvhdvhdvhdvhdvhdvhdvhdvhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsUdwfdwgdwhaaaaaaaaadrTdrTdrTdrTdrTdtEdrTdrTdwidwidwjdwidwidvldwkdvldwldwldwmdwldwldrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaadwndwodwpdsYdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaadaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldsldsldsldsldsldsldsldsldsldsldsldslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvhdvhdvhdvhdvhdvhdvhdvhdvhdvhdvhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsUdwqdwrdwhaaaaaadrTdrTdrTdrTdrTdrTdtEdrTdwidwidwsdwtdwudwidwvdwwdwxdwldwydwzdwAdwldwldrTdrTdrTdrTdrTdrTdrTdrTaaaaaadwndwBdwCdsYdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldsldsldsldsldsldsldsldsldsldsldsldslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvhdvhdvhdvhdvhdvhdvhdvhdvhdvhdvhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsUdwDdwEdwhaaaaaadrTdrTdrTdrTdrTdrTdtEdrTdwidwFdwGdwHdwIdwJdwKdwLdwMdwNdwOdwPdwQdwRdwldrTdrTdrTdrTdrTdrTdrTdrTaaaaaadwndwSdwTdsYdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldsldsldsldsldsldsldsldsldsldsldsldslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvhdvhdvhdvhdvhdvhdvhdvhdvhdvhdvhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsUdwUdwVdsUaaaaaadwWdwXdwYdwXdwZdwZdxadwZdwZdxbdxcdxddxedwidxfdxgdxfdwldxhdxidxjdxkdxldxmdxndxmdxldxodxpdxodxqaaaaaadsYdxrdxsdsYdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldsldsldsldsldsldsldsldslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvhdvhdvhdvhdvhdvhdvhdvhdvhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsUdxtdtedsUaaaaaadwWdxudxvdxwdxxdxydxzdxAdwZdwidwidwidxBdxCdxDdxEdxFdxGdxHdwldwldwldxldxIdxJdxKdxLdxMdxNdxOdxqaaaaaadsYdtNdxPdsYdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsldsldsldsldsldsldslaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvhdvhdvhdvhdvhdvhdvhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsUdxQdxRdsUaaaaaadwWdxSdxTdxUdxxdxVdxWdxXdwZdxYdxZdxZdyadxZdxZdybdxZdxZdycdxZdxZdyddxldyedyfdygdxLdyhdyidyjdxqaaaaaadsYdykdyldsYdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadvhdvhdvhdvhdvhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdsUdsUdymdvkdsUaaaaaadwWdyndyodypdxxdyqdyrdysdwZdytdyudyvdywdyxdyydyzdyxdyxdyAdyBdyudytdxldyCdyDdyEdxLdyFdyGdyHdxqaaaaaadsYdvpdyIdsYdsYdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdyJdyJdyKdyLdyMdyNdyOdyPdyQdyRdyRdwWdySdyTdyUdwZdyVdxxdxxdyWdytdyvdyXdyXdyXdyXdyXdyXdyXdyXdyXdyBdytdyYdyZdzadxLdxldzbdzcdzddxqdzedzedzfdzgdzhdzidzjdzkdzldzmdzmdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdzndzodzpdzqdzrdzsdztdzudzvdzwdzxdzydzzdzAdzBdzCdzDdzEdzFdzGdzHdzIdzJdyXdzKdzKdzKdzKdzKdyXdzLdzMdzNdzOdzPdzQdzRdzSdzTdzQdzUdzVdzWdzPdzOdzXdzYdzZdAadAbdAcdAddAedrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdAfdzodAgdAhdzrdAidAjdAkdAldAmdAmdAndAodApdAqdArdAsdAtdAudAvdAwdAxdAydyXdzKdzKdzKdzKdzKdyXdAydAzdAAdABdACdADdAEdAFdAEdADdAGdAHdAEdAEdABdAIdAJdAKdAadALdAMdAddANdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdyJdyJdAOdAPdAQdARdASdzwdzvdzwdATdAUdAVdzAdATdAWdAXdzAdzwdzvdAYdAZdyXdyXdzKdzKdzKdzKdzKdyXdyXdBadBbdzOdzPdzQdBcdBddBedzQdBcdBfdBedzPdzOdzPdBgdBhdBidBjdBkdzmdzmdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdBldBldBmdBldBndBodBpdBqdBrdBsdBsdBsdBsdBtdBudBtdBvdBwdBxdBydBzdBAdAxdBBdyXdzKdzKdzKdzKdzKdyXdBBdAzdBCdBDdBEdBFdBGdBHdBIdBJdBKdBLdzedzedzmdBMdzYdBNdBOdBPdBQdBRdBQdBQdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdBSdBTdBUdBVdBWdBXdBYdBqdBZdBsdCadCbdCcdCcdCddCedBwdCfdCgdChdBvdCidCjdCkdyXdzKdzKdzKdzKdzKdyXdCldCmdCndBHdCodCpdCqdBGdCrdCsdCtdBLdrTdrTdzmdCudzYdCvdCwdCxdCydCzdCAdCBdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdBldBldBmdBldBndCCdCDdBqdCEdCFdBsdBsdCGdCHdCIdCJdBwdCKdCLdCMdBvdBbdCNdyXdCOdCPdCQdCRdCSdyXdCTdyXdCUdBbdBHdCVdCWdCXdBGdCYdCZdDadBLdrTdrTdDbdDcdzYdDddDedBPdBQdBRdBQdBQdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdDfdDfdDfdDfdDfdDfdDgdDhdBsdDidDjdDkdDldDldDmdBwdDndDodDpdBvdDqdDrdDsdDtdDudDvdDvdDvdDsdDwdDudDvdDxdBHdDydDzdDAdBGdDBdDCdDDdBLaaaaaadDEdDFdDGdDEdDEdDEdDEdDEdDEdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaadaaRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdDfdDHdDIdBsdBsdBsdBsdBsdBsdBsdBvdBvdBvdBvdBvdDJdDKdDLdDMdDNdDNdDOdDPdDQdDRdDSdDTdDUdBHdBHdBHdBHdBHdBLdBLdBLdBLaaaaaadDEdDVdDWdDEdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdDfdDXdDYdDfaaaaaadDZdEadEbdEcdEddEedEfdEgdDZdEhdEidEjdEkdEldEmdEndEmdEkdEkdEjdEodEpdEqdErdEsdEtdEudEqdEvdEwdEqaaaaaadDEdExdEydDEdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafaafaafaadaTfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdDfdDHdEzdDfaaaaaadDZdEAdEBdECdEDdEEdEFdEGdDZdEHdEIdyXdEJdEKdyudytdyudELdEMdyXdENdEOdEqdEPdEQdERdESdETdEUdEVdEqaaaaaadDEdEWdEXdDEdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdDfdDHdEYdEZaaaaaadFadEedFbdFcdFddFedFfdFgdFhdFidFjdFkdEJdFldFmdFndFodyudFpdFqdFrdFsdFtdFudFvdFwdFxdEqdFydFzdEqaaaaaadFAdFBdFCdDEdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdDfdFDdFEdEZaaaaaadFFdFGdFHdFIdFJdFIdFKdFLdDZdFMdFNdyXdFOdFPdFQdFRdFSdFTdFUdyXdFVdFWdEqdEqdEqdFXdEqdEqdEqdEqdEqaaaaaadFAdFYdFZdDEdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaafaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdDfdGadGbdEZaaaaaadGcdGddEedEedGedEedEedGfdDZdEHdEIdGgdGgdGhdGidGjdGkdGldGgdGgdENdEOdEqdGmdGndGodGpdGqdGrdGsdEqaaaaaadFAdGtdGudDEdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaafaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdGvdGwdGxdrTdGvdGwdGxdrTdGvdGwdGxdrTdGvdGwdGxdrTdGvdGwdGxdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdDfdGadGydDfaaaaaadGzdGAdGBdEedGCdGDdGEdGFdGGdGHdGIdGJdGKdGLdGMdGNdGOdGLdGPdGQdGRdGSdGTdGUdGVdGWdGXdGYdGZdHadEqaaaaaadDEdHbdGudDEdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdHcdHddHedrTdHcdHddHedrTdHcdHddHedrTdHcdHddHedrTdHcdHddHedrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafaafaafaaRaafaaaaaaaagaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdGvdHfdGxdrTdGvdHfdGxdrTdGvdHfdGxdrTdGvdHfdGxdrTdGvdHfdGxdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdDfdGadHgdDfdDfdDZdDZdDZdHhdHidHjdHidHhdDZdDZdHkdHldHmdHndHodHndHpdHndHodHndHndHqdHrdEqdEqdHsdHtdHudHvdHwdHxdEqdEqdDEdDEdHydGudDEdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdHcdHzdHedrTdHcdHzdHedrTdHcdHzdHedrTdHcdHzdHedrTdHcdHzdHedrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaafaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdGvdHfdGxdrTdGvdHfdGxdrTdGvdHfdGxdrTdGvdHfdGxdrTdGvdHfdGxdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdDfdGadEzdHAdHBdDZdHCdHDdHEdHFdGCdEedEedHGdHHdHIdHJdHKdHLdHMdHNdHOdHPdHQdHRdHSdHTdHUdHVdHWdHXdHYdHZdIadIbdGYdIcdEqdIddIedIfdGudDEdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdHcdHzdHedrTdHcdHzdHedrTdHcdHzdHedrTdHcdHzdHedrTdHcdHzdHedrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdGvdHfdGxdrTdGvdHfdGxdrTdGvdHfdGxdrTdGvdHfdGxdrTdGvdHfdGxdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdDfdGadEzdEzdEzdIgdEedIhdIidIjdIkdIldImdDZdIndIodIpdIqdIpdIpdIpdIqdIpdIpdIpdIpdIpdIodIrdEqdIsdGYdGXdItdGYdGYdIudEqdIvdIwdIxdGudDEdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdHcdHzdHedrTdHcdHzdHedrTdHcdHzdHedrTdHcdHzdHedrTdHcdHzdHedrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdGvdHfdGxdrTdGvdHfdGxdrTdGvdHfdGxdrTdGvdHfdGxdrTdGvdHfdGxdrTdrTdrTdrTdrTdrTdIydIzdIzdIzdDfdIAdDhdDhdDhdDZdIBdICdIDdEedIEdICdIFdIGdIHdIIdIJdIKdILdIpdIpdIMdIpdIpdINdIOdIPdIQdIRdISdITdGYdIUdIVdEQdGYdIWdEqdDFdDFdDFdIXdDEdIYdIYdIYdIZdrTdrTdrTdrTdrTdrTdHcdHzdHedrTdHcdHzdHedrTdHcdHzdHedrTdHcdHzdHedrTdHcdHzdHedrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdJadrTdrTdrTdJadrTdrTdrTdJadrTdrTdrTdJadrTdrTdrTdJadrTdrTdrTdrTdJbdJcdJddJedJfdJgdJhdJidJjdJkdJldJmdDZdDZdJndJodJpdJqdJndDZdDZdJrdJsdJtdGgdJudJvdJwdJxdJydJzdJAdGgdJBdJCdJDdEqdEqdJEdJFdJGdEQdJHdEqdEqdJIdJJdJKdJLdJMdJNdJOdJPdJQdJRdJSdJTdrTdrTdrTdrTdJUdrTdrTdrTdJUdrTdrTdrTdJUdrTdrTdrTdJUdrTdrTdrTdJUdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdJVdJWdJXdJXdJXdJXdJXdJXdJXdJXdJXdJXdJXdJXdJXdJXdJXdJXdJXdJXdJXdJXdJYdJZdKadKbdKcdKddKedKfdKgdKhdKidKjdKkdKkdKldKmdDZdDZdKndKodKpdKqdGzaaaaaaaaaaaadKrdGgdJrdKsdKtdKudJtdGgdGgaaaaaaaaaaaadKvdKwdKxdKydKzdEqdEqdKAdKBdKCdKDdKEdKFdKGdKHdKIdKJdKKdKLdKMdKNdKOdKPdKQdKQdKQdKQdKQdKQdKQdKQdKQdKQdKQdKQdKQdKQdKQdKQdKQdKQdKQdKQdKRdKSdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdKTdrTdrTdrTdKTdrTdrTdrTdKTdrTdrTdrTdKTdrTdrTdrTdKTdrTdrTdrTdrTdJbdJbdJbdIydKUdKVdKWdJidKXdEzdEzdKYdKZdDfdLadLbdLbdLbdLbdLcdrTdrTdrTdrTdrTdLadLbdLbdLbdLbdLbdLcdLddrTdrTdrTdrTdLadLbdLbdLbdLbdLcdDEdLedLfdLfdLfdLgdJMdLhdLidLjdIZdJTdJTdJTdrTdrTdrTdrTdLkdrTdrTdrTdLkdrTdrTdrTdLkdrTdrTdrTdLkdrTdrTdrTdLkdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaagaafaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdGvdLldGxdrTdGvdLldGxdrTdGvdLldGxdrTdGvdLldGxdrTdGvdLldGxdrTdrTdrTdrTdrTdrTdIydIzdIzdIzdIzdLmdLndLodLpdLqdDfdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdDEdLrdLfdLsdLtdLudIYdIYdIYdIYdIZdrTdrTdrTdrTdrTdrTdHcdLvdHedrTdHcdLvdHedrTdHcdLvdHedrTdHcdLvdHedrTdHcdLvdHedrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdGvdLldGxdrTdGvdLldGxdrTdGvdLldGxdrTdGvdLldGxdrTdGvdLldGxdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdDfdDfdDfdDfdDfdDfdDfdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdDEdDEdDEdDEdDEdDEdDEdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdHcdLvdHedrTdHcdLvdHedrTdHcdLvdHedrTdHcdLvdHedrTdHcdLvdHedrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaadaadaaRaadaadaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdGvdLldGxdrTdGvdLldGxdrTdGvdLldGxdrTdGvdLldGxdrTdGvdLldGxdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdHcdLvdHedrTdHcdLvdHedrTdHcdLvdHedrTdHcdLvdHedrTdHcdLvdHedrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaRaafaafaafaafaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdGvdLldGxdrTdGvdLldGxdrTdGvdLldGxdrTdGvdLldGxdrTdGvdLldGxdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdHcdLvdHedrTdHcdLvdHedrTdHcdLvdHedrTdHcdLvdHedrTdHcdLvdHedrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaafaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdGvdLwdGxdrTdGvdLwdGxdrTdGvdLwdGxdrTdGvdLwdGxdrTdGvdLwdGxdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdHcdLxdHedrTdHcdLxdHedrTdHcdLxdHedrTdHcdLxdHedrTdHcdLxdHedrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafaafaafaaRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaadaadaadaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaagaadaadaadaagaaRaagaagaadaadaadaadaafaaeaaaaafaagaadaadaadaadaadaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaafaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaafaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaRaagaadaafaaaaaaaaaaadaadaadaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaafaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaafaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaafaafaafaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaagaaRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaadaagaaaaaaaaaaaRaaaaaaaaaaaadrTdrTdrTdrTdrTaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaagaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaafaaaaaaaafaafaadaadaadaafaaeaagaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaafaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaadaadaafaadaadaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaagaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLydLydLydLydLydLydLydLydLydLydLydLyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLydLydLydLyaaaaaaaaadLydLydLydLydLydLydLydLydLydLydLydLydLydLydLyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaadLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaadLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaadLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaadLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaadLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaadLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaafaafaafaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLydLyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLydLydLydLyaaaaaaaaadLydLydLydLydLydLydLydLydLydLydLydLydLydLydLyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLydLydLydLydLydLydLydLydLydLydLydLyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaadrTdrTdrTdrTdrTdrTdrTaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTdrTdrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrTdrTdrTdrTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -10830,5 +10832,5 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-dLxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+dLzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"}
diff --git a/maps/southern_cross/southern_cross.dm b/maps/southern_cross/southern_cross.dm
index f6fa6bedaa0..08d52039242 100644
--- a/maps/southern_cross/southern_cross.dm
+++ b/maps/southern_cross/southern_cross.dm
@@ -3,6 +3,7 @@
#if !defined(USING_MAP_DATUM)
#include "southern_cross_areas.dm"
+ #include "southern_cross_defines.dm"
#include "southern_cross_elevator.dm"
#include "southern_cross_presets.dm"
#include "southern_cross_shuttles.dm"
diff --git a/maps/southern_cross/southern_cross_areas.dm b/maps/southern_cross/southern_cross_areas.dm
index 36fbc35e2e1..6ec63bb52d6 100644
--- a/maps/southern_cross/southern_cross_areas.dm
+++ b/maps/southern_cross/southern_cross_areas.dm
@@ -939,7 +939,7 @@ area/crew_quarters/heads/sc/hop/quarters
//Shuttle One
/area/shuttle/shuttle1
- name = "\improper SEV Torch Hangar Deck"
+ name = "\improper Hangar Deck"
icon_state = "yellow"
requires_power = 0
dynamic_lighting = 0
diff --git a/maps/southern_cross/southern_cross_shuttles.dm b/maps/southern_cross/southern_cross_shuttles.dm
index a831176b683..b42cebcc821 100644
--- a/maps/southern_cross/southern_cross_shuttles.dm
+++ b/maps/southern_cross/southern_cross_shuttles.dm
@@ -1,54 +1,11 @@
-//Shuttle Consoles
+//ERT Response Shuttle
/obj/machinery/computer/shuttle_control/multi/response
name = "response shuttle console"
shuttle_tag = "Response Operations"
req_access = list(access_cent_specops)
-/obj/machinery/computer/shuttle_control/multi/shuttle1
- name = "shuttle control console"
- shuttle_tag = "shuttle1"
- icon_screen = "shuttle"
-
-/obj/machinery/computer/shuttle_control/multi/shuttle2
- name = "shuttle control console"
- shuttle_tag = "shuttle2"
- icon_screen = "shuttle"
-
-/obj/machinery/computer/shuttle_control/centcom
- name = "shuttle control console"
- req_access = list(access_cent_general)
- shuttle_tag = "centcom"
-
-/obj/machinery/computer/shuttle_control/administration
- name = "shuttle control console"
- req_access = list(access_cent_general)
- shuttle_tag = "administration"
-
-/obj/machinery/computer/shuttle_control/multi/skipjack
- name = "skipjack control console"
- req_access = list(access_syndicate)
- shuttle_tag = "Skipjack"
-
-/obj/machinery/computer/shuttle_control/multi/syndicate
- name = "mercenary shuttle control console"
- req_access = list(access_syndicate)
- shuttle_tag = "Mercenary"
-
-/obj/machinery/computer/shuttle_control/multi/ninja
- name = "stealth shuttle control console"
- req_access = list(access_syndicate)
- shuttle_tag = "Ninja"
-
-/obj/machinery/computer/shuttle_control/merchant
- name = "merchant shuttle control console"
- icon_keyboard = "power_key"
- icon_screen = "shuttle"
- shuttle_tag = "Merchant"
-
-//ERT Response Shuttle
-
-datum/shuttle/multi_shuttle/response
+/datum/shuttle/multi_shuttle/response
name = "Response Operations"
warmup_time = 5
origin = /area/shuttle/response_ship/start
@@ -68,9 +25,15 @@ datum/shuttle/multi_shuttle/response
)
//Shuttle 1
+
+/obj/machinery/computer/shuttle_control/multi/shuttle1
+ name = "shuttle control console"
+ shuttle_tag = "Shuttle 1"
+ icon_screen = "shuttle"
+
/datum/shuttle/multi_shuttle/shuttle1
- name = "Shuttle1"
- warmup_time = 10
+ name = "Shuttle 1"
+ warmup_time = 0
origin = /area/shuttle/shuttle1/start
interim = /area/shuttle/shuttle1/transit
start_location = "Southern Cross Hangar One"
@@ -85,13 +48,20 @@ datum/shuttle/multi_shuttle/response
"Southern Cross Docking Port" = "shuttle1_dock_airlocksc",
)
announcer = "Southern Cross Docking Computer"
- arrival_message = "Attention, shuttle one returning. Clear Hangar Deck One."
- departure_message = "Attention, shuttle one departing. Clear Hangar Deck One."
+ // This look backwards because the code expects an outsider shuttle to be coming in, so we reverse it since the 'home' base is the station.
+ arrival_message = "Attention, shuttle one departing. Clear Hangar Deck One."
+ departure_message = "Attention, shuttle one returning. Clear Hangar Deck One."
//Shuttle 2
+
+/obj/machinery/computer/shuttle_control/multi/shuttle2
+ name = "shuttle control console"
+ shuttle_tag = "Shuttle 2"
+ icon_screen = "shuttle"
+
/datum/shuttle/multi_shuttle/shuttle2
- name = "Shuttle2"
- warmup_time = 10
+ name = "Shuttle 2"
+ warmup_time = 0
origin = /area/shuttle/shuttle2/start
interim = /area/shuttle/shuttle2/transit
start_location = "Southern Cross Hangar One"
@@ -106,15 +76,21 @@ datum/shuttle/multi_shuttle/response
"Southern Cross Docking Port" = "shuttle2_dock_airlocksc",
)
announcer = "Southern Cross Docking Computer"
- arrival_message = "Attention, shuttle one returning. Clear Hangar Deck Two."
- departure_message = "Attention, shuttle one departing. Clear Hangar Deck Two."
+ // This look backwards because the code expects an outsider shuttle to be coming in, so we reverse it since the 'home' base is the station.
+ arrival_message = "Attention, shuttle one departing. Clear Hangar Deck Two."
+ departure_message = "Attention, shuttle one returning. Clear Hangar Deck Two."
//Admin
+/obj/machinery/computer/shuttle_control/administration
+ name = "shuttle control console"
+ req_access = list(access_cent_general)
+ shuttle_tag = "Administration"
+
/datum/shuttle/ferry/administration
name = "Administration"
location = 1
- warmup_time = 10 //want some warmup time so people can cancel.
+ warmup_time = 0
area_offsite = /area/shuttle/administration/centcom
area_station = /area/shuttle/administration/station
docking_controller_tag = "admin_shuttle"
@@ -123,10 +99,15 @@ datum/shuttle/multi_shuttle/response
//Transport
+/obj/machinery/computer/shuttle_control/centcom
+ name = "shuttle control console"
+ req_access = list(access_cent_general)
+ shuttle_tag = "Centcom"
+
/datum/shuttle/ferry/centcom
name = "Centcom"
location = 1
- warmup_time = 10
+ warmup_time = 0
area_offsite = /area/shuttle/transport1/centcom
area_station = /area/shuttle/transport1/station
docking_controller_tag = "centcom_shuttle"
@@ -135,9 +116,16 @@ datum/shuttle/multi_shuttle/response
//Merc
+/obj/machinery/computer/shuttle_control/multi/syndicate
+ name = "mercenary shuttle control console"
+ req_access = list(access_syndicate)
+ shuttle_tag = "Mercenary"
+
/datum/shuttle/multi_shuttle/mercenary
name = "Mercenary"
warmup_time = 0
+ can_cloak = TRUE
+ cloaked = TRUE
origin = /area/syndicate_station/start
interim = /area/syndicate_station/transit
start_location = "Mercenary Ship"
@@ -162,9 +150,16 @@ datum/shuttle/multi_shuttle/response
//Skipjack
+/obj/machinery/computer/shuttle_control/multi/skipjack
+ name = "skipjack control console"
+ req_access = list(access_syndicate)
+ shuttle_tag = "Skipjack"
+
/datum/shuttle/multi_shuttle/skipjack
name = "Skipjack"
warmup_time = 0
+ can_cloak = TRUE
+ cloaked = TRUE
origin = /area/skipjack_station/start
interim = /area/skipjack_station/transit
destinations = list(
@@ -187,6 +182,13 @@ datum/shuttle/multi_shuttle/response
..()
//Ninja Shuttle.
+
+
+/obj/machinery/computer/shuttle_control/multi/ninja
+ name = "stealth shuttle control console"
+ req_access = list(access_syndicate)
+ shuttle_tag = "Ninja"
+
/datum/shuttle/multi_shuttle/ninja
name = "Ninja"
warmup_time = 0
@@ -211,9 +213,15 @@ datum/shuttle/multi_shuttle/response
//Trade Ship
+/obj/machinery/computer/shuttle_control/merchant
+ name = "merchant shuttle control console"
+ icon_keyboard = "power_key"
+ icon_screen = "shuttle"
+ shuttle_tag = "Merchant"
+
/datum/shuttle/ferry/merchant
name = "Merchant"
- warmup_time = 10
+ warmup_time = 0
docking_controller_tag = "trade_shuttle"
dock_target_station = "trade_shuttle_bay"
dock_target_offsite = "trade_shuttle_dock_airlock"
@@ -316,7 +324,7 @@ datum/shuttle/multi_shuttle/response
/datum/shuttle/ferry/escape_pod/escape_pod_seven
name = "Escape Pod 7"
location = 0
- warmup_time = 10
+ warmup_time = 0
area_station = /area/shuttle/escape_pod7/station
area_offsite = /area/shuttle/escape_pod7/centcom
area_transition = /area/shuttle/escape_pod7/transit
@@ -328,7 +336,7 @@ datum/shuttle/multi_shuttle/response
/datum/shuttle/ferry/escape_pod/escape_pod_eight
name = "Escape Pod 8"
location = 0
- warmup_time = 10
+ warmup_time = 0
area_station = /area/shuttle/escape_pod8/station
area_offsite = /area/shuttle/escape_pod8/centcom
area_transition = /area/shuttle/escape_pod8/transit
diff --git a/polaris.dme b/polaris.dme
index 00d6194f6f9..c22fd0491fe 100644
--- a/polaris.dme
+++ b/polaris.dme
@@ -1451,17 +1451,28 @@
#include "code\modules\integrated_electronics\core\helpers.dm"
#include "code\modules\integrated_electronics\core\integrated_circuit.dm"
#include "code\modules\integrated_electronics\core\pins.dm"
+#include "code\modules\integrated_electronics\core\printer.dm"
#include "code\modules\integrated_electronics\core\tools.dm"
+#include "code\modules\integrated_electronics\core\special_pins\boolean_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\char_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\color_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\dir_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\list_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\number_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\ref_pin.dm"
+#include "code\modules\integrated_electronics\core\special_pins\string_pin.dm"
#include "code\modules\integrated_electronics\passive\passive.dm"
#include "code\modules\integrated_electronics\passive\power.dm"
#include "code\modules\integrated_electronics\subtypes\arithmetic.dm"
#include "code\modules\integrated_electronics\subtypes\built_in.dm"
#include "code\modules\integrated_electronics\subtypes\converters.dm"
#include "code\modules\integrated_electronics\subtypes\data_transfer.dm"
-#include "code\modules\integrated_electronics\subtypes\input_output.dm"
+#include "code\modules\integrated_electronics\subtypes\input.dm"
+#include "code\modules\integrated_electronics\subtypes\lists.dm"
#include "code\modules\integrated_electronics\subtypes\logic.dm"
#include "code\modules\integrated_electronics\subtypes\manipulation.dm"
#include "code\modules\integrated_electronics\subtypes\memory.dm"
+#include "code\modules\integrated_electronics\subtypes\output.dm"
#include "code\modules\integrated_electronics\subtypes\power.dm"
#include "code\modules\integrated_electronics\subtypes\reagents.dm"
#include "code\modules\integrated_electronics\subtypes\smart.dm"
@@ -1931,6 +1942,7 @@
#include "code\modules\projectiles\guns\projectile\revolver.dm"
#include "code\modules\projectiles\guns\projectile\shotgun.dm"
#include "code\modules\projectiles\guns\projectile\sniper.dm"
+#include "code\modules\projectiles\guns\projectile\sniper\collapsible_sniper.dm"
#include "code\modules\projectiles\projectile\animate.dm"
#include "code\modules\projectiles\projectile\beams.dm"
#include "code\modules\projectiles\projectile\bullets.dm"
@@ -2231,7 +2243,6 @@
#include "code\unit_tests\integrated_circuits\arithmetic.dm"
#include "code\unit_tests\integrated_circuits\circuits.dm"
#include "code\unit_tests\integrated_circuits\converter.dm"
-#include "code\unit_tests\integrated_circuits\data_transfer.dm"
#include "code\unit_tests\integrated_circuits\logic.dm"
#include "code\unit_tests\integrated_circuits\trig.dm"
#include "code\ZAS\_docs.dm"
diff --git a/sound/effects/shuttles/hyperspace_begin.ogg b/sound/effects/shuttles/hyperspace_begin.ogg
new file mode 100644
index 00000000000..225e2d98820
Binary files /dev/null and b/sound/effects/shuttles/hyperspace_begin.ogg differ
diff --git a/sound/effects/shuttles/hyperspace_end.ogg b/sound/effects/shuttles/hyperspace_end.ogg
new file mode 100644
index 00000000000..64fb5214a96
Binary files /dev/null and b/sound/effects/shuttles/hyperspace_end.ogg differ
diff --git a/sound/effects/shuttles/hyperspace_progress.ogg b/sound/effects/shuttles/hyperspace_progress.ogg
new file mode 100644
index 00000000000..7cc11a864ae
Binary files /dev/null and b/sound/effects/shuttles/hyperspace_progress.ogg differ