diff --git a/_maps/map_files/MetaStation/MetaStation.v40D.dmm b/_maps/map_files/MetaStation/MetaStation.v41A.dmm
similarity index 99%
rename from _maps/map_files/MetaStation/MetaStation.v40D.dmm
rename to _maps/map_files/MetaStation/MetaStation.v41A.dmm
index e039b565ca2..40e03729f8e 100644
--- a/_maps/map_files/MetaStation/MetaStation.v40D.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.v41A.dmm
@@ -3723,7 +3723,7 @@
"btE" = (/obj/structure/reagent_dispensers/beerkeg,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"btF" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"btG" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/crew_quarters/bar)
-"btH" = (/obj/structure/closet/gmcloset{desc = "It's a storage unit."; icon_closed = "black"; icon_state = "black"; name = "spare gear"},/obj/item/weapon/wrench,/turf/simulated/floor/wood,/area/crew_quarters/bar)
+"btH" = (/obj/structure/closet/gmcloset{desc = "It's a storage unit."; name = "spare gear"},/obj/item/weapon/wrench,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"btI" = (/obj/machinery/door/airlock/maintenance{name = "Engineering Foyer Maintenance"; req_access_txt = "0"; req_one_access_txt = "32;19"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/engine/break_room)
"btJ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/gateway)
"btK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/starboard)
@@ -4202,8 +4202,8 @@
"bCP" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor/fancy/carpet,/area/bridge)
"bCQ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/machinery/door_control{id = "bridge blast"; name = "Bridge Access Blast Door Control"; pixel_x = 24; pixel_y = -24; req_access_txt = "19"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkbluecorners"; tag = "icon-darkbluecorners"; temperature = 273.15},/area/bridge)
"bCR" = (/obj/structure/closet/secure_closet/medical3,/obj/item/weapon/screwdriver{pixel_y = 6},/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 30},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/medbay2{name = "Medbay Storage"})
-"bCS" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/closet/l3closet/general,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/medical/medbay2{name = "Medbay Storage"})
-"bCT" = (/obj/machinery/light_switch{pixel_x = -26; pixel_y = 0},/obj/machinery/light/small{dir = 8},/obj/structure/closet/l3closet/general,/turf/simulated/floor/plasteel{dir = 10; icon_state = "whiteblue"},/area/medical/medbay2{name = "Medbay Storage"})
+"bCS" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/closet/l3closet,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/medical/medbay2{name = "Medbay Storage"})
+"bCT" = (/obj/machinery/light_switch{pixel_x = -26; pixel_y = 0},/obj/machinery/light/small{dir = 8},/obj/structure/closet/l3closet,/turf/simulated/floor/plasteel{dir = 10; icon_state = "whiteblue"},/area/medical/medbay2{name = "Medbay Storage"})
"bCU" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/vending/coffee{pixel_x = -3},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/bridge)
"bCV" = (/obj/machinery/door_control{id = "council blast"; name = "Council Chamber Blast Door Control"; pixel_x = 5; pixel_y = -28; req_access_txt = "19"},/turf/simulated/floor/fancy/carpet,/area/bridge)
"bCW" = (/obj/structure/table/wood,/obj/item/weapon/folder/blue,/obj/item/weapon/lighter/zippo,/turf/simulated/floor/fancy/carpet,/area/bridge)
diff --git a/_maps/map_files/MetaStation/z2.dmm b/_maps/map_files/MetaStation/z2.dmm
index 34459fe8636..e9ab0f0813f 100644
--- a/_maps/map_files/MetaStation/z2.dmm
+++ b/_maps/map_files/MetaStation/z2.dmm
@@ -119,706 +119,769 @@
"co" = (/obj/docking_port/stationary/transit{dir = 8; dwidth = 5; height = 7; id = "supply_transit"; width = 12},/turf/space/transit,/area/space)
"cp" = (/obj/docking_port/stationary/transit{dir = 8; dwidth = 2; height = 5; id = "laborcamp_transit"; width = 9},/turf/space/transit,/area/space)
"cq" = (/obj/docking_port/stationary/transit{dir = 8; dwidth = 3; height = 5; id = "mining_transit"; width = 7},/turf/space/transit,/area/space)
-"cr" = (/turf/unsimulated/wall,/area/start)
-"cs" = (/obj/effect/landmark/start,/turf/unsimulated/floor,/area/start)
-"ct" = (/turf/unsimulated/wall/splashscreen,/area/start)
-"cu" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/centcom/evac)
-"cv" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 1},/turf/simulated/shuttle/plating,/area/centcom/evac)
-"cw" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 1},/turf/simulated/shuttle/plating,/area/centcom/evac)
-"cx" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 1},/turf/simulated/shuttle/plating,/area/centcom/evac)
-"cy" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/centcom/evac)
-"cz" = (/obj/docking_port/stationary{dir = 1; dwidth = 1; height = 4; id = "pod1_away"; name = "recovery ship"; width = 3},/turf/space,/area/space)
-"cA" = (/obj/docking_port/stationary{dir = 1; dwidth = 1; height = 4; id = "pod2_away"; name = "recovery ship"; width = 3},/turf/space,/area/space)
-"cB" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/centcom/evac)
-"cC" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/turf/simulated/floor/plating/airless,/area/centcom/evac)
-"cD" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/centcom/evac)
-"cE" = (/turf/simulated/shuttle/wall{icon_state = "swall8"; dir = 2},/area/centcom/evac)
-"cF" = (/obj/machinery/door/airlock/shuttle,/turf/simulated/shuttle/plating,/area/centcom/evac)
-"cG" = (/turf/simulated/shuttle/wall{icon_state = "swall0"; dir = 2},/area/centcom/evac)
-"cH" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac)
-"cI" = (/turf/simulated/shuttle/wall{icon_state = "swall4"; dir = 2},/area/centcom/evac)
-"cJ" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/centcom/evac)
-"cK" = (/turf/simulated/shuttle/plating,/area/centcom/evac)
-"cL" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/centcom/evac)
-"cM" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/centcom/evac)
-"cN" = (/obj/structure/closet/emcloset,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"cO" = (/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/centcom/evac)
-"cP" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"cQ" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/turf/simulated/shuttle/floor,/area/centcom/evac)
-"cR" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 0},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/simulated/shuttle/floor,/area/centcom/evac)
-"cS" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/centcom/evac)
-"cT" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_f10"; layer = 2},/area/centcom/evac)
-"cU" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/centcom/evac)
-"cV" = (/turf/simulated/shuttle/floor,/area/centcom/evac)
-"cW" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/centcom/evac)
-"cX" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/centcom/evac)
-"cY" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/centcom/evac)
-"cZ" = (/turf/simulated/shuttle/wall{icon_state = "swallc1"; dir = 2},/area/centcom/evac)
-"da" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"db" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"dc" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"dd" = (/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"de" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/simulated/shuttle/floor,/area/centcom/evac)
-"df" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/centcom/evac)
-"dg" = (/turf/simulated/shuttle/wall{icon_state = "swallc2"; dir = 2},/area/centcom/evac)
-"dh" = (/obj/machinery/computer/secure_data,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"di" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"dj" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"dk" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"dl" = (/obj/structure/table,/obj/item/device/flash/handheld,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"dm" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"dn" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor,/area/centcom/evac)
-"do" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"dp" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 4; icon_state = "right"; name = "Security Desk"; req_access_txt = "103"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
-"dq" = (/obj/docking_port/stationary{dir = 4; dwidth = 1; height = 4; id = "pod3_away"; name = "recovery ship"; width = 3},/turf/space,/area/space)
-"dr" = (/obj/structure/stool/bed,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"ds" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/shuttle/plating,/area/centcom/evac)
-"dt" = (/obj/machinery/door/airlock/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/centcom/evac)
-"du" = (/obj/docking_port/stationary{dir = 4; dwidth = 1; height = 4; id = "pod4_away"; name = "recovery ship"; width = 3},/turf/space,/area/space)
-"dv" = (/turf/simulated/shuttle/wall{icon_state = "swall2"; dir = 2},/area/centcom/evac)
-"dw" = (/turf/unsimulated/wall,/area/centcom/suppy)
+"cr" = (/obj/docking_port/stationary/transit{dheight = 0; dir = 2; dwidth = 11; height = 15; id = "whiteship_transit"; width = 27},/turf/space/transit/horizontal,/area/space)
+"cs" = (/turf/unsimulated/wall,/area/start)
+"ct" = (/obj/effect/landmark/start,/turf/unsimulated/floor,/area/start)
+"cu" = (/turf/unsimulated/wall/splashscreen,/area/start)
+"cv" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/centcom/evac)
+"cw" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 1},/turf/simulated/shuttle/plating,/area/centcom/evac)
+"cx" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 1},/turf/simulated/shuttle/plating,/area/centcom/evac)
+"cy" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 1},/turf/simulated/shuttle/plating,/area/centcom/evac)
+"cz" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/centcom/evac)
+"cA" = (/obj/docking_port/stationary{dir = 1; dwidth = 1; height = 4; id = "pod1_away"; name = "recovery ship"; width = 3},/turf/space,/area/space)
+"cB" = (/obj/docking_port/stationary{dir = 1; dwidth = 1; height = 4; id = "pod2_away"; name = "recovery ship"; width = 3},/turf/space,/area/space)
+"cC" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/centcom/evac)
+"cD" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 1},/turf/simulated/floor/plating/airless,/area/centcom/evac)
+"cE" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/centcom/evac)
+"cF" = (/turf/simulated/shuttle/wall{icon_state = "swall8"; dir = 2},/area/centcom/evac)
+"cG" = (/obj/machinery/door/airlock/shuttle,/turf/simulated/shuttle/plating,/area/centcom/evac)
+"cH" = (/turf/simulated/shuttle/wall{icon_state = "swall0"; dir = 2},/area/centcom/evac)
+"cI" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/centcom/evac)
+"cJ" = (/turf/simulated/shuttle/wall{icon_state = "swall4"; dir = 2},/area/centcom/evac)
+"cK" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/centcom/evac)
+"cL" = (/turf/simulated/shuttle/plating,/area/centcom/evac)
+"cM" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/centcom/evac)
+"cN" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/centcom/evac)
+"cO" = (/obj/structure/closet/emcloset,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"cP" = (/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/centcom/evac)
+"cQ" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/toxin,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"cR" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/turf/simulated/shuttle/floor,/area/centcom/evac)
+"cS" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 0},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/simulated/shuttle/floor,/area/centcom/evac)
+"cT" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/centcom/evac)
+"cU" = (/turf/simulated/shuttle/plating,/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_f10"; layer = 2},/area/centcom/evac)
+"cV" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/centcom/evac)
+"cW" = (/turf/simulated/shuttle/floor,/area/centcom/evac)
+"cX" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/centcom/evac)
+"cY" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/centcom/evac)
+"cZ" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/centcom/evac)
+"da" = (/turf/simulated/shuttle/wall{icon_state = "swallc1"; dir = 2},/area/centcom/evac)
+"db" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"dc" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"dd" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"de" = (/obj/structure/table/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"df" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/simulated/shuttle/floor,/area/centcom/evac)
+"dg" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/centcom/evac)
+"dh" = (/turf/simulated/shuttle/wall{icon_state = "swallc2"; dir = 2},/area/centcom/evac)
+"di" = (/obj/machinery/computer/secure_data,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"dj" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"dk" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"dl" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"dm" = (/obj/structure/table,/obj/item/device/flash/handheld,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"dn" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"do" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor,/area/centcom/evac)
+"dp" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"dq" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 4; icon_state = "right"; name = "Security Desk"; req_access_txt = "103"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
+"dr" = (/obj/docking_port/stationary{dir = 4; dwidth = 1; height = 4; id = "pod3_away"; name = "recovery ship"; width = 3},/turf/space,/area/space)
+"ds" = (/obj/structure/stool/bed,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"dt" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/shuttle/plating,/area/centcom/evac)
+"du" = (/obj/machinery/door/airlock/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/centcom/evac)
+"dv" = (/obj/docking_port/stationary{dir = 4; dwidth = 1; height = 4; id = "pod4_away"; name = "recovery ship"; width = 3},/turf/space,/area/space)
+"dw" = (/turf/simulated/shuttle/wall{icon_state = "swall2"; dir = 2},/area/centcom/evac)
"dx" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/simulated/shuttle/floor,/area/centcom/evac)
"dy" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/turf/simulated/shuttle/floor,/area/centcom/evac)
"dz" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"dA" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/space)
-"dB" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/space)
-"dC" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/shuttle/plating,/area/space)
-"dD" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/space)
-"dE" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/centcom/evac)
-"dF" = (/turf/simulated/shuttle/wall{icon_state = "swallc4"; dir = 2},/area/centcom/evac)
-"dG" = (/obj/machinery/door/airlock/shuttle{name = "Cockpit"; req_access_txt = "109"},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/centcom/evac)
-"dH" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/space)
-"dI" = (/turf/simulated/shuttle/floor,/area/space)
-"dJ" = (/obj/structure/table,/obj/item/device/radio/off,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"dK" = (/obj/structure/stool/bed/chair{dir = 4; name = "Prosecution"},/turf/simulated/shuttle/floor,/area/centcom/evac)
-"dL" = (/obj/structure/filingcabinet,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"dM" = (/obj/machinery/conveyor_switch/oneway{convdir = 1; id = "QMLoad2"; pixel_x = 6},/turf/simulated/shuttle/floor,/area/space)
-"dN" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"dO" = (/obj/machinery/door/poddoor{id = "QMLoaddoor2"; name = "supply dock loading door"},/obj/machinery/conveyor{dir = 8; id = "QMLoad2"; movedir = 8},/obj/structure/plasticflaps,/turf/simulated/shuttle/plating,/area/space)
-"dP" = (/turf/unsimulated/wall/fakedoor,/area/centcom/suppy)
-"dQ" = (/obj/structure/table,/obj/item/weapon/storage/lockbox,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"dR" = (/obj/structure/table,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"dS" = (/obj/machinery/computer/shuttle,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"dT" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"dU" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/simulated/shuttle/floor,/area/centcom/evac)
-"dV" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/turf/simulated/shuttle/plating,/area/space)
-"dW" = (/obj/machinery/door_control{dir = 2; id = "QMLoaddoor2"; name = "Loading Doors"; pixel_x = 24; pixel_y = 8},/obj/machinery/door_control{id = "QMLoaddoor"; name = "Loading Doors"; pixel_x = 24; pixel_y = -8},/turf/simulated/shuttle/floor,/area/space)
-"dX" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/obj/docking_port/mobile/supply{dwidth = 5; width = 12},/obj/docking_port/stationary{dir = 8; dwidth = 5; height = 7; id = "supply_away"; name = "Centcom"; width = 12},/turf/simulated/shuttle/plating,/area/space)
-"dY" = (/obj/machinery/door/poddoor{id = "QMLoaddoor"; name = "supply dock loading door"},/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 4; id = "QMLoad"; movedir = 4},/turf/simulated/shuttle/plating,/area/space)
-"dZ" = (/obj/machinery/conveyor_switch/oneway{convdir = 1; id = "QMLoad"; pixel_x = 6},/turf/simulated/shuttle/floor,/area/space)
-"ea" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/space)
-"eb" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/space)
-"ec" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/space)
-"ed" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/space)
-"ee" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/space)
-"ef" = (/turf/simulated/shuttle/wall{icon_state = "swall15"; dir = 2},/area/space)
-"eg" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/simulated/shuttle/plating,/area/space)
-"eh" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/space)
-"ei" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/simulated/shuttle/plating,/area/space)
-"ej" = (/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/plating,/area/space)
-"ek" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/simulated/shuttle/plating,/area/space)
-"el" = (/turf/unsimulated/wall,/area/centcom/control)
-"em" = (/turf/unsimulated/wall/fakedoor,/area/centcom/control)
-"en" = (/turf/unsimulated/floor{icon_state = "green"; dir = 9},/area/centcom/control)
-"eo" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
-"ep" = (/turf/unsimulated/floor{icon_state = "green"; dir = 5},/area/centcom/control)
-"eq" = (/turf/space,/area/centcom/control)
-"er" = (/turf/unsimulated/wall,/area/centcom/prison)
-"es" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 9},/area/centcom/control)
-"et" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 1},/area/centcom/control)
-"eu" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 4},/area/centcom/control)
-"ev" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "green"; dir = 5},/area/centcom/control)
-"ew" = (/obj/effect/landmark{name = "prisonwarp"},/turf/unsimulated/floor{name = "plating"},/area/centcom/prison)
-"ex" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control)
-"ey" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control)
-"ez" = (/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control)
-"eA" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control)
-"eB" = (/obj/machinery/door/poddoor{id = "CentComPort"; name = "security door"},/turf/unsimulated/floor{dir = 1; icon_state = "loadingarea"},/area/centcom/control)
-"eC" = (/obj/machinery/door/airlock/centcom{name = "Centcom Security"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
-"eD" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
-"eE" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/control)
-"eF" = (/obj/machinery/door_control{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; name = "Security Doors"; pixel_y = 28; req_access_txt = "101"},/obj/structure/showcase/fakeid,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
-"eG" = (/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/control)
-"eH" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 4; icon_state = "rightsecure"; name = "Centcom Customs"; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
-"eI" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
-"eJ" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/space)
-"eK" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/space)
-"eL" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/simulated/shuttle/floor,/area/space)
-"eM" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"; dir = 2},/area/space)
-"eN" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo Bay Airlock"},/turf/simulated/shuttle/plating{dir = 1; icon_state = "delivery"},/area/space)
-"eO" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo Bay Airlock"},/obj/docking_port/mobile/emergency{dheight = 0; dir = 2; dwidth = 2; height = 22; width = 14},/obj/docking_port/stationary{dir = 2; dwidth = 2; height = 22; id = "emergency_away"; name = "Centcom"; width = 14},/turf/simulated/shuttle/plating{dir = 1; icon_state = "delivery"},/area/space)
-"eP" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/space)
-"eQ" = (/turf/unsimulated/wall,/area/centcom/ferry)
-"eR" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
-"eS" = (/obj/structure/table,/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/item/weapon/paper/centcom,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
-"eT" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/space)
-"eU" = (/obj/structure/table,/obj/item/clothing/mask/breath{pixel_x = 5; pixel_y = -2},/obj/item/clothing/mask/breath{pixel_x = -5; pixel_y = -2},/obj/item/clothing/mask/breath{pixel_x = -5; pixel_y = 6},/obj/item/clothing/mask/breath{pixel_x = 5; pixel_y = 6},/obj/item/clothing/mask/breath,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"eV" = (/obj/structure/dispenser/oxygen{layer = 2.7; pixel_x = -1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"eW" = (/obj/structure/table,/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer{pixel_x = 3; pixel_y = 3},/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"eX" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; name = "emergency shower"; tag = "icon-shower (EAST)"},/turf/simulated/shuttle/floor,/area/space)
-"eY" = (/obj/machinery/status_display{pixel_y = 32},/obj/machinery/hologram/holopad,/turf/simulated/shuttle/floor,/area/space)
-"eZ" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; name = "emergency shower"; tag = "icon-shower (WEST)"},/turf/simulated/shuttle/floor,/area/space)
-"fa" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"fb" = (/obj/structure/sign/nosmoking_2,/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/space)
-"fc" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
-"fd" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; name = "emergency shower"; tag = "icon-shower (EAST)"},/turf/simulated/shuttle/plating{dir = 1; icon_state = "delivery"},/area/space)
-"fe" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; name = "emergency shower"; tag = "icon-shower (EAST)"},/turf/simulated/shuttle/plating{dir = 1; icon_state = "delivery"},/area/space)
-"ff" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/obj/item/hand_labeler_refill,/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
-"fg" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_y = 4},/obj/item/weapon/pen,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
-"fh" = (/obj/structure/mirror{pixel_y = 32},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
-"fi" = (/obj/structure/dresser,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
-"fj" = (/obj/machinery/door/poddoor/preopen{id = "CentComPort"; name = "security door"},/turf/unsimulated/floor{dir = 1; icon_state = "loadingarea"},/area/centcom/control)
-"fk" = (/turf/space,/area/centcom/evac)
-"fl" = (/turf/simulated/shuttle/plating{dir = 1; icon_state = "delivery"},/area/space)
-"fm" = (/turf/simulated/shuttle/plating{icon_state = "floorgrime"},/area/space)
-"fn" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 31},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
-"fo" = (/obj/structure/stool,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
-"fp" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
-"fq" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/space)
-"fr" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/control)
-"fs" = (/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/control)
-"ft" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/control)
-"fu" = (/obj/structure/stool/bed/chair{dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"fv" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"fw" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"fx" = (/obj/item/weapon/cigbutt,/turf/simulated/shuttle/plating{icon_state = "floorgrime"},/area/space)
-"fy" = (/obj/machinery/bot/medbot{name = "\improper emergency medibot"; pixel_x = -3; pixel_y = 2},/obj/structure/closet/crate/medical{name = "medical crate"},/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/toxin{pixel_x = -4; pixel_y = 3},/obj/item/device/healthanalyzer{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
-"fz" = (/obj/machinery/door/airlock/centcom{name = "Dressing Room"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
-"fA" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/control)
-"fB" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/control)
-"fC" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/control)
-"fD" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/control)
-"fE" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/evac)
-"fF" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/evac)
-"fG" = (/obj/structure/reagent_dispensers/fueltank,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
-"fH" = (/obj/structure/closet/crate{name = "emergency supplies crate"},/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/obj/item/device/flashlight/flare{pixel_x = 3; pixel_y = 3},/obj/item/device/flashlight/flare{pixel_x = -6; pixel_y = -2},/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/device/radio,/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
-"fI" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry)
-"fJ" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry)
-"fK" = (/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry)
-"fL" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry)
-"fM" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/ferry)
-"fN" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/control)
-"fO" = (/turf/unsimulated/floor{icon_state = "greencorner"},/area/centcom/control)
-"fP" = (/turf/unsimulated/wall,/area/centcom/evac)
-"fQ" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/evac)
-"fR" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac)
-"fS" = (/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/evac)
-"fT" = (/obj/machinery/door/airlock/external{name = "Arrivals Docking Bay 1"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/evac)
-"fU" = (/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/evac)
-"fV" = (/obj/machinery/vending/wallmed{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = 0; req_access_txt = "0"},/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/space)
-"fW" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
-"fX" = (/obj/machinery/space_heater,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
-"fY" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/space)
-"fZ" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/space)
-"ga" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/space)
-"gb" = (/turf/unsimulated/floor{name = "plating"},/area/space)
-"gc" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/ferry)
-"gd" = (/obj/effect/landmark{name = "Deathsquad"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry)
-"ge" = (/turf/unsimulated/wall/fakeglass,/area/centcom/control)
-"gf" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/evac)
-"gg" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gh" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gi" = (/obj/structure/rack,/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/weapon/weldingtool,/obj/item/weapon/wirecutters,/obj/item/stack/cable_coil,/turf/simulated/shuttle/plating{dir = 1; icon_state = "warning"},/area/space)
-"gj" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = -3; pixel_y = 1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0; pixel_y = -1},/obj/item/weapon/storage/toolbox/emergency{pixel_x = 3; pixel_y = -5},/turf/simulated/shuttle/plating{dir = 1; icon_state = "warning"},/area/space)
-"gk" = (/turf/simulated/shuttle/plating{dir = 1; icon_state = "warning"},/area/space)
-"gl" = (/obj/structure/rack{dir = 1},/obj/item/weapon/tank/internals/oxygen/red,/obj/item/clothing/suit/fire/firefighter,/obj/item/clothing/mask/gas,/obj/item/clothing/head/hardhat/red,/turf/simulated/shuttle/plating{dir = 1; icon_state = "warning"},/area/space)
-"gm" = (/turf/unsimulated/wall,/area/syndicate_mothership)
-"gn" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/simulated/shuttle/plating,/area/space)
-"go" = (/turf/simulated/shuttle/wall{icon_state = "swallc4"; dir = 2},/area/space)
-"gp" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor,/area/space)
-"gq" = (/obj/machinery/computer/shuttle/ferry/request,/turf/simulated/shuttle/floor,/area/space)
-"gr" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor,/area/space)
-"gs" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry)
-"gt" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (SOUTHEAST)"; icon_state = "fakewindows"; dir = 6},/area/centcom/ferry)
-"gu" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "greencorner"; dir = 1},/area/centcom/evac)
-"gv" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/sign/bluecross_2{pixel_x = 32},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gw" = (/turf/simulated/shuttle/wall{tag = "icon-swall7"; icon_state = "swall7"; dir = 2},/area/space)
-"gx" = (/turf/simulated/shuttle/wall{icon_state = "swall8"; dir = 2},/area/space)
-"gy" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Escape Shuttle Infirmary"; req_access_txt = "0"},/turf/simulated/shuttle/floor,/area/space)
-"gz" = (/obj/structure/sign/bluecross_2,/turf/simulated/shuttle/wall{icon_state = "swall4"; dir = 2},/area/space)
-"gA" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"; dir = 2},/area/space)
-"gB" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
-"gC" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
-"gD" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
-"gE" = (/obj/structure/flora/grass/both,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
-"gF" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/space)
-"gG" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 12; id = "ferry"; name = "ferry shuttle"; travelDir = 180; width = 5},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 12; id = "ferry_away"; name = "unknown"; turf_type = /turf/unsimulated/floor; width = 5},/turf/simulated/shuttle/floor,/area/space)
-"gH" = (/obj/machinery/door/airlock/external{name = "Ferry Airlock"; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/ferry)
-"gI" = (/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/ferry)
-"gJ" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 4},/area/centcom/ferry)
-"gK" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/ferry)
-"gL" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/unsimulated/wall,/area/centcom/evac)
-"gM" = (/obj/machinery/status_display,/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/space)
-"gN" = (/obj/machinery/sleeper,/turf/simulated/shuttle/floor,/area/space)
-"gO" = (/obj/structure/optable,/obj/item/weapon/surgical_drapes,/turf/simulated/shuttle/floor,/area/space)
-"gP" = (/turf/simulated/shuttle/wall{icon_state = "swallc1"; dir = 2},/area/space)
-"gQ" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/space)
-"gR" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 5},/area/centcom/ferry)
-"gS" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry)
-"gT" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/shuttle/floor,/area/space)
-"gU" = (/obj/structure/flora/bush,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
-"gV" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/space)
-"gW" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/space)
-"gX" = (/turf/unsimulated/floor{icon_state = "greencorner"},/area/centcom/ferry)
-"gY" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/evac)
-"gZ" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/machinery/vending/wallmed{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = -28; req_access_txt = "0"},/turf/simulated/shuttle/floor,/area/space)
-"ha" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/machinery/vending/wallmed{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = -28; req_access_txt = "0"},/turf/simulated/shuttle/floor,/area/space)
-"hb" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 6; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -3},/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = -3; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = 6; pixel_y = 8},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 4; pixel_y = 1},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = -2; pixel_y = 5},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 2; pixel_y = 8},/turf/simulated/shuttle/floor,/area/space)
-"hc" = (/obj/structure/table,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/circular_saw,/obj/item/weapon/retractor{pixel_x = 4},/obj/item/weapon/hemostat{pixel_x = -4},/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -27},/turf/simulated/shuttle/floor,/area/space)
-"hd" = (/turf/unsimulated/wall/fakeglass,/area/centcom/ferry)
-"he" = (/obj/structure/stool/bed/chair{dir = 8},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 31},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hf" = (/obj/machinery/status_display,/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/space)
-"hg" = (/turf/unsimulated/wall,/area/centcom/holding)
-"hh" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry)
-"hi" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/ferry)
-"hj" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/ferry)
-"hk" = (/obj/machinery/door/airlock/centcom{name = "ERT Ready Room"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding)
-"hl" = (/obj/machinery/door/airlock/centcom{name = "Centcom"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
-"hm" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor4,/area/space)
-"hn" = (/obj/structure/table,/obj/structure/reagent_dispensers/peppertank{pixel_x = 31},/obj/item/weapon/storage/box/handcuffs{pixel_x = 2; pixel_y = 2},/turf/simulated/shuttle/floor4,/area/space)
-"ho" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
-"hp" = (/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -10; tag = "icon-sink (WEST)"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
-"hq" = (/obj/structure/dresser,/obj/structure/mirror{pixel_x = 0; pixel_y = 30},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
-"hr" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
-"hs" = (/obj/structure/closet/secure_closet/ertCom,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
-"ht" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 5},/obj/item/weapon/pen/blue,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/ferry)
-"hu" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
-"hv" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/simulated/shuttle/floor,/area/space)
-"hw" = (/obj/machinery/door/airlock/glass_security{name = "Brig"; req_access_txt = "2"},/turf/simulated/shuttle/floor4,/area/space)
-"hx" = (/turf/simulated/shuttle/floor4,/area/space)
-"hy" = (/obj/structure/table,/obj/machinery/recharger{active_power_usage = 0; idle_power_usage = 0},/turf/simulated/shuttle/floor4,/area/space)
-"hz" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/space)
-"hA" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/space)
-"hB" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/obj/structure/window/reinforced/fulltile,/turf/simulated/shuttle/plating,/area/space)
-"hC" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/space)
-"hD" = (/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
-"hE" = (/obj/structure/closet/secure_closet/ertMed,/turf/unsimulated/floor{tag = "icon-darkblue (EAST)"; icon_state = "darkblue"; dir = 4},/area/centcom/ferry)
-"hF" = (/turf/unsimulated/wall,/area/tdome/tdomeobserve)
-"hG" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/tdome/tdomeobserve)
-"hH" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeobserve)
-"hI" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdomeobserve)
-"hJ" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeobserve)
-"hK" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 5},/area/tdome/tdomeobserve)
-"hL" = (/obj/structure/closet/emcloset,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hM" = (/obj/machinery/flasher{id = "emshuttlebridgeflash"; pixel_y = -24},/turf/simulated/shuttle/floor,/area/space)
-"hN" = (/obj/structure/closet/emcloset,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hO" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/flasher_button{id = "emshuttleflash"; name = "brig flasher button"; pixel_y = -23; req_access_txt = "0"; req_one_access_txt = "1;63;19"},/turf/simulated/shuttle/floor4,/area/space)
-"hP" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/flasher{id = "emshuttleflash"; pixel_y = -24},/turf/simulated/shuttle/floor4,/area/space)
-"hQ" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor4,/area/space)
-"hR" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/weapon/folder/white{pixel_x = -4; pixel_y = 2},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 31},/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -4; pixel_y = 4},/turf/simulated/shuttle/floor4,/area/space)
-"hS" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"hT" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"hU" = (/obj/structure/table,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"hV" = (/obj/machinery/computer/shuttle/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"hW" = (/obj/structure/table,/obj/machinery/door_control{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"hX" = (/obj/structure/computerframe,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"hY" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership)
-"hZ" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership)
-"ia" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership)
-"ib" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/both,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
-"ic" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
-"id" = (/obj/structure/reagent_dispensers/water_cooler,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
-"ie" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/ferry)
-"if" = (/obj/structure/closet/secure_closet/ertEngi,/obj/structure/extinguisher_cabinet{pixel_x = 28},/turf/unsimulated/floor{tag = "icon-darkbrown (EAST)"; icon_state = "darkbrown"; dir = 4},/area/centcom/ferry)
-"ig" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
-"ih" = (/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
-"ii" = (/turf/unsimulated/wall/fakeglass,/area/tdome/tdomeobserve)
-"ij" = (/turf/unsimulated/floor{icon_state = "neutral"; dir = 8},/area/tdome/tdomeobserve)
-"ik" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdomeobserve)
-"il" = (/turf/unsimulated/floor{icon_state = "neutral"; dir = 4},/area/tdome/tdomeobserve)
-"im" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "green"; dir = 9},/area/centcom/evac)
-"in" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
-"io" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
-"ip" = (/obj/machinery/door/airlock/glass_command{name = "Cockpit"; req_access_txt = "19"},/turf/simulated/shuttle/floor,/area/space)
-"iq" = (/turf/simulated/shuttle/wall{tag = "icon-swall15"; icon_state = "swall15"; dir = 2},/area/space)
-"ir" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"is" = (/obj/structure/stool/bed/chair/comfy/black{dir = 1; icon_state = "comfychair"; name = "pilot's chair"; tag = "icon-comfychair (NORTH)"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"it" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership)
-"iu" = (/obj/item/weapon/storage/fancy/crayons,/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"iv" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"iw" = (/obj/machinery/vending/cigarette{pixel_y = 2; products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/random = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
-"ix" = (/obj/structure/sign/map/left,/turf/unsimulated/floor{tag = "icon-light_on"; icon_state = "light_on"},/area/centcom/ferry)
-"iy" = (/obj/structure/sign/map/right,/turf/unsimulated/floor{tag = "icon-light_on"; icon_state = "light_on"},/area/centcom/ferry)
-"iz" = (/obj/structure/closet/secure_closet/ertSec,/turf/unsimulated/floor{tag = "icon-darkred (EAST)"; icon_state = "darkred"; dir = 4},/area/centcom/ferry)
-"iA" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
-"iB" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
-"iC" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
-"iD" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/evac)
-"iE" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac)
-"iF" = (/obj/structure/filingcabinet/filingcabinet,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac)
-"iG" = (/obj/machinery/computer/security,/turf/simulated/shuttle/floor,/area/space)
-"iH" = (/obj/machinery/flasher_button{id = "emshuttlebridgeflash"; name = "cockpit flasher button"; pixel_y = 24; req_access_txt = "0"; req_one_access_txt = "1;63;19"},/turf/simulated/shuttle/floor,/area/space)
-"iI" = (/obj/machinery/computer/crew,/turf/simulated/shuttle/floor,/area/space)
-"iJ" = (/obj/machinery/space_heater,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 27},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"iK" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/status_display{pixel_y = 31},/turf/simulated/shuttle/plating{icon_state = "floorgrime"},/area/space)
-"iL" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 27},/turf/simulated/shuttle/plating{icon_state = "floorgrime"},/area/space)
-"iM" = (/obj/item/weapon/shard{color = "#008000"; icon_state = "small"},/obj/structure/grille{color = "#008000"; density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/wizard_station)
-"iN" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 8; icon_state = "fakewindows2"},/area/wizard_station)
-"iO" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 4; icon_state = "fakewindows"},/area/wizard_station)
-"iP" = (/turf/unsimulated/wall/normal{tag = "icon-uranium2"; icon_state = "uranium2"},/area/wizard_station)
-"iQ" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 10},/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"iR" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_y = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"iS" = (/obj/structure/closet/syndicate/personal,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"iT" = (/obj/machinery/computer/shuttle/syndicate/recall,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"iU" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"iV" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"iW" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"iX" = (/obj/machinery/vending/cigarette{pixel_y = 2; products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/random = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"iY" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/syndicate_mothership)
-"iZ" = (/obj/item/device/paicard,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
-"ja" = (/obj/structure/stool/bed/chair/comfy/teal,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
-"jb" = (/obj/structure/bookcase,/obj/item/weapon/book/manual/wiki/engineering_hacking,/obj/item/weapon/book/manual/robotics_cyborgs,/obj/item/weapon/book/manual/engineering_singularity_safety,/obj/item/weapon/book/manual/detective,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
-"jc" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
-"jd" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
-"je" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/tdome/tdomeobserve)
-"jf" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/turf/simulated/shuttle/floor,/area/space)
-"jg" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/shuttle/floor,/area/space)
-"jh" = (/obj/structure/stool/bed/chair/office/dark,/turf/simulated/shuttle/floor,/area/space)
-"ji" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/simulated/shuttle/floor,/area/space)
-"jj" = (/obj/machinery/door/airlock/command{name = "Emergency Recovery Airlock"; req_access = null; req_access_txt = "19"},/turf/simulated/shuttle/floor,/area/space)
-"jk" = (/obj/machinery/door/airlock/external{name = "Emergency Recovery Airlock"},/turf/simulated/shuttle/plating{icon_state = "floorgrime"},/area/space)
-"jl" = (/obj/structure/lattice,/turf/space/transit,/area/wizard_station)
-"jm" = (/obj/item/weapon/shard{color = "#008000"},/turf/unsimulated/floor{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station)
-"jn" = (/obj/machinery/computer/shuttle,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
-"jo" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"jp" = (/turf/unsimulated/wall/normal{tag = "icon-uranium5"; icon_state = "uranium5"},/area/wizard_station)
-"jq" = (/turf/unsimulated/wall/normal{tag = "icon-uranium10"; icon_state = "uranium10"},/area/wizard_station)
-"jr" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/space)
-"js" = (/obj/machinery/door/window{name = "Cockpit"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"jt" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/space)
-"ju" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership)
-"jv" = (/obj/item/weapon/paper{info = "GET DAT FUKKEN DISK"; name = "memo"},/obj/structure/noticeboard{pixel_x = -32; pixel_y = 0},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"jw" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"jx" = (/mob/living/simple_animal/hostile/retaliate/bat{desc = "A Syndicate experiment in weaponized space carp technology. Its fangs seem to have been intentionally dulled down to prevent accidents."; faction = list("syndicate"); harm_intent_damage = 5; health = 50; icon_dead = "carp_dead"; icon_gib = "carp_gib"; icon_living = "carp"; icon_state = "carp"; name = "Cayenne"; real_name = "Cayenne"; response_disarm = "lightly brushes aside"; response_help = "pets"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"jy" = (/obj/machinery/door/airlock/centcom{name = "Study"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"jz" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
-"jA" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/drinkingglasses,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
-"jB" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/gun/syringe/rapidsyringe,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
-"jC" = (/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/tdome/tdomeobserve)
-"jD" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/tdome/tdomeobserve)
-"jE" = (/turf/unsimulated/floor{dir = 10; icon_state = "green"},/area/centcom/evac)
-"jF" = (/turf/unsimulated/floor{icon_state = "green"},/area/centcom/evac)
-"jG" = (/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/centcom/evac)
-"jH" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/shuttle/floor,/area/space)
-"jI" = (/obj/structure/table,/obj/machinery/recharger{active_power_usage = 0; idle_power_usage = 0},/turf/simulated/shuttle/floor,/area/space)
-"jJ" = (/obj/machinery/computer/emergency_shuttle,/turf/simulated/shuttle/floor,/area/space)
-"jK" = (/obj/machinery/computer/communications,/obj/machinery/status_display{pixel_y = -32},/turf/simulated/shuttle/floor,/area/space)
-"jL" = (/obj/machinery/computer/atmos_alert,/turf/simulated/shuttle/floor,/area/space)
-"jM" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/item/weapon/folder/blue,/obj/item/weapon/cigbutt/cigarbutt,/turf/simulated/shuttle/floor,/area/space)
-"jN" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/turf/simulated/shuttle/floor,/area/space)
-"jO" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"jP" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/plating{icon_state = "floorgrime"},/area/space)
-"jQ" = (/obj/structure/lattice,/obj/item/weapon/shard{color = "#008000"; icon_state = "medium"},/turf/space/transit,/area/wizard_station)
-"jR" = (/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cultdamage2"; icon_state = "cultdamage2"},/area/wizard_station)
-"jS" = (/turf/unsimulated/floor{tag = "icon-cultdamage3"; icon_state = "cultdamage3"},/area/wizard_station)
-"jT" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"jU" = (/turf/unsimulated/wall/normal{tag = "icon-uranium3"; icon_state = "uranium3"},/area/wizard_station)
-"jV" = (/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/weapon/crowbar/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"jW" = (/obj/structure/table,/obj/item/weapon/storage/box/zipties{pixel_x = 1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"jX" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_surround"; dir = 8},/area/syndicate_mothership)
-"jY" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 6},/area/syndicate_mothership)
-"jZ" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = -2; pixel_y = 5},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"ka" = (/obj/structure/table/wood,/obj/item/pizzabox{ismessy = 1},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"kb" = (/obj/structure/stool,/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"kc" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (NORTHWEST)"; icon_state = "podhatch"; dir = 9},/area/syndicate_mothership)
-"kd" = (/obj/structure/dresser,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
-"ke" = (/obj/structure/table/wood,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
-"kf" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/item/weapon/reagent_containers/food/drinks/bottle/tequila,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = -5},/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{pixel_x = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
-"kg" = (/obj/structure/closet/secure_closet/ertMed,/turf/unsimulated/floor{tag = "icon-darkblue"; icon_state = "darkblue"; dir = 2},/area/centcom/ferry)
-"kh" = (/obj/structure/closet/secure_closet/ertEngi,/obj/structure/extinguisher_cabinet{pixel_y = -28},/turf/unsimulated/floor{tag = "icon-darkbrown"; icon_state = "darkbrown"; dir = 2},/area/centcom/ferry)
-"ki" = (/obj/structure/closet/secure_closet/ertSec,/turf/unsimulated/floor{tag = "icon-darkred"; icon_state = "darkred"; dir = 2},/area/centcom/ferry)
-"kj" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/emps,/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
-"kk" = (/obj/structure/table/reinforced,/obj/item/weapon/c4,/obj/item/weapon/c4{pixel_x = 7},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
-"kl" = (/turf/unsimulated/floor{icon_state = "red"; dir = 10},/area/tdome/tdomeobserve)
-"km" = (/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/tdome/tdomeobserve)
-"kn" = (/turf/unsimulated/floor{icon_state = "green"},/area/tdome/tdomeobserve)
-"ko" = (/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/tdome/tdomeobserve)
-"kp" = (/turf/unsimulated/wall/fakedoor{name = "Centcom"},/area/centcom/evac)
-"kq" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/space)
-"kr" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"; dir = 2},/area/space)
-"ks" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/space)
-"kt" = (/obj/structure/showcase{desc = "A strange machine supposedly from another world. The Wizard Federation has been meddling with it for years."; icon_state = "processor"; name = "byond random number generator"},/turf/unsimulated/floor{tag = "icon-cultdamage7"; icon_state = "cultdamage7"},/area/wizard_station)
-"ku" = (/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
-"kv" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"kw" = (/obj/structure/showcase{desc = "A historical figure of great importance to the wizard federation. He spent his long life learning magic, stealing artifacts, and harassing idiots with swords. May he rest forever, Rodney."; icon = 'icons/mob/mob.dmi'; icon_state = "nim"; name = "wizard of yendor showcase"},/turf/unsimulated/floor{tag = "icon-cultdamage4"; icon_state = "cultdamage4"},/area/wizard_station)
-"kx" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"ky" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"kz" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership)
-"kA" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership)
-"kB" = (/obj/structure/table/wood,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"kC" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = 5; pixel_y = -2; step_x = 0},/obj/item/toy/cards/deck/syndicate{icon_state = "deck_syndicate_full"; pixel_x = -6; pixel_y = 6},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"kD" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (WEST)"; icon_state = "podhatch"; dir = 8},/area/syndicate_mothership)
-"kE" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/space)
-"kF" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/space)
-"kG" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 6; icon_state = "fakewindows2"},/area/wizard_station)
-"kH" = (/obj/effect/forcefield,/obj/structure/door_assembly{anchored = 1; icon_state = "door_as_uranium1"; name = "Bridge"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"kI" = (/turf/unsimulated/wall/normal{tag = "icon-uranium6"; icon_state = "uranium6"},/area/wizard_station)
-"kJ" = (/turf/unsimulated/wall/normal{tag = "icon-uranium9"; icon_state = "uranium9"},/area/wizard_station)
-"kK" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership)
-"kL" = (/turf/unsimulated/floor,/area/syndicate_mothership)
-"kM" = (/obj/machinery/door/poddoor/shutters{id = "nukeop_ready"; name = "shuttle dock"},/turf/unsimulated/floor,/area/syndicate_mothership)
-"kN" = (/turf/space,/area/tdome/tdomeobserve)
-"kO" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{tag = "icon-cultdamage6"; icon_state = "cultdamage6"},/area/wizard_station)
-"kP" = (/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
-"kQ" = (/obj/structure/mirror{pixel_x = 28},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"kR" = (/obj/machinery/suit_storage_unit/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"kS" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"kT" = (/turf/unsimulated/wall/fakeglass,/area/syndicate_mothership)
-"kU" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/unsimulated/floor,/area/syndicate_mothership)
-"kV" = (/obj/machinery/door_control{id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; pixel_y = 0; req_access_txt = "151"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"kW" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (SOUTHWEST)"; icon_state = "podhatch"; dir = 10},/area/syndicate_mothership)
-"kX" = (/obj/structure/urinal{pixel_y = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"kY" = (/obj/structure/toilet{pixel_y = 8},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/obj/machinery/door/window{name = "Tactical Toilet"; opacity = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"kZ" = (/turf/simulated/shuttle/wall{icon_state = "swall0"; dir = 2},/area/wizard_station)
-"la" = (/turf/unsimulated/wall/fakedoor{name = "Squad 4 Pod"},/area/wizard_station)
-"lb" = (/turf/simulated/shuttle/wall{icon_state = "swall4"; dir = 2},/area/wizard_station)
-"lc" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/wizard_station)
-"ld" = (/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"le" = (/turf/unsimulated/floor{tag = "icon-cultdamage7"; icon_state = "cultdamage7"},/area/wizard_station)
-"lf" = (/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
-"lg" = (/obj/structure/stool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"lh" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"li" = (/obj/machinery/door/poddoor{auto_close = 300; id = "smindicate"; name = "outer blast door"},/obj/machinery/door_control{id = "smindicate"; name = "external door control"; pixel_x = -26; pixel_y = 0; req_access_txt = "150"},/obj/docking_port/mobile{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate"; name = "syndicate infiltrator"; travelDir = 180; width = 18},/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_away"; name = "syndicate recon outpost"; turf_type = /turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"}; width = 18},/turf/simulated/shuttle/plating,/area/space)
-"lj" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/space)
-"lk" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 5},/area/syndicate_mothership)
-"ll" = (/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/structure/table/wood,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
-"lm" = (/obj/structure/table/wood,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
-"ln" = (/obj/structure/table/wood,/obj/item/device/syndicatedetonator{desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press."},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
-"lo" = (/obj/machinery/door/airlock/centcom{name = "Restroom"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"lp" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"lq" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"lr" = (/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve)
-"ls" = (/obj/structure/stool/bed/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve)
-"lt" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/space/transit,/area/wizard_station)
-"lu" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/turf/simulated/floor/plating/airless,/area/wizard_station)
-"lv" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{icon_state = "floor"},/area/wizard_station)
-"lw" = (/turf/unsimulated/floor{icon_state = "floor"},/area/wizard_station)
-"lx" = (/obj/machinery/door/poddoor/preopen,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plating/airless,/area/wizard_station)
-"ly" = (/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cultdamage7"; icon_state = "cultdamage7"},/area/wizard_station)
-"lz" = (/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station)
-"lA" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
-"lB" = (/obj/structure/table,/obj/item/weapon/c4{pixel_x = 2; pixel_y = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"lC" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
-"lD" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
-"lE" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Uplink Management Control"; req_access_txt = "151"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
-"lF" = (/obj/item/weapon/soap/syndie,/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"lG" = (/obj/item/weapon/mop,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"lH" = (/turf/unsimulated/wall/fakedoor{name = "Thunderdome"},/area/tdome/tdomeobserve)
-"lI" = (/obj/machinery/computer/security/telescreen,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve)
-"lJ" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/wizard_station)
-"lK" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/wizard_station)
-"lL" = (/turf/unsimulated/floor{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station)
-"lM" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{tag = "icon-cultdamage2"; icon_state = "cultdamage2"},/area/wizard_station)
-"lN" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/cardhand,/turf/unsimulated/floor{tag = "icon-cultdamage2"; icon_state = "cultdamage2"},/area/wizard_station)
-"lO" = (/obj/machinery/door/window{dir = 4; name = "EVA Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"lP" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"lQ" = (/obj/machinery/computer/telecrystals/boss,/turf/unsimulated/floor{tag = "icon-podhatch (NORTHEAST)"; icon_state = "podhatch"; dir = 5},/area/syndicate_mothership)
-"lR" = (/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_left"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/obj/structure/sign/map/left{icon_state = "map-left-MS"; pixel_y = -32; tag = "icon-map-left-MS"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
-"lS" = (/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_right"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/gin,/obj/structure/sign/map/right{icon_state = "map-right-MS"; pixel_y = -32; tag = "icon-map-right-MS"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
-"lT" = (/obj/machinery/door/airlock/glass_large{name = "Equipment Room"; opacity = 1; req_access_txt = "150"; text = "g"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"lU" = (/obj/structure/lattice,/obj/effect/forcefield,/turf/space/transit,/area/wizard_station)
-"lV" = (/obj/machinery/vending/magivend,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"lW" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
-"lX" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "EVA Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"lY" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/shuttle/plating,/area/space)
-"lZ" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"ma" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership)
-"mb" = (/turf/unsimulated/floor{tag = "icon-stage_stairs"; icon_state = "stage_stairs"},/area/syndicate_mothership)
-"mc" = (/obj/machinery/mech_bay_recharge_port,/turf/unsimulated/floor/plating,/area/syndicate_mothership)
-"md" = (/turf/unsimulated/floor{icon_state = "recharge_floor"; name = "mech bay recharge floor"; tag = "icon-recharge_floor"},/area/syndicate_mothership)
-"me" = (/obj/machinery/computer/mech_bay_power_console,/turf/unsimulated/floor/plating,/area/syndicate_mothership)
-"mf" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"mg" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeobserve)
-"mh" = (/turf/unsimulated/wall/normal{tag = "icon-uranium8"; icon_state = "uranium8"},/area/wizard_station)
-"mi" = (/obj/structure/door_assembly{anchored = 1; icon_state = "door_as_uranium1"; name = "Break Room"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"mj" = (/turf/unsimulated/wall/normal{tag = "icon-uranium4"; icon_state = "uranium4"},/area/wizard_station)
-"mk" = (/turf/unsimulated/wall/normal{tag = "icon-uranium12"; icon_state = "uranium12"},/area/wizard_station)
-"ml" = (/turf/unsimulated/wall/normal{tag = "icon-uranium14"; icon_state = "uranium14"},/area/wizard_station)
-"mm" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Dooruranium.dmi'; name = "Break Room"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"mn" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"mo" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{tag = "icon-gravsnow_corner (NORTH)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership)
-"mp" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/bush,/turf/unsimulated/floor{tag = "icon-gravsnow_corner (NORTH)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership)
-"mq" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"mr" = (/turf/unsimulated/wall,/area/tdome/arena)
-"ms" = (/obj/machinery/igniter,/turf/simulated/floor/plasteel,/area/tdome/arena)
-"mt" = (/turf/simulated/floor/plasteel,/area/tdome/arena)
-"mu" = (/turf/unsimulated/wall/normal{tag = "icon-uranium1"; icon_state = "uranium1"},/area/wizard_station)
-"mv" = (/obj/structure/stool/bed/chair/wood/wings,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"mw" = (/obj/structure/table/wood,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"mx" = (/obj/structure/table/wood,/obj/item/weapon/retractor,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"my" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"mz" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"mA" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/hardsuit/wizard,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"mB" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
-"mC" = (/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"mD" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"mE" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"mF" = (/obj/structure/table,/obj/machinery/cell_charger,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"mG" = (/obj/structure/table,/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"mH" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell/high{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stock_parts/cell/high,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"mI" = (/obj/structure/table,/obj/item/weapon/screwdriver{pixel_y = 9},/obj/item/device/assembly/voice{pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"mJ" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/assembly/infra,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"mK" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"mL" = (/obj/structure/table,/obj/item/weapon/weldingtool/largetank{pixel_y = 3},/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"mM" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"mN" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
-"mO" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
-"mP" = (/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2)
-"mQ" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{name = "plating"},/area/tdome/arena)
-"mR" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/tdome/arena)
-"mS" = (/turf/simulated/floor/plasteel{icon_state = "green"; dir = 4},/area/tdome/arena)
-"mT" = (/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
-"mU" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
-"mV" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows"},/area/wizard_station)
-"mW" = (/obj/structure/cult/tome,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"mX" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/head/wizard/red,/obj/item/weapon/staff,/obj/item/clothing/shoes/sandal,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"mY" = (/obj/effect/decal/cleanable/blood/splatter,/obj/structure/rack{health = 9999},/obj/item/clothing/suit/space/hardsuit/wizard,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
-"mZ" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/wizard_station)
-"na" = (/turf/simulated/shuttle/wall{icon_state = "swall8"; dir = 2},/area/wizard_station)
-"nb" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"nc" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"nd" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/syndicate,/obj/item/weapon/crowbar/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"ne" = (/obj/structure/closet/syndicate/personal,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/syndicate_mothership)
-"nf" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle{pin = /obj/item/device/firing_pin},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
-"ng" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2)
-"nh" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
-"ni" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows2"},/area/wizard_station)
-"nj" = (/obj/structure/bookcase,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"nk" = (/obj/structure/grille{color = "#008000"; density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating,/area/wizard_station)
-"nl" = (/obj/structure/cult/talisman{desc = "A altar dedicated to the Wizard's Federation"},/obj/item/weapon/kitchenknife/ritual,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"nm" = (/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/staff/broom,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"nn" = (/obj/effect/decal/cleanable/blood/splatter,/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"no" = (/obj/machinery/door/poddoor/preopen,/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/simulated/floor/plating/airless,/area/wizard_station)
-"np" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon_state = "floor"},/area/wizard_station)
-"nq" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{icon_state = "floor"},/area/wizard_station)
-"nr" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/turf/simulated/floor/plating/airless,/area/wizard_station)
-"ns" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/space/transit,/area/wizard_station)
-"nt" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"nu" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"nv" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"nw" = (/obj/machinery/camera{pixel_x = 11; pixel_y = -9; network = list("thunder"); c_tag = "Red Team"},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2)
-"nx" = (/turf/simulated/floor/bluegrid,/area/tdome/arena)
-"ny" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/simulated/floor/bluegrid,/area/tdome/arena)
-"nz" = (/obj/machinery/camera{pixel_x = 12; pixel_y = -10; network = list("thunder"); c_tag = "Green Team"},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
-"nA" = (/turf/unsimulated/wall/fakeglass{color = "#008000"},/area/wizard_station)
-"nB" = (/obj/item/weapon/shard{color = "#008000"; icon_state = "medium"},/obj/structure/grille{color = "#008000"; density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating,/area/wizard_station)
-"nC" = (/obj/effect/landmark/start{name = "wizard"},/turf/unsimulated/floor{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station)
-"nD" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"nE" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/wizard_station)
-"nF" = (/turf/unsimulated/wall/fakedoor{name = "Squad 3 Pod"},/area/wizard_station)
-"nG" = (/obj/structure/table,/obj/item/weapon/gun/syringe{pixel_x = 1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"nH" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/charcoal,/obj/item/weapon/reagent_containers/syringe/charcoal{pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/charcoal{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"nI" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"nJ" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"nK" = (/obj/structure/table,/obj/item/device/sbeacondrop/bomb{pixel_y = 5},/obj/item/device/sbeacondrop/bomb,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"nL" = (/obj/structure/table,/obj/item/weapon/grenade/syndieminibomb{pixel_x = 4; pixel_y = 2},/obj/item/weapon/grenade/syndieminibomb{pixel_x = -1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"nM" = (/obj/machinery/camera{pixel_x = 10; network = list("thunder"); c_tag = "Arena"},/turf/simulated/floor/bluegrid,/area/tdome/arena)
-"nN" = (/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (NORTH)"; icon_state = "wooden_chair_wings"; dir = 1},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"nO" = (/obj/structure/cult/pylon,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"nP" = (/obj/effect/decal/cleanable/blood/splatter,/obj/structure/rack,/obj/item/weapon/staff,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
-"nQ" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{tag = "icon-cultdamage4"; icon_state = "cultdamage4"},/area/wizard_station)
-"nR" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
-"nS" = (/turf/unsimulated/floor{tag = "icon-cultdamage4"; icon_state = "cultdamage4"},/area/wizard_station)
-"nT" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"nU" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"nV" = (/obj/structure/door_assembly{anchored = 1; icon_state = "door_as_uranium1"; name = "Corridor A"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"nW" = (/turf/unsimulated/wall/normal{tag = "icon-uranium15"; icon_state = "uranium15"},/area/wizard_station)
-"nX" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Dooruranium.dmi'; name = "Corridor A"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"nY" = (/obj/structure/table,/obj/item/robot_parts/r_arm,/obj/item/weapon/storage/firstaid/regular{pixel_x = 0; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"nZ" = (/obj/structure/closet/crate/internals,/obj/item/weapon/tank/internals/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/internals/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/internals/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/internals/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/internals/oxygen/red,/obj/item/clothing/mask/gas,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"oa" = (/obj/structure/closet/crate/medical,/obj/item/weapon/surgicaldrill,/obj/item/weapon/scalpel,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"ob" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/space)
-"oc" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"od" = (/obj/machinery/teleport/hub/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
-"oe" = (/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cultdamage3"; icon_state = "cultdamage3"},/area/wizard_station)
-"of" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/simulated/shuttle/plating,/area/space)
-"og" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/simulated/shuttle/plating,/area/space)
-"oh" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
-"oi" = (/turf/unsimulated/floor{tag = "icon-cultdamage2"; icon_state = "cultdamage2"},/area/wizard_station)
-"oj" = (/obj/effect/forcefield,/turf/space,/area/wizard_station)
-"ok" = (/obj/effect/decal/remains/human,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
-"ol" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
-"om" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeadmin)
-"on" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeadmin)
-"oo" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeadmin)
-"op" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
-"oq" = (/obj/structure/lattice,/obj/effect/forcefield,/turf/space,/area/wizard_station)
-"or" = (/obj/effect/forcefield,/turf/space/transit,/area/wizard_station)
-"os" = (/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
-"ot" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
-"ou" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{pixel_y = 0},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
-"ov" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
-"ow" = (/obj/machinery/flasher_button{id = "tdomeflash"; pixel_x = 0; pixel_y = 0},/obj/structure/table,/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
-"ox" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Dooruranium.dmi'; name = "Personal Quarters"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"oy" = (/turf/unsimulated/wall,/area/tdome/tdomeadmin)
-"oz" = (/obj/machinery/computer/security/telescreen{pixel_y = -32},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
-"oA" = (/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin)
-"oB" = (/obj/structure/table/wood,/obj/effect/landmark{name = "Teleport-Scroll"},/obj/item/weapon/dice/d20,/obj/item/weapon/dice,/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/wizard_station)
-"oC" = (/turf/unsimulated/floor{dir = 1; icon_state = "carpetside"},/area/wizard_station)
-"oD" = (/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/wizard_station)
-"oE" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_f10"; layer = 2},/area/wizard_station)
-"oF" = (/turf/unsimulated/floor{tag = "icon-cultdamage6"; icon_state = "cultdamage6"},/area/wizard_station)
-"oG" = (/turf/unsimulated/wall/fakedoor{name = "Thunderdome Admin"},/area/tdome/tdomeadmin)
-"oH" = (/obj/structure/table,/obj/machinery/door_control{id = "thunderdomehea"; name = "Heavy Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin)
-"oI" = (/obj/structure/table,/obj/machinery/door_control{id = "thunderdome"; name = "Main Blast Doors Control"; pixel_y = 0; req_access_txt = "102"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin)
-"oJ" = (/obj/structure/table,/obj/machinery/door_control{id = "thunderdomegen"; name = "General Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin)
-"oK" = (/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/wizard_station)
-"oL" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/wiz,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/wizard_station)
-"oM" = (/turf/unsimulated/floor{dir = 4; icon_state = "carpetside"},/area/wizard_station)
-"oN" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
-"oO" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/wizard_station)
-"oP" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/wizard_station)
-"oQ" = (/obj/structure/dresser,/obj/item/weapon/storage/backpack/satchel,/turf/unsimulated/floor{dir = 10; icon_state = "carpetside"},/area/wizard_station)
-"oR" = (/turf/unsimulated/floor{dir = 2; icon_state = "carpetside"},/area/wizard_station)
-"oS" = (/obj/structure/table/wood,/obj/item/weapon/storage/bag/tray,/obj/item/weapon/reagent_containers/food/snacks/burger/spell,/turf/unsimulated/floor{dir = 6; icon_state = "carpetside"},/area/wizard_station)
-"oT" = (/turf/unsimulated/wall/fakedoor{name = "Squad 2 Pod"},/area/wizard_station)
-"oU" = (/turf/unsimulated/wall/normal{tag = "icon-uranium13"; icon_state = "uranium13"},/area/wizard_station)
-"oV" = (/turf/simulated/shuttle/wall,/area/wizard_station)
-"oW" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/wizard_station)
-"oX" = (/obj/structure/table/wood,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"oY" = (/obj/structure/table/wood,/obj/item/weapon/gun/magic/wand{desc = "Used in emergency's to reignite magma engines. This one appears spent."; name = "wand of emergency engine ignition"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"oZ" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/wizard_station)
-"pa" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"pb" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"pc" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"pd" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"pe" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"pf" = (/obj/structure/rack,/obj/item/device/camera,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"pg" = (/obj/structure/rack,/obj/item/toy/sword,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"ph" = (/obj/structure/rack,/obj/item/toy/gun,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"pi" = (/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"pj" = (/turf/unsimulated/beach/sand,/area/centcom/holding)
-"pk" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/centcom/holding)
-"pl" = (/obj/effect/overlay/palmtree_l,/turf/unsimulated/beach/sand,/area/centcom/holding)
-"pm" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Dooruranium.dmi'; name = "Engine Room B"},/turf/space,/area/wizard_station)
-"pn" = (/obj/structure/table,/obj/item/clothing/head/that,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"po" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"pp" = (/obj/item/device/camera,/turf/unsimulated/beach/sand,/area/centcom/holding)
-"pq" = (/obj/structure/cult/forge{desc = "A engine used in powering the wizards ship"; name = "magma engine"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
-"pr" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"ps" = (/obj/structure/table,/obj/item/weapon/lighter/zippo,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"pt" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"pu" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
-"pv" = (/obj/structure/stool{pixel_y = 8},/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/beach/sand,/area/centcom/holding)
-"pw" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/beach/sand,/area/centcom/holding)
-"px" = (/turf/unsimulated/wall/normal{tag = "icon-uranium11"; icon_state = "uranium11"},/area/wizard_station)
-"py" = (/obj/structure/window/reinforced{color = "#008000"; dir = 1},/turf/unsimulated/floor{tag = "icon-lava"; icon_state = "lava"},/area/wizard_station)
-"pz" = (/turf/unsimulated/wall/normal{tag = "icon-uranium7"; icon_state = "uranium7"},/area/wizard_station)
-"pA" = (/obj/structure/rack,/obj/item/clothing/head/that,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/tie/waistcoat,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"pB" = (/obj/item/weapon/beach_ball,/turf/unsimulated/beach/sand,/area/centcom/holding)
-"pC" = (/obj/structure/shuttle/engine/heater,/turf/unsimulated/floor{tag = "icon-lava"; icon_state = "lava"},/area/wizard_station)
-"pD" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"pE" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"pF" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/space)
-"pG" = (/turf/unsimulated/beach/coastline,/area/centcom/holding)
-"pH" = (/obj/item/clothing/head/collectable/paper,/turf/unsimulated/beach/coastline,/area/centcom/holding)
-"pI" = (/obj/structure/rack,/obj/item/clothing/shoes/laceup,/obj/item/clothing/under/suit_jacket/female{desc = "A black trouser suit for women. Very formal."; name = "black suit"; pixel_x = 3; pixel_y = 1},/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"pJ" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
-"pK" = (/turf/unsimulated/beach/water,/area/centcom/holding)
-"pL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{name = "plating"},/area/centcom/holding)
-"pM" = (/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/holding)
-"pN" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/centcom/holding)
-"pO" = (/obj/effect/landmark{name = "Holding Facility"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/holding)
+"dA" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/centcom/evac)
+"dB" = (/turf/simulated/shuttle/wall{icon_state = "swallc4"; dir = 2},/area/centcom/evac)
+"dC" = (/obj/machinery/door/airlock/shuttle{name = "Cockpit"; req_access_txt = "109"},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/centcom/evac)
+"dD" = (/obj/structure/table,/obj/item/device/radio/off,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"dE" = (/obj/structure/stool/bed/chair{dir = 4; name = "Prosecution"},/turf/simulated/shuttle/floor,/area/centcom/evac)
+"dF" = (/obj/structure/filingcabinet,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"dG" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"dH" = (/obj/structure/table,/obj/item/weapon/storage/lockbox,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"dI" = (/obj/structure/table,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"dJ" = (/obj/machinery/computer/shuttle,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"dK" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"dL" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/simulated/shuttle/floor,/area/centcom/evac)
+"dM" = (/turf/unsimulated/wall,/area/centcom/suppy)
+"dN" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/space)
+"dO" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/space)
+"dP" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/space)
+"dQ" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/space)
+"dR" = (/turf/simulated/shuttle/floor,/area/space)
+"dS" = (/obj/structure/closet,/turf/unsimulated/floor{tag = "icon-warningcorner (NORTH)"; icon_state = "warningcorner"; dir = 1},/area/centcom/suppy)
+"dT" = (/obj/structure/closet/secure_closet/cargotech,/turf/unsimulated/floor{dir = 1; icon_state = "loadingarea"},/area/centcom/suppy)
+"dU" = (/obj/structure/closet/secure_closet/quartermaster,/turf/unsimulated/floor{dir = 1; icon_state = "loadingarea"},/area/centcom/suppy)
+"dV" = (/obj/structure/closet,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/suppy)
+"dW" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/poddoor{id = "QMLoaddoor2"; name = "supply dock loading door"},/turf/simulated/shuttle/plating,/area/space)
+"dX" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/suppy)
+"dY" = (/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/suppy)
+"dZ" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/suppy)
+"ea" = (/turf/unsimulated/wall,/area/centcom/prison)
+"eb" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/turf/simulated/shuttle/plating,/area/space)
+"ec" = (/obj/machinery/door/airlock/centcom{name = "Supply Shuttle"; req_access_txt = "106"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/suppy)
+"ed" = (/turf/unsimulated/wall/fakedoor,/area/centcom/suppy)
+"ee" = (/obj/effect/landmark{name = "prisonwarp"},/turf/unsimulated/floor{name = "plating"},/area/centcom/prison)
+"ef" = (/obj/machinery/door_control{dir = 2; id = "QMLoaddoor2"; name = "Loading Doors"; pixel_x = 24; pixel_y = 8},/obj/machinery/door_control{id = "QMLoaddoor"; name = "Loading Doors"; pixel_x = 24; pixel_y = -8},/turf/simulated/shuttle/floor,/area/space)
+"eg" = (/obj/machinery/computer/supplycomp,/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/suppy)
+"eh" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/obj/docking_port/mobile/supply{dwidth = 5; width = 12},/obj/docking_port/stationary{dir = 8; dwidth = 5; height = 7; id = "supply_away"; name = "Centcom"; width = 12},/turf/simulated/shuttle/plating,/area/space)
+"ei" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/poddoor{id = "QMLoaddoor"; name = "supply dock loading door"},/turf/simulated/shuttle/plating,/area/space)
+"ej" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/suppy)
+"ek" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/suppy)
+"el" = (/obj/structure/closet/crate,/turf/unsimulated/floor{tag = "icon-plating"; icon_state = "plating"},/area/centcom/suppy)
+"em" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/space)
+"en" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall/interior{icon_state = "swall_f10"},/area/space)
+"eo" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall/interior{icon_state = "swall_f6"},/area/space)
+"ep" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/space)
+"eq" = (/turf/unsimulated/wall/fakeglass,/area/centcom/suppy)
+"er" = (/obj/machinery/door/airlock/centcom{name = "Crate Storage"; req_access_txt = "106"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/suppy)
+"es" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/space)
+"et" = (/turf/simulated/shuttle/wall{icon_state = "swall15"; dir = 2},/area/space)
+"eu" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/simulated/shuttle/plating,/area/space)
+"ev" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/space)
+"ew" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/centcom/suppy)
+"ex" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/coin/silver,/turf/unsimulated/floor,/area/centcom/suppy)
+"ey" = (/obj/structure/table,/obj/item/weapon/pen/blue{pixel_x = 4; pixel_y = 4},/obj/item/weapon/pen/red,/obj/item/weapon/pen{pixel_x = 8; pixel_y = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/suppy)
+"ez" = (/turf/unsimulated/floor,/area/centcom/suppy)
+"eA" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/simulated/shuttle/plating,/area/space)
+"eB" = (/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/plating,/area/space)
+"eC" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/simulated/shuttle/plating,/area/space)
+"eD" = (/obj/machinery/door/airlock/centcom{name = "Centcom Supply"; req_access_txt = "106"},/turf/unsimulated/floor{tag = "icon-brown"; icon_state = "brown"},/area/centcom/suppy)
+"eE" = (/turf/unsimulated/wall,/area/centcom/evac)
+"eF" = (/turf/unsimulated/wall,/area/centcom/control)
+"eG" = (/obj/structure/flora/ausbushes/brflowers,/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/control)
+"eH" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/control)
+"eI" = (/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/control)
+"eJ" = (/turf/unsimulated/floor{tag = "icon-darkred (NORTHWEST)"; icon_state = "darkred"; dir = 9},/area/centcom/evac)
+"eK" = (/turf/unsimulated/floor{tag = "icon-darkred (NORTH)"; icon_state = "darkred"; dir = 1},/area/centcom/evac)
+"eL" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/unsimulated/floor{tag = "icon-darkred (NORTHEAST)"; icon_state = "darkred"; dir = 5},/area/centcom/evac)
+"eM" = (/turf/unsimulated/wall,/area/centcom/ferry)
+"eN" = (/obj/structure/flora/ausbushes/palebush,/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/control)
+"eO" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/control)
+"eP" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
+"eQ" = (/turf/unsimulated/wall/fakedoor{name = "Centcom Security"},/area/centcom/evac)
+"eR" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
+"eS" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_y = 4},/obj/item/weapon/pen,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
+"eT" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
+"eU" = (/obj/structure/mirror{pixel_y = 32},/obj/structure/dresser,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
+"eV" = (/obj/machinery/vending/autodrobe,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
+"eW" = (/turf/unsimulated/wall/fakeglass,/area/centcom/control)
+"eX" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/unsimulated/floor{tag = "icon-darkred (WEST)"; icon_state = "darkred"; dir = 8},/area/centcom/evac)
+"eY" = (/obj/structure/stool/bed/chair/office/dark,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
+"eZ" = (/obj/structure/showcase/fakesec,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
+"fa" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/space)
+"fb" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/space)
+"fc" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/shuttle/plating,/area/space)
+"fd" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/simulated/shuttle/floor,/area/space)
+"fe" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"; dir = 2},/area/space)
+"ff" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo Bay Airlock"},/turf/simulated/shuttle/plating{dir = 1; icon_state = "delivery"},/area/space)
+"fg" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo Bay Airlock"},/obj/docking_port/mobile/emergency{dheight = 0; dir = 2; dwidth = 2; height = 22; width = 14},/obj/docking_port/stationary{dir = 2; dwidth = 2; height = 22; id = "emergency_away"; name = "Centcom"; width = 14},/turf/simulated/shuttle/plating{dir = 1; icon_state = "delivery"},/area/space)
+"fh" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/space)
+"fi" = (/obj/structure/table/wood,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
+"fj" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
+"fk" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/control)
+"fl" = (/obj/machinery/door/window/northleft{dir = 2; name = "Centcom Security"; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
+"fm" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{tag = "icon-darkred (SOUTHWEST)"; icon_state = "darkred"; dir = 10},/area/centcom/evac)
+"fn" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/unsimulated/floor{tag = "icon-darkred"; icon_state = "darkred"; dir = 2},/area/centcom/evac)
+"fo" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{tag = "icon-darkred"; icon_state = "darkred"; dir = 2},/area/centcom/evac)
+"fp" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/space)
+"fq" = (/obj/structure/table,/obj/item/clothing/mask/breath{pixel_x = 5; pixel_y = -2},/obj/item/clothing/mask/breath{pixel_x = -5; pixel_y = -2},/obj/item/clothing/mask/breath{pixel_x = -5; pixel_y = 6},/obj/item/clothing/mask/breath{pixel_x = 5; pixel_y = 6},/obj/item/clothing/mask/breath,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fr" = (/obj/structure/dispenser/oxygen{layer = 2.7; pixel_x = -1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fs" = (/obj/structure/table,/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer{pixel_x = 3; pixel_y = 3},/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"ft" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; name = "emergency shower"; tag = "icon-shower (EAST)"},/turf/simulated/shuttle/floor,/area/space)
+"fu" = (/obj/machinery/status_display{pixel_y = 32},/obj/machinery/hologram/holopad,/turf/simulated/shuttle/floor,/area/space)
+"fv" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; name = "emergency shower"; tag = "icon-shower (WEST)"},/turf/simulated/shuttle/floor,/area/space)
+"fw" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fx" = (/obj/structure/sign/nosmoking_2,/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/space)
+"fy" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
+"fz" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; name = "emergency shower"; tag = "icon-shower (EAST)"},/turf/simulated/shuttle/plating{dir = 1; icon_state = "delivery"},/area/space)
+"fA" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; name = "emergency shower"; tag = "icon-shower (EAST)"},/turf/simulated/shuttle/plating{dir = 1; icon_state = "delivery"},/area/space)
+"fB" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/obj/item/hand_labeler_refill,/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
+"fC" = (/obj/machinery/vending/clothing,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
+"fD" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/control)
+"fE" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/control)
+"fF" = (/turf/unsimulated/floor{icon_state = "greencorner"},/area/centcom/control)
+"fG" = (/obj/structure/flora/kirbyplants,/turf/unsimulated/floor{icon_state = "green"; dir = 9},/area/centcom/evac)
+"fH" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
+"fI" = (/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
+"fJ" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/obj/item/toy/foamblade,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
+"fK" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/obj/item/toy/sword,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
+"fL" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/evac)
+"fM" = (/turf/simulated/shuttle/plating{dir = 1; icon_state = "delivery"},/area/space)
+"fN" = (/turf/simulated/shuttle/plating{icon_state = "floorgrime"},/area/space)
+"fO" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 31},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
+"fP" = (/obj/machinery/door/airlock/centcom{name = "Dressing Room"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry)
+"fQ" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control)
+"fR" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 4},/area/centcom/control)
+"fS" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/evac)
+"fT" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac)
+"fU" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/evac)
+"fV" = (/obj/structure/stool/bed/chair{dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fW" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fX" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fY" = (/obj/item/weapon/cigbutt,/turf/simulated/shuttle/plating{icon_state = "floorgrime"},/area/space)
+"fZ" = (/obj/machinery/bot/medbot{name = "\improper emergency medibot"; pixel_x = -3; pixel_y = 2},/obj/structure/closet/crate/medical{name = "medical crate"},/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/toxin{pixel_x = -4; pixel_y = 3},/obj/item/device/healthanalyzer{pixel_x = 3; pixel_y = 3},/obj/item/weapon/lazarus_injector,/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
+"ga" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry)
+"gb" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry)
+"gc" = (/turf/unsimulated/floor{tag = "icon-warndark (WEST)"; icon_state = "warndark"; dir = 8},/area/centcom/ferry)
+"gd" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"ge" = (/turf/unsimulated/floor{tag = "icon-darkgreen (EAST)"; icon_state = "darkgreen"; dir = 4},/area/centcom/ferry)
+"gf" = (/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/control)
+"gg" = (/obj/machinery/door/airlock/centcom{name = "Centcom Customs"; opacity = 1; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
+"gh" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
+"gi" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
+"gj" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (SOUTHWEST)"; icon_state = "fakewindows"; dir = 10},/area/centcom/evac)
+"gk" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/evac)
+"gl" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/evac)
+"gm" = (/obj/machinery/door/airlock/centcom{name = "Centcom Security"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
+"gn" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/evac)
+"go" = (/obj/structure/reagent_dispensers/fueltank,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
+"gp" = (/obj/structure/closet/crate{name = "emergency supplies crate"},/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/obj/item/device/flashlight/flare{pixel_x = 3; pixel_y = 3},/obj/item/device/flashlight/flare{pixel_x = -6; pixel_y = -2},/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/device/radio,/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
+"gq" = (/turf/unsimulated/floor{name = "plating"},/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/space)
+"gr" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/space)
+"gs" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/space)
+"gt" = (/turf/unsimulated/floor{name = "plating"},/area/space)
+"gu" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/ferry)
+"gv" = (/obj/effect/landmark{name = "Deathsquad"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"gw" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
+"gx" = (/obj/structure/stool/bed/chair/office/dark,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac)
+"gy" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/evac)
+"gz" = (/turf/unsimulated/floor{tag = "icon-yellowsiding (WEST)"; icon_state = "yellowsiding"; dir = 8},/area/centcom/evac)
+"gA" = (/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/evac)
+"gB" = (/obj/machinery/door/airlock/external{name = "Port Docking Bay 1"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/evac)
+"gC" = (/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/evac)
+"gD" = (/obj/machinery/vending/wallmed{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = 0; req_access_txt = "0"; use_power = 0},/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/space)
+"gE" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
+"gF" = (/obj/machinery/space_heater,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
+"gG" = (/turf/unsimulated/wall,/area/syndicate_mothership)
+"gH" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall/interior{icon_state = "swall_f9"},/area/space)
+"gI" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor,/area/space)
+"gJ" = (/obj/machinery/computer/shuttle/ferry/request,/turf/simulated/shuttle/floor,/area/space)
+"gK" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor,/area/space)
+"gL" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry)
+"gM" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (SOUTHEAST)"; icon_state = "fakewindows"; dir = 6},/area/centcom/ferry)
+"gN" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control)
+"gO" = (/obj/machinery/door_control{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; name = "Security Doors"; pixel_y = 28; req_access_txt = "101"},/obj/structure/showcase/fakeid,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
+"gP" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
+"gQ" = (/obj/structure/table,/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/item/weapon/paper/centcom,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
+"gR" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 1},/area/centcom/evac)
+"gS" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{icon_state = "green"},/area/centcom/evac)
+"gT" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "green"},/area/centcom/evac)
+"gU" = (/obj/structure/table/reinforced,/obj/item/toy/carpplushie,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/centcom/evac)
+"gV" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gW" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gX" = (/obj/structure/rack,/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/weapon/weldingtool,/obj/item/weapon/wirecutters,/obj/item/stack/cable_coil,/turf/simulated/shuttle/plating{dir = 1; icon_state = "warning"},/area/space)
+"gY" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = -3; pixel_y = 1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0; pixel_y = -1},/obj/item/weapon/storage/toolbox/emergency{pixel_x = 3; pixel_y = -5},/turf/simulated/shuttle/plating{dir = 1; icon_state = "warning"},/area/space)
+"gZ" = (/turf/simulated/shuttle/plating{dir = 1; icon_state = "warning"},/area/space)
+"ha" = (/obj/structure/rack{dir = 1},/obj/item/weapon/tank/internals/oxygen/red,/obj/item/clothing/suit/fire/firefighter,/obj/item/clothing/mask/gas,/obj/item/clothing/head/hardhat/red,/turf/simulated/shuttle/plating{dir = 1; icon_state = "warning"},/area/space)
+"hb" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
+"hc" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
+"hd" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
+"he" = (/obj/structure/flora/grass/both,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
+"hf" = (/obj/machinery/door/airlock/shuttle,/turf/simulated/shuttle/floor,/area/space)
+"hg" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 12; id = "ferry"; name = "ferry shuttle"; travelDir = 180; width = 5},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 12; id = "ferry_away"; name = "unknown"; turf_type = /turf/unsimulated/floor; width = 5},/turf/simulated/shuttle/floor,/area/space)
+"hh" = (/obj/machinery/door/airlock/external{name = "Ferry Airlock"; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"hi" = (/turf/unsimulated/floor{tag = "icon-warndark (EAST)"; icon_state = "warndark"; dir = 4},/area/centcom/ferry)
+"hj" = (/turf/unsimulated/floor{tag = "icon-darkgreencorners (EAST)"; icon_state = "darkgreencorners"; dir = 4},/area/centcom/ferry)
+"hk" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/ferry)
+"hl" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 1},/area/centcom/control)
+"hm" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 1; icon_state = "rightsecure"; name = "Centcom Customs"; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
+"hn" = (/turf/unsimulated/floor{tag = "icon-warningcorner (NORTH)"; icon_state = "warningcorner"; dir = 1},/area/centcom/evac)
+"ho" = (/turf/unsimulated/floor{tag = "icon-yellowsiding (NORTH)"; icon_state = "yellowsiding"; dir = 1},/area/centcom/evac)
+"hp" = (/turf/unsimulated/floor{tag = "icon-yellowcornersiding (NORTH)"; icon_state = "yellowcornersiding"; dir = 1},/area/centcom/evac)
+"hq" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/sign/bluecross_2{pixel_x = 32},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hr" = (/turf/simulated/shuttle/wall{tag = "icon-swall7"; icon_state = "swall7"; dir = 2},/area/space)
+"hs" = (/turf/simulated/shuttle/wall{icon_state = "swall8"; dir = 2},/area/space)
+"ht" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Escape Shuttle Infirmary"; req_access_txt = "0"},/turf/simulated/shuttle/floor,/area/space)
+"hu" = (/obj/structure/sign/bluecross_2,/turf/simulated/shuttle/wall{icon_state = "swall4"; dir = 2},/area/space)
+"hv" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"; dir = 2},/area/space)
+"hw" = (/turf/unsimulated/floor{name = "plating"},/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/space)
+"hx" = (/obj/structure/closet/crate,/turf/simulated/shuttle/floor,/area/space)
+"hy" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/space)
+"hz" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 5},/area/centcom/ferry)
+"hA" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry)
+"hB" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry)
+"hC" = (/obj/machinery/door/airlock/centcom{name = "Centcom Docks"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control)
+"hD" = (/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/control)
+"hE" = (/obj/machinery/door/poddoor/preopen{id = "CentComPort"; name = "security door"},/turf/unsimulated/floor{tag = "icon-loadingarea (WEST)"; icon_state = "loadingarea"; dir = 8},/area/centcom/control)
+"hF" = (/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/evac)
+"hG" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/unsimulated/wall,/area/centcom/evac)
+"hH" = (/obj/machinery/status_display,/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/space)
+"hI" = (/obj/machinery/sleeper,/turf/simulated/shuttle/floor,/area/space)
+"hJ" = (/obj/structure/optable,/obj/item/weapon/surgical_drapes,/turf/simulated/shuttle/floor,/area/space)
+"hK" = (/obj/structure/flora/bush,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
+"hL" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/space)
+"hM" = (/turf/unsimulated/floor{tag = "icon-darkgreencorners"; icon_state = "darkgreencorners"},/area/centcom/ferry)
+"hN" = (/turf/unsimulated/floor{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/centcom/evac)
+"hO" = (/turf/unsimulated/floor{tag = "icon-yellowsiding"; icon_state = "yellowsiding"},/area/centcom/evac)
+"hP" = (/turf/unsimulated/floor{tag = "icon-yellowcornersiding (WEST)"; icon_state = "yellowcornersiding"; dir = 8},/area/centcom/evac)
+"hQ" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/shuttle/floor,/area/space)
+"hR" = (/turf/unsimulated/wall/fakeglass,/area/centcom/ferry)
+"hS" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control)
+"hT" = (/turf/unsimulated/floor{tag = "icon-redcorner (WEST)"; icon_state = "redcorner"; dir = 8},/area/centcom/evac)
+"hU" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{tag = "icon-red (NORTH)"; icon_state = "red"; dir = 1},/area/centcom/evac)
+"hV" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/unsimulated/floor{tag = "icon-red (NORTH)"; icon_state = "red"; dir = 1},/area/centcom/evac)
+"hW" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{tag = "icon-red (NORTHEAST)"; icon_state = "red"; dir = 5},/area/centcom/evac)
+"hX" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/machinery/vending/wallmed{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = -28; req_access_txt = "0"; use_power = 0},/turf/simulated/shuttle/floor,/area/space)
+"hY" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/machinery/vending/wallmed{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = -28; req_access_txt = "0"; use_power = 0},/turf/simulated/shuttle/floor,/area/space)
+"hZ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 6; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -3},/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = -3; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = 6; pixel_y = 8},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 4; pixel_y = 1},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = -2; pixel_y = 5},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 2; pixel_y = 8},/turf/simulated/shuttle/floor,/area/space)
+"ia" = (/obj/structure/table,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/circular_saw,/obj/item/weapon/retractor{pixel_x = 4},/obj/item/weapon/hemostat{pixel_x = -4},/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -27},/turf/simulated/shuttle/floor,/area/space)
+"ib" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry)
+"ic" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/ferry)
+"id" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/ferry)
+"ie" = (/obj/machinery/door/airlock/centcom{name = "briefing room"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"if" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/centcom/evac)
+"ig" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac)
+"ih" = (/obj/structure/table/reinforced,/obj/item/toy/AI,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{tag = "icon-red (EAST)"; icon_state = "red"; dir = 4},/area/centcom/evac)
+"ii" = (/obj/structure/stool/bed/chair{dir = 8},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 31},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"ij" = (/obj/machinery/status_display,/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/space)
+"ik" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
+"il" = (/obj/structure/dresser,/obj/structure/mirror{pixel_x = 0; pixel_y = 30},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"im" = (/obj/structure/closet/secure_closet/ertCom,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"in" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 5},/obj/item/weapon/pen/blue,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/ferry)
+"io" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"ip" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/centcom/evac)
+"iq" = (/obj/machinery/door/airlock/centcom{name = "Centcom"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
+"ir" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor4,/area/space)
+"is" = (/obj/structure/table,/obj/structure/reagent_dispensers/peppertank{pixel_x = 31},/obj/item/weapon/storage/box/handcuffs{pixel_x = 2; pixel_y = 2},/turf/simulated/shuttle/floor4,/area/space)
+"it" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/space)
+"iu" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/space)
+"iv" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/obj/structure/window/reinforced/fulltile,/turf/simulated/shuttle/plating,/area/space)
+"iw" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/space)
+"ix" = (/obj/structure/stool/bed/chair/office/dark,/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"iy" = (/obj/structure/closet/secure_closet/ertMed,/turf/unsimulated/floor{tag = "icon-darkblue (EAST)"; icon_state = "darkblue"; dir = 4},/area/centcom/ferry)
+"iz" = (/turf/unsimulated/wall,/area/tdome/tdomeobserve)
+"iA" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/tdome/tdomeobserve)
+"iB" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeobserve)
+"iC" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdomeobserve)
+"iD" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeobserve)
+"iE" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 5},/area/tdome/tdomeobserve)
+"iF" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/simulated/shuttle/floor,/area/space)
+"iG" = (/obj/machinery/door/airlock/glass_security{name = "Brig"; req_access_txt = "2"},/turf/simulated/shuttle/floor4,/area/space)
+"iH" = (/turf/simulated/shuttle/floor4,/area/space)
+"iI" = (/obj/structure/table,/obj/machinery/recharger{active_power_usage = 0; idle_power_usage = 0; use_power = 0},/turf/simulated/shuttle/floor4,/area/space)
+"iJ" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"iK" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"iL" = (/obj/structure/table,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"iM" = (/obj/machinery/computer/shuttle/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"iN" = (/obj/structure/table,/obj/machinery/door_control{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"iO" = (/obj/structure/computerframe,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"iP" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership)
+"iQ" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership)
+"iR" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership)
+"iS" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/both,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
+"iT" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"},/area/syndicate_mothership)
+"iU" = (/obj/structure/reagent_dispensers/water_cooler,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"iV" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/centcom/ferry)
+"iW" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"iX" = (/obj/structure/closet/secure_closet/ertEngi,/obj/structure/extinguisher_cabinet{pixel_x = 28},/turf/unsimulated/floor{tag = "icon-darkbrown (EAST)"; icon_state = "darkbrown"; dir = 4},/area/centcom/ferry)
+"iY" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
+"iZ" = (/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
+"ja" = (/turf/unsimulated/wall/fakeglass,/area/tdome/tdomeobserve)
+"jb" = (/turf/unsimulated/floor{icon_state = "neutral"; dir = 8},/area/tdome/tdomeobserve)
+"jc" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdomeobserve)
+"jd" = (/turf/unsimulated/floor{icon_state = "neutral"; dir = 4},/area/tdome/tdomeobserve)
+"je" = (/obj/structure/flora/kirbyplants,/turf/unsimulated/floor{icon_state = "red"; dir = 10},/area/centcom/evac)
+"jf" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/centcom/evac)
+"jg" = (/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/centcom/evac)
+"jh" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/obj/item/toy/katana,/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/centcom/evac)
+"ji" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/obj/item/toy/sword,/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/centcom/evac)
+"jj" = (/turf/unsimulated/wall/fakeglass,/area/centcom/evac)
+"jk" = (/obj/structure/closet/emcloset,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"jl" = (/obj/machinery/flasher{id = "emshuttlebridgeflash"; pixel_y = -24},/turf/simulated/shuttle/floor,/area/space)
+"jm" = (/obj/structure/closet/emcloset,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"jn" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/flasher_button{id = "emshuttleflash"; name = "brig flasher button"; pixel_y = -23; req_access_txt = "0"; req_one_access_txt = "1;63;19"},/turf/simulated/shuttle/floor4,/area/space)
+"jo" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/flasher{id = "emshuttleflash"; pixel_y = -24},/turf/simulated/shuttle/floor4,/area/space)
+"jp" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor4,/area/space)
+"jq" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/weapon/folder/white{pixel_x = -4; pixel_y = 2},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 31},/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -4; pixel_y = 4},/turf/simulated/shuttle/floor4,/area/space)
+"jr" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"js" = (/obj/structure/stool/bed/chair/comfy/black{dir = 1; icon_state = "comfychair"; name = "pilot's chair"; tag = "icon-comfychair (NORTH)"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"jt" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership)
+"ju" = (/obj/item/weapon/storage/fancy/crayons,/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"jv" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"jw" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/random = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"jx" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"jy" = (/obj/structure/sign/map/left{icon_state = "map-left-MS"; pixel_y = 0; tag = "icon-map-left-MS"},/turf/unsimulated/floor{tag = "icon-light_on"; icon_state = "light_on"},/area/centcom/ferry)
+"jz" = (/obj/structure/sign/map/right{icon_state = "map-right-MS"},/turf/unsimulated/floor{tag = "icon-light_on"; icon_state = "light_on"},/area/centcom/ferry)
+"jA" = (/obj/structure/closet/secure_closet/ertSec,/turf/unsimulated/floor{tag = "icon-darkred (EAST)"; icon_state = "darkred"; dir = 4},/area/centcom/ferry)
+"jB" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
+"jC" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
+"jD" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve)
+"jE" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "green"; dir = 9},/area/centcom/evac)
+"jF" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
+"jG" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
+"jH" = (/obj/machinery/door/airlock/glass_command{name = "Cockpit"; req_access_txt = "19"},/turf/simulated/shuttle/floor,/area/space)
+"jI" = (/turf/simulated/shuttle/wall{tag = "icon-swall15"; icon_state = "swall15"; dir = 2},/area/space)
+"jJ" = (/obj/item/weapon/shard{color = "#008000"; icon_state = "small"},/obj/structure/grille{color = "#008000"; density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/wizard_station)
+"jK" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 8; icon_state = "fakewindows2"},/area/wizard_station)
+"jL" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 4; icon_state = "fakewindows"},/area/wizard_station)
+"jM" = (/turf/unsimulated/wall/normal{tag = "icon-uranium2"; icon_state = "uranium2"},/area/wizard_station)
+"jN" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 10},/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"jO" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_y = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"jP" = (/obj/structure/closet/syndicate/personal,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"jQ" = (/obj/machinery/computer/shuttle/syndicate/recall,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"jR" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"jS" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"jT" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"jU" = (/obj/machinery/vending/cigarette{products = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate = 7, /obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2, /obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3, /obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 1, /obj/item/weapon/storage/box/matches = 10, /obj/item/weapon/lighter/random = 4, /obj/item/weapon/storage/fancy/rollingpapers = 5)},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"jV" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/syndicate_mothership)
+"jW" = (/obj/item/device/paicard,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
+"jX" = (/obj/structure/stool/bed/chair/comfy/teal,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
+"jY" = (/obj/structure/bookcase,/obj/item/weapon/book/manual/wiki/engineering_hacking,/obj/item/weapon/book/manual/robotics_cyborgs,/obj/item/weapon/book/manual/engineering_singularity_safety,/obj/item/weapon/book/manual/detective,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
+"jZ" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"ka" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"kb" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/tdome/tdomeobserve)
+"kc" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/evac)
+"kd" = (/obj/structure/filingcabinet/filingcabinet,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac)
+"ke" = (/obj/machinery/computer/security,/turf/simulated/shuttle/floor,/area/space)
+"kf" = (/obj/machinery/flasher_button{id = "emshuttlebridgeflash"; name = "cockpit flasher button"; pixel_y = 24; req_access_txt = "0"; req_one_access_txt = "1;63;19"},/turf/simulated/shuttle/floor,/area/space)
+"kg" = (/obj/machinery/computer/crew,/turf/simulated/shuttle/floor,/area/space)
+"kh" = (/obj/machinery/space_heater,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 27},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"ki" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/status_display{pixel_y = 31},/turf/simulated/shuttle/plating{icon_state = "floorgrime"},/area/space)
+"kj" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 27},/turf/simulated/shuttle/plating{icon_state = "floorgrime"},/area/space)
+"kk" = (/obj/structure/lattice,/turf/space/transit,/area/wizard_station)
+"kl" = (/obj/item/weapon/shard{color = "#008000"},/turf/unsimulated/floor{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station)
+"km" = (/obj/machinery/computer/shuttle,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
+"kn" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"ko" = (/turf/unsimulated/wall/normal{tag = "icon-uranium5"; icon_state = "uranium5"},/area/wizard_station)
+"kp" = (/turf/unsimulated/wall/normal{tag = "icon-uranium10"; icon_state = "uranium10"},/area/wizard_station)
+"kq" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/space)
+"kr" = (/obj/machinery/door/window{name = "Cockpit"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"ks" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/space)
+"kt" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership)
+"ku" = (/obj/item/weapon/paper{info = "GET DAT FUKKEN DISK"; name = "memo"},/obj/structure/noticeboard{pixel_x = -32; pixel_y = 0},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"kv" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"kw" = (/mob/living/simple_animal/hostile/retaliate/bat{desc = "A Syndicate experiment in weaponized space carp technology. Its fangs seem to have been intentionally dulled down to prevent accidents."; faction = list("syndicate"); harm_intent_damage = 5; health = 50; icon_dead = "carp_dead"; icon_gib = "carp_gib"; icon_living = "carp"; icon_state = "carp"; name = "Cayenne"; real_name = "Cayenne"; response_disarm = "lightly brushes aside"; response_help = "pets"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"kx" = (/obj/machinery/door/airlock/centcom{name = "Study"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"ky" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
+"kz" = (/obj/structure/table/wood,/obj/item/weapon/storage/box/drinkingglasses,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"kA" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"kB" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/gun/syringe/rapidsyringe,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"kC" = (/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/tdome/tdomeobserve)
+"kD" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/tdome/tdomeobserve)
+"kE" = (/turf/unsimulated/wall/fakedoor{name = "Centcom"},/area/centcom/evac)
+"kF" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/turf/simulated/shuttle/floor,/area/space)
+"kG" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/shuttle/floor,/area/space)
+"kH" = (/obj/structure/stool/bed/chair/office/dark,/turf/simulated/shuttle/floor,/area/space)
+"kI" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/simulated/shuttle/floor,/area/space)
+"kJ" = (/obj/machinery/door/airlock/command{name = "Emergency Recovery Airlock"; req_access = null; req_access_txt = "19"},/turf/simulated/shuttle/floor,/area/space)
+"kK" = (/obj/machinery/door/airlock/external{name = "Emergency Recovery Airlock"},/turf/simulated/shuttle/plating{icon_state = "floorgrime"},/area/space)
+"kL" = (/obj/structure/lattice,/obj/item/weapon/shard{color = "#008000"; icon_state = "medium"},/turf/space/transit,/area/wizard_station)
+"kM" = (/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cultdamage2"; icon_state = "cultdamage2"},/area/wizard_station)
+"kN" = (/turf/unsimulated/floor{tag = "icon-cultdamage3"; icon_state = "cultdamage3"},/area/wizard_station)
+"kO" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"kP" = (/turf/unsimulated/wall/normal{tag = "icon-uranium3"; icon_state = "uranium3"},/area/wizard_station)
+"kQ" = (/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/weapon/crowbar/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"kR" = (/obj/structure/table,/obj/item/weapon/storage/box/zipties{pixel_x = 1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"kS" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_surround"; dir = 8},/area/syndicate_mothership)
+"kT" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 6},/area/syndicate_mothership)
+"kU" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = -2; pixel_y = 5},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"kV" = (/obj/structure/table/wood,/obj/item/pizzabox{ismessy = 1},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"kW" = (/obj/structure/stool,/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"kX" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (NORTHWEST)"; icon_state = "podhatch"; dir = 9},/area/syndicate_mothership)
+"kY" = (/obj/structure/dresser,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
+"kZ" = (/obj/structure/table/wood,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership)
+"la" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/item/weapon/reagent_containers/food/drinks/bottle/tequila,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = -5},/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey{pixel_x = 5},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"lb" = (/obj/structure/closet/secure_closet/ertMed,/turf/unsimulated/floor{tag = "icon-darkblue"; icon_state = "darkblue"; dir = 2},/area/centcom/ferry)
+"lc" = (/obj/structure/closet/secure_closet/ertEngi,/obj/structure/extinguisher_cabinet{pixel_y = -28},/turf/unsimulated/floor{tag = "icon-darkbrown"; icon_state = "darkbrown"; dir = 2},/area/centcom/ferry)
+"ld" = (/obj/structure/closet/secure_closet/ertSec,/turf/unsimulated/floor{tag = "icon-darkred"; icon_state = "darkred"; dir = 2},/area/centcom/ferry)
+"le" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/emps,/obj/item/weapon/gun/energy/ionrifle{pin = /obj/item/device/firing_pin},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"lf" = (/obj/structure/table/reinforced,/obj/item/weapon/c4,/obj/item/weapon/c4{pixel_x = 7},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/ferry)
+"lg" = (/turf/unsimulated/floor{icon_state = "red"; dir = 10},/area/tdome/tdomeobserve)
+"lh" = (/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/tdome/tdomeobserve)
+"li" = (/turf/unsimulated/floor{icon_state = "green"},/area/tdome/tdomeobserve)
+"lj" = (/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/tdome/tdomeobserve)
+"lk" = (/turf/unsimulated/floor{dir = 10; icon_state = "green"},/area/centcom/evac)
+"ll" = (/turf/unsimulated/floor{icon_state = "green"},/area/centcom/evac)
+"lm" = (/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/centcom/evac)
+"ln" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/shuttle/floor,/area/space)
+"lo" = (/obj/structure/table,/obj/item/weapon/cigbutt/cigarbutt,/turf/simulated/shuttle/floor,/area/space)
+"lp" = (/obj/machinery/computer/emergency_shuttle,/turf/simulated/shuttle/floor,/area/space)
+"lq" = (/obj/machinery/computer/communications,/obj/machinery/status_display{pixel_y = -32},/turf/simulated/shuttle/floor,/area/space)
+"lr" = (/obj/machinery/computer/atmos_alert,/turf/simulated/shuttle/floor,/area/space)
+"ls" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/item/weapon/folder/blue,/turf/simulated/shuttle/floor,/area/space)
+"lt" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/turf/simulated/shuttle/floor,/area/space)
+"lu" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"lv" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/plating{icon_state = "floorgrime"},/area/space)
+"lw" = (/obj/structure/showcase{desc = "A strange machine supposedly from another world. The Wizard Federation has been meddling with it for years."; icon_state = "processor"; name = "byond random number generator"},/turf/unsimulated/floor{tag = "icon-cultdamage7"; icon_state = "cultdamage7"},/area/wizard_station)
+"lx" = (/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
+"ly" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"lz" = (/obj/structure/showcase{desc = "A historical figure of great importance to the wizard federation. He spent his long life learning magic, stealing artifacts, and harassing idiots with swords. May he rest forever, Rodney."; icon = 'icons/mob/mob.dmi'; icon_state = "nim"; name = "wizard of yendor showcase"},/turf/unsimulated/floor{tag = "icon-cultdamage4"; icon_state = "cultdamage4"},/area/wizard_station)
+"lA" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"lB" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"lC" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership)
+"lD" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership)
+"lE" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroom,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"lF" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = 5; pixel_y = -2; step_x = 0},/obj/item/toy/cards/deck/syndicate{icon_state = "deck_syndicate_full"; pixel_x = -6; pixel_y = 6},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"lG" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (WEST)"; icon_state = "podhatch"; dir = 8},/area/syndicate_mothership)
+"lH" = (/turf/unsimulated/wall/fakedoor,/area/centcom/ferry)
+"lI" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/space)
+"lJ" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"; dir = 2},/area/space)
+"lK" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/space)
+"lL" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 6; icon_state = "fakewindows2"},/area/wizard_station)
+"lM" = (/obj/effect/forcefield,/obj/structure/door_assembly{anchored = 1; icon_state = "door_as_uranium1"; name = "Bridge"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"lN" = (/turf/unsimulated/wall/normal{tag = "icon-uranium6"; icon_state = "uranium6"},/area/wizard_station)
+"lO" = (/turf/unsimulated/wall/normal{tag = "icon-uranium9"; icon_state = "uranium9"},/area/wizard_station)
+"lP" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership)
+"lQ" = (/turf/unsimulated/floor,/area/syndicate_mothership)
+"lR" = (/obj/machinery/door/poddoor/shutters{id = "nukeop_ready"; name = "shuttle dock"},/turf/unsimulated/floor,/area/syndicate_mothership)
+"lS" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/space)
+"lT" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/space)
+"lU" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{tag = "icon-cultdamage6"; icon_state = "cultdamage6"},/area/wizard_station)
+"lV" = (/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
+"lW" = (/obj/structure/mirror{pixel_x = 28},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"lX" = (/obj/machinery/suit_storage_unit/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"lY" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"lZ" = (/turf/unsimulated/wall/fakeglass,/area/syndicate_mothership)
+"ma" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/unsimulated/floor,/area/syndicate_mothership)
+"mb" = (/obj/machinery/door_control{id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; pixel_y = 0; req_access_txt = "151"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"mc" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (SOUTHWEST)"; icon_state = "podhatch"; dir = 10},/area/syndicate_mothership)
+"md" = (/obj/structure/urinal{pixel_y = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"me" = (/obj/structure/toilet{pixel_y = 8},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/obj/machinery/door/window{name = "Tactical Toilet"; opacity = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"mf" = (/turf/simulated/shuttle/wall{icon_state = "swall0"; dir = 2},/area/wizard_station)
+"mg" = (/turf/unsimulated/wall/fakedoor{name = "Squad 4 Pod"},/area/wizard_station)
+"mh" = (/turf/simulated/shuttle/wall{icon_state = "swall4"; dir = 2},/area/wizard_station)
+"mi" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/wizard_station)
+"mj" = (/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"mk" = (/turf/unsimulated/floor{tag = "icon-cultdamage7"; icon_state = "cultdamage7"},/area/wizard_station)
+"ml" = (/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
+"mm" = (/obj/structure/stool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"mn" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"mo" = (/obj/machinery/door/poddoor{auto_close = 300; id = "smindicate"; name = "outer blast door"},/obj/machinery/door_control{id = "smindicate"; name = "external door control"; pixel_x = -26; pixel_y = 0; req_access_txt = "150"},/obj/docking_port/mobile{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate"; name = "syndicate infiltrator"; travelDir = 180; width = 18},/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_away"; name = "syndicate recon outpost"; turf_type = /turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"}; width = 18},/turf/simulated/shuttle/plating,/area/space)
+"mp" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/space)
+"mq" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 5},/area/syndicate_mothership)
+"mr" = (/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/obj/structure/table/wood,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
+"ms" = (/obj/structure/table/wood,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
+"mt" = (/obj/structure/table/wood,/obj/item/device/syndicatedetonator{desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press."},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
+"mu" = (/obj/machinery/door/airlock/centcom{name = "Restroom"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"mv" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"mw" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"mx" = (/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve)
+"my" = (/obj/structure/stool/bed/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve)
+"mz" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/space/transit,/area/wizard_station)
+"mA" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/turf/simulated/floor/plating/airless,/area/wizard_station)
+"mB" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{icon_state = "floor"},/area/wizard_station)
+"mC" = (/turf/unsimulated/floor{icon_state = "floor"},/area/wizard_station)
+"mD" = (/obj/machinery/door/poddoor/preopen,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plating/airless,/area/wizard_station)
+"mE" = (/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cultdamage7"; icon_state = "cultdamage7"},/area/wizard_station)
+"mF" = (/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station)
+"mG" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership)
+"mH" = (/obj/structure/table,/obj/item/weapon/c4{pixel_x = 2; pixel_y = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"mI" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
+"mJ" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
+"mK" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Uplink Management Control"; req_access_txt = "151"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
+"mL" = (/obj/item/weapon/soap/syndie,/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"mM" = (/obj/item/weapon/mop,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"mN" = (/turf/unsimulated/wall/fakedoor{name = "Thunderdome"},/area/tdome/tdomeobserve)
+"mO" = (/obj/machinery/computer/security/telescreen,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve)
+"mP" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/wizard_station)
+"mQ" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/wizard_station)
+"mR" = (/turf/unsimulated/floor{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station)
+"mS" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{tag = "icon-cultdamage2"; icon_state = "cultdamage2"},/area/wizard_station)
+"mT" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/cardhand,/turf/unsimulated/floor{tag = "icon-cultdamage2"; icon_state = "cultdamage2"},/area/wizard_station)
+"mU" = (/obj/machinery/door/window{dir = 4; name = "EVA Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"mV" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"mW" = (/obj/machinery/computer/telecrystals/boss,/turf/unsimulated/floor{tag = "icon-podhatch (NORTHEAST)"; icon_state = "podhatch"; dir = 5},/area/syndicate_mothership)
+"mX" = (/obj/structure/sign/map/left{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_left"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
+"mY" = (/obj/structure/sign/map/right{pixel_y = -32},/obj/structure/rack{icon = 'icons/obj/stationobjs.dmi'; icon_state = "minibar_right"; name = "skeletal minibar"},/obj/item/weapon/reagent_containers/food/drinks/bottle/gin,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership)
+"mZ" = (/obj/machinery/door/airlock/glass_large{name = "Equipment Room"; opacity = 1; req_access_txt = "150"; text = "g"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"na" = (/obj/structure/lattice,/obj/effect/forcefield,/turf/space/transit,/area/wizard_station)
+"nb" = (/obj/machinery/vending/magivend,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"nc" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
+"nd" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "EVA Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"ne" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/shuttle/plating,/area/space)
+"nf" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"ng" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 10},/area/syndicate_mothership)
+"nh" = (/turf/unsimulated/floor{icon_state = "stairs-l"},/area/syndicate_mothership)
+"ni" = (/turf/unsimulated/floor{icon_state = "stairs-r"},/area/syndicate_mothership)
+"nj" = (/obj/machinery/mech_bay_recharge_port,/turf/unsimulated/floor/plating,/area/syndicate_mothership)
+"nk" = (/turf/unsimulated/floor{icon_state = "recharge_floor"; name = "mech bay recharge floor"; tag = "icon-recharge_floor"},/area/syndicate_mothership)
+"nl" = (/obj/machinery/computer/mech_bay_power_console,/turf/unsimulated/floor/plating,/area/syndicate_mothership)
+"nm" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"nn" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeobserve)
+"no" = (/turf/unsimulated/wall/normal{tag = "icon-uranium8"; icon_state = "uranium8"},/area/wizard_station)
+"np" = (/obj/structure/door_assembly{anchored = 1; icon_state = "door_as_uranium1"; name = "Break Room"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"nq" = (/turf/unsimulated/wall/normal{tag = "icon-uranium4"; icon_state = "uranium4"},/area/wizard_station)
+"nr" = (/turf/unsimulated/wall/normal{tag = "icon-uranium12"; icon_state = "uranium12"},/area/wizard_station)
+"ns" = (/turf/unsimulated/wall/normal{tag = "icon-uranium14"; icon_state = "uranium14"},/area/wizard_station)
+"nt" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Dooruranium.dmi'; name = "Break Room"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"nu" = (/obj/item/device/radio/intercom{desc = "Talk through this. Evilly"; freerange = 1; frequency = 1213; name = "Syndicate Intercom"; pixel_x = -32; subspace_transmission = 1; syndie = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"nv" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{tag = "icon-gravsnow_corner (NORTH)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership)
+"nw" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/bush,/turf/unsimulated/floor{tag = "icon-gravsnow_corner (NORTH)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 1},/area/syndicate_mothership)
+"nx" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"ny" = (/turf/unsimulated/wall,/area/tdome/arena)
+"nz" = (/obj/machinery/igniter,/turf/simulated/floor/plasteel,/area/tdome/arena)
+"nA" = (/turf/simulated/floor/plasteel,/area/tdome/arena)
+"nB" = (/turf/unsimulated/wall/normal{tag = "icon-uranium1"; icon_state = "uranium1"},/area/wizard_station)
+"nC" = (/obj/structure/stool/bed/chair/wood/wings,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"nD" = (/obj/structure/table/wood,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"nE" = (/obj/structure/table/wood,/obj/item/weapon/retractor,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"nF" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"nG" = (/obj/structure/table/wood,/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/staff,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"nH" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/hardsuit/wizard,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"nI" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
+"nJ" = (/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"nK" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"nL" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"nM" = (/obj/structure/table,/obj/machinery/cell_charger,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"nN" = (/obj/structure/table,/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"nO" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell/high{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stock_parts/cell/high,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"nP" = (/obj/structure/table,/obj/item/weapon/screwdriver{pixel_y = 9},/obj/item/device/assembly/voice{pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"nQ" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/assembly/infra,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"nR" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"nS" = (/obj/structure/table,/obj/item/weapon/weldingtool/largetank{pixel_y = 3},/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"nT" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"nU" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
+"nV" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
+"nW" = (/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2)
+"nX" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{name = "plating"},/area/tdome/arena)
+"nY" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/tdome/arena)
+"nZ" = (/turf/simulated/floor/plasteel{icon_state = "green"; dir = 4},/area/tdome/arena)
+"oa" = (/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
+"ob" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/saber/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
+"oc" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows"},/area/wizard_station)
+"od" = (/obj/structure/cult/tome,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"oe" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/head/wizard/red,/obj/item/weapon/staff,/obj/item/clothing/shoes/sandal,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"of" = (/obj/effect/decal/cleanable/blood/splatter,/obj/structure/rack{health = 9999},/obj/item/clothing/suit/space/hardsuit/wizard,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
+"og" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/wizard_station)
+"oh" = (/turf/simulated/shuttle/wall{icon_state = "swall8"; dir = 2},/area/wizard_station)
+"oi" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"oj" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"ok" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/syndicate,/obj/item/weapon/crowbar/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"ol" = (/obj/structure/closet/syndicate/personal,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/syndicate_mothership)
+"om" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle{pin = /obj/item/device/firing_pin},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"on" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2)
+"oo" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
+"op" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows2"},/area/wizard_station)
+"oq" = (/obj/structure/bookcase,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"or" = (/obj/structure/grille{color = "#008000"; density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating,/area/wizard_station)
+"os" = (/obj/structure/cult/talisman{desc = "A altar dedicated to the Wizard's Federation"},/obj/item/weapon/kitchenknife/ritual,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"ot" = (/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/staff/broom,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"ou" = (/obj/effect/decal/cleanable/blood/splatter,/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"ov" = (/obj/machinery/door/poddoor/preopen,/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/simulated/floor/plating/airless,/area/wizard_station)
+"ow" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon_state = "floor"},/area/wizard_station)
+"ox" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{icon_state = "floor"},/area/wizard_station)
+"oy" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/turf/simulated/floor/plating/airless,/area/wizard_station)
+"oz" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/space/transit,/area/wizard_station)
+"oA" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"oB" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"oC" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"oD" = (/obj/machinery/camera{pixel_x = 11; pixel_y = -9; network = list("thunder"); c_tag = "Red Team"},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2)
+"oE" = (/turf/simulated/floor/bluegrid,/area/tdome/arena)
+"oF" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/simulated/floor/bluegrid,/area/tdome/arena)
+"oG" = (/obj/machinery/camera{pixel_x = 12; pixel_y = -10; network = list("thunder"); c_tag = "Green Team"},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
+"oH" = (/turf/unsimulated/wall/fakeglass{color = "#008000"},/area/wizard_station)
+"oI" = (/obj/item/weapon/shard{color = "#008000"; icon_state = "medium"},/obj/structure/grille{color = "#008000"; density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating,/area/wizard_station)
+"oJ" = (/obj/effect/landmark/start{name = "wizard"},/turf/unsimulated/floor{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station)
+"oK" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"oL" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/wizard_station)
+"oM" = (/turf/unsimulated/wall/fakedoor{name = "Squad 3 Pod"},/area/wizard_station)
+"oN" = (/obj/structure/table,/obj/item/weapon/gun/syringe{pixel_x = 1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"oO" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/charcoal,/obj/item/weapon/reagent_containers/syringe/charcoal{pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/charcoal{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"oP" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"oQ" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"oR" = (/obj/structure/table,/obj/item/device/sbeacondrop/bomb{pixel_y = 5},/obj/item/device/sbeacondrop/bomb,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"oS" = (/obj/structure/table,/obj/item/weapon/grenade/syndieminibomb{pixel_x = 4; pixel_y = 2},/obj/item/weapon/grenade/syndieminibomb{pixel_x = -1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"oT" = (/obj/machinery/camera{pixel_x = 10; network = list("thunder"); c_tag = "Arena"},/turf/simulated/floor/bluegrid,/area/tdome/arena)
+"oU" = (/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (NORTH)"; icon_state = "wooden_chair_wings"; dir = 1},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"oV" = (/obj/structure/cult/pylon,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"oW" = (/obj/effect/decal/cleanable/blood/splatter,/obj/structure/rack,/obj/item/weapon/staff,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
+"oX" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{tag = "icon-cultdamage4"; icon_state = "cultdamage4"},/area/wizard_station)
+"oY" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
+"oZ" = (/turf/unsimulated/floor{tag = "icon-cultdamage4"; icon_state = "cultdamage4"},/area/wizard_station)
+"pa" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 30},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"pb" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"pc" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"pd" = (/obj/structure/door_assembly{anchored = 1; icon_state = "door_as_uranium1"; name = "Corridor A"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"pe" = (/turf/unsimulated/wall/normal{tag = "icon-uranium15"; icon_state = "uranium15"},/area/wizard_station)
+"pf" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Dooruranium.dmi'; name = "Corridor A"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"pg" = (/obj/structure/table,/obj/item/weapon/circular_saw,/obj/item/weapon/cautery,/obj/item/weapon/surgicaldrill,/obj/item/robot_parts/l_arm,/obj/item/robot_parts/r_arm,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"ph" = (/obj/structure/optable,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"pi" = (/obj/structure/table,/obj/item/weapon/scalpel,/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/obj/item/weapon/surgical_drapes,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"pj" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/space)
+"pk" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"pl" = (/obj/machinery/teleport/hub/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
+"pm" = (/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cultdamage3"; icon_state = "cultdamage3"},/area/wizard_station)
+"pn" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/simulated/shuttle/plating,/area/space)
+"po" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/simulated/shuttle/plating,/area/space)
+"pp" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
+"pq" = (/turf/unsimulated/floor{tag = "icon-cultdamage2"; icon_state = "cultdamage2"},/area/wizard_station)
+"pr" = (/obj/effect/forcefield,/turf/space,/area/wizard_station)
+"ps" = (/obj/effect/decal/remains/human,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
+"pt" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
+"pu" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeadmin)
+"pv" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeadmin)
+"pw" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeadmin)
+"px" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/sneakers/brown,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
+"py" = (/obj/structure/lattice,/obj/effect/forcefield,/turf/space,/area/wizard_station)
+"pz" = (/obj/effect/forcefield,/turf/space/transit,/area/wizard_station)
+"pA" = (/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
+"pB" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
+"pC" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{pixel_y = 0},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
+"pD" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
+"pE" = (/obj/machinery/flasher_button{id = "tdomeflash"; pixel_x = 0; pixel_y = 0},/obj/structure/table,/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
+"pF" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Dooruranium.dmi'; name = "Personal Quarters"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"pG" = (/turf/unsimulated/wall,/area/tdome/tdomeadmin)
+"pH" = (/obj/machinery/computer/security/telescreen{pixel_y = -32},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin)
+"pI" = (/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin)
+"pJ" = (/obj/structure/table/wood,/obj/effect/landmark{name = "Teleport-Scroll"},/obj/item/weapon/dice/d20,/obj/item/weapon/dice,/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/wizard_station)
+"pK" = (/turf/unsimulated/floor{dir = 1; icon_state = "carpetside"},/area/wizard_station)
+"pL" = (/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/wizard_station)
+"pM" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_f10"; layer = 2},/area/wizard_station)
+"pN" = (/turf/unsimulated/floor{tag = "icon-cultdamage6"; icon_state = "cultdamage6"},/area/wizard_station)
+"pO" = (/turf/unsimulated/wall/fakedoor{name = "Thunderdome Admin"},/area/tdome/tdomeadmin)
+"pP" = (/obj/structure/table,/obj/machinery/door_control{id = "thunderdomehea"; name = "Heavy Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin)
+"pQ" = (/obj/structure/table,/obj/machinery/door_control{id = "thunderdome"; name = "Main Blast Doors Control"; pixel_y = 0; req_access_txt = "102"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin)
+"pR" = (/obj/structure/table,/obj/machinery/door_control{id = "thunderdomegen"; name = "General Supply Control"; pixel_y = 0; req_access_txt = "102"},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin)
+"pS" = (/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/wizard_station)
+"pT" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/wiz,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/wizard_station)
+"pU" = (/turf/unsimulated/floor{dir = 4; icon_state = "carpetside"},/area/wizard_station)
+"pV" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station)
+"pW" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/wizard_station)
+"pX" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/wizard_station)
+"pY" = (/obj/structure/dresser,/obj/item/weapon/storage/backpack/satchel,/turf/unsimulated/floor{dir = 10; icon_state = "carpetside"},/area/wizard_station)
+"pZ" = (/turf/unsimulated/floor{dir = 2; icon_state = "carpetside"},/area/wizard_station)
+"qa" = (/obj/structure/table/wood,/obj/item/weapon/storage/bag/tray,/obj/item/weapon/reagent_containers/food/snacks/burger/spell,/turf/unsimulated/floor{dir = 6; icon_state = "carpetside"},/area/wizard_station)
+"qb" = (/turf/unsimulated/wall/fakedoor{name = "Squad 2 Pod"},/area/wizard_station)
+"qc" = (/turf/unsimulated/wall/normal{tag = "icon-uranium13"; icon_state = "uranium13"},/area/wizard_station)
+"qd" = (/turf/simulated/shuttle/wall,/area/wizard_station)
+"qe" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/wizard_station)
+"qf" = (/turf/unsimulated/wall,/area/centcom/holding)
+"qg" = (/obj/structure/table/wood,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"qh" = (/obj/structure/table/wood,/obj/item/weapon/gun/magic/wand{desc = "Used in emergency's to reignite magma engines. This one appears spent."; name = "wand of emergency engine ignition"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"qi" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/wizard_station)
+"qj" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qk" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"ql" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qm" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qn" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qo" = (/obj/structure/rack,/obj/item/device/camera,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"qp" = (/obj/structure/rack,/obj/item/toy/sword,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"qq" = (/obj/structure/rack,/obj/item/toy/gun,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"qr" = (/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"qs" = (/turf/unsimulated/beach/sand,/area/centcom/holding)
+"qt" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/centcom/holding)
+"qu" = (/obj/effect/overlay/palmtree_l,/turf/unsimulated/beach/sand,/area/centcom/holding)
+"qv" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Dooruranium.dmi'; name = "Engine Room B"},/turf/space,/area/wizard_station)
+"qw" = (/obj/structure/table,/obj/item/clothing/head/that,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qx" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"qy" = (/obj/item/device/camera,/turf/unsimulated/beach/sand,/area/centcom/holding)
+"qz" = (/obj/structure/cult/forge{desc = "A engine used in powering the wizards ship"; name = "magma engine"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
+"qA" = (/obj/structure/table,/obj/item/ammo_box/foambox,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qB" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qC" = (/obj/structure/table,/obj/item/weapon/lighter/zippo,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qD" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qE" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding)
+"qF" = (/obj/structure/stool{pixel_y = 8},/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/beach/sand,/area/centcom/holding)
+"qG" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/beach/sand,/area/centcom/holding)
+"qH" = (/turf/unsimulated/wall/normal{tag = "icon-uranium11"; icon_state = "uranium11"},/area/wizard_station)
+"qI" = (/obj/structure/window/reinforced{color = "#008000"; dir = 1},/turf/unsimulated/floor{tag = "icon-lava"; icon_state = "lava"},/area/wizard_station)
+"qJ" = (/turf/unsimulated/wall/normal{tag = "icon-uranium7"; icon_state = "uranium7"},/area/wizard_station)
+"qK" = (/obj/structure/rack,/obj/item/clothing/head/that,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/tie/waistcoat,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"qL" = (/obj/item/weapon/beach_ball,/turf/unsimulated/beach/sand,/area/centcom/holding)
+"qM" = (/obj/structure/shuttle/engine/heater,/turf/unsimulated/floor{tag = "icon-lava"; icon_state = "lava"},/area/wizard_station)
+"qN" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/obj/item/weapon/gun/projectile/automatic/toy/pistol,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"qO" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"qP" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/space)
+"qQ" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/obj/item/weapon/gun/projectile/shotgun/toy/crossbow,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"qR" = (/turf/unsimulated/beach/coastline,/area/centcom/holding)
+"qS" = (/obj/item/clothing/head/collectable/paper,/turf/unsimulated/beach/coastline,/area/centcom/holding)
+"qT" = (/obj/structure/rack,/obj/item/clothing/shoes/laceup,/obj/item/clothing/under/suit_jacket/female{desc = "A black trouser suit for women. Very formal."; name = "black suit"; pixel_x = 3; pixel_y = 1},/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"qU" = (/obj/structure/table,/obj/item/weapon/gun/projectile/automatic/toy/pistol,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding)
+"qV" = (/turf/unsimulated/beach/water,/area/centcom/holding)
+"qW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{name = "plating"},/area/centcom/holding)
+"qX" = (/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/holding)
+"qY" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/centcom/holding)
+"qZ" = (/obj/effect/landmark{name = "Holding Facility"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/holding)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababadaeaeaeaeaeafaeaeaeaeaeafaeaeaeaeaeafaeaeaeaeaeag
@@ -877,39 +940,39 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-aaaaaaaaaaaaaaaaaaaaaaaaaacpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-crcrcrcrcrcrcrcrcrcrcrcrcrcrcrabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-crcrcrcrcrcrcrcrcrcrcrcrcrcrcrabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-crcrcrcrcrcrcrcrcrcrcrcrcrcrcrabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-crcrcrcrcrcrcrcrcrcrcrcrcrcrcrabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-crcrcrcrcrcrcrcrcrcrcrcrcrcrcrabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-crcrcrcrcrcrcrcrcrcrcrcrcrcrcrabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-crcrcrcrcrcrcrcrcrcrcrcrcrcrcrabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-crcrcrcrcrcrcrcscrcrcrcrcrcrcrabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-crcrcrcrcrcrcrcrcrcrcrcrcrcrcrabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-crcrcrcrcrcrcrcrcrcrcrcrcrcrcrabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-crcrcrcrcrcrcrcrcrcrcrcrcrcrcrabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-crcrcrcrcrcrcrcrcrcrcrcrcrcrcrabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-crcrcrcrcrcrcrcrcrcrcrcrcrcrcrabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-crcrcrcrcrcrcrcrcrcrcrcrcrcrcrabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ctcrcrcrcrcrcrcrcrcrcrcrcrcrcrabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacoaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+aaaaaaaaaaaaaaaaaaaaaaaaaacpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacaccracacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+cscscscscscscscscscscscscscscsabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+cscscscscscscscscscscscscscscsabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+cscscscscscscscscscscscscscscsabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+cscscscscscscscscscscscscscscsabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+cscscscscscscscscscscscscscscsabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+cscscscscscscscscscscscscscscsabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+cscscscscscscscscscscscscscscsabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+cscscscscscscsctcscscscscscscsabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+cscscscscscscscscscscscscscscsabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+cscscscscscscscscscscscscscscsabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+cscscscscscscscscscscscscscscsabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+cscscscscscscscscscscscscscscsabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+cscscscscscscscscscscscscscscsabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+cscscscscscscscscscscscscscscsabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+cucscscscscscscscscscscscscscsabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
@@ -932,96 +995,96 @@ abababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcucvcwcxcyabczabababcAabcucvcwcxcyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcBcCcCcCcDcEcFcGcHcGcFcIcJcCcCcCcBababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcBcKcKcLcMcNcOcPcQcRcOcNcScTcKcKcBababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcBcKcKcUcVcVcOcVcVcVcOcVcVcUcKcKcBababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcWcTcKcFcVcOcOcOcOcOcOcOcVcFcKcLcXababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcWcYcZdadbdcddcOdecVcOdfdgcYcXabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcBdhdidjdkcOcVcVcOdfcBabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcBdldmdmddcOdfdncOdfcUabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcBdodmdmdpcOdfdncOcOcFdqababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcDcYcYcYcZcOcVcVcOdfcGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcBdrcOdrcBcOdfdncOdfdsabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcBdrcOdrcUcOdfdncOdfcGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcBdrcOcOdtcOcOcOcOcOcFduababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcBdrcOdrdvcOcVcVcVcVdvababababababababababababababababababababababababababababababababababababdwdwdwdwdwdwdwdwdwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcBdrcOdrcBcOdxdydzcNcBababababababababababababababababababababababababababababababababababababdwdAdBdCdCdCdBdDdwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcWdEdEcYdFdGcIcYdEdEcXababababababababababababababababababababababababababababababababababababdwdHdIdIdIdIdIdHdwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcWcJdJdfcOdKdLcDcXabababababababababababababababababababababababababababababababababababababdwdHdIdIdIdIdMdHdwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcBdzcVdNcVdJcBababababababababababababababababababababababababababababababababababababababdwdCdIdIdIdIdIdOdPababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcBdQdRdSdTdUcBababababababababababababababababababababababababababababababababababababababdwdHdIdIdIdIdIdVdwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcWdsdsdsdsdscXababababababababababababababababababababababababababababababababababababababdwdCdIdIdIdIdWdHdwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdHdIdIdIdIdIdXdwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdCdIdIdIdIdIdYdPababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdHdIdIdIdIdZdHdwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdweaebdIdIdIeceddwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdweeefegegegefehdwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdweiejejejekdwdwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdwdwdwdwdwdwabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcvcwcxcyczabcAabababcBabcvcwcxcyczababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcCcDcDcDcEcFcGcHcIcHcGcJcKcDcDcDcCababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcCcLcLcMcNcOcPcQcRcScPcOcTcUcLcLcCababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcCcLcLcVcWcWcPcWcWcWcPcWcWcVcLcLcCababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcXcUcLcGcWcPcPcPcPcPcPcPcWcGcLcMcYababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcXcZdadbdcdddecPdfcWcPdgdhcZcYabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcCdidjdkdlcPcWcWcPdgcCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcCdmdndndecPdgdocPdgcVabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcCdpdndndqcPdgdocPcPcGdrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcEcZcZcZdacPcWcWcPdgcHabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcCdscPdscCcPdgdocPdgdtabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcCdscPdscVcPdgdocPdgcHabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcCdscPcPducPcPcPcPcPcGdvababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcCdscPdsdwcPcWcWcWcWdwabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcCdscPdscCcPdxdydzcOcCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcXdAdAcZdBdCcJcZdAdAcYabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcXcKdDdgcPdEdFcEcYababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcCdzcWdGcWdDcCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcCdHdIdJdKdLcCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcXdtdtdtdtdtcYabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababelelemelelelelelelelelelelababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababeleleneoepeleleqeqeqeqeqeqelababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababerererererererererererererererererabababeleseteoeueveleqeqeqeqeqeqelababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababerewerewerewerewerewerewerewerewerabababelexeoeoeoeyeleqeqeqeqeqeqelababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababerererererererererererererererererabababelezeoeoeoeAeleqeqeqeqeqeqelababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababerewerewerewerewerewerewerewerewerabababelezeoeoeoeAeleqeqeqeqeqeqelababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababerererererererererererererererererabababeleleBeleleCeleqeqeqeqeqeqelababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababeleDeEeFeDeleqeqeqeqeqeqelababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababeleGeHeIeDeleqeqeqeqeqeqelababeJeKdCeKeLeKeLeKeMeKeNeOeKePababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababeQeQeQeQeQababeleDeEeReSeleqeqeqeqeqeqelababeTeUeVeWeXeYeZfafbfcfdfeffeTababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababeQfgfhfieQaDelelfjeleleleleleleqeqeqeqelfkfkdCdIdIdIdIdIdIdIeNflfmfmfneTababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababeQfofpfpeQfqfreofsfsfsfsfrfteleqeqeqeqelfkfkeTfudIfvdCfwdIdIeNflfmfxfydCababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQfzeQeQftfAeofBfCfDfsfAftelelelemelfBfEfFdCfwdIfvdCfwdIfveTfGfmfmfHdCababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababeQfIfIfIfIfIfIfIfIfIfIfIfIfIfJfKfLfMeQftfAfNeoeoeofOfAftfPfQfRfRfSfTfUfTeLdIdIfvfVfwdIfvdCfWfxfmfXeTababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababeQfIfYdBdBfZdBdBdBdCdBdBgagbgcfKgdfMeQftfAezeoeoeoeAgeftfPfQfRfRfSgffEfFeTggdIfvdCfwdIgheTgigjgkgleTababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmababababababababababababababababababababababababababababeQgngogpgqgrgrgrgrgrgrgrfZgsgtfKgdfMeQftgeezeoeoeoeueleEfPgufRfRfSfPababdCfwdIfvdCfwdIgvgwgxdCgygzgAababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgmgBgBgBgBgBgBgBgBgBgCgBgBgBgDgEgBgBgBgDgBgBgBgBgBgBgDgBgBgmababababababababababababababababababababababababababababeQgngFdIdIdIdIdIdIdIdIdIgGgHgIfKgdgJeQgKeQeteoeoeoeoeoeofRfRfRfRfSgLababgMfwdIdIdIdIdIfvdCgNgNdIgOeTababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgmgBgBgBgBgCgBgBgBgBgBgBgBgBgBgBgBgDgBgBgBgBgBgDgBgBgBgBgBgmababababababababababababababababababababababababababababeQgngPgQgQgQgQgQgQgQgQgQfZgsgRfKgdfLgSfLfLeoeoeoeoeoeoeofRfRfRfRfSfPababdCfwdIfvdCfwdIdIgydIdIdIgTdCababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgmgBgBgBgBgBgBgBgUgBgBgBgBgBgCgBgBgEgDgBgBgDgBgBgDgEgBgDgBgmababababababababababababababababababababababababababababeQfIgVdBdBfZdBdBdBdCdBdBgWgbgcfKgdgXeQgKeQfNeoeoeofOeleEfPgYfRfRfSgffEfFfbfwdIfvdCfwdIfvdCgZhahbhceTababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgmgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgCgBgBgDgEgBgBgDgBgEgmababababababababababababababababababababababababababababeQfIfIfIfIfIfIfIfIfIfIfIfIfIhdfKfLfMeQftfrexeoeoeoeyfrftfPfQfRfRfSfTfUfTeLdIdIfvfVfwdIhegweKeKhfeKgAababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgmgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgCgBgBgBgBgBgEgBgDgEgBgDgBgmababababababababababababababababababababababababababababhghghghghghghghhhihihjhghghghghghkhghgftfAexeoeoeoeyfAftfPgffFhlgffEfEfFdCfwdIfvdCfwdIfvdChmhmhmhneTababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgmgBgBgBgBgBgBhohohohohohohogBgBgBgBgBgBgBgDgBgBgUgEgBgBgBgmabababababababababababababababababababababababababababababababeQhphqhrhrhrhrhrhrhshthuhrhrhrhgftgeexeoeoeoeygeftfPfRfRfRfSfTfUfThvdIdIfvdCfwdIdIhwhxhxhxhydCababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgmgBgBgBgBgBhzhAhBhBhBhBhBhAhCgBgBgBgBgUgBhogChogCgBgDgBgDgmabababababababababababababababababababababababababababababababeQhrhrhrhrhDhDhrhrhrhrhrhrhrhEhghFhFhGhHhIhJhKhFhFfPfRfRfRfSgffEfFeThLdIdIdIhMdIhNdChOhPhQhReTababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgmgBgBgBgBgBhAhShThUhVhWhXhXhAhYgBgBhogmgmhZiagmgmhoibichogmabababababababababababababababababababababababababababababababeQidhrhrieieieiehrhrhrhrhrhrifhgigihiiijikiliiihigfPfRiminiofPababgweKhfeKipeKhfeKiqeKeMeKeKgAababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgmgBgBgBgBgBhAirhThTishThThThAhYgBitgmgmiuiviviugmgmgmgmgmgmgmgmabababababababababababababababababababababababababababababeQiwhrhDieixiyiehDhrhrhrhrhrizhgihiAiBijikiliBiCihfPfRiDiEiFfPababdCiGdIdIdIiHdIiIeTiJeTiKiLdCababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiMiNiOiPaaaaaaaaaaaaaaaaaaaaaaababababababgmgBgBgBgBgBhAiQhThThTiRhTiShAhYgUitgmiTiUiUiUiUiViWiXiYiZjajbgmabababababababababababababababababababababababababababababeQjchrhDieieieiehrhrhrhrhrhrjdhgjeihjeijikiljeihjefPfRfRfRfRfPababdCjfdIjgjhjidIdIjjhTjkfmfmjkababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaajlaajmjnjojpjqaaaaaaaaaaaaaaaaaaaaababababababgmgBgBgBgBgBjrhAhAhAjshAhAhAjtgBgBjugmjviUjwjwjxiUiUiUjyjzjzjzgmabababababababababababababababababababababababababababababeQjAhrhrhrhDhDhrhrhrhrhrhrhrjBhgjCihihijikilihihjDfPjEjFjFjGfPababdCjHjIjJjKjLjMjNeTjOeTjPfmdCababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaajljQjRjSjojTjUaaaaaaaaaaaaaaaaaaaaababababababgmgBgBgBgBgBgBgBhAjVhTjWhAjXhohohojYgmiUjwjZkajwiUkbkciYkdkegmgmabababababababababababababababababababababababababababababeQkfhrhrhrhrhrhrhrkgkhkikjjBkkhgklkmkmijikilknknkofPfPkpfPfPfPababkqeKeKeKeKeKeKeKkreKkreKeKksababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaajUktkujTkvkwjUaaaaaaaaaaaaaaaaaaaaababababababgmgBgBgBgBgBgBgBhAkxhTkyhAkzkAkAkAiagmiUjwkBkCjwiUkbkDgmgmgmgmababababababababababababababababababababababababababababababeQeQeQeQeQeQeQeQeQeQeQeQeQeQeQhghFhFhFhFikhFhFhFhFfPfkfkfkfkfPabababkEegegeghAegeghAegegegkFabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaajpjqkGkHkGkIkJaaaaaaaaaaaaaaaaaaaaababababababgmgBgBhzhAhAhAhAhAkxhTkyhAkKkLkLkLkLkMiUiUiUiUiUiUkbkDgmgmgmgmabababababababababababababababababababababababababababababababababababababababababababababababababhFikhFkNkNkNfkfkfkfkfkfPababababejejejhAejejhAejejejababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaajljlkJkOkPkQjpaaaaaaaaaaaaaaaaaaaaaaababababababgmgBgBhAkRhThTkShAkxhTkyhAkTkUhZkAiagmkVjwjwjwiUiUkbkWgmkXkYgmgmabababababababababababababababababababababababababababababababababababababababababeQhFhFhFhFhFhFhFhIhFhFhFhFhFhFhFhFfPfPababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaakZlalblcldlejolfjlaaaaaaaaaaaaaaaaaaaaababababababgmgBgBhAkRhTlglhhAkxhTkyhAhAliljhClkgmlllmlnlmlmiUiUiUlolplplqgmabababababababababababababababababababababababababababababababababababababababababhFlrlslslslslslrlrlrlslslslslslrhFababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaltlulvlwlxldjokulylzjljlaaaaaaaaaaaaaaaaababababababgmlAgBhAkRhThTlBhAhThThThAhThThThAjugmlClDlClClEiUiUiUgmlFlGlqgmababababababababababababababababababababababababababababababababababababababababablHlrlrlrlIlrlrlrlrlrlrlrlIlrlrlrlHababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaajlaalblJlJlKldjolLkulzaalMlNaaaaaaaaaaaaaaababababababgmgBgBhAkRhThThTlOhThThTlPhThThThAitgmgmkclQlRlSgmlTiUgmgmgmgmgmabababababababababababababababababababababababababababababababababababababababababhFlrlslslslslslrlrlrlslslslslslrhFababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaalfjlaaaajllUlVjSlWjSlfjljlaaaaaaaaaaaaaaaaababababababgmgBgBhAkRhThThTlXhThThTlYhThTlZhAmamalkgmgmgmgmgmmbmbmcmdmemfgmabababababababababababababababababababababababababababababababababababababababababhFhJmgmgmgmgmgmgmgmgmgmgmgmgmghHhFababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaakImhmimjmkmlmkmkmhmmmjmkmkmlmkmkaajlaaaaaaaaaaababababababgmgBhzhAhAhAhAhAhAmnhThThAhAhAhAhAhAhCmomomomplkgmmqmqmqmqmqmqgmabababababababababababababababababababababababababababababababababmrmrmrmrmrmrmrmrmrmsmtmtmtmtmtmtmtmtmtmtmtmtmtmsmrmrmrmrmrmrmrmrmrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaamumvjojomvmumwmxjojojomymzmumAmBlfmCjljlaaaaaaababababababgmgBhAmDmDmEmFmGhAhThThThAmHmImJmKmLhAgBgCgBgBgEiYmqmqmqmqmqmMgmabababababababababababababababababababababababababababababababababmrmNmOmPmPmPmPmPmQmRmtmtmtmtmtmtmtmtmtmtmtmtmtmSmQmTmTmTmTmTmOmUmrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaamVmWjojomWmVmCmCjojojojomXmVmYmZlJlJnaaaaaaaaaababababababgmgBhAhThThTlghTnbhThThTnchTlghTlgndhAgBgUgDgCgUgmnenenenenenfgmabababababababababababababababababababababababababababababababababmrmNmOmPngmPngmPmQmRmtmtmtmtmtmtmtmtmtmtmtmtmtmSmQmTnhmTnhmTmOmUmrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaninjjokujonklLkujonljojonmninnnonpnqnrnsaaaaaaababababababgmgBhAnthThThThTnuhThThTnvhThThThThThAgBgBgBgDitgmgmgmgmgmgmgmgmabababababababababababababababababababababababababababababababababmrmNmOmPmPnwmPmPmQmRmtmtmtmtmtnxnynxmtmtmtmtmtmSmQmTmTnzmTmTmOmUmrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaanAmWjojSlLnBjSjojonCjojojonAnDnEnanFkZaaaaaaaaababababababgmgBhAnthThTnGnHhAnInJnIhAnKnLhThThThAgBgDgBgUitgmababababababababababababababababababababababababababababababababababababababababmrmNmOmPmPmPmPmPmQmRmtmtmtmtmtnxnMnxmtmtmtmtmtmSmQmTmTmTmTmTmOmUmrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaiPnNjojonNiPnOjokujSjojonOiPnPnQnRnSaaaaaaaaaaababababababgmgBhAhThThThAhAhAnTnUhThAhAhAhThThThAgBgBgCgBitgmababababababababababababababababababababababababababababababababababababababababmrmNmOmPngmPngmPmQmRmtmtmtmtmtmtmtmtmtmtmtmtmtmSmQmTnhmTnhmTmOmUmrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaajpmhnVmjmknWmkmhkGnXkGmjmknWmkmhjljljlaaaaaaaaababababababgmgBhAnYnZoahAgBhAobobobhAgBhAhXocodhAgBgBgBgBitgmababababababababababababababababababababababababababababababababababababababababmrmNmOmPmPmPmPmPmQmRmtmtmtmtmtmtmtmtmtmtmtmtmtmSmQmTmTmTmTmTmOmUmrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaalUkuaajlaajloelelUaaaajlaaaaaaaajlaaaaaaaaababababababgmgBhAobobobhAgBjrofejogjtgBhAobobobhAgBgBgBgBitgmababababababababababababababababababababababababababababababababababababababababmrmrmrohohohohohmrmsmtmtmtmtmtmtmtmtmtmtmtmtmtmsmrohohohohohmrmrmrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaajljlaaoikuaaojoklUjlaalLaaaaaaaaaaaaaaaaaaababababababgmgBjrofejogjtgBgBgBgBgBgBgBjrofejogjtgBgBgBgBitgmababababababababababababababababababababababababababababababababababababababababababmrolololololmromonononononononononononononoomropopopopopmrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaajljlaaoqkuoraaaaaajlaaaaaaaaaaaaaaaaababababababgmgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBitgmababababababababababababababababababababababababababababababababababababababababababmrmrmrmrmrmrmrosotototototouovowotototototosmrmrmrmrmrmrmrababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaajlmlmhoxmjmljlaajljlaaaaaaaaaaaaaaababababababgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmgmababababababababababababababababababababababababababababababababababababababababababababababababoyosososozosoAoAoAoAoAosozosososoyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaamuoBoCoDmuoimZlxoEoFjlaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababoyoyoGoyoyoyoyoHoIoJoyoyoyoyoGoyoyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaakGoKoLoMkGoNoOlwoPjojUaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababoyoyoyoyoyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaalejliPoQoRoSiPjSoTlwoPaajlaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaajlmloUmhkGmjoUmloVoWoPaajlaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhghghghghghghghghghghghghghghghghghghgababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaajlmujooXoYoXjomuaaoZaaaajlaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhgpapbpcpdpdpbpepfpgphpipjpkpjpjpjplhgababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaajlkupmjojojojojopmaaaaaaaakuaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhgpapbpbpbpbpbpnpipipipopjpjpjpppjpjhgababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaajljllejoiPpqjojojopqiPaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhgpapbprpapsptpupipipipipjpjpvpjpwpkhgababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaajlmkmkpxpypypypypypzaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhgpApipopopopopopipipipipjpjpjpBpjpjhgababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaajpmhpCpCpCmjkJaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhgpDpipipipipipipipipipipEpjpjpjpjpjhgababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapFpFpFaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhgpDpipipipipipipipipopipEpGpGpGpHpGhgababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhgpIpipipipipipipipopJpopEpKpKpKpKpKhgababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhghgpLpMpMpNhghghghghghghghghghghghghgababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhgpOpOpOpOhgababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhgpOpOpOpOhgababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhghghghghghgababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdMdMdMdMdMdMdMdMdMabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdMdNdOdOdOdOdOdPdMabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdMdQdRdRdRdRdRdQdMdMdMdMdMdMdMabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdMdQdRdRdRdRdRdQdMdSdTdUdTdVdMabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdMdQdRdRdRdRdRdWdXdYdZdZdZdZdMabababababeaeaeaeaeaeaeaeaeaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdMdQdRdRdRdRdRebecdYdZdZdZdZedabababababeaeeeaeeeaeeeaeeeaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdMdQdRdRdRdRefdQdXegdZdZdZdZdMabababababeaeaeaeaeaeaeaeaeaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdMdQdRdRdRdRdRehecdYdZdZdZdZdMabababababeaeeeaeeeaeeeaeeeaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdMdQdRdRdRdRdReiejdYdZdZdZdZdMdMdMdMdMabeaeaeaeaeaeaeaeaeaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdMdQdRdRdRdRdRdQekdYdZdZdZdZdMeleleldMabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdMemendRdRdReoepeqdYdZdZdZdZereleleldMabeaeaeaeaeaeaeaeaeaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdMeseteueueuetevdMewexeydZezdMeleleldMabeaeeeaeeeaeeeaeeeaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdMdMeAeBeBeBeCdMdMdMdMdMdMeDdMdMdMdMdMabeaeaeaeaeaeaeaeaeaabeEeEeEeEeEeEababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdMdMdMdMdMdMdMeFeGeGeGeHeIeHeGeGeGeFabeaeeeaeeeaeeeaeeeaabeEeJeKeKeLeEababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababeMeMeMeMeMeFeGeNeGeOePeOeGeNeGeFabeaeaeaeaeaeaeaeaeaabeQeReReReReEababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababeMeSeTeUeVeMeGeGeGeWePeWeGeGeGeFabababababababababababeEeReXeYeZeEababfafbfcfbfdfbfdfbfefbfffgfbfhababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababeMfifjeTeTeMfkeFfkeFePeFfkeFfkeFabababeEeEeEeEeEeEeEeEeEflfmfnfoeEababfpfqfrfsftfufvfwfxfyfzfAfBfpababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababeMeTeTeTfCeMfDeHfEePePePfFfkfDeFabababeEfGfHfHfHfIfJfKfLeReReReReEababfcdRdRdRdRdRdRdRfffMfNfNfOfpababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababeMeMeMeMeMeMeMeMeMeMeMeMeMeMeMeMfPeMeMfDeOfQePePePfReFfkeFeFeFeFeEfSfTfTfTfTfTfTfUeReReReReEababfpfVdRfWfcfXdRdRfffMfNfYfZfcababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababeMgagagagagagagagagagagagagagbgcgdgeeMfDeOfQePePePePePgfggghghgieEfSfTfTfTfTfTfTgjgkglgmgngkgkglfcfXdRfWfcfXdRfWfpgofNfNgpfcababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababeMgagqdOdOgrdOdOdOfcdOdOgsgtgugcgvgeeMfDeOfQePePePfFeFfkeFeFghgweEfSfTfTfTfTfTgxgygzfTfTgAgBgCgBfddRdRfWgDfXdRfWfcgEfYfNgFfpababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGababababababababababababababababababababababababababababeMgqgHgIgJgKgKgKgKgKgKgKgrgLgMgcgvgeeMfDeWfQePePePgNfkfDeFgOgPgQeEgRfTfTfTfTgSgTgUgzfTfTgAgngkglfpgVdRfWfcfXdRgWfpgXgYgZhafpababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgGhbhbhbhbhbhbhbhbhbhchbhbhbhdhehbhbhbhdhbhbhbhbhbhbhdhbhbgGababababababababababababababababababababababababababababeMhfdRdRdRdRdRdRdRdRdRdRhghhhigcgvhjeMhkeMhlePePePfReFfkeFfkhmfkeEhnfTfTfTfThohohohpfTfTgAeEababfcfXdRfWfcfXdRhqhrhsfchthuhvababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgGhbhbhbhbhchbhbhbhbhbhbhbhbhbhbhbhdhbhbhbhbhbhdhbhbhbhbhbgGababababababababababababababababababababababababababababeMhwenhxhxhyhyhyhyhyhyhygrgLhzgcgvgdhAhBhBePePePePePePgfhCghhDghhEhFfTfTfTfTfTfTfTfTfTfTgAhGababhHfXdRdRdRdRdRfWfchIhIdRhJfpababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgGhbhbhbhbhbhbhbhKhbhbhbhbhbhchbhbhehdhbhbhdhbhbhdhehbhdhbgGababababababababababababababababababababababababababababeMgahwdOdOgrdOdOdOfcdOdOhLgtgugcgvhMeMhkeMfEePePePfFeFfkeFeFeFeFeEhNfTfTfTfThOhOhOhPfTfTgAeEababfcfXdRfWfcfXdRdRhtdRdRdRhQfcababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgGhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhchbhbhdhehbhbhdhbhegGababababababababababababababababababababababababababababeMgagagagagagagagagagagagagahRgcgdgeeMfDeHfQePePePhSeHfDeFabababeEhTfTfTfTfThUhVhWgzfTfTgAgngkglfxfXdRfWfcfXdRfWfchXhYhZiafpababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgGhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhchbhbhbhbhbhehbhdhehbhdhbgGababababababababababababababababababababababababababababeMeMeMeMeMeMeMibicicideMeMeMeMeMieeMeMfDeOfQePePePhSeOfDeFabababeEiffTfTfTfTfTigihgzfTfTgAgBgCgBfddRdRfWgDfXdRiihrfbfbijfbhvababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgGhbhbhbhbhbhbikikikikikikikhbhbhbhbhbhbhbhdhbhbhKhehbhbhbgGabababababababababababababababababababababababababababababababeMgdilgdgdgdgdgdgdiminiogdgdgdeMfDeWfQePePePhSeWfDeFabababeEiffTfTfTfTfTfTipgkgliqgngkgkglfcfXdRfWfcfXdRfWfciriririsfpababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgGhbhbhbhbhbitiuiviviviviviuiwhbhbhbhbhKhbikhcikhchbhdhbhdgGabababababababababababababababababababababababababababababababeMgdgdgdgdixgdixgdgdgdgdgdgdiyeMiziziAiBiCiDiEizizizabababeEiffTfTfTfTfTfTfUfTfTfTgAgBgCgBiFdRdRfWfcfXdRdRiGiHiHiHiIfcababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgGhbhbhbhbhbiuiJiKiLiMiNiOiOiuiPhbhbikgGgGiQiRgGgGikiSiTikgGabababababababababababababababababababababababababababababababeMiUgdgdiViViViViWgdgdgdgdgdiXeMiYiZjajbjcjdjaiZiZizabababeEjejfjfjfjgjhjijjfTfTfTgAgngkglfpjkdRdRdRjldRjmfcjnjojpjqfpababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgGhbhbhbhbhbiujriKiKjsiKiKiKiuiPhbjtgGgGjujvjvjugGgGgGgGgGgGgGgGabababababababababababababababababababababababababababababeMjwgdjxiVjyjziVgdgdgdgdgdgdjAeMiZjBjCjbjcjdjCjDiZizabababeEeEeEeEeEeEeEeEeEfTjEjFjGeEababhrfbijfbjHfbijfbjIfbfefbfbhvababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajJjKjLjMaaaaaaaaaaaaaaaaaaaaaaababababababgGhbhbhbhbhbiujNiKiKiKjOiKjPiuiPhKjtgGjQjRjRjRjRjSjTjUjVjWjXjYgGabababababababababababababababababababababababababababababeMjZgdgdiViViViViWgdgdgdgdgdkaeMkbiZkbjbjcjdkbiZkbizabababababababababababeEfTkcigkdeEababfckedRdRdRkfdRkgfpkhfpkikjfcababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaakkaaklkmknkokpaaaaaaaaaaaaaaaaaaaaababababababgGhbhbhbhbhbkqiuiuiukriuiuiukshbhbktgGkujRkvkvkwjRjRjRkxkykykygGabababababababababababababababababababababababababababababeMkzgdgdkAgdkAgdgdgdgdgdgdgdkBeMkCiZiZjbjcjdiZiZkDizabababababababababababkEfTfTfTfTeEababfckFdRkGkHkIdRdRkJiKkKfNfNkKababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaakkkLkMkNknkOkPaaaaaaaaaaaaaaaaaaaaababababababgGhbhbhbhbhbhbhbiukQiKkRiukSikikikkTgGjRkvkUkVkvjRkWkXjVkYkZgGgGabababababababababababababababababababababababababababababeMlagdgdgdgdgdgdgdlblcldlekBlfeMlglhlhjbjcjdlililjizabababababababababababeElklllllmeEababfclnlolplqlrlsltfplufplvfNfcababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaakPlwlxkOlylzkPaaaaaaaaaaaaaaaaaaaaababababababgGhbhbhbhbhbhbhbiulAiKlBiulClDlDlDiRgGjRkvlElFkvjRkWlGgGgGgGgGababababababababababababababababababababababababababababababeMeMeMeMeMlHeMeMeMeMeMeMeMeMeMeMizizizizjcizizizizizabababababababababababeEeEeEeEeEeEabablIfbfbfbfbfbfbfblJfblJfbfblKababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaakokplLlMlLlNlOaaaaaaaaaaaaaaaaaaaaababababababgGhbhbitiuiuiuiuiulAiKlBiulPlQlQlQlQlRjRjRjRjRjRjRkWlGgGgGgGgGabababababababababababababababababababababababababababababababababababababababababababababababababizjcizabababababababababababababababababababababababablSeueueuiueueuiueueueulTabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaakkkklOlUlVlWkoaaaaaaaaaaaaaaaaaaaaaaababababababgGhbhbiulXiKiKlYiulAiKlBiulZmaiQlDiRgGmbkvkvkvjRjRkWmcgGmdmegGgGabababababababababababababababababababababababababababababababababababababababababiziziziziziziziziCizizizizizizizizababababababababababababababababababeBeBeBiueBeBiueBeBeBababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaamfmgmhmimjmkknmlkkaaaaaaaaaaaaaaaaaaaaababababababgGhbhbiulXiKmmmniulAiKlBiuiumompiwmqgGmrmsmtmsmsjRjRjRmumvmvmwgGabababababababababababababababababababababababababababababababababababababababababizmxmymymymymymxmxmxmymymymymymxizababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaamzmAmBmCmDmjknlxmEmFkkkkaaaaaaaaaaaaaaaaababababababgGmGhbiulXiKiKmHiuiKiKiKiuiKiKiKiuktgGmImJmImImKjRjRjRgGmLmMmwgGabababababababababababababababababababababababababababababababababababababababababmNmxmxmxmOmxmxmxmxmxmxmxmOmxmxmxmNababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaakkaamhmPmPmQmjknmRlxmFaamSmTaaaaaaaaaaaaaaababababababgGhbhbiulXiKiKiKmUiKiKiKmViKiKiKiujtgGgGkXmWmXmYgGmZjRgGgGgGgGgGabababababababababababababababababababababababababababababababababababababababababizmxmymymymymymxmxmxmymymymymymxizababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaamlkkaaaakknanbkNnckNmlkkkkaaaaaaaaaaaaaaaaababababababgGhbhbiulXiKiKiKndiKiKiKneiKiKnfiungngmqgGgGgGgGgGnhninjnknlnmgGabababababababababababababababababababababababababababababababababababababababababiziDnnnnnnnnnnnnnnnnnnnnnnnnnniBizababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaalNnonpnqnrnsnrnrnontnqnrnrnsnrnraakkaaaaaaaaaaababababababgGhbitiuiuiuiuiuiunuiKiKiuiuiuiuiuiuiwnvnvnvnwmqgGnxnxnxnxnxnxgGabababababababababababababababababababababababababababababababababnynynynynynynynynynznAnAnAnAnAnAnAnAnAnAnAnAnAnznynynynynynynynynyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaanBnCknknnCnBnDnEknknknnFnGnBnHnImlnJkkkkaaaaaaababababababgGhbiunKnKnLnMnNiuiKiKiKiunOnPnQnRnSiuhbhchbhbhejVnxnxnxnxnxnTgGabababababababababababababababababababababababababababababababababnynUnVnWnWnWnWnWnXnYnAnAnAnAnAnAnAnAnAnAnAnAnAnZnXoaoaoaoaoanVobnyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaocodknknodocnJnJknknknknoeocofogmPmPohaaaaaaaaababababababgGhbiuiKiKiKmmiKoiiKiKiKojiKmmiKmmokiuhbhKhdhchKgGolololololomgGabababababababababababababababababababababababababababababababababnynUnVnWonnWonnWnXnYnAnAnAnAnAnAnAnAnAnAnAnAnAnZnXoaoooaoooanVobnyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaopoqknlxknormRlxknosknknotopouovowoxoyozaaaaaaababababababgGhbiuoAiKiKiKiKoBiKiKiKoCiKiKiKiKiKiuhbhbhbhdjtgGgGgGgGgGgGgGgGabababababababababababababababababababababababababababababababababnynUnVnWnWoDnWnWnXnYnAnAnAnAnAoEoFoEnAnAnAnAnAnZnXoaoaoGoaoanVobnyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaoHodknkNmRoIkNknknoJknknknoHoKoLohoMmfaaaaaaaaababababababgGhbiuoAiKiKoNoOiuoPoQoPiuoRoSiKiKiKiuhbhdhbhKjtgGababababababababababababababababababababababababababababababababababababababababnynUnVnWnWnWnWnWnXnYnAnAnAnAnAoEoToEnAnAnAnAnAnZnXoaoaoaoaoanVobnyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaajMoUknknoUjMoVknlxkNknknoVjMoWoXoYoZaaaaaaaaaaababababababgGhbiuiKiKpaiuiuiupbpciKiuiuiuiKiKiKiuhbhbhchbjtgGababababababababababababababababababababababababababababababababababababababababnynUnVnWonnWonnWnXnYnAnAnAnAnAnAnAnAnAnAnAnAnAnZnXoaoooaoooanVobnyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaakonopdnqnrpenrnolLpflLnqnrpenrnokkkkkkaaaaaaaaababababababgGhbiupgphpiiuhbiupjpjpjiuhbiuiOpkpliuhbhbhbhbjtgGababababababababababababababababababababababababababababababababababababababababnynUnVnWnWnWnWnWnXnYnAnAnAnAnAnAnAnAnAnAnAnAnAnZnXoaoaoaoaoanVobnyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaanalxaakkaakkpmmknaaaaakkaaaaaaaakkaaaaaaaaababababababgGhbiupjpjpjiuhbkqpneBpokshbiupjpjpjiuhbhbhbhbjtgGababababababababababababababababababababababababababababababababababababababababnynynyppppppppppnynznAnAnAnAnAnAnAnAnAnAnAnAnAnznyppppppppppnynynyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaakkkkaapqlxaaprpsnakkaamRaaaaaaaaaaaaaaaaaaababababababgGhbkqpneBpokshbhbhbhbhbhbhbkqpneBpokshbhbhbhbjtgGababababababababababababababababababababababababababababababababababababababababababnyptptptptptnypupvpvpvpvpvpvpvpvpvpvpvpvpvpwnypxpxpxpxpxnyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaakkkkaapylxpzaaaaaakkaaaaaaaaaaaaaaaaababababababgGhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbhbjtgGababababababababababababababababababababababababababababababababababababababababababnynynynynynynypApBpBpBpBpBpCpDpEpBpBpBpBpBpAnynynynynynynyababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaakknsnopFnqnskkaakkkkaaaaaaaaaaaaaaababababababgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGgGababababababababababababababababababababababababababababababababababababababababababababababababpGpApApApHpApIpIpIpIpIpApHpApApApGababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaanBpJpKpLnBpqogmDpMpNkkaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababpGpGpOpGpGpGpGpPpQpRpGpGpGpGpOpGpGababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaalLpSpTpUlLpVpWmCpXknkPaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababpGpGpGpGpGababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaamkkkjMpYpZqajMkNqbmCpXaakkaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaakknsqcnolLnqqcnsqdqepXaakkaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqfqfqfqfqfqfqfqfqfqfqfqfqfqfqfqfqfqfqfababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaakknBknqgqhqgknnBaaqiaaaakkaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqfqjqkqlqmqmqkqnqoqpqqqrqsqtqsqsqsquqfababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaakklxqvknknknknknqvaaaaaaaalxaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqfqjqkqkqkqkqkqwqrqrqrqxqsqsqsqyqsqsqfababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaakkkkmkknjMqzknknknqzjMaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqfqAqkqBqjqCqDqEqrqrqrqrqsqsqFqsqGqtqfababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaakknrnrqHqIqIqIqIqIqJaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqfqKqrqxqxqxqxqxqrqrqrqrqsqsqsqLqsqsqfababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaakonoqMqMqMnqlOaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqfqNqrqrqrqrqrqrqrqrqrqrqOqsqsqsqsqsqfababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqPqPqPaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqfqQqrqrqrqrqrqrqrqrqxqrqOqRqRqRqSqRqfababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqfqTqrqrqrqrqrqrqrqxqUqxqOqVqVqVqVqVqfababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqfqfqWqXqXqYqfqfqfqfqfqfqfqfqfqfqfqfqfababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqfqZqZqZqZqfababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqfqZqZqZqZqfababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqfqfqfqfqfqfababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
diff --git a/_maps/map_files/MetaStation/z3.dmm b/_maps/map_files/MetaStation/z3.dmm
index 1b7e6503e7f..8a0d6d29433 100644
--- a/_maps/map_files/MetaStation/z3.dmm
+++ b/_maps/map_files/MetaStation/z3.dmm
@@ -124,293 +124,292 @@
"ct" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/tcommsat/chamber)
"cu" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
"cv" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
-"cw" = (/obj/item/weapon/syntiflesh{name = "Cuban Pete-Meat"},/obj/item/stack/spacecash,/turf/simulated/floor/engine,/area/tcommsat/chamber)
-"cx" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
-"cy" = (/obj/structure/table,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
-"cz" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
-"cA" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"cB" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"cC" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"cD" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/item/weapon/airlock_electronics,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"cE" = (/obj/structure/door_assembly/door_assembly_hatch,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
-"cF" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
-"cG" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
-"cH" = (/obj/machinery/vending/cola,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
-"cI" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
-"cJ" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
-"cK" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/tcommsat/chamber)
-"cL" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/space)
-"cM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/space)
-"cN" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless,/area/space)
-"cO" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plating/airless,/area/space)
-"cP" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"cQ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/space)
-"cR" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/space)
-"cS" = (/obj/structure/window/reinforced{dir = 1},/turf/space,/area/space)
-"cT" = (/obj/structure/table,/obj/item/device/radio/off,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
-"cU" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
-"cV" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"cW" = (/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"cX" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"cY" = (/turf/simulated/floor/plasteel{icon_state = "solarpanel"},/area/space)
-"cZ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/space,/area/space)
-"da" = (/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"db" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
-"dc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
-"dd" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
-"de" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
-"df" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dg" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/space)
-"dh" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"di" = (/obj/item/stack/rods,/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
-"dj" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dk" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"dm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"dn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"do" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/scalpel{pixel_y = 12},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dp" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"dr" = (/obj/structure/rack,/obj/item/weapon/circuitboard/teleporter,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
-"ds" = (/obj/item/device/radio/off,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"du" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
-"dv" = (/obj/effect/decal/cleanable/blood,/obj/structure/stool/bed/chair,/obj/item/clothing/under/rank/centcom_officer,/obj/item/weapon/restraints/handcuffs,/obj/effect/decal/remains/human,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
-"dw" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
-"dx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dy" = (/obj/structure/door_assembly/door_assembly_mhatch,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dz" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
-"dA" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
-"dB" = (/obj/effect/decal/cleanable/blood,/obj/item/device/assembly/signaler,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dC" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/lethal/choral,/obj/item/weapon/reagent_containers/syringe/lethal{pixel_y = 4},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"dE" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
-"dF" = (/obj/structure/table,/obj/item/device/electropack,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
-"dG" = (/obj/structure/table,/obj/item/weapon/hemostat,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dH" = (/obj/structure/table,/obj/item/weapon/circular_saw,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"dJ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dK" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/space,/area/space)
-"dL" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/space)
-"dM" = (/turf/simulated/floor/plasteel/airless{dir = 9; icon_state = "warning"},/area/tcommsat/chamber)
-"dN" = (/turf/simulated/floor/plasteel/airless{icon_state = "warningcorner"; dir = 4},/area/tcommsat/chamber)
-"dO" = (/turf/simulated/floor/plasteel/airless{icon_state = "warning"; dir = 1},/area/tcommsat/chamber)
-"dP" = (/turf/simulated/floor/plasteel/airless{dir = 5; icon_state = "warning"},/area/tcommsat/chamber)
-"dQ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/space,/area/space)
-"dR" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dS" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/plasteel/airless{dir = 8; icon_state = "warning"},/area/tcommsat/chamber)
-"dT" = (/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
-"dU" = (/turf/simulated/floor/plasteel/airless{dir = 4; icon_state = "warning"},/area/tcommsat/chamber)
-"dV" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
-"dW" = (/turf/simulated/floor/plasteel/airless{dir = 10; icon_state = "warning"},/area/tcommsat/chamber)
-"dX" = (/obj/machinery/light/small,/obj/item/weapon/paper,/turf/simulated/floor/plasteel/airless{icon_state = "warningcorner"; dir = 1},/area/tcommsat/chamber)
-"dY" = (/turf/simulated/floor/plasteel/airless{dir = 6; icon_state = "warning"},/area/tcommsat/chamber)
-"dZ" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area/space)
-"ea" = (/obj/structure/lattice,/obj/item/stack/rods,/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area/space)
-"eb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
-"ec" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"ed" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area/space)
-"ee" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/plasteel,/area/tcommsat/chamber)
-"ef" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/tcommsat/chamber)
-"eg" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/tcommsat/chamber)
-"eh" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/tcommsat/chamber)
-"ei" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 4},/area/tcommsat/chamber)
-"ej" = (/turf/simulated/floor/plasteel,/area/tcommsat/chamber)
-"ek" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 8},/area/tcommsat/chamber)
-"el" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel,/area/tcommsat/chamber)
-"em" = (/obj/structure/sign/vacuum,/turf/simulated/wall/r_wall,/area/tcommsat/chamber)
-"en" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/tcommsat/chamber)
-"eo" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/plasteel,/area/tcommsat/chamber)
-"ep" = (/obj/structure/closet/malf/suits,/turf/simulated/floor/plasteel,/area/tcommsat/chamber)
-"eq" = (/obj/structure/door_assembly/door_assembly_ext,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
-"er" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"es" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/tcommsat/chamber)
-"et" = (/obj/item/weapon/crowbar,/turf/simulated/floor/plating/airless,/area/space)
-"eu" = (/obj/structure/closet/crate,/obj/item/clothing/glasses/night,/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/tcommsat/chamber)
-"ev" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 1},/area/tcommsat/chamber)
-"ew" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/tcommsat/chamber)
-"ex" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/tcommsat/chamber)
-"ey" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/tcommsat/chamber)
-"ez" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_z3"; name = "near abandoned satellite"; turf_type = /turf/space; width = 18},/turf/space,/area/space)
-"eA" = (/obj/structure/computerframe,/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"eB" = (/obj/machinery/teleport/station,/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"eC" = (/obj/machinery/teleport/hub,/turf/simulated/floor/plating,/area/tcommsat/chamber)
-"eD" = (/turf/simulated/wall/r_wall,/area/AIsattele)
-"eE" = (/obj/structure/computerframe,/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eF" = (/obj/machinery/teleport/station,/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eG" = (/obj/machinery/teleport/hub,/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eH" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eI" = (/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eJ" = (/obj/structure/rack,/obj/item/clothing/gloves/color/yellow,/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eL" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eM" = (/obj/item/weapon/stock_parts/cell{step_x = 0},/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eN" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eO" = (/obj/effect/decal/cleanable/robot_debris/old,/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eP" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eQ" = (/obj/effect/decal/cleanable/dirt,/obj/item/device/flashlight,/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eR" = (/obj/effect/decal/cleanable/dirt,/obj/item/device/radio/beacon,/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eS" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eU" = (/obj/effect/decal/cleanable/blood/old,/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eV" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eW" = (/obj/item/weapon/shard,/obj/item/weapon/module/power_control,/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eX" = (/obj/structure/closet,/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eY" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/simulated/floor/plating/airless,/area/AIsattele)
-"eZ" = (/obj/structure/closet/crate,/obj/item/device/aicard,/obj/item/device/multitool,/obj/item/weapon/weldingtool,/obj/item/weapon/wrench,/obj/item/weapon/circuitboard/teleporter,/turf/simulated/floor/plating/airless,/area/AIsattele)
-"fa" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating/airless,/area/AIsattele)
-"fb" = (/obj/structure/lattice,/turf/space,/area/AIsattele)
-"fc" = (/obj/structure/girder,/turf/simulated/floor/plating/airless,/area/AIsattele)
-"fd" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"; dir = 2},/area/space)
-"fe" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/shuttle/plating,/area/space)
-"ff" = (/turf/simulated/shuttle/wall{icon_state = "swallc1"; dir = 2},/area/space)
-"fg" = (/obj/docking_port/mobile{dheight = 0; dir = 2; dwidth = 11; height = 22; id = "whiteship"; name = "NT Medical Ship"; travelDir = 180; width = 35},/obj/docking_port/stationary{dheight = 0; dir = 2; dwidth = 11; height = 22; id = "whiteship_home"; name = "Deep Space"; width = 35},/obj/machinery/door/airlock/shuttle{name = "recovery shuttle external airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"fh" = (/obj/machinery/door/airlock/shuttle{name = "recovery shuttle external airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"fi" = (/turf/simulated/shuttle/wall{icon_state = "swallc2"; dir = 2},/area/space)
-"fj" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"; dir = 2},/area/space)
-"fk" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"; dir = 2},/area/space)
-"fl" = (/obj/structure/toilet{pixel_y = 9},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/greenglow{desc = "Looks like something's sprung a leak"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"fm" = (/obj/structure/mirror{pixel_x = 28; pixel_y = 0},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"fn" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/space)
-"fo" = (/obj/structure/closet/wardrobe/mixed,/obj/item/clothing/under/rank/centcom_officer{desc = "A badge on the arm indicates that it's meant to be worn by Centcom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; name = "\improper dusty old Centcom jumpsuit"},/obj/item/clothing/under/rank/centcom_commander{desc = "A badge on the arm indicates that it's meant to be worn by Centcom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; name = "\improper dusty old Centcom jumpsuit"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"fp" = (/obj/structure/table,/obj/item/weapon/storage/pill_bottle/dice{pixel_y = 3},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"fq" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000; pixel_y = 2},/obj/effect/decal/cleanable/cobweb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"fr" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"fs" = (/obj/structure/dispenser/oxygen{layer = 2.7; pixel_x = -1; pixel_y = 2},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"ft" = (/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall1"},/area/space)
-"fu" = (/obj/structure/sign/vacuum{pixel_x = -32},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"fv" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"fw" = (/obj/structure/closet/crate/medical{name = "medical crate"},/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/roller{pixel_y = 4},/obj/item/device/healthanalyzer,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
-"fx" = (/obj/structure/closet/crate{name = "spare equipment crate"},/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/relic,/obj/item/device/t_scanner,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
-"fy" = (/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/cigbutt,/obj/structure/closet/crate{icon_state = "crateopen"; name = "spare equipment crate"; opened = 1},/obj/item/weapon/tank/internals/oxygen/red,/obj/item/weapon/tank/internals/air,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
-"fz" = (/obj/structure/closet/crate{name = "emergency supplies crate"},/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/obj/item/device/flashlight/flare{pixel_x = 3; pixel_y = 3},/obj/item/device/flashlight/flare{pixel_x = -6; pixel_y = -2},/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/extinguisher,/obj/item/weapon/extinguisher,/obj/effect/decal/cleanable/cobweb2,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
-"fA" = (/turf/simulated/shuttle/wall{tag = "icon-swall7"; icon_state = "swall7"; dir = 2},/area/space)
-"fB" = (/turf/simulated/shuttle/wall{icon_state = "swall8"; dir = 2},/area/space)
-"fC" = (/obj/machinery/door/airlock/shuttle{name = "bathroom"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"fD" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash{desc = "They look like human remains, and have clearly been gnawed at."; icon = 'icons/effects/blood.dmi'; icon_state = "remains"; name = "remains"},/obj/item/weapon/gun/energy/laser/retro,/turf/simulated/shuttle/floor,/area/space)
-"fE" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/centcom,/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"fF" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"fG" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/oil,/turf/simulated/shuttle/floor,/area/space)
-"fH" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"fI" = (/obj/machinery/door/airlock/shuttle{name = "E.V.A. equipment"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"fJ" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash{desc = "They look like human remains, and have clearly been gnawed at."; icon = 'icons/effects/blood.dmi'; icon_state = "remains"; name = "remains"},/turf/simulated/shuttle/floor,/area/space)
-"fK" = (/obj/machinery/door/airlock/shuttle{name = "cargo bay"},/turf/simulated/shuttle/plating{dir = 1; icon_state = "delivery"},/area/space)
-"fL" = (/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{dir = 1; icon_state = "delivery"},/area/space)
-"fM" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{dir = 1; icon_state = "delivery"},/area/space)
-"fN" = (/obj/effect/decal/cleanable/robot_debris/old,/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{dir = 1; icon_state = "delivery"},/area/space)
-"fO" = (/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/obj/machinery/door/window/westright{dir = 4},/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash{desc = "They look like human remains, and have clearly been gnawed at."; icon = 'icons/effects/blood.dmi'; icon_state = "remains"; name = "remains"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"fP" = (/obj/effect/decal/cleanable/blood/old,/obj/structure/mirror{pixel_x = 28; pixel_y = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"fQ" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/blood/gibs/limb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"fR" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/centcom,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"fS" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50; pixel_x = -2; pixel_y = 2},/obj/item/stack/rods{amount = 50},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"fT" = (/obj/structure/rack{dir = 8; layer = 2.9; pixel_y = 2},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = 6},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/obj/item/clothing/glasses/welding,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"fU" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"fV" = (/turf/simulated/shuttle/wall{tag = "icon-swall2"; icon_state = "swall2"},/area/space)
-"fW" = (/obj/machinery/constructable_frame/machine_frame,/obj/item/weapon/circuitboard/cyborgrecharger,/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
-"fX" = (/obj/structure/closet/emcloset,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
-"fY" = (/obj/structure/closet/firecloset/full,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
-"fZ" = (/obj/machinery/door/airlock/shuttle{name = "bathroom"},/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"ga" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/space)
-"gb" = (/obj/machinery/door/airlock/shuttle{name = "dormitory"},/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"gc" = (/obj/machinery/vending/boozeomat{icon_deny = "smartfridge"; icon_state = "smartfridge"; req_access_txt = "0"},/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/space)
-"gd" = (/turf/simulated/shuttle/wall{icon_state = "swall4"; dir = 2},/area/space)
-"ge" = (/turf/simulated/shuttle/wall{icon_state = "swallc4"; dir = 2},/area/space)
-"gf" = (/obj/machinery/door/airlock/shuttle{name = "recovery shuttle interior airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"gg" = (/turf/simulated/shuttle/wall{tag = "icon-swallc3"; icon_state = "swallc3"; dir = 2},/area/space)
-"gh" = (/obj/machinery/door/airlock/shuttle{name = "cargo bay"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{dir = 1; icon_state = "delivery"},/area/space)
-"gi" = (/obj/machinery/constructable_frame/machine_frame,/obj/item/weapon/vending_refill/coffee,/obj/item/weapon/vending_refill/coffee,/obj/item/weapon/vending_refill/coffee,/obj/item/weapon/circuitboard/vendor{build_path = /obj/machinery/vending/coffee; name = "circuit board (Coffee Vendor)"; req_components = list(/obj/item/weapon/vending_refill/coffee = 3)},/obj/effect/decal/cleanable/cobweb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gj" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/blood/gibs/limb,/turf/simulated/shuttle/floor,/area/space)
-"gk" = (/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"gl" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"gm" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/cobweb2,/turf/simulated/shuttle/floor,/area/space)
-"gn" = (/obj/structure/computerframe,/obj/effect/decal/cleanable/cobweb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"go" = (/obj/structure/table,/obj/item/device/camera,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gp" = (/obj/structure/table,/obj/item/device/gps{gpstag = "NTREC1"; pixel_x = -1; pixel_y = 2},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gq" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -1; pixel_y = 6},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gr" = (/obj/structure/reagent_dispensers/fueltank,/obj/structure/sign/vacuum{pixel_x = -32},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"gs" = (/obj/machinery/constructable_frame/machine_frame,/obj/item/weapon/vending_refill/cigarette,/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gt" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gu" = (/obj/structure/stool/bed/chair,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gv" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gw" = (/obj/structure/table,/obj/item/device/flashlight{pixel_y = 3},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gx" = (/obj/structure/table,/obj/item/device/analyzer,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gy" = (/obj/structure/rack,/obj/item/clothing/suit/bio_suit,/obj/item/clothing/suit/bio_suit,/obj/item/clothing/mask/surgical,/obj/item/clothing/head/bio_hood,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gz" = (/obj/structure/table,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gA" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gB" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gC" = (/obj/machinery/door/airlock/shuttle{name = "recovery shuttle interior airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"gD" = (/obj/structure/stool/bed/chair{dir = 4},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gE" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gF" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3; pixel_y = 4},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 4},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gG" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gH" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gI" = (/obj/machinery/door/airlock/shuttle{name = "living quarters"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"gJ" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gK" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gL" = (/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash{desc = "They look like human remains, and have clearly been gnawed at."; icon = 'icons/effects/blood.dmi'; icon_state = "remains"; name = "remains"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gM" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/blood/gibs/limb,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gN" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gO" = (/obj/machinery/door/airlock/shuttle{name = "bridge"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"gP" = (/obj/effect/decal/cleanable/blood/old,/obj/structure/stool/bed/chair/comfy/black{dir = 4},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gQ" = (/obj/machinery/computer/shuttle/syndicate/whiteship,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gR" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"gS" = (/obj/machinery/constructable_frame/machine_frame,/obj/item/weapon/vending_refill/cola,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gT" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gU" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/emergency{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency{pixel_x = 3; pixel_y = -3},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gV" = (/obj/structure/table,/obj/item/stack/medical/gauze,/obj/item/stack/medical/ointment{pixel_x = -4},/obj/item/stack/medical/bruise_pack{pixel_x = 4; pixel_y = 2},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gW" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags{pixel_x = 2; pixel_y = 3},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gX" = (/obj/structure/stool/bed/chair/office/light,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"gY" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/clothing/head/centhat{desc = "There's a gouge through the top where something has clawed clean through it. Whoever was wearing it probably doesn't need a hat any more."; name = "\improper damaged CentCom hat"},/obj/effect/decal/cleanable/ash{desc = "They look like human remains, and have clearly been gnawed at."; icon = 'icons/effects/blood.dmi'; icon_state = "remains"; name = "remains"},/turf/simulated/shuttle/floor,/area/space)
-"gZ" = (/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/obj/item/weapon/cigbutt/cigarbutt{pixel_x = 5; pixel_y = -1},/obj/structure/table,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"ha" = (/obj/machinery/constructable_frame/machine_frame,/obj/item/weapon/vending_refill/snack,/obj/item/weapon/vending_refill/snack,/obj/item/weapon/circuitboard/vendor{build_path = /obj/machinery/vending/snack; name = "circuit board (Snack Vendor)"; req_components = list(/obj/item/weapon/vending_refill/snack = 3)},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/oil,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hb" = (/obj/structure/sign/science{pixel_y = -32},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"hc" = (/obj/structure/computerframe,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hd" = (/obj/structure/table,/obj/item/device/taperecorder/empty,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"he" = (/obj/structure/table,/obj/item/device/tape/random,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hf" = (/obj/structure/table,/obj/item/device/radio/off{pixel_y = 6},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hg" = (/obj/structure/sign/botany,/turf/simulated/shuttle/wall{icon_state = "swall8"; dir = 2},/area/space)
-"hh" = (/obj/machinery/door/airlock/shuttle{name = "hydroponics"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"hi" = (/obj/machinery/door/airlock/shuttle{name = "kitchen"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"hj" = (/obj/machinery/door/airlock/shuttle{name = "laboratory"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"hk" = (/obj/structure/sign/bluecross_2,/turf/simulated/shuttle/wall{icon_state = "swall8"; dir = 2},/area/space)
-"hl" = (/obj/machinery/door/airlock/shuttle{icon_state = "door_closed"; name = "medbay"; welded = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"hm" = (/obj/item/weapon/storage/bag/plants/portaseeder,/obj/structure/table,/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 13; pixel_y = 5},/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh{pixel_x = -2; pixel_y = 3},/obj/effect/decal/cleanable/cobweb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hn" = (/obj/machinery/constructable_frame/machine_frame,/obj/item/weapon/circuitboard/biogenerator,/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"ho" = (/obj/machinery/vending/hydroseeds{pixel_x = 2},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hp" = (/obj/machinery/processor,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hq" = (/obj/structure/kitchenspike,/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hr" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/item/weapon/storage/box/donkpockets,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/cobweb2,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hs" = (/obj/machinery/constructable_frame/machine_frame,/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"ht" = (/obj/machinery/constructable_frame/machine_frame,/obj/item/weapon/circuitboard/autolathe,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hu" = (/obj/machinery/sleeper,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hv" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/empty{pixel_x = -3; pixel_y = -3},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/random,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/xenoblood,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hw" = (/obj/structure/optable,/obj/item/weapon/surgical_drapes,/obj/item/weapon/storage/firstaid/regular,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hx" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/item/clothing/suit/apron,/obj/item/weapon/shovel/spade,/obj/item/weapon/screwdriver,/obj/item/device/analyzer/plant_analyzer,/obj/item/weapon/minihoe,/obj/item/weapon/reagent_containers/glass/bucket,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hy" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"hz" = (/obj/machinery/smartfridge,/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/space)
-"hA" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"hB" = (/obj/effect/decal/cleanable/egg_smudge,/obj/effect/decal/cleanable/flour,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"hC" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/obj/item/weapon/kitchenknife,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hD" = (/obj/machinery/constructable_frame/machine_frame,/obj/item/weapon/circuitboard/chem_dispenser,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hE" = (/obj/structure/stool/bed/chair/office/light,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"hF" = (/obj/machinery/constructable_frame/machine_frame,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hG" = (/obj/machinery/vending/wallmed{name = "Emergency NanoMed"; pixel_x = -28; pixel_y = 0; req_access_txt = "0"},/obj/machinery/iv_drip{density = 0; pixel_x = -8},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"hH" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash,/obj/effect/decal/cleanable/xenoblood,/turf/simulated/shuttle/floor,/area/space)
-"hI" = (/obj/effect/decal/cleanable/xenoblood,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash{desc = "A pile of remains that look vaguely humanoid. The skull is abnormally elongated, and there are burns through some of the other bones."; icon = 'icons/effects/blood.dmi'; icon_state = "remainsxeno"; name = "remains"},/turf/simulated/shuttle/floor,/area/space)
-"hJ" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/decal/cleanable/xenoblood,/obj/effect/decal/cleanable/xenoblood/xgibs/limb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
-"hK" = (/obj/machinery/hydroponics/constructable,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hL" = (/obj/machinery/hydroponics/constructable,/obj/item/seeds/glowshroom,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hM" = (/obj/structure/table,/obj/machinery/reagentgrinder{pixel_y = 6},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hN" = (/obj/structure/table,/obj/item/weapon/storage/box/monkeycubes,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hO" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/obj/item/weapon/reagent_containers/food/condiment/enzyme{layer = 5},/obj/item/weapon/reagent_containers/dropper,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hP" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/milk,/obj/item/weapon/reagent_containers/food/condiment/milk,/obj/item/weapon/reagent_containers/food/condiment/milk,/obj/item/weapon/reagent_containers/food/condiment/soymilk,/obj/item/weapon/reagent_containers/food/condiment/soymilk,/obj/item/weapon/reagent_containers/food/condiment/sugar,/obj/item/weapon/reagent_containers/food/condiment/sugar,/obj/item/weapon/reagent_containers/food/condiment/sugar,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hQ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hR" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hS" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hT" = (/obj/structure/table,/obj/item/weapon/defibrillator,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hU" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 6; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -3},/obj/item/weapon/reagent_containers/syringe,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hV" = (/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
-"hW" = (/obj/structure/table,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/circular_saw,/obj/item/weapon/retractor{pixel_x = 4},/obj/item/weapon/hemostat{pixel_x = -4},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"cw" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cx" = (/obj/structure/table,/obj/item/weapon/storage/fancy/cigarettes,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cy" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cz" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"cA" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"cB" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"cC" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/item/weapon/airlock_electronics,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"cD" = (/obj/structure/door_assembly/door_assembly_hatch,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cE" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cF" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cG" = (/obj/machinery/vending/cola,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cH" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cI" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cJ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/tcommsat/chamber)
+"cK" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/space)
+"cL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/space)
+"cM" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless,/area/space)
+"cN" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plating/airless,/area/space)
+"cO" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"cP" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/space)
+"cQ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/space)
+"cR" = (/obj/structure/window/reinforced{dir = 1},/turf/space,/area/space)
+"cS" = (/obj/structure/table,/obj/item/device/radio/off,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cT" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"cU" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"cV" = (/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"cW" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"cX" = (/turf/simulated/floor/plasteel{icon_state = "solarpanel"},/area/space)
+"cY" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/space,/area/space)
+"cZ" = (/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"da" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
+"db" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
+"dc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
+"dd" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
+"de" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"df" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/space)
+"dg" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dh" = (/obj/item/stack/rods,/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
+"di" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dj" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/tcommsat/chamber)
+"dl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcommsat/chamber)
+"dm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcommsat/chamber)
+"dn" = (/obj/effect/decal/cleanable/blood,/obj/item/weapon/scalpel{pixel_y = 12},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"do" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/tcommsat/chamber)
+"dq" = (/obj/structure/rack,/obj/item/weapon/circuitboard/teleporter,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"dr" = (/obj/item/device/radio/off,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"ds" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcommsat/chamber)
+"dt" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
+"du" = (/obj/effect/decal/cleanable/blood,/obj/structure/stool/bed/chair,/obj/item/clothing/under/rank/centcom_officer,/obj/item/weapon/restraints/handcuffs,/obj/effect/decal/remains/human,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
+"dv" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
+"dw" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dx" = (/obj/structure/door_assembly/door_assembly_mhatch,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dy" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"dz" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
+"dA" = (/obj/effect/decal/cleanable/blood,/obj/item/device/assembly/signaler,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dB" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/lethal/choral,/obj/item/weapon/reagent_containers/syringe/lethal{pixel_y = 4},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/tcommsat/chamber)
+"dD" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"dE" = (/obj/structure/table,/obj/item/device/electropack,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
+"dF" = (/obj/structure/table,/obj/item/weapon/hemostat,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dG" = (/obj/structure/table,/obj/item/weapon/circular_saw,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcommsat/chamber)
+"dI" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dJ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/space,/area/space)
+"dK" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/space)
+"dL" = (/turf/simulated/floor/plasteel/airless{dir = 9; icon_state = "warning"},/area/tcommsat/chamber)
+"dM" = (/turf/simulated/floor/plasteel/airless{icon_state = "warningcorner"; dir = 4},/area/tcommsat/chamber)
+"dN" = (/turf/simulated/floor/plasteel/airless{icon_state = "warning"; dir = 1},/area/tcommsat/chamber)
+"dO" = (/turf/simulated/floor/plasteel/airless{dir = 5; icon_state = "warning"},/area/tcommsat/chamber)
+"dP" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/space,/area/space)
+"dQ" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dR" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/plasteel/airless{dir = 8; icon_state = "warning"},/area/tcommsat/chamber)
+"dS" = (/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless,/area/tcommsat/chamber)
+"dT" = (/turf/simulated/floor/plasteel/airless{dir = 4; icon_state = "warning"},/area/tcommsat/chamber)
+"dU" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "dark"},/area/tcommsat/chamber)
+"dV" = (/turf/simulated/floor/plasteel/airless{dir = 10; icon_state = "warning"},/area/tcommsat/chamber)
+"dW" = (/obj/machinery/light/small,/obj/item/weapon/paper,/turf/simulated/floor/plasteel/airless{icon_state = "warningcorner"; dir = 1},/area/tcommsat/chamber)
+"dX" = (/turf/simulated/floor/plasteel/airless{dir = 6; icon_state = "warning"},/area/tcommsat/chamber)
+"dY" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area/space)
+"dZ" = (/obj/structure/lattice,/obj/item/stack/rods,/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area/space)
+"ea" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
+"eb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tcommsat/chamber)
+"ec" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area/space)
+"ed" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/plasteel,/area/tcommsat/chamber)
+"ee" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/tcommsat/chamber)
+"ef" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/tcommsat/chamber)
+"eg" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/tcommsat/chamber)
+"eh" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 4},/area/tcommsat/chamber)
+"ei" = (/turf/simulated/floor/plasteel,/area/tcommsat/chamber)
+"ej" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 8},/area/tcommsat/chamber)
+"ek" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel,/area/tcommsat/chamber)
+"el" = (/obj/structure/sign/vacuum,/turf/simulated/wall/r_wall,/area/tcommsat/chamber)
+"em" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/tcommsat/chamber)
+"en" = (/obj/item/weapon/paper/crumpled,/turf/simulated/floor/plasteel,/area/tcommsat/chamber)
+"eo" = (/obj/structure/closet/malf/suits,/turf/simulated/floor/plasteel,/area/tcommsat/chamber)
+"ep" = (/obj/structure/door_assembly/door_assembly_ext,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
+"eq" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area/tcommsat/chamber)
+"er" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/tcommsat/chamber)
+"es" = (/obj/item/weapon/crowbar,/turf/simulated/floor/plating/airless,/area/space)
+"et" = (/obj/structure/closet/crate,/obj/item/clothing/glasses/night,/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/tcommsat/chamber)
+"eu" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 1},/area/tcommsat/chamber)
+"ev" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/tcommsat/chamber)
+"ew" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/tcommsat/chamber)
+"ex" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/tcommsat/chamber)
+"ey" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_z3"; name = "near abandoned satellite"; turf_type = /turf/space; width = 18},/turf/space,/area/space)
+"ez" = (/obj/structure/computerframe,/turf/simulated/floor/plating,/area/tcommsat/chamber)
+"eA" = (/obj/machinery/teleport/station,/turf/simulated/floor/plating,/area/tcommsat/chamber)
+"eB" = (/obj/machinery/teleport/hub,/turf/simulated/floor/plating,/area/tcommsat/chamber)
+"eC" = (/turf/simulated/wall/r_wall,/area/AIsattele)
+"eD" = (/obj/structure/computerframe,/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eE" = (/obj/machinery/teleport/station,/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eF" = (/obj/machinery/teleport/hub,/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eG" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eH" = (/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eI" = (/obj/structure/rack,/obj/item/clothing/gloves/color/yellow,/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eK" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eL" = (/obj/item/weapon/stock_parts/cell{step_x = 0},/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eM" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eN" = (/obj/effect/decal/cleanable/robot_debris/old,/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eO" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eP" = (/obj/effect/decal/cleanable/dirt,/obj/item/device/flashlight,/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eQ" = (/obj/effect/decal/cleanable/dirt,/obj/item/device/radio/beacon,/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eR" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eS" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eT" = (/obj/effect/decal/cleanable/blood/old,/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eU" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eV" = (/obj/item/weapon/shard,/obj/item/weapon/module/power_control,/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eW" = (/obj/structure/closet,/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eX" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eY" = (/obj/structure/closet/crate,/obj/item/device/aicard,/obj/item/device/multitool,/obj/item/weapon/weldingtool,/obj/item/weapon/wrench,/obj/item/weapon/circuitboard/teleporter,/turf/simulated/floor/plating/airless,/area/AIsattele)
+"eZ" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating/airless,/area/AIsattele)
+"fa" = (/obj/structure/lattice,/turf/space,/area/AIsattele)
+"fb" = (/obj/structure/girder,/turf/simulated/floor/plating/airless,/area/AIsattele)
+"fc" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"; dir = 2},/area/space)
+"fd" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/shuttle/plating,/area/space)
+"fe" = (/turf/simulated/shuttle/wall{icon_state = "swallc1"; dir = 2},/area/space)
+"ff" = (/obj/docking_port/mobile{dheight = 0; dir = 2; dwidth = 11; height = 15; id = "whiteship"; name = "NT Recovery White-Ship"; travelDir = 180; width = 27},/obj/docking_port/stationary{dheight = 0; dir = 2; dwidth = 11; height = 15; id = "whiteship_home"; name = "Deep Space"; width = 27},/obj/machinery/door/airlock/shuttle{name = "recovery shuttle external airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"fg" = (/obj/machinery/door/airlock/shuttle{name = "recovery shuttle external airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"fh" = (/turf/simulated/shuttle/wall{icon_state = "swallc2"; dir = 2},/area/space)
+"fi" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"; dir = 2},/area/space)
+"fj" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"; dir = 2},/area/space)
+"fk" = (/obj/structure/toilet{pixel_y = 9},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/greenglow{desc = "Looks like something's sprung a leak"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fl" = (/obj/structure/mirror{pixel_x = 28; pixel_y = 0},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fm" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/space)
+"fn" = (/obj/structure/closet/wardrobe/mixed,/obj/item/clothing/under/rank/centcom_officer{desc = "A badge on the arm indicates that it's meant to be worn by Centcom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; name = "\improper dusty old Centcom jumpsuit"},/obj/item/clothing/under/rank/centcom_commander{desc = "A badge on the arm indicates that it's meant to be worn by Centcom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; name = "\improper dusty old Centcom jumpsuit"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fo" = (/obj/structure/table,/obj/item/weapon/storage/pill_bottle/dice{pixel_y = 3},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fp" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000; pixel_y = 2},/obj/effect/decal/cleanable/cobweb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fq" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fr" = (/obj/structure/dispenser/oxygen{layer = 2.7; pixel_x = -1; pixel_y = 2},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fs" = (/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall1"},/area/space)
+"ft" = (/obj/structure/sign/vacuum{pixel_x = -32},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"fu" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"fv" = (/obj/structure/closet/crate/medical{name = "medical crate"},/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/roller{pixel_y = 4},/obj/item/device/healthanalyzer,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
+"fw" = (/obj/structure/closet/crate{name = "spare equipment crate"},/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/relic,/obj/item/device/t_scanner,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
+"fx" = (/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/cigbutt,/obj/structure/closet/crate{icon_state = "crateopen"; name = "spare equipment crate"; opened = 1},/obj/item/weapon/tank/internals/oxygen/red,/obj/item/weapon/tank/internals/air,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
+"fy" = (/obj/structure/closet/crate{name = "emergency supplies crate"},/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/obj/item/device/flashlight/flare{pixel_x = 3; pixel_y = 3},/obj/item/device/flashlight/flare{pixel_x = -6; pixel_y = -2},/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/extinguisher,/obj/item/weapon/extinguisher,/obj/effect/decal/cleanable/cobweb2,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
+"fz" = (/turf/simulated/shuttle/wall{tag = "icon-swall7"; icon_state = "swall7"; dir = 2},/area/space)
+"fA" = (/turf/simulated/shuttle/wall{icon_state = "swall8"; dir = 2},/area/space)
+"fB" = (/obj/machinery/door/airlock/shuttle{name = "bathroom"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"fC" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash{desc = "They look like human remains, and have clearly been gnawed at."; icon = 'icons/effects/blood.dmi'; icon_state = "remains"; name = "remains"},/obj/item/weapon/gun/energy/laser/retro,/turf/simulated/shuttle/floor,/area/space)
+"fD" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/centcom,/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fE" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fF" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/oil,/turf/simulated/shuttle/floor,/area/space)
+"fG" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"fH" = (/obj/machinery/door/airlock/shuttle{name = "E.V.A. equipment"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"fI" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash{desc = "They look like human remains, and have clearly been gnawed at."; icon = 'icons/effects/blood.dmi'; icon_state = "remains"; name = "remains"},/turf/simulated/shuttle/floor,/area/space)
+"fJ" = (/obj/machinery/door/airlock/shuttle{name = "cargo bay"},/turf/simulated/shuttle/plating{dir = 1; icon_state = "delivery"},/area/space)
+"fK" = (/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{dir = 1; icon_state = "delivery"},/area/space)
+"fL" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{dir = 1; icon_state = "delivery"},/area/space)
+"fM" = (/obj/effect/decal/cleanable/robot_debris/old,/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{dir = 1; icon_state = "delivery"},/area/space)
+"fN" = (/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/obj/machinery/door/window/westright{dir = 4},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/weapon/soap/nanotrasen,/obj/effect/decal/cleanable/ash{desc = "They look like human remains, and have clearly been gnawed at."; icon = 'icons/effects/blood.dmi'; icon_state = "remains"; name = "remains"},/obj/effect/decal/cleanable/blood/gibs/old,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fO" = (/obj/effect/decal/cleanable/blood/old,/obj/structure/mirror{pixel_x = 28; pixel_y = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"fP" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/blood/gibs/limb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"fQ" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/centcom,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fR" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50; pixel_x = -2; pixel_y = 2},/obj/item/stack/rods{amount = 50},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/weapon/wrench,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fS" = (/obj/structure/rack{dir = 8; layer = 2.9; pixel_y = 2},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = 6},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/obj/item/clothing/glasses/welding,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fT" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"fU" = (/turf/simulated/shuttle/wall{tag = "icon-swall2"; icon_state = "swall2"},/area/space)
+"fV" = (/obj/machinery/constructable_frame/machine_frame,/obj/item/weapon/circuitboard/cyborgrecharger,/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
+"fW" = (/obj/structure/closet/emcloset,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
+"fX" = (/obj/structure/closet/firecloset/full,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{icon_state = "bot"},/area/space)
+"fY" = (/obj/machinery/door/airlock/shuttle{name = "bathroom"},/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"fZ" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/space)
+"ga" = (/obj/machinery/door/airlock/shuttle{name = "dormitory"},/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"gb" = (/obj/machinery/vending/boozeomat{icon_deny = "smartfridge"; icon_state = "smartfridge"; req_access_txt = "0"; use_power = 0},/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/space)
+"gc" = (/turf/simulated/shuttle/wall{icon_state = "swall4"; dir = 2},/area/space)
+"gd" = (/turf/simulated/shuttle/wall{icon_state = "swallc4"; dir = 2},/area/space)
+"ge" = (/obj/machinery/door/airlock/shuttle{name = "recovery shuttle interior airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"gf" = (/turf/simulated/shuttle/wall{tag = "icon-swallc3"; icon_state = "swallc3"; dir = 2},/area/space)
+"gg" = (/obj/machinery/door/airlock/shuttle{name = "cargo bay"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/plating{dir = 1; icon_state = "delivery"},/area/space)
+"gh" = (/obj/machinery/vending/cigarette{use_power = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gi" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/blood/gibs/limb,/turf/simulated/shuttle/floor,/area/space)
+"gj" = (/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"gk" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"gl" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/cobweb2,/turf/simulated/shuttle/floor,/area/space)
+"gm" = (/obj/structure/computerframe,/obj/effect/decal/cleanable/cobweb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gn" = (/obj/structure/table,/obj/item/device/camera,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"go" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/weapon/storage/photo_album,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gp" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -1; pixel_y = 6},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gq" = (/obj/structure/reagent_dispensers/fueltank,/obj/structure/sign/vacuum{pixel_x = -32},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"gr" = (/obj/machinery/vending/coffee{pixel_x = -2; use_power = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gs" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gt" = (/obj/structure/stool/bed/chair,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gu" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gv" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/machinery/constructable_frame/machine_frame{desc = "A NanoTrasen hypersleep chamber - this one appears broken. There are exposed bolts for easy disassembly using a wrench."; dir = 1; icon = 'icons/obj/Cryogenic2.dmi'; icon_state = "sleeper-o"; name = "broken hypersleep chamber"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gw" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/machinery/constructable_frame/machine_frame{desc = "A NanoTrasen hypersleep chamber - this one appears broken. There are exposed bolts for easy disassembly using a wrench."; dir = 1; icon = 'icons/obj/Cryogenic2.dmi'; icon_state = "sleeper-o"; name = "broken hypersleep chamber"; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gx" = (/obj/machinery/constructable_frame/machine_frame{desc = "A NanoTrasen hypersleep chamber - this one appears broken. There are exposed bolts for easy disassembly using a wrench."; dir = 1; icon = 'icons/obj/Cryogenic2.dmi'; icon_state = "sleeper-o"; name = "broken hypersleep chamber"; pixel_y = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gy" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gz" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/device/gps{gpstag = "NTREC1"; pixel_x = -1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gA" = (/obj/machinery/door/airlock/shuttle{name = "recovery shuttle interior airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"gB" = (/obj/structure/stool/bed/chair{dir = 4},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gC" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gD" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3; pixel_y = 4},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 4},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gE" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gF" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gG" = (/obj/machinery/door/airlock/shuttle{name = "living quarters"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"gH" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/roller{pixel_x = -3; pixel_y = 7},/obj/item/roller{pixel_x = 3; pixel_y = 4},/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gI" = (/obj/item/clothing/suit/bio_suit,/obj/item/clothing/suit/bio_suit,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/clothing/gloves/color/latex,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/head/bio_hood,/obj/item/clothing/head/bio_hood,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gJ" = (/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash{desc = "They look like human remains, and have clearly been gnawed at."; icon = 'icons/effects/blood.dmi'; icon_state = "remains"; name = "remains"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gK" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/blood/gibs/limb,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gL" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/clothing/gloves/color/black,/obj/item/clothing/gloves/color/black,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/head/helmet/swat,/obj/item/clothing/head/helmet/swat,/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gM" = (/obj/item/weapon/storage/toolbox/emergency{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency{pixel_x = 3; pixel_y = -3},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gN" = (/obj/machinery/door/airlock/shuttle{name = "bridge"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"gO" = (/obj/effect/decal/cleanable/blood/old,/obj/structure/stool/bed/chair/comfy/black{dir = 4},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gP" = (/obj/machinery/computer/shuttle/syndicate/whiteship{possible_destinations = "whiteship_ss13;whiteship_home;whiteship_z4;whiteship_z5"; use_power = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gQ" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"gR" = (/obj/machinery/vending/cola{pixel_x = -1; use_power = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gS" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gT" = (/obj/machinery/constructable_frame/machine_frame{desc = "A NanoTrasen hypersleep chamber - this one appears broken. There are exposed bolts for easy disassembly using a wrench."; icon = 'icons/obj/Cryogenic2.dmi'; icon_state = "sleeper-o"; name = "broken hypersleep chamber"; pixel_y = 3},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gU" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/machinery/constructable_frame/machine_frame{desc = "A NanoTrasen hypersleep chamber - this one appears broken. There are exposed bolts for easy disassembly using a wrench."; icon = 'icons/obj/Cryogenic2.dmi'; icon_state = "sleeper-o"; name = "broken hypersleep chamber"; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gV" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/machinery/constructable_frame/machine_frame{desc = "A NanoTrasen hypersleep chamber - this one appears broken. There are exposed bolts for easy disassembly using a wrench."; icon = 'icons/obj/Cryogenic2.dmi'; icon_state = "sleeper-o"; name = "broken hypersleep chamber"; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gW" = (/obj/structure/stool/bed/chair/office/light,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gX" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/clothing/head/centhat{desc = "There's a gouge through the top where something has clawed clean through it. Whoever was wearing it probably doesn't need a hat any more."; name = "\improper damaged CentCom hat"},/obj/effect/decal/cleanable/ash{desc = "They look like human remains, and have clearly been gnawed at."; icon = 'icons/effects/blood.dmi'; icon_state = "remains"; name = "remains"},/turf/simulated/shuttle/floor,/area/space)
+"gY" = (/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/obj/item/weapon/cigbutt/cigarbutt{pixel_x = 5; pixel_y = -1},/obj/structure/table,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"gZ" = (/obj/machinery/vending/snack{pixel_x = -1; use_power = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"ha" = (/obj/structure/sign/science{pixel_y = -32},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"hb" = (/obj/structure/computerframe,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hc" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/device/megaphone,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hd" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/device/mass_spectrometer,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"he" = (/obj/structure/table,/obj/item/device/radio/off{pixel_y = 6},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hf" = (/obj/structure/sign/botany,/turf/simulated/shuttle/wall{icon_state = "swall8"; dir = 2},/area/space)
+"hg" = (/obj/machinery/door/airlock/shuttle{name = "hydroponics"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"hh" = (/obj/machinery/door/airlock/shuttle{name = "kitchen"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"hi" = (/obj/machinery/door/airlock/shuttle{name = "laboratory"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"hj" = (/obj/structure/sign/bluecross_2,/turf/simulated/shuttle/wall{icon_state = "swall8"; dir = 2},/area/space)
+"hk" = (/obj/machinery/door/airlock/shuttle{icon_state = "door_closed"; name = "medbay"; welded = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"hl" = (/obj/item/weapon/storage/bag/plants/portaseeder,/obj/structure/table,/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 13; pixel_y = 5},/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh{pixel_x = -2; pixel_y = 3},/obj/effect/decal/cleanable/cobweb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hm" = (/obj/machinery/biogenerator{idle_power_usage = 0; use_power = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hn" = (/obj/machinery/vending/hydroseeds{pixel_x = 2; use_power = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"ho" = (/obj/machinery/processor,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hp" = (/obj/structure/kitchenspike,/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hq" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/item/weapon/storage/box/donkpockets,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/cobweb2,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hr" = (/obj/machinery/constructable_frame/machine_frame,/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hs" = (/obj/machinery/constructable_frame/machine_frame,/obj/item/weapon/circuitboard/autolathe,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"ht" = (/obj/machinery/sleeper{dir = 4; use_power = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hu" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/empty{pixel_x = -3; pixel_y = -3},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/random,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/xenoblood,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hv" = (/obj/structure/optable,/obj/item/weapon/surgical_drapes,/obj/item/weapon/storage/firstaid/regular,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hw" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/item/clothing/suit/apron,/obj/item/weapon/shovel/spade,/obj/item/weapon/screwdriver,/obj/item/device/analyzer/plant_analyzer,/obj/item/weapon/minihoe,/obj/item/weapon/reagent_containers/glass/bucket,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hx" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"hy" = (/obj/machinery/smartfridge{use_power = 0},/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/space)
+"hz" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"hA" = (/obj/effect/decal/cleanable/egg_smudge,/obj/effect/decal/cleanable/flour,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"hB" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/obj/item/weapon/kitchenknife,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hC" = (/obj/machinery/constructable_frame/machine_frame,/obj/item/weapon/circuitboard/chem_dispenser,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hD" = (/obj/structure/stool/bed/chair/office/light,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"hE" = (/obj/machinery/constructable_frame/machine_frame,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hF" = (/obj/machinery/vending/wallmed{name = "Emergency NanoMed"; pixel_x = -28; pixel_y = 0; req_access_txt = "0"; use_power = 0},/obj/machinery/iv_drip{density = 0; pixel_x = -8},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"hG" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash,/obj/effect/decal/cleanable/xenoblood,/turf/simulated/shuttle/floor,/area/space)
+"hH" = (/obj/effect/decal/cleanable/xenoblood,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash{desc = "A pile of remains that look vaguely humanoid. The skull is abnormally elongated, and there are burns through some of the other bones."; icon = 'icons/effects/blood.dmi'; icon_state = "remainsxeno"; name = "remains"},/turf/simulated/shuttle/floor,/area/space)
+"hI" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/decal/cleanable/xenoblood,/obj/effect/decal/cleanable/xenoblood/xgibs/limb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor,/area/space)
+"hJ" = (/obj/machinery/hydroponics/constructable,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hK" = (/obj/machinery/hydroponics/constructable,/obj/item/seeds/glowshroom,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hL" = (/obj/structure/table,/obj/machinery/reagentgrinder{pixel_y = 6},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hM" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/weapon/storage/box/monkeycubes{pixel_y = 4},/obj/item/weapon/storage/fancy/egg_box{pixel_y = 5},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hN" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/obj/item/weapon/reagent_containers/food/condiment/enzyme{layer = 5},/obj/item/weapon/reagent_containers/dropper,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hO" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/milk,/obj/item/weapon/reagent_containers/food/condiment/milk,/obj/item/weapon/reagent_containers/food/condiment/milk,/obj/item/weapon/reagent_containers/food/condiment/soymilk,/obj/item/weapon/reagent_containers/food/condiment/soymilk,/obj/item/weapon/reagent_containers/food/condiment/sugar,/obj/item/weapon/reagent_containers/food/condiment/sugar,/obj/item/weapon/reagent_containers/food/condiment/sugar,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hP" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hQ" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hR" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hS" = (/obj/structure/table,/obj/item/weapon/defibrillator,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hT" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 6; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -3},/obj/item/weapon/reagent_containers/syringe,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hU" = (/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/clothing/suit/apron/surgical,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
+"hV" = (/obj/structure/table,/obj/item/weapon/storage/backpack/dufflebag/med{contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgicaldrill,/obj/item/weapon/razor); desc = "A large dufflebag for holding extra medical supplies - this one seems to be designed for holding surgical tools."; name = "surgical dufflebag"; pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -529,35 +528,35 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBbDbDbDayaabIbJbKbLbMbNbFbFbFbFbFbFbFbFbFbObFbPbQbRbSbHbHaybzbEbAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBbDbDayayaybTbJbHbUbVbWbXbFbYbYbZcacbccbFcdbFcecfbYbRbSbSbHbEbDbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBbDbDaaayaabIcgchcichcjckbFbYclbYbYbYcbbFcdbFcmcebYbYbRbRbFbDbDbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAbDbDaaayaaaacncocpcqcrcsctcubYcvbYbYcbbFcwbFcecebYcxcyczbFbDbDbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBbDbDaaayaabIcAcBcCcBcCcDcEbYbYcFbYbYbFbFbFbFcGcHbYcFcIcJcKcLcLcMcNcOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaybAbBbBbBbDbDaaayaabIcPcQcRcScScSbFbYcTcUbYbYcVcWbFbFbFbFcXbFbFbFbFbDbDbBbBbAayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaybBbDbDayayaycZdabXbFbFbFbFbFdbdcdddddebFcVbFbFbFcZdfdgayayaybDbDbBbBbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaybzbzbzbzbzayayaabBbDbDaaayaabIdhdgbFbHbHbHbHbHdibHbHbHbHcWcWbHbFcZdfaaaaayaabDbDbBbBaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayayayayayayaybzbzbzbzaabBbDbDaaayaabIdjdgbFbHbHcWcWbHcWcWcWcWcWcWbHbHbFcZdkckdldmdnbFbDbDbBaybzayayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayayaybzbzbzaabBbDbDaaayaaaacPdgbFbHcWcWcWcWcWbHcWdocWcWcWbHbFcZdpckdqbYbYdrbFbDbBaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzaabBbDbDaaayaabIdfckbFbHcWcWcWcWcWbHcWdscWcWcWbHbFcZdfcsdtbYbYccbFbDbBaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzbzbCbDbDayayaycZcPbXbFbHcWcWcWbHdudvbHdwcWcWcWbHbFcZdjdxdybYbYdzbFbDbCbzayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzaabBbDbDaaayaabIcPckbFbHcWcWbHcWcWdAdBdCcWcWcWbHbFbIdfcSdDbYdEbYbFbDbBaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayaybzbzbzaabBbDbDaaayaaaadfaabFbHcWcWcWcWcWdFdGdHcWcWbHbHbFaadfckdqbYbYccbFbDbBaabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayaybzbzbzbzaabBbDbDaaayaabIcPckbFbHcWbHcWcWcWcWcWcWcWcWcWbHbFbIdfckdIdmdnbFbDbDbBaybzayayayayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayayayayayayayayaabBbDbDaaayaaaadJckbFbHbHbHbHbHbHbHbHbHbHbHbHbHbFbIdkckaaayaabDbDbBbBaaayayayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBbBbDbDayayaycZdpbXbFbFbFbFbFbFbFbFbFbFbFbFbFbFbFcZdfbXayayaybDbEbBbBbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayayayaybAbBbBbEbDaaaaaabIdfdKdLcsaabFdMdNbRdOdNbSdPbFcscscsdQdfckaaayaabEaybBbBbBbAayayayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAbzbEaaaaaabIdRcCcBcBcBcXdSbYbYbYbYdTdUcXcBcCcBcBdVckaaayaabzaybAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaybzayaaaaaaaacScScRcScSbFdWdXbRbRbYbRdYbFcScScSdZcSaaaaayaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAbDbDaaayaaaacncocpcqcrcsctcubYcvbYbYcbbFcdbFcecebYcwcxcybFbDbDbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBbDbDaaayaabIczcAcBcAcBcCcDbYbYcEbYbYbFbFbFbFcFcGbYcEcHcIcJcKcKcLcMcNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaybAbBbBbBbDbDaaayaabIcOcPcQcRcRcRbFbYcScTbYbYcUcVbFbFbFbFcWbFbFbFbFbDbDbBbBbAayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaybBbDbDayayaycYcZbXbFbFbFbFbFdadbdcdcddbFcUbFbFbFcYdedfayayaybDbDbBbBbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaybzbzbzbzbzayayaabBbDbDaaayaabIdgdfbFbHbHbHbHbHdhbHbHbHbHcVcVbHbFcYdeaaaaayaabDbDbBbBaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayayayayayayaybzbzbzbzaabBbDbDaaayaabIdidfbFbHbHcVcVbHcVcVcVcVcVcVbHbHbFcYdjckdkdldmbFbDbDbBaybzayayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayayaybzbzbzaabBbDbDaaayaaaacOdfbFbHcVcVcVcVcVbHcVdncVcVcVbHbFcYdockdpbYbYdqbFbDbBaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzaabBbDbDaaayaabIdeckbFbHcVcVcVcVcVbHcVdrcVcVcVbHbFcYdecsdsbYbYccbFbDbBaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzbzbCbDbDayayaycYcObXbFbHcVcVcVbHdtdubHdvcVcVcVbHbFcYdidwdxbYbYdybFbDbCbzayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzaabBbDbDaaayaabIcOckbFbHcVcVbHcVcVdzdAdBcVcVcVbHbFbIdecRdCbYdDbYbFbDbBaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayaybzbzbzaabBbDbDaaayaaaadeaabFbHcVcVcVcVcVdEdFdGcVcVbHbHbFaadeckdpbYbYccbFbDbBaabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayaybzbzbzbzaabBbDbDaaayaabIcOckbFbHcVbHcVcVcVcVcVcVcVcVcVbHbFbIdeckdHdldmbFbDbDbBaybzayayayayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayayayayayayayayaabBbDbDaaayaaaadIckbFbHbHbHbHbHbHbHbHbHbHbHbHbHbFbIdjckaaayaabDbDbBbBaaayayayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBbBbDbDayayaycYdobXbFbFbFbFbFbFbFbFbFbFbFbFbFbFbFcYdebXayayaybDbEbBbBbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayayayaybAbBbBbEbDaaaaaabIdedJdKcsaabFdLdMbRdNdMbSdObFcscscsdPdeckaaayaabEaybBbBbBbAayayayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAbzbEaaaaaabIdQcBcAcAcAcWdRbYbYbYbYdSdTcWcAcBcAcAdUckaaayaabzaybAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaybzayaaaaaaaacRcRcQcRcRbFdVdWbRbRbYbRdXbFcRcRcRdYcRaaaaayaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayaaaaaaaaaaaaayaabFbFbFbFbFbSbGbFbFbFbFaaaaaaaaaaaaayaaaaaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaaaaayayayayeaebbRbYbFbYbRbYbFbYcbecayayayayaaaaaaaaaaaaaaayedaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaaaaayayayaydZeabRbYbFbYbRbYbFbYcbebayayayayaaaaaaaaaaaaaaayecaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDbFbYbYbYbYbYbYbQbYbYbFbDaaaaaaaaaaaaaaaaaaaybzbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaybzbEbDbDbDbDbDbFbFbFbFbFeebFbFbFbFbFbDbDbEbzayayaaaaaaaabzbEbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaybzbEbDbDbDbDbDbDbDbDbDbFefegehbFbDbDbDbzayayayaaaaaaayayaybEbDbAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAbBbAbBbBbBbBbBbBbBbFbFeiejekbFbFbBbBbBbAaaaaaaaaaaaaaybDbDbDbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAbzbzbBbBbFbFelejejejejbFbFbBbBaaaaaaaaaybzbzbEbDbDbBbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzbzbzbFbFemenejejejejeoepbFbBbAaaaaaaaaaaayaybzbDbBbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzbzbzeqbHeresejejejejejejbFbBbBaaaaaaaaaaaybAbBbBbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaetbzbzbFbFemeuevejejejejepbFbBbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaybzbzbBbBbFbFewexexexeybFbFbBbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaezaaaaaaaaaaaaaaaybAbAbBbBbBbFbFeAeBeCbFbFbBbBbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaybzbEbDbDbDbDbDbFbFbFbFbFedbFbFbFbFbFbDbDbEbzayayaaaaaaaabzbEbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaybzbEbDbDbDbDbDbDbDbDbDbFeeefegbFbDbDbDbzayayayaaaaaaayayaybEbDbAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAbBbAbBbBbBbBbBbBbBbFbFeheiejbFbFbBbBbBbAaaaaaaaaaaaaaybDbDbDbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAbzbzbBbBbFbFekeieieieibFbFbBbBaaaaaaaaaybzbzbEbDbDbBbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzbzbzbFbFelemeieieieieneobFbBbAaaaaaaaaaaayaybzbDbBbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzbzbzepbHeqereieieieieieibFbBbBaaaaaaaaaaaybAbBbBbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaesbzbzbFbFeleteueieieieieobFbBbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaybzbzbBbBbFbFevewewewexbFbFbBbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeyaaaaaaaaaaaaaaaybAbAbBbBbBbFbFezeAeBbFbFbBbBbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAbBbBbBbFbFbFbFbFbBbBbBbAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBbBaabBbBbBbCbBbBbBaabBbBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBaaaaayaaaabzaaaaayaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -597,15 +596,15 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeDeDeDeDeDayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayeDeDeEeFeGeDeDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayayeDeDeHeIeIeIeJeDeDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeKeLeDeIeMeNeIeOeNeIeDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayePeIePeIeQeOeReIeIeSeDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeKeTeDeSeUeIeVeIeWeXeDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayayeDeDeIeIeNeIeYeDeDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayeDeDeZeIfaeDeDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeDeDfbeIfcayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCeCeCeCeCayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayeCeCeDeEeFeCeCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayayeCeCeGeHeHeHeIeCeCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeJeKeCeHeLeMeHeNeMeHeCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayeOeHeOeHePeNeQeHeHeReCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeJeSeCeReTeHeUeHeVeWeCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayayeCeCeHeHeMeHeXeCeCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayeCeCeYeHeZeCeCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeCeCfaeHfbayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayayaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayayaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -617,21 +616,21 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfdaefefdfeaefdaefefeaefffgfhfiaefefeaeacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaffjfkflfmfnfofpfnfqfrfrfsftfufvftfwfxfyfzfnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamanfAfBfCfnfDfEfnfFfGfvfHfIfHfJfKfLfMfMfNfeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamanfnfOfPfnfQfRfnfSfTfHfUfVfvfHfVfWfMfXfYfnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamfifjfBfZgagbgcfjaefffIgdgegfgfggfBghfiaefjfefeacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfefkgifHgjgkglfHfHgmfnfvfHfHfHfvfHfHfHfngngogpgqfeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaftgrftgsfHgtgugugugvfHftfHgwgxglfHgygzfHftgAfvfHgBfeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafhfvgCfvfHgDgEgFgGgHfvgIfHgJgKgLgMgAgNfvgOfHfHgPgQfeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafVgRfVgSfHgvgTgTgTgtfHfVfHgqgUfHfvgVgWfHfVgXglgYgZfeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjfefkhafHfHfHfHfHfHfHfnfHfHhbfHfHfHfHfHfnhchdhehffeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamggfdaehghhgdffhigdfjaefdfBhjgdfdhkhlggaefdfefebkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamanfnhmhnfHhofnfHhphqhrfnhsfHhtfnhufvhvhwfnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamanfnhxfvfHhyhzhAfvhBhCfnhDhEhFfnhGhHhIhJfeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFfdfkhKhKhLhKfnhMhNhOhPfnhQhRhSfnhThUhVhWfnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjfjaefefeaefjaefefeaefjaefeaefjaefefeaebkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcaefdfcfdaefcaefdfdaefefffgfhaefdfdaeacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaffifjfkflfmfnfofmfpfqfqfrfsftfufsfvfwfxfyfmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamanfzfAfBfmfCfDfmfEfFfufGfHfGfIfJfKfLfLfMfdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamanfmfNfOfmfPfQfmfRfSfGfTfUfufGfUfVfLfWfXfmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamfhfifAfYfZgagbfiaefefHgcgdgegegffAggfhaefifdfdacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfdfjghfGgigjgkfGfGglfmfufGfGfGfufGfGfGfmgmgngogpfdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafsgqfsgrfGgsgtgtgtgufGfsfGgvgwgkfGgvgxfGfsgyfufGgzfdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafgfugAfufGgBgCgDgEgFfugGfGgHgIgJgKgLgMfugNfGfGgOgPfdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafUgQfUgRfGgugSgSgSgsfGfUfGgTgUfGfugVgUfGfUgWgkgXgYfdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjfdfjgZfGfGfGfGfGfGfGfmfGfGhafGfGfGfGfGfmhbhchdhefdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamgffcaehfhggcfehhgcfiaefcfAhigcfchjhkgfaefcfdfdbkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamanfmhlhmfuhnfmfGhohphqfmhrfGhsfmhtfuhuhvfmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamanfmhwfufGhxhyhzfuhAhBfmhChDhEfmhFhGhHhIfdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFfcfjhJhJhKhJfmhLhMhNhOfmhPhQhRfmhShThUhVfmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjfiaefdfdaefiaefdfdaefiaefdaefiaefdfdaebkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/_maps/map_files/MetaStation/z4.dmm b/_maps/map_files/MetaStation/z4.dmm
new file mode 100644
index 00000000000..2f3c901147a
--- /dev/null
+++ b/_maps/map_files/MetaStation/z4.dmm
@@ -0,0 +1,1079 @@
+"aa" = (/turf/space,/area/space)
+"ab" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/space)
+"ac" = (/obj/machinery/power/solar/fake,/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/djstation/solars)
+"ad" = (/turf/simulated/floor/plating/airless,/area/djstation/solars)
+"ae" = (/obj/structure/lattice,/turf/space,/area/space)
+"af" = (/turf/simulated/wall,/area/djstation)
+"ag" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/djstation)
+"ah" = (/turf/simulated/floor/plating,/area/djstation)
+"ai" = (/obj/machinery/telecomms/relay/preset/ruskie,/obj/machinery/light{dir = 1},/turf/simulated/floor/plating,/area/djstation)
+"aj" = (/obj/machinery/power/terminal,/turf/simulated/floor/plating,/area/djstation)
+"ak" = (/obj/item/device/multitool,/turf/simulated/floor/plating,/area/djstation)
+"al" = (/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/turf/simulated/floor/plating,/area/djstation)
+"am" = (/obj/item/weapon/extinguisher,/turf/simulated/floor/plating,/area/djstation)
+"an" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/smes/magical{desc = "A high-capacity superconducting magnetic energy storage (SMES) unit."; name = "power storage unit"},/turf/simulated/floor/plating,/area/djstation)
+"ao" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/djstation)
+"ap" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/plating,/area/djstation)
+"aq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/storage/box/lights/mixed,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/djstation)
+"ar" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/djstation)
+"as" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate/orange,/obj/item/clothing/head/helmet/space/syndicate/orange,/obj/item/clothing/mask/breath,/turf/simulated/floor/plating,/area/djstation)
+"at" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/plating,/area/djstation)
+"au" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/djstation)
+"av" = (/obj/machinery/vending/snack,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/djstation)
+"aw" = (/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/djstation)
+"ax" = (/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/djstation)
+"ay" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/djstation)
+"az" = (/obj/structure/table,/obj/machinery/cell_charger,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/djstation)
+"aA" = (/turf/simulated/floor/plasteel{icon_state = "bar"},/area/djstation)
+"aB" = (/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/djstation)
+"aC" = (/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/djstation)
+"aD" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/djstation)
+"aE" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/djstation)
+"aF" = (/obj/structure/table,/obj/machinery/microwave{pixel_y = 8},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/djstation)
+"aG" = (/obj/machinery/door/airlock/glass{name = "Kitchen"},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/djstation)
+"aH" = (/obj/structure/table,/obj/item/device/radio/intercom{broadcasting = 0; dir = 8; freerange = 1; listening = 1; name = "Pirate Radio Listening Channel"; pixel_x = 0},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/djstation)
+"aI" = (/obj/structure/stool/bed/chair/office/light,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/djstation)
+"aJ" = (/obj/machinery/door/airlock/glass{name = "Rest Room"},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/djstation)
+"aK" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/djstation)
+"aL" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/djstation)
+"aM" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/djstation)
+"aN" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/djstation)
+"aO" = (/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/djstation)
+"aP" = (/obj/structure/table,/obj/item/device/radio/intercom{broadcasting = 1; dir = 8; freerange = 1; listening = 0; name = "Pirate Radio Broadcast Channel"; pixel_x = 0},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/djstation)
+"aQ" = (/obj/structure/table,/obj/item/weapon/paper/djstation,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/djstation)
+"aR" = (/obj/structure/computerframe{anchored = 1},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/djstation)
+"aS" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/djstation)
+"aT" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/djstation)
+"aU" = (/obj/structure/closet,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/djstation)
+"aV" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/djstation)
+"aW" = (/obj/machinery/door/airlock/hatch{name = "Washroom"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/djstation)
+"aX" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/djstation)
+"aY" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/airless,/area/space)
+"aZ" = (/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/djstation)
+"ba" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/djstation)
+"bb" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/space_heater,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/djstation)
+"bc" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/rack{dir = 4},/obj/item/clothing/under/soviet,/obj/item/clothing/head/ushanka,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/djstation)
+"bd" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/djstation)
+"be" = (/obj/structure/toilet{pixel_y = 8},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/djstation)
+"bf" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/djstation)
+"bg" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/djstation)
+"bh" = (/obj/machinery/power/tracker,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plasteel/airless,/area/solar/derelict_starboard)
+"bi" = (/obj/machinery/door/airlock/external{name = "Ruskie DJ Station"; req_access = null; req_access_txt = "0"},/turf/simulated/floor/plating,/area/djstation)
+"bj" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/space,/area/solar/derelict_starboard)
+"bk" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/disposaloutlet,/turf/simulated/floor/plating/airless,/area/space)
+"bl" = (/turf/simulated/floor/plating/airless,/turf/simulated/floor/plating/airless{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/solar/derelict_starboard)
+"bm" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plasteel{tag = "icon-damaged5"; icon_state = "damaged5"},/area/solar/derelict_starboard)
+"bn" = (/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plasteel/airless,/area/solar/derelict_starboard)
+"bo" = (/obj/structure/lattice/catwalk,/turf/space,/area/solar/derelict_starboard)
+"bp" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/space,/area/solar/derelict_starboard)
+"bq" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/space,/area/solar/derelict_starboard)
+"br" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/space,/area/solar/derelict_starboard)
+"bs" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/space,/area/solar/derelict_starboard)
+"bt" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/space,/area/solar/derelict_starboard)
+"bu" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/space,/area/solar/derelict_starboard)
+"bv" = (/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/obj/structure/cable,/turf/simulated/floor/plasteel/airless,/area/solar/derelict_starboard)
+"bw" = (/obj/structure/lattice/catwalk,/obj/structure/cable,/turf/space,/area/solar/derelict_starboard)
+"bx" = (/obj/structure/lattice/catwalk,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/space,/area/solar/derelict_starboard)
+"by" = (/turf/simulated/wall,/area/derelict/solar_control)
+"bz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/derelict/solar_control)
+"bA" = (/obj/machinery/door/airlock/external{name = "External Engineering"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/derelict/solar_control)
+"bB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/derelict/solar_control)
+"bC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/derelict/solar_control)
+"bD" = (/turf/simulated/wall/r_wall,/area/derelict/bridge/ai_upload)
+"bE" = (/turf/simulated/floor/plating,/area/space)
+"bF" = (/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"bG" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"bH" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"bI" = (/obj/machinery/power/smes,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"bJ" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar_control{id = "derelictsolar"; name = "Primary Solar Control"; track = 0},/obj/structure/cable,/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"bK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/derelict/solar_control)
+"bL" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"bM" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"bN" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"bO" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"bP" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload)
+"bQ" = (/obj/machinery/door/airlock/external{name = "Air Bridge Access"},/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload)
+"bR" = (/obj/machinery/door/airlock/external{name = "Air Bridge Access"},/turf/simulated/floor/plating,/area/derelict/solar_control)
+"bS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"bT" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"bU" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"bV" = (/obj/machinery/door/window,/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"bW" = (/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload)
+"bX" = (/turf/simulated/wall/r_wall,/area/derelict/solar_control)
+"bY" = (/obj/machinery/power/apc{dir = 8; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Starboard Solar APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"bZ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"ca" = (/obj/machinery/door/airlock/external{name = "External Engineering"},/turf/simulated/floor/plating,/area/derelict/solar_control)
+"cb" = (/obj/machinery/door/airlock/highsecurity,/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload)
+"cc" = (/obj/structure/computerframe,/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload)
+"cd" = (/turf/simulated/floor/plating/airless,/area/space)
+"ce" = (/turf/simulated/wall/r_wall,/area/space)
+"cf" = (/obj/machinery/computer/monitor,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"cg" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small,/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"ch" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"ci" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/derelict/solar_control)
+"cj" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/space)
+"ck" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload)
+"cl" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/porta_turret_cover,/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload)
+"cm" = (/obj/machinery/porta_turret_cover,/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload)
+"cn" = (/obj/machinery/door/airlock/engineering{name = "Starboard Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"co" = (/obj/structure/grille,/turf/space,/area/space)
+"cp" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/derelict/bridge/ai_upload)
+"cq" = (/obj/structure/closet,/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"cr" = (/turf/simulated/wall,/area/derelict/bridge/ai_upload)
+"cs" = (/obj/machinery/door/window,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"ct" = (/obj/machinery/computer/atmos_alert,/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload)
+"cu" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload)
+"cv" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload)
+"cw" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"cx" = (/turf/simulated/floor/plasteel{tag = "icon-damaged1"; icon_state = "damaged1"},/area/derelict/solar_control)
+"cy" = (/obj/machinery/door/window,/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload)
+"cz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{tag = "icon-damaged5"; icon_state = "damaged5"},/area/derelict/solar_control)
+"cA" = (/turf/simulated/floor/plasteel{tag = "icon-damaged4"; icon_state = "damaged4"},/area/derelict/solar_control)
+"cB" = (/obj/structure/rack,/obj/item/weapon/circuitboard/smes,/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload)
+"cC" = (/obj/structure/rack,/obj/item/weapon/circuitboard/microwave,/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload)
+"cD" = (/obj/structure/rack,/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload)
+"cE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{tag = "icon-damaged2"; icon_state = "damaged2"},/area/derelict/solar_control)
+"cF" = (/turf/simulated/floor/plasteel{tag = "icon-damaged3"; icon_state = "damaged3"},/area/derelict/solar_control)
+"cG" = (/obj/structure/rack,/obj/item/weapon/circuitboard/cryo_tube,/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload)
+"cH" = (/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload)
+"cI" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/bridge/ai_upload)
+"cJ" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/bridge/ai_upload)
+"cK" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload)
+"cL" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/bridge/ai_upload)
+"cM" = (/turf/space,/area/derelict/bridge/ai_upload)
+"cN" = (/turf/simulated/floor/plasteel{tag = "icon-bcircuit"; icon_state = "bcircuit"},/area/derelict/bridge/ai_upload)
+"cO" = (/turf/simulated/floor/plating/airless,/area/derelict/bridge/ai_upload)
+"cP" = (/obj/item/device/aicard,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/bridge/ai_upload)
+"cQ" = (/obj/structure/lattice,/turf/space,/area/derelict/bridge/ai_upload)
+"cR" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"cS" = (/obj/structure/rack,/obj/item/weapon/circuitboard/solar_control,/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload)
+"cT" = (/obj/structure/rack,/obj/item/weapon/circuitboard/autolathe,/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload)
+"cU" = (/obj/machinery/power/apc{dir = 8; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload)
+"cV" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{tag = "icon-bcircuit"; icon_state = "bcircuit"},/area/derelict/bridge/ai_upload)
+"cW" = (/obj/structure/computerframe,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload)
+"cX" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"cY" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/space)
+"cZ" = (/obj/machinery/porta_turret_cover,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload)
+"da" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel{tag = "icon-bcircuit"; icon_state = "bcircuit"},/area/derelict/bridge/ai_upload)
+"db" = (/obj/machinery/light,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/ai_upload)
+"dc" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/wall/r_wall,/area/derelict/bridge/ai_upload)
+"dd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall/r_wall,/area/derelict/bridge/ai_upload)
+"de" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/wall/r_wall,/area/derelict/bridge/ai_upload)
+"df" = (/turf/simulated/wall,/area/space)
+"dg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/derelict/bridge/ai_upload)
+"dh" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"di" = (/turf/simulated/wall/r_wall,/area/derelict/gravity_generator)
+"dj" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel,/area/derelict/solar_control)
+"dk" = (/obj/item/weapon/ore/iron,/obj/item/weapon/ore/iron,/obj/item/weapon/ore/iron,/turf/space,/area/space)
+"dl" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/gravity_generator)
+"dm" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/gravity_generator)
+"dn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/wall,/area/derelict/bridge/access)
+"do" = (/turf/simulated/wall,/area/derelict/bridge/access)
+"dp" = (/obj/machinery/door/airlock/maintenance,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"dq" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/gravity_generator)
+"dr" = (/obj/item/weapon/ore/slag,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/gravity_generator)
+"ds" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/gravity_generator)
+"dt" = (/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"du" = (/obj/structure/rack,/obj/item/weapon/melee/classic_baton,/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"dv" = (/obj/structure/rack,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"dw" = (/obj/structure/rack,/obj/item/clothing/head/helmet/swat,/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"dx" = (/obj/structure/rack,/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"dy" = (/obj/structure/rack,/obj/item/weapon/module/power_control,/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"dz" = (/obj/structure/rack,/obj/item/weapon/circuitboard/smes,/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"dA" = (/obj/structure/rack,/obj/item/weapon/stock_parts/capacitor,/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"dB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"dC" = (/obj/item/weapon/screwdriver,/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/gravity_generator)
+"dD" = (/obj/machinery/gravity_generator/main/station{on = 0},/turf/simulated/floor/plasteel/airless,/area/derelict/gravity_generator)
+"dE" = (/obj/item/weapon/ore/slag,/turf/space,/area/space)
+"dF" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/wall,/area/derelict/bridge/access)
+"dG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"dH" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"dI" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"dJ" = (/turf/simulated/floor/plasteel/airless,/area/derelict/gravity_generator)
+"dK" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/gravity_generator)
+"dL" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"dM" = (/obj/structure/rack,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high,/obj/item/weapon/stock_parts/cell/high,/turf/simulated/floor/plating,/area/derelict/bridge/access)
+"dN" = (/obj/machinery/light/small{dir = 4},/obj/structure/rack,/obj/item/stack/cable_coil/cut,/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"dO" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/derelict/bridge/access)
+"dP" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/derelict/bridge/access)
+"dQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/derelict/bridge/access)
+"dR" = (/obj/machinery/door/airlock/command{name = "E.V.A."; req_access = null; req_access_txt = "18"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"dS" = (/obj/machinery/door/airlock/engineering{name = "Engineering Secure Storage"; req_access_txt = "10"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"dT" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"dU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/gravity_generator)
+"dV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/derelict/gravity_generator)
+"dW" = (/obj/machinery/door/airlock/engineering{name = "Engineering Access"; req_access_txt = "10"},/turf/simulated/floor/plasteel,/area/derelict/gravity_generator)
+"dX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/gravity_generator)
+"dY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/gravity_generator)
+"dZ" = (/turf/simulated/floor/plating,/area/derelict/bridge/access)
+"ea" = (/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/space)
+"eb" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/item/apc_frame,/turf/simulated/floor/plating,/area/derelict/gravity_generator)
+"ec" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/derelict/gravity_generator)
+"ed" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/derelict/gravity_generator)
+"ee" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/constructable_frame/machine_frame,/turf/simulated/floor/plating,/area/derelict/gravity_generator)
+"ef" = (/obj/item/stack/cable_coil/cut,/turf/space,/area/space)
+"eg" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"eh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/derelict/bridge/access)
+"ei" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"ej" = (/obj/machinery/door/airlock/glass,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"ek" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"el" = (/turf/simulated/wall/r_wall,/area/derelict/singularity_engine)
+"em" = (/obj/machinery/light/small{dir = 8},/obj/structure/table,/obj/item/weapon/paper{info = "If the equipment breaks there should be enough spare parts in our engineering storage near the north east solar array."; name = "Equipment Inventory"},/turf/simulated/floor/plasteel,/area/derelict/gravity_generator)
+"en" = (/turf/simulated/floor/plasteel,/area/derelict/gravity_generator)
+"eo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/derelict/gravity_generator)
+"ep" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/derelict/gravity_generator)
+"eq" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"er" = (/obj/machinery/door/window,/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"es" = (/obj/structure/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"et" = (/turf/simulated/wall,/area/derelict/bridge)
+"eu" = (/obj/structure/sign/electricshock,/turf/simulated/wall/r_wall,/area/derelict/singularity_engine)
+"ev" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/derelict/singularity_engine)
+"ew" = (/obj/machinery/door/airlock/engineering{name = "Engineering Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/derelict/gravity_generator)
+"ex" = (/obj/structure/sign/securearea{name = "ENGINEERING ACCESS"},/turf/simulated/wall/r_wall,/area/derelict/gravity_generator)
+"ey" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"ez" = (/obj/structure/computerframe,/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"eA" = (/obj/structure/computerframe,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"eB" = (/obj/structure/table,/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"eC" = (/obj/machinery/computer/security,/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"eD" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"eE" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"eF" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"eG" = (/obj/item/weapon/grenade/empgrenade,/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"eH" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
+"eI" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
+"eJ" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
+"eK" = (/obj/item/stack/cable_coil/cut,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"eL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"eM" = (/obj/machinery/door/airlock/engineering{name = "Engineering Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/derelict/gravity_generator)
+"eN" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/derelict/gravity_generator)
+"eO" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/gravity_generator)
+"eP" = (/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"eQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/derelict/bridge/access)
+"eR" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"eS" = (/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"eT" = (/turf/simulated/floor/plating,/area/derelict/bridge)
+"eU" = (/obj/structure/table,/obj/item/weapon/paper/crumpled,/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"eV" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"eW" = (/obj/structure/window/reinforced,/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
+"eX" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
+"eY" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
+"eZ" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
+"fa" = (/obj/structure/closet/radiation,/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel,/area/derelict/gravity_generator)
+"fb" = (/turf/simulated/wall,/area/derelict/gravity_generator)
+"fc" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"fd" = (/obj/machinery/power/emitter{dir = 1; icon_state = "emitter"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"fe" = (/obj/machinery/field/generator,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"ff" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"fg" = (/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"fh" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plating,/area/derelict/bridge)
+"fi" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"fj" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"fk" = (/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/space)
+"fl" = (/obj/structure/grille,/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"fm" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"fn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"fo" = (/obj/structure/noticeboard,/turf/simulated/wall/r_wall,/area/derelict/singularity_engine)
+"fp" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"fq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"fr" = (/obj/machinery/door/window/eastleft{name = "Heads of Staff"; req_access_txt = "19"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"fs" = (/obj/structure/table,/obj/item/device/paicard,/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"ft" = (/obj/structure/stool,/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"fu" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"fv" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"fw" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
+"fx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"fy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"fz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/derelict/bridge/access)
+"fA" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"fB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"fC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"fD" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"fE" = (/obj/item/weapon/paper{info = "Objective #1: Destroy the station with a nuclear device."; name = "Objectives of a Nuclear Operative"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"fF" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/derelict/bridge/access)
+"fG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"fH" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"fI" = (/obj/structure/table,/obj/item/weapon/screwdriver,/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"fJ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"fK" = (/obj/item/stack/rods,/turf/space,/area/space)
+"fL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"fM" = (/obj/item/weapon/shard,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"fN" = (/obj/item/clothing/suit/space/syndicate/black/engie,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"fO" = (/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"fP" = (/obj/item/weapon/shard,/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
+"fQ" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"fR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"fS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"fT" = (/obj/structure/table,/obj/item/weapon/rack_parts,/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"fU" = (/obj/structure/window/fulltile,/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"fV" = (/obj/structure/table,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"fW" = (/obj/structure/table,/obj/machinery/light/small,/turf/simulated/floor/plasteel,/area/derelict/bridge)
+"fX" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"fY" = (/obj/item/clothing/head/helmet/space/syndicate/black/engie,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"fZ" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"ga" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"gb" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"gc" = (/turf/simulated/wall/r_wall,/area/derelict/bridge)
+"gd" = (/obj/machinery/door/window{dir = 2; name = "Captain's Quarters"; req_access_txt = "20"},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/derelict/bridge)
+"ge" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"gf" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"gg" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"gh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"gi" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
+"gj" = (/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"gk" = (/obj/structure/table,/obj/item/device/flash/handheld,/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"gl" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"gm" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"gn" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"go" = (/turf/space,/area/derelict/bridge/access)
+"gp" = (/obj/structure/girder,/turf/simulated/floor/plating/airless,/area/space)
+"gq" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"gr" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"gs" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
+"gt" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"gu" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"gv" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
+"gw" = (/obj/machinery/door/window,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
+"gx" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"gy" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"gz" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"gA" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
+"gB" = (/obj/structure/grille,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
+"gC" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
+"gD" = (/obj/machinery/door/airlock/maintenance{name = "Tech Storage"; req_access_txt = "23"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"gE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/derelict/bridge/access)
+"gF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"gG" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
+"gH" = (/obj/item/weapon/screwdriver,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"gI" = (/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"gJ" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"gK" = (/obj/structure/table,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"gL" = (/turf/simulated/wall,/area/derelict/hallway/primary)
+"gM" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/hallway/primary)
+"gN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary)
+"gO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"gP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating/airless,/area/derelict/bridge/access)
+"gQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"gR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"gS" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"gT" = (/obj/item/weapon/ore/slag,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"gU" = (/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"gV" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"gW" = (/turf/simulated/wall/r_wall,/area/derelict/hallway/primary)
+"gX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
+"gY" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/hallway/primary)
+"gZ" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary)
+"ha" = (/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"hb" = (/obj/structure/window/fulltile{dir = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"hc" = (/turf/simulated/floor/plasteel/airless,/area/space)
+"hd" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"he" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"hf" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"hg" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"hh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"hi" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
+"hj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
+"hk" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/hallway/primary)
+"hl" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/derelict/hallway/primary)
+"hm" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"hn" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/plasteel/airless,/area/derelict/bridge/access)
+"ho" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/space)
+"hp" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/space)
+"hq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"hr" = (/obj/machinery/door/window,/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
+"hs" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/space)
+"ht" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"hu" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"hv" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
+"hw" = (/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
+"hx" = (/obj/item/weapon/crowbar,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"hy" = (/obj/structure/grille,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"hz" = (/obj/structure/girder,/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
+"hA" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/space)
+"hB" = (/obj/item/weapon/shard{icon_state = "small"},/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"hC" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"hD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"hE" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
+"hF" = (/obj/structure/window/fulltile{dir = 5},/turf/space,/area/space)
+"hG" = (/turf/simulated/wall/r_wall,/area/derelict/arrival)
+"hH" = (/turf/simulated/wall,/area/derelict/arrival)
+"hI" = (/turf/simulated/wall,/area/derelict/medical/chapel)
+"hJ" = (/turf/simulated/wall,/area/derelict/singularity_engine)
+"hK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"hL" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary)
+"hM" = (/obj/structure/lattice,/obj/structure/window/fulltile,/turf/space,/area/space)
+"hN" = (/obj/structure/table,/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"hO" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"hP" = (/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"hQ" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"hR" = (/obj/structure/stool/bed/chair{dir = 8},/obj/item/weapon/pen,/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"hS" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"hT" = (/obj/structure/closet/coffin,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
+"hU" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
+"hV" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
+"hW" = (/obj/item/weapon/shard,/turf/space,/area/space)
+"hX" = (/obj/structure/grille,/turf/space,/area/derelict/singularity_engine)
+"hY" = (/obj/item/weapon/shard,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
+"hZ" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/derelict/arrival)
+"ia" = (/turf/simulated/floor/plating/airless,/area/derelict/arrival)
+"ib" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/arrival)
+"ic" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
+"id" = (/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "6"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
+"ie" = (/turf/simulated/wall,/area/derelict/medical)
+"if" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/medical)
+"ig" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/medical)
+"ih" = (/obj/item/weapon/shard,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/derelict/medical)
+"ii" = (/turf/simulated/floor/plating/airless,/area/derelict/medical)
+"ij" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/derelict/medical)
+"ik" = (/obj/machinery/door/airlock/external{name = "External Engineering"},/turf/simulated/floor/plating/airless,/area/space)
+"il" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/hallway/primary)
+"im" = (/obj/machinery/door/window{dir = 8},/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"in" = (/obj/structure/table,/obj/machinery/computer/pod/old{name = "ProComp IIe"; pixel_y = 7; id = "derelict_gun"},/turf/simulated/floor/plasteel{icon_state = "chapel"},/area/derelict/medical/chapel)
+"io" = (/obj/machinery/door/morgue{name = "coffin storage"; req_access_txt = "22"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
+"ip" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
+"iq" = (/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"ir" = (/obj/item/weapon/firstaid_arm_assembly,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"is" = (/obj/structure/closet,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/medical)
+"it" = (/obj/structure/computerframe,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical)
+"iu" = (/obj/machinery/light{dir = 1},/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating/airless,/area/derelict/medical)
+"iv" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
+"iw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
+"ix" = (/obj/structure/window/fulltile{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
+"iy" = (/obj/structure/lattice,/obj/structure/window/fulltile{dir = 1},/turf/space,/area/space)
+"iz" = (/obj/structure/lattice,/obj/structure/lattice,/obj/structure/window/fulltile{dir = 1},/turf/space,/area/space)
+"iA" = (/turf/simulated/floor/plating,/area/derelict/arrival)
+"iB" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/space,/area/space)
+"iC" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel)
+"iD" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/derelict/medical/chapel)
+"iE" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel)
+"iF" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel)
+"iG" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"iH" = (/obj/item/stack/medical/bruise_pack,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"iI" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/medical)
+"iJ" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical)
+"iK" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/medical)
+"iL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/hallway/primary)
+"iM" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/space)
+"iN" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plating/airless,/area/space)
+"iO" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"iP" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"iQ" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "chapel"},/area/derelict/medical/chapel)
+"iR" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel{icon_state = "chapel"},/area/derelict/medical/chapel)
+"iS" = (/obj/structure/table,/turf/simulated/floor/plasteel{dir = 8; icon_state = "chapel"},/area/derelict/medical/chapel)
+"iT" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{icon_state = "chapel"},/area/derelict/medical/chapel)
+"iU" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "chapel"},/area/derelict/medical/chapel)
+"iV" = (/turf/simulated/floor/plasteel{icon_state = "chapel"},/area/derelict/medical/chapel)
+"iW" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical)
+"iX" = (/obj/structure/table,/turf/simulated/floor/plating/airless,/area/derelict/medical)
+"iY" = (/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
+"iZ" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"ja" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"jb" = (/obj/structure/window/reinforced,/turf/space,/area/space)
+"jc" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/grille,/turf/space,/area/space)
+"jd" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel)
+"je" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/derelict/medical/chapel)
+"jf" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel)
+"jg" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
+"jh" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/derelict/medical/chapel)
+"ji" = (/obj/machinery/sleeper{tag = "icon-sleeper-open (EAST)"; icon_state = "sleeper-open"; dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"jj" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"jk" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"jl" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/space)
+"jm" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/space)
+"jn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary)
+"jo" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"jp" = (/obj/machinery/door/poddoor{id = "derelict_gun"; name = "Derelict Mass Driver"},/turf/simulated/floor/plating,/area/derelict/medical/chapel)
+"jq" = (/turf/simulated/floor/plating,/area/derelict/medical/chapel)
+"jr" = (/obj/machinery/mass_driver{dir = 8; icon_state = "mass_driver"; id = "derelict_gun"},/obj/machinery/door/window{dir = 4; req_access_txt = "25"},/obj/structure/closet/coffin,/turf/simulated/floor/plating,/area/derelict/medical/chapel)
+"js" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"jt" = (/obj/item/stack/medical/bruise_pack,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/medical)
+"ju" = (/obj/item/stack/medical/ointment,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical)
+"jv" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/medical)
+"jw" = (/obj/structure/closet/l3closet,/turf/simulated/floor/plating/airless,/area/space)
+"jx" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/space)
+"jy" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area/space)
+"jz" = (/obj/structure/window/reinforced{dir = 1},/turf/space,/area/space)
+"jA" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/space,/area/space)
+"jB" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel)
+"jC" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/derelict/medical/chapel)
+"jD" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/derelict/medical/chapel)
+"jE" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/derelict/medical/chapel)
+"jF" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"jG" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"jH" = (/obj/machinery/door/airlock/glass{name = "Med-Sci"; req_access_txt = "9"},/turf/simulated/floor/plating/airless,/area/derelict/medical)
+"jI" = (/obj/structure/table,/turf/simulated/floor/plating/airless,/area/space)
+"jJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"jK" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"jL" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "chapel"},/area/derelict/medical/chapel)
+"jM" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/wall,/area/derelict/medical/chapel)
+"jN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall,/area/derelict/medical/chapel)
+"jO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"jP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"jQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"jR" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"jS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"jT" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/medical)
+"jU" = (/obj/structure/closet/wardrobe/genetics_white,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"jV" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/space)
+"jW" = (/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/space)
+"jX" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/space)
+"jY" = (/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/space)
+"jZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"ka" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/hallway/primary)
+"kb" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"kc" = (/obj/item/weapon/pen,/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"kd" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/derelict/medical/chapel)
+"ke" = (/obj/machinery/door/window{dir = 8},/turf/simulated/floor/plasteel/airless,/area/derelict/medical/chapel)
+"kf" = (/turf/simulated/floor/plasteel/airless,/area/derelict/medical/chapel)
+"kg" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless,/area/derelict/medical/chapel)
+"kh" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "Worn-out APC"; pixel_x = 24; pixel_y = 0},/turf/simulated/floor/plasteel/airless,/area/derelict/medical/chapel)
+"ki" = (/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"kj" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/stool/bed,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"kk" = (/obj/item/stack/medical/ointment,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"kl" = (/obj/structure/stool/bed,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"km" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/medical)
+"kn" = (/obj/machinery/door/airlock/medical{name = "Medical"},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"ko" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/space)
+"kp" = (/obj/structure/window/fulltile,/turf/space,/area/space)
+"kq" = (/obj/structure/window/fulltile{dir = 8},/turf/space,/area/space)
+"kr" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"ks" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"kt" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/derelict/arrival)
+"ku" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/derelict/arrival)
+"kv" = (/turf/simulated/wall/r_wall,/area/derelict/medical/chapel)
+"kw" = (/obj/machinery/door/window,/turf/simulated/floor/plasteel/airless,/area/derelict/medical/chapel)
+"kx" = (/obj/machinery/door/window/southleft,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"ky" = (/obj/machinery/door/window/southright,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
+"kz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"kA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Toxins Research"; req_access_txt = "7"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"kB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/space)
+"kC" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless,/area/space)
+"kD" = (/obj/structure/window/fulltile{dir = 8},/obj/structure/window/fulltile,/turf/space,/area/space)
+"kE" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area/space)
+"kF" = (/obj/machinery/door/airlock/external{name = "Arrivals Docking Bay 1"},/turf/simulated/floor/plating,/area/derelict/arrival)
+"kG" = (/obj/structure/lattice,/turf/space,/area/derelict/medical/chapel)
+"kH" = (/turf/space,/area/derelict/medical/chapel)
+"kI" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/medical/chapel)
+"kJ" = (/obj/structure/closet,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"kK" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"kL" = (/obj/structure/computerframe,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"kM" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel/airless,/area/space)
+"kN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless,/area/space)
+"kO" = (/obj/structure/window/fulltile{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless,/area/space)
+"kP" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/space)
+"kQ" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless,/area/space)
+"kR" = (/obj/structure/window/fulltile,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/space)
+"kS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Toxins Research"; req_access_txt = "7"},/turf/simulated/floor/plasteel/airless,/area/derelict/arrival)
+"kT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"kU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/derelict/arrival)
+"kV" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"kW" = (/turf/simulated/floor/plating/airless,/area/derelict/medical/chapel)
+"kX" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/medical/chapel)
+"kY" = (/obj/machinery/door/airlock/command{name = "Teleporter Room"},/turf/simulated/floor/plasteel/airless,/area/derelict/medical/chapel)
+"kZ" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"la" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"lb" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"lc" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"ld" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"le" = (/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"lf" = (/obj/structure/window/fulltile{dir = 1},/turf/space,/area/space)
+"lg" = (/obj/structure/window/fulltile{dir = 5},/turf/simulated/floor/plating/airless,/area/space)
+"lh" = (/obj/structure/grille,/obj/structure/window/fulltile{dir = 1},/turf/space,/area/space)
+"li" = (/obj/structure/window/fulltile{dir = 1},/turf/simulated/floor/plating/airless,/area/space)
+"lj" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"lk" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"ll" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"lm" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"ln" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"lo" = (/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"lp" = (/obj/machinery/door/window,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"lq" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"lr" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"ls" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"lt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/derelict/hallway/primary)
+"lu" = (/obj/structure/girder,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"lv" = (/obj/structure/girder,/turf/simulated/floor/plasteel/airless,/area/space)
+"lw" = (/obj/structure/lattice,/obj/structure/window/fulltile{dir = 4},/turf/space,/area/space)
+"lx" = (/obj/structure/girder,/obj/structure/window/fulltile,/turf/simulated/floor/plating/airless,/area/derelict/arrival)
+"ly" = (/obj/structure/stool/bed,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"lz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
+"lA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
+"lB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
+"lC" = (/obj/machinery/door/airlock/security{name = "Security"; req_access = null; req_access_txt = "1"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"lD" = (/obj/machinery/door/window,/turf/simulated/floor/plasteel/airless,/area/space)
+"lE" = (/obj/item/weapon/cigbutt,/turf/space,/area/space)
+"lF" = (/obj/structure/window/fulltile{dir = 1},/turf/simulated/floor/plating,/area/derelict/arrival)
+"lG" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"lH" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"lI" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"lJ" = (/obj/machinery/vending/sovietsoda,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"lK" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"lL" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless,/area/space)
+"lM" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless,/area/space)
+"lN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/space)
+"lO" = (/obj/structure/lattice,/obj/item/stack/cable_coil/cut,/turf/space,/area/space)
+"lP" = (/obj/structure/girder,/turf/simulated/floor/plating,/area/derelict/arrival)
+"lQ" = (/obj/structure/stool,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"lR" = (/obj/machinery/door/airlock/maintenance{name = "Atmospherics Access"; req_access_txt = "24"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
+"lS" = (/obj/structure/closet/wardrobe/orange,/turf/simulated/floor/plasteel/airless,/area/space)
+"lT" = (/obj/structure/window/fulltile{dir = 4},/turf/space,/area/space)
+"lU" = (/obj/structure/grille,/turf/simulated/floor/plating,/area/derelict/arrival)
+"lV" = (/obj/structure/closet/wardrobe,/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"lW" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/derelict/hallway/primary)
+"lX" = (/obj/structure/closet,/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
+"lY" = (/turf/simulated/floor/plasteel,/area/derelict/atmospherics)
+"lZ" = (/turf/simulated/floor/plating,/area/derelict/atmospherics)
+"ma" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/derelict/atmospherics)
+"mb" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/derelict/atmospherics)
+"mc" = (/turf/simulated/wall,/area/derelict/atmospherics)
+"md" = (/turf/simulated/floor/plating/airless,/area/derelict/atmospherics)
+"me" = (/turf/simulated/wall/r_wall,/area/derelict/atmospherics)
+"mf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless,/area/space)
+"mg" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless,/area/space)
+"mh" = (/obj/structure/grille,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/space)
+"mi" = (/obj/structure/stool/bed,/turf/simulated/floor/plasteel/airless,/area/space)
+"mj" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorgrime"},/area/derelict/hallway/primary)
+"mk" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/hallway/primary)
+"ml" = (/obj/structure/table,/obj/item/device/healthanalyzer,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"mm" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/atmospherics)
+"mn" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (EAST)"; dir = 4},/turf/simulated/floor/plating,/area/derelict/atmospherics)
+"mo" = (/obj/machinery/atmospherics/unary/portables_connector/visible{tag = "icon-connector_map (WEST)"; icon_state = "connector_map"; dir = 8},/turf/simulated/floor/plating,/area/derelict/atmospherics)
+"mp" = (/obj/machinery/door/airlock/maintenance{name = "Atmospherics Access"; req_access_txt = "24"},/turf/simulated/floor/plating/airless,/area/derelict/atmospherics)
+"mq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/space)
+"mr" = (/obj/structure/closet/wardrobe/mixed,/turf/simulated/floor/plasteel,/area/derelict/arrival)
+"ms" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/hyper,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
+"mt" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/atmospherics)
+"mu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor/plating,/area/derelict/atmospherics)
+"mv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/turf/simulated/floor/plating,/area/derelict/atmospherics)
+"mw" = (/turf/simulated/floor/plasteel/airless,/area/derelict/atmospherics)
+"mx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/space)
+"my" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/derelict/arrival)
+"mz" = (/obj/machinery/door/airlock/external{name = "Escape Airlock"},/turf/simulated/floor/plating,/area/derelict/arrival)
+"mA" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating,/area/derelict/atmospherics)
+"mB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/space)
+"mC" = (/obj/machinery/door/window{dir = 8},/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless,/area/space)
+"mD" = (/turf/simulated/wall,/area/derelict/hallway/secondary)
+"mE" = (/obj/structure/girder,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
+"mF" = (/turf/simulated/wall/r_wall,/area/derelict/hallway/secondary)
+"mG" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/space)
+"mH" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/derelict/atmospherics)
+"mI" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/derelict/atmospherics)
+"mJ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/space)
+"mK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall/r_wall,/area/space)
+"mL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall/r_wall,/area/derelict/hallway/secondary)
+"mM" = (/obj/structure/window/fulltile{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
+"mN" = (/obj/structure/grille,/obj/item/weapon/shard,/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/space)
+"mO" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating/airless,/area/space)
+"mP" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel,/area/derelict/atmospherics)
+"mQ" = (/turf/simulated/floor/plasteel{tag = "icon-damaged5"; icon_state = "damaged5"},/area/derelict/atmospherics)
+"mR" = (/turf/simulated/floor/plasteel{tag = "icon-damaged2"; icon_state = "damaged2"},/area/derelict/atmospherics)
+"mS" = (/turf/simulated/floor/plasteel{tag = "icon-damaged3"; icon_state = "damaged3"},/area/derelict/atmospherics)
+"mT" = (/turf/simulated/floor/plasteel{tag = "icon-damaged4"; icon_state = "damaged4"},/area/derelict/atmospherics)
+"mU" = (/obj/structure/window/fulltile,/turf/space,/area/derelict/atmospherics)
+"mV" = (/obj/item/stack/rods,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
+"mW" = (/obj/item/weapon/shard{icon_state = "small"},/turf/space,/area/space)
+"mX" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_z4"; name = "derelict station"; turf_type = /turf/space; width = 18},/turf/space,/area/space)
+"mY" = (/obj/structure/computerframe,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/atmospherics)
+"mZ" = (/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/plasteel,/area/derelict/atmospherics)
+"na" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/atmospherics)
+"nb" = (/obj/structure/lattice,/turf/space,/area/derelict/atmospherics)
+"nc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/wirecutters,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
+"nd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
+"ne" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
+"nf" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plating,/area/derelict/atmospherics)
+"ng" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/atmospherics)
+"nh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
+"ni" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
+"nj" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
+"nk" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/derelict/atmospherics)
+"nl" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel,/area/derelict/atmospherics)
+"nm" = (/turf/simulated/floor/plasteel{tag = "icon-damaged1"; icon_state = "damaged1"},/area/derelict/atmospherics)
+"nn" = (/obj/structure/window/fulltile{dir = 8},/turf/space,/area/derelict/atmospherics)
+"no" = (/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor/plating,/area/derelict/atmospherics)
+"np" = (/obj/structure/table,/turf/simulated/floor/plating,/area/derelict/atmospherics)
+"nq" = (/obj/structure/window/fulltile{dir = 5},/turf/simulated/floor/plating/airless,/area/derelict/atmospherics)
+"nr" = (/turf/space,/area/derelict/atmospherics)
+"ns" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel,/area/derelict/atmospherics)
+"nt" = (/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
+"nu" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
+"nv" = (/obj/machinery/door/airlock/maintenance{name = "Aux Storage"; req_access_txt = "23"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
+"nw" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/power/apc{dir = 8; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
+"nx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
+"ny" = (/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
+"nz" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
+"nA" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
+"nB" = (/obj/machinery/power/apc{dir = 1; name = "Worn-out APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel/airless,/area/derelict/atmospherics)
+"nC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
+"nD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless{icon_state = "derelict9"},/area/derelict/hallway/secondary)
+"nE" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless{icon_state = "derelict10"},/area/derelict/hallway/secondary)
+"nF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless{icon_state = "derelict11"},/area/derelict/hallway/secondary)
+"nG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless{icon_state = "derelict12"},/area/derelict/hallway/secondary)
+"nH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless{icon_state = "derelict13"},/area/derelict/hallway/secondary)
+"nI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless{icon_state = "derelict14"},/area/derelict/hallway/secondary)
+"nJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless{icon_state = "derelict15"},/area/derelict/hallway/secondary)
+"nK" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless{icon_state = "derelict16"},/area/derelict/hallway/secondary)
+"nL" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
+"nM" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
+"nN" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict1"},/area/derelict/hallway/secondary)
+"nO" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict2"},/area/derelict/hallway/secondary)
+"nP" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict3"},/area/derelict/hallway/secondary)
+"nQ" = (/obj/item/drone_shell,/turf/simulated/floor/plasteel/airless{icon_state = "derelict4"},/area/derelict/hallway/secondary)
+"nR" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict5"},/area/derelict/hallway/secondary)
+"nS" = (/obj/item/drone_shell,/turf/simulated/floor/plasteel/airless{icon_state = "derelict6"},/area/derelict/hallway/secondary)
+"nT" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict7"},/area/derelict/hallway/secondary)
+"nU" = (/turf/simulated/floor/plasteel/airless{icon_state = "derelict8"},/area/derelict/hallway/secondary)
+"nV" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
+"nW" = (/obj/structure/lattice,/turf/space,/area/derelict/hallway/secondary)
+"nX" = (/obj/structure/grille,/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
+"nY" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
+"nZ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
+"oa" = (/turf/simulated/wall/r_wall,/area/derelict/se_solar)
+"ob" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{name = "Aft Solar Access"; req_access_txt = "10"},/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"oc" = (/obj/machinery/door/airlock/external{name = "Escape Airlock"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
+"od" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
+"oe" = (/obj/structure/window/fulltile{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
+"of" = (/obj/structure/window/fulltile{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
+"og" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"oh" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/secondary)
+"oi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
+"oj" = (/obj/structure/girder/reinforced,/turf/simulated/floor/plating/airless,/area/space)
+"ok" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/wall/r_wall,/area/derelict/se_solar)
+"ol" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/wall/r_wall,/area/derelict/se_solar)
+"om" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/door/airlock/engineering{name = "Aft Solar Access"; req_access_txt = "10"},/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"on" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/se_solar)
+"oo" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
+"op" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"oq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"or" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/se_solar)
+"os" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"ot" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/airlock_painter,/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"ou" = (/obj/docking_port/stationary{dheight = 0; dir = 2; dwidth = 11; height = 15; id = "whiteship_z4"; name = "KC13: Space, Station-Aft"; width = 27},/turf/space,/area/space)
+"ov" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"ow" = (/turf/simulated/floor/plating/airless,/area/derelict/se_solar)
+"ox" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"oy" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"oz" = (/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"oA" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/power/solar_control{id = "derelictsolar"; name = "Primary Solar Control"; track = 0},/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"oB" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 8; environ = 0; equipment = 0; lighting = 0; locked = 0; name = "Worn-out APC"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/plating/airless,/area/derelict/se_solar)
+"oC" = (/obj/item/weapon/paper{desc = ""; info = "The Syndicate have cunningly disguised a Syndicate Uplink as your PDA. Simply enter the code \"678 Bravo\" into the ringtone select to unlock its hidden features.
Objective #1. Kill the God damn AI in a fire blast that it rocks the station. Success!
Objective #2. Escape alive. Failed."; name = "Mission Objectives"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/se_solar)
+"oD" = (/obj/machinery/light/small{dir = 4},/obj/item/clothing/head/helmet/space/syndicate/black/red,/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"oE" = (/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
+"oF" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/plasteel/airless,/area/space)
+"oG" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"oH" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"oI" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"oJ" = (/obj/item/clothing/suit/space/syndicate/black/red,/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"oK" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"oL" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"oM" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"oN" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/rack,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/item/weapon/storage/backpack/dufflebag,/obj/item/weapon/storage/backpack/dufflebag,/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"oO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external,/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar)
+"oP" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/space,/area/solar/derelict_aft)
+"oQ" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/lattice/catwalk,/turf/space,/area/solar/derelict_aft)
+"oR" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/plasteel/airless,/area/solar/derelict_aft)
+"oS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/space,/area/solar/derelict_aft)
+"oT" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/plating/airless{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/solar/derelict_aft)
+"oU" = (/turf/simulated/floor/plating/airless,/turf/simulated/floor/plating/airless{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/solar/derelict_aft)
+"oV" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/space,/area/solar/derelict_aft)
+"oW" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/space,/area/solar/derelict_aft)
+"oX" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/space,/area/solar/derelict_aft)
+"oY" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/space,/area/solar/derelict_aft)
+"oZ" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/space,/area/solar/derelict_aft)
+"pa" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/space,/area/solar/derelict_aft)
+"pb" = (/obj/structure/cable,/obj/machinery/power/solar{id = "derelictsolar"; name = "Derelict Solar Array"},/turf/simulated/floor/plasteel/airless,/area/solar/derelict_aft)
+"pc" = (/turf/simulated/floor/plating/airless{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/solar/derelict_aft)
+"pd" = (/obj/structure/lattice/catwalk,/turf/space,/area/solar/derelict_aft)
+"pe" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/space,/area/solar/derelict_aft)
+"pf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/lattice/catwalk,/turf/space,/area/solar/derelict_aft)
+"pg" = (/obj/structure/lattice/catwalk,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/space,/area/solar/derelict_aft)
+"ph" = (/obj/machinery/power/tracker,/obj/structure/cable,/turf/simulated/floor/plasteel/airless,/area/solar/derelict_aft)
+"pi" = (/turf/simulated/wall/r_wall,/area/derelict/teleporter)
+"pj" = (/turf/simulated/floor/plating/airless,/area/derelict/teleporter)
+"pk" = (/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter)
+"pl" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/teleporter)
+"pm" = (/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/teleporter)
+"pn" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter)
+"po" = (/obj/machinery/teleport/station,/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter)
+"pp" = (/obj/machinery/teleport/hub,/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter)
+"pq" = (/obj/machinery/light_construct/small{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/teleporter)
+"pr" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter)
+"ps" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/teleporter)
+"pt" = (/obj/machinery/power/apc{dir = 0; name = "Worn-out APC"; pixel_y = -24},/turf/simulated/floor/plasteel/airless,/area/derelict/teleporter)
+"pu" = (/turf/simulated/mineral/random,/area/space)
+"pv" = (/turf/simulated/floor/plating/asteroid/airless,/area/space)
+"pw" = (/turf/simulated/wall/mineral/clown,/area/space)
+"px" = (/obj/machinery/door/airlock/clown,/turf/simulated/floor/mineral/bananium/airless,/area/space)
+"py" = (/obj/effect/landmark/corpse/clown,/turf/simulated/floor/mineral/bananium/airless,/area/space)
+"pz" = (/turf/simulated/floor/mineral/bananium/airless,/area/space)
+"pA" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/turf/simulated/floor/mineral/bananium/airless,/area/space)
+"pB" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/ore/bananium,/turf/simulated/floor/mineral/bananium/airless,/area/space)
+"pC" = (/obj/structure/closet/secure_closet{name = "clown locker"; req_access_txt = "46"},/obj/item/clothing/shoes/clown_shoes/banana_shoes,/turf/simulated/floor/mineral/bananium/airless,/area/space)
+"pD" = (/obj/structure/shuttle/engine/heater{color = "#FFFF00"; dir = 4; icon_state = "heater"},/obj/structure/window/reinforced{color = "#FFFF00"; dir = 8},/turf/simulated/floor/plating/airless{color = "#FFFF00"},/area/space)
+"pE" = (/obj/structure/shuttle/engine/propulsion{color = "#FFFF00"; dir = 8; icon_state = "propulsion_l"},/turf/space,/area/space)
+"pF" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating/asteroid/airless,/area/space)
+"pG" = (/obj/item/weapon/ore/bananium,/turf/simulated/floor/mineral/bananium/airless,/area/space)
+"pH" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plating/asteroid/airless,/area/space)
+"pI" = (/obj/effect/landmark/corpse/clown{name = "Clown Pilot"},/turf/simulated/floor/mineral/bananium/airless,/area/space)
+"pJ" = (/obj/item/weapon/paper{info = "The call has gone out! Our ancestral home has been rediscovered! Not a small patch of land, but a true clown nation, a true Clown Planet! We're on our way home at last!"},/turf/simulated/floor/mineral/bananium/airless,/area/space)
+"pK" = (/obj/structure/grille{color = "#FFFF00"},/obj/structure/window/reinforced{color = "#FFFF00"},/obj/structure/window/reinforced{color = "#FFFF00"; dir = 4},/obj/structure/window/reinforced{color = "#FFFF00"; dir = 8},/turf/simulated/floor/plating/airless{color = "#FFFF00"},/area/space)
+"pL" = (/obj/item/weapon/shard,/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/mineral/bananium/airless,/area/space)
+"pM" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/mineral/bananium/airless,/area/space)
+"pN" = (/obj/item/weapon/pickaxe,/turf/simulated/floor/mineral/bananium/airless,/area/space)
+"pO" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/turf/simulated/floor/mineral/bananium/airless,/area/space)
+
+(1,1,1) = {"
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacadacadacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacadacadacabaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeabacadacadacabaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeabacadacadacabaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababafagagafagagafabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacagahahaiahahagacacacacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadadadadagahahahahahagadadadadabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacafahahajakalafacacacacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabadadadadagamahanahahagadadadadabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacagahahaoahahagacacacacabaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababafapaqarahasafabababababaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafatafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafafafafafafauavawaxayafafafafafafaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagazaAaAaAagawawawawawagaBaCaDaEagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaFaAaAaAaGawaHaIaHawaJaBaBaBaKagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaLaMaNaAagawaOaPaQawagaRaSaTaUagaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaVafafaWafawawawawaXafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYaeafaZafafbaawbbbcafaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaYaeafbdbeafbfawbgawafaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeabababababaabhaaaeaeababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYaaafafafafafafafbiafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkaaaaaaaaaaaaaaafahafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablbmbnaabnbnbnbjbnbnbnaabnbnbnaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbiafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaabobobpbqbrbrbrbsbtbtbtbqbtbtbuaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaebvbvbvaabvbvbvbwbvbvbvaabvbvbvaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaeaaaaaaaaaaaabxaaaaaaaaaaaaaeaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaeaaaaaaaaaaaabjaaaaaaaaaaaaaeaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababbybzbzbAbBbCbyababababaeabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDaabDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEbybFbGbHbIbJbyabaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDbDbDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEbKbHbLbMbNbObyababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDbPbQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEbRbSbTbUbUbVbybyabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDbWbDbDbDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEbXbYbZbFbFbFbFcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDcbbDccbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDcdcdcdcdcdcdcecdcdcdcdcdcdcecdcdcdcdcdcdbXcfcgchchbZbFcicjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDbWbWckcbbWclcmbDbDbDcmbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbDbXbybybybycnbybycoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDbDbDbDbDbWbDbWbWbWbDbWbWbWbDbDbDbDbDbDbDcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpbycqbSbFbycoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrcpcrbWbDbWbDbWbDbWbDbWbDbDbDcmbDcmbDbDbDbDbDcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpbybycsbybyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrcpcrbWbDbWbDbWbDbWbDbWbDbDbWbWctbWcucvcbbWbDcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpbybycwbScxbyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrcpcrbWbDbWbDbWbDbWbDbWbDbDbWbWbWbWbWbDbDcybDcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpcpbycqbFczcAbyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrcpcrbWbDbWbDbWbDbWbDbWbDbDcBbWcCbWcDbDbDbWcpcpbDbDbDbDbDbDbDbDbDbDbDbDbDcpcpcpcpbycqbFcEcFbyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrcpcrbWbDbWbDbWbDbWbDbWbDbDcDbWcGbWcDbDbDbWcpcpbDbDcHcHcHcIcHcHcJcKcHbDbDcpcpcpcpbycqbFbScxbycoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrcpcrbWcubWbDbWcubWbDbWcvcvbWckbWcycmbDbDbPbWbWbWcvcHcLcIcIcMcMcLcHcNbDbDcpcpcpcpbybFbFbSbFbycoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrcOcrcmbDbDbDcmbDbDbDcmbWbDbWbDbDcbbDbDbDcmcpcpbDbDcNcNcLcPcQcMcLcNcNbDbDcpcpcpcpbybFbFbScRbybybyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrcOcrbDbDbDbDbDbDbDbDbDbDbDcSbDcTckcDbDbDcpcpcpbDbDcUcVcWcLcJcIcWcNcHbDbDcpcpcpcpbybFbFbSbFbFbFcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrcYaeaeaaaaaaaaaaaaaaaabDbDbDbDbDbDbDbDbDcpcpcpbDbDcZdadbcNcIcNcHcNcHbDbDcpcpcpcpbycqbFbSbFbybybyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacraaaaaeaeaaaaaaaacdabababaecdaaaaaaaaaabDbDbDbDbDbDbDdcdddddddddebDbDbDbDcpcpcpcpbybFbFbSbFbycoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaeaedfdfdfaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaceaaaaaadgcpcpcpcpcpcpcpcpbybFbFdhbZbycoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceaaaaaadgcpcpcpcpcpcpcpcpbycqbFbFbSbydfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaedidididiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceaaaaaadgcpcpcpcpcpcpcpcpbybybFdjbSbyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaadkdldmdldldiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceaaaaaadndododododododododododododpdoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaedqdrdsdqdqaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadndtdtdudvdwdxdodydzdAdodtdBdoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedqdCdDdqdEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadFdGdGdHdGdGdIdodtdtdtdododpdoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadidsdJdJdKdlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadodtdtdBdtdtdLdodMdtdNdodtdBdoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaadidJdJdJdJdqaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadodOdOdPdQdRdododOdSdOdododTdoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeceaaaadidUdVdWdXdYdiaeaaceaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaadodtdtdBdtdtdododZdtdtdtdtdBdoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeceeaaeaediebecedeceediaeaeeaceaeaeaeaaaaaaaaaaaaaaefefcececedoegdtehdGdGeiejdGdGdGdGdGekdoabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeelelelelemeneoenepelelelelaeaeaeaeaeaaaaaaaaaaaaaaaaefcecedoeqereseqeqdododododododododoetdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeleleleleuelevdiewdiexelelelelelelaeaeaaaaaaaaaaefaaaaaacececedodtdtdBdtdteyezeAeBeCeDeEeBeFeGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeleleleHeIeJeKeLeMeNeOdiePeHeJeHelelelaeaaaaaaaaaaaaaaefaaaaaaaadoegdteQdtdteyeReSeTeSeSeSeSeUeVabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeleleWeXeYeYeYeHeZdWenfafbfceHeHeHfdfeelceaaaaaaaaaaaaaaaaaaaaaaaadoeqerffeqeqfgeSeSfhfieSeSeTeSfjfkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaelelflflflflfmePfnelelfoelePfpeJfpfpePelceaaaaaaaaaaaaaaaaaaaaaaaadodtdZfqdtdtfreSeSeSeSfseSeSftfuabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaelelePfpfpfpfveIeHfwfpePfpfpeHeIeIfpfpelceaaaaaaaaaaaaaaaaaaaaaaaedodtdtfxfyfzfAfBfBfCfDeTeSeSeSfjabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeelelfpeIeJeHfEeHeJeHePePfpeHeHeHeHeJeHelceaaaaaaaaaaaaaaaaaaaaaeaedodtdtfqdtdtfFeBeBeSfGfHeSfHfIfJcdfKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeeleleHeJeHfLfMfNfOePfPePePfQfRfSfpeIeJelceaeaaaaaaaaaaefaaaaaeaeaedodododBdodteyfTeBfUfVfWezezeBeVfkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeelelfpeHfLfXfYfZePePePePePgagagbfSeHeIelceaeaeaacedododododododododododtdBdododogcgcgdgcgcgcetetetabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeelelelfpfpgegfeIePePePePePePePePggghfpgielceceaeaecedogjgjgjgkglgmgndododtdBdogogoceaecdcdaacegpcddfabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaelelelelelfpfpgefXeIePePePePePePePePgqghePfpelelelelelaadogrgjgjgjgjgjgjdododtdBdogogoaeaaaaaaaaaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeelelfpgsgtfpfpgugvePfOaaaaaaaaaaePePgqfmePfpeHfpePelelaedogjgjgjgjgjgjgjdododogwdododoaeaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaelelgxeHgqfSfpeIfpgyePePaaaaaaaaaaePePgzgyfpgAgBgCeHfpeleldodogDdogEgEgEgEdogjgjgFgjgjdoefaaaaaaaaaaaaaaaacdcdcedfcddfcdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaelelfceJgGgheIeIeIeJePePaaaaaaaaaaePePgHePfpgIgJgCeHgKelelgLgMgNgNgOgOgOgOgPgQgQgRgjgSdoaeaeaaaaaaaaaaaaaacdcdcedfcdgpcdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaelelfpfpgGghfpeJfOgTePePaaaaaaaaaaePePePgUePfpeHgVeJfpgWgWgLgXgYgZhahahahbdocdgjgFgjgjdoaaaaaaaaaaaaaacdcdcdhccedfcddfcdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeelelfphdfmeHeIhehfePePaaaaaaaaaaePePhghhfpfpfQgvfpelgWhihjhkhlgZhahmhahbdogjgjhngjgjdoaaaaaaaaaaaacdcdcdcdhocedfhpdfcdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeelelelelelfpfpgeePePeHePePePePePePePePhqeIeIelelelelgWgXgLgLgLhrgLgLgLgLgLgLgLdodododoaaaacdcddfcdcdhpcdhshccedfhcgpcdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeeleleleHhthuePeHeJePePePeIeHePePhvhqeJfpelelelaeaegXgLgZhwhwgLhahxhygLhzhwdodoaaaeaecdcdhodfcdcehchohphAcedfhcdfcdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeeleleJeIhBePePeHhCeHeIeJeYeZeYhChDeIeIelelaaaahihEgLgZhwgZgZhahahagLgLaaaeaecdaahFcdhchcdfcdhGhGhGhGhGhGhHhHhHcdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahIhIhIhIhIhIhIhIhIhIhIhIhIaaaaaaaaaaaaaaaaaaaaaaaahJePhJaeaehufQghfpfpfphKflflfmeHeHfpelelaahihEgYgLhahahagZhLhagLgLgLhMhMdfdfdfhFhHhHhHhHhHhHhNhOhPhQhPhRhShHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahIhThThThThUhUhUhUhUhVhThIaaaaaaaaaaaaaaaaaaaahWaaePePhXaeaeePhYfpeHeHgIfpfpeHeIeJfpfpelelaagXhwgYgLgLgLhagLgLgLgLgLgLdfhocdcdhohohZhZiaiaibhHhNhNhNhPhPhShPhHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahIhIhIhTichUhUhUhIhIidhIhIhIhIhIieifififieigihiiijieikaecoaefpfpeHeIeIeIeHfpfpeHeIelelelelaagXgYgZgLhahlgZhlgLhlhlilhlcdhohohocdhoiahZibibiaimhPhPhPhPhPhPhPhHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacohIinhIhIhIhIhIiohIiphUhVhUhUhUhIiqiqiqiriqisitiiiiiuaeaeaeaeelelfpiveJeHfpelelelelelelaeaehwiwgYgZhahagZhwhlhlilhlhwixdfdfiyiyiziyhGhGhGhGhGhGhPhPiAhPhPhPhPhHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiBiCiDiEiDiFiDiEiDhIiphUiphUiphUhIiGiqiqiqiqiHiIiJiiiKiiiiaeaeelelelelePelelelelelelaeaacdgLhwiLgZgZgLhagZgZhwgWgWgWgWgWaeaeaeaaaaaaiMhpiMcdiNhGhNhNhPhNiOhPiPhHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiBiQiRiSiTiUiViUiVhIiphUiphUiphUidiqiqiqiqiqiqiIiWiXiiiiiiaaaeaeeleliYePePelelaeaeaeaaaacdgLgYiLgZgZgLgLgLgLhlgWhAhohAcYaaaeaaaaaaaaaaaaiMaecYhGiZiZhPiZjahPhPhHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajbjcjdjejfjeiEiDiEiDhIipjgipjhiphUhIjiiqiqiqiqjjjkiIiJiiiiiiaaaaaeaeelelelelelaeaeaaaajljljmgLgZjngZhagLhahlgZhlgWhocYhohoaaaeaaaaefaaaaaaaacYaehGhPhPhPhPjohNhNhHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajpjqjqjqjqjriUiViUiVhIiphUiphUiphUidiqiqiqiqiqjsiqjtiIjuiJiiiijvieieieiejwjxaeaaaeaajyaaaacdgLgLjngZgLgLhwhahwhlgWhoiMaaaaaaaeaaaaaaaaaaaaaaaahAhGhHhPhPhHhHhHhHhHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajzjAjBjCjDjCiEjEiFiDhIiphUhUhUichUhIiqiqiqiqiqjFiqjGiqiIiIiJiiiijHiijHjlcdcdcdaaaeaeaeaeaajIgLhajJhahagLhahahahagWcYhoaaaaaaaeaaaaaaaaaaaaaaaahGhGhGhPhPhHjKjKjKhHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiBiQiViUjLiUiViUiVhIhIhIhIhIhIjMjNjOjPjQjQjRjSjPjPjPjPjTiJiJiJiejUiehAcdcdcdjVjWcdcdcdjXjYgLhajZhahagLhakahakbgWgWgWcdaeaecdaecdaeaeaecdaeaecdcdhGhPhPhPhPhPkchHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiBiCiDiEkdiEiDiEiDkekfkfkfkgkfkhhIjiiqiqiqkikjkkkliqiekmknieieieieieiqjYhAhpkocdhpcdcdhAjYgLhajZhakbgLhahahahwhahagWgLkpkpdfkqaaaaaaaaaeaaaaaaaehGkrhPhPhPhPkshHktkuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacokvkvkvkvkvkvkvkvkvkvkvkvhIhIkwhIgLgLgLgLgLgLgLgLgLgLkxkygLgLgLgLgLgLgLgLgLgLhpjYjYjYhpjIgLhakzgOgOgOgOgOgNgOgOgOkAgOkBkBkCkDkpaadfdfkEdfdfdfhMhGhHhPhPhPhPhPkFiAkFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacehAcdaeaaaaaakGkGkHkIkvgLkJhahahahakKhakJhahagLkLhajZhahahagLhahahahahagLgLgLgLgLgLgLgLgLhajZhahagLhagZhahahwhagWgLiydfkMkBkNkOkPkQkRkNkBkNkNkSkTkUkViAhPhPhHktkuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacehsaaaaaaaaaaaakGkWkXkYhahahahakZhahahahalahagLlbhajZhahakbgLlbkZhalahagLgLgLgLhahahahahahalcgOldgLhalagZgZhalegWgpaeaalflflflggpdfaalhlhlflihGhHhPljhPhPlkhHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaecdaaaaaaaaaaaakWkGkWkvgLhahahahahahahahahahallhahajZhahahagLhahahahahahahakKhalmgOgOgOgOgOlnhajZgLhahahahahahagWgpaeaaaaaaaaaaaaaaaaaaaaaaaaiahHhPhHhPhPlohHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakvkvgLhahagLgLgLhagLgLgLlpgLhahalqgOgOgOlrgOgOlsgOgOgOgOgOgOlnhahahahahahahaltgWgWgWlugZgLlvdfaeaaaaaaaaaaaaaaaaaaaaaaaalwlxhHhPhHhHhHhHhHhGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagLhahagLlykKhagLlykKhagLlzlzlzlAlplBgLlbhajZhahahahahahahagWgWgWgWgWgWlCltlDhcgWgLgLgLlfaaaaaaaaaaaaaalEaaaaaeaaaeaehHlFlGhPhPkclGhPhGhGabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaehagLlHkZlIgLlHkZlHgLlJhahahahahagLhahalKhahahahahahahagWhchclLhchclMlNhccecedfdfdfhpaaaafKaaaaaaaaaaaaaelOlOaeaehHlPhPhPiAhPhPhPhPhGabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaegLgLgLgLgLgLgLgLgLhahakZlQhahagLgLgLgLgLgLgLgLgLlRgLgWcdcdcdcdhclMlNhccelLhclSdfcdaeaaaeaeaeaaaaaaaeaeaeaaaeaalTlUhPhPhPhPiAhPlVhGabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaehwhwhwhwkLlWlXlWgLhalQlHlHlQhagLlYlZmalZmblZlZmcmdmcmeaaaaaefkcdhcmfmgmhhchcmidfaedfaeaeefaeaeaeaeaeaaaeaaaaaalTlUlPhPhPhPhPhPhPhGabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaehwhwlWmjhamkgLlbhamllHhakbgLmmmnlZmomblZlZmcmpmcmeaaaeaeaeaecdlNhcmqhcmimidfaeaaaaaaaaaeaeaeaaaeaaaaaeaaaalTlUhPhPhPhPhPhPmrhGabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaehwhwhwlWhagLhahalHmshahagLmtmumvmomblZlYmcmwmcmeaaaeaaaaaacdlNhcmxhcmimidfaeaeaaaaaeaeaaaaaaaaaaaaaaaaaalTmymzmyktktktktkthGabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahwhwhwgLhahalQlQhahagLlZlYlZmAmAlYlYmcmpmcmeaaaeaeaelOcdmBhcmChchchcmDmEmFceceaeaaaaaaaaaaaaaaaaaaaaaamGiAkocdcdcdcdaaceabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaehwllhahahahahahagLmHlZlZlZlYlZmImcmpmcmececececeaaaamJmKmKmKmKmKmLmMmFaacdaaaaaaaaaaaaaaaafKaaaaaamNmzmOdfaaaadfaaceabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaegLgLgLgLgLgLlpgLhzmPlZlZlZlZmQmRmSmSmTmUaaaeaaaeaaaaaaaecdhchchcmFmVmFaadfaaaaaaaaaaaaaaaaaaaaaaaamWmXaaaaaaaaabcdceabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaahwhwilgZhamkgLmYmZlZlZlZlYnalZlZmUnbaeaehAceefaaaaaecdcdcdhcmFncndaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaceabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaaaahwgYnehahagLnflYlZlZlZlYlZlZngmRmUaeaeaehpaeaeaeaeaacdcdhcmFnhndaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcdceabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaahwnihwgZnjhagLnknllYlZlYlZlZlZmSmRmcaaaaaeaeaaaaaaaeaaaacdhcmFnhndaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaceabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaeaahwhwhwhahagYgLlZlYlZlZnmlYlZlZmRmQmchAaaaececeaaaaaeaeaececemFnhndaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcdceabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeaeaegLhwgLgLgLgLlYlZlYlZmRnmlZmTnmmQnnhAaaaecdcdaaaaaeaaaaaacdmDnhndaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaceabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaahwhwhwgZgYhagLlZnomAlZlZlZnplZmQnqnbaaaaaedfaaaaaaaeaaaacdhcmDnhndaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdabcdceabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaaaaaenehwhwgZgLmcmclYmRlZlYlZlZmcmcnbaeaedfdfaeaeaeaecdcdhchcmDnhmFmDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaceabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaahwhwhwgYhagLnrnrmcnsmRmRlZlZmcnrnraaaaaadfaaaaaacdhchchchcmDnhntnumDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaedfmDmEmDmDmDmDnvmDmDmcmDmDmDmDmDmDmDmDmDmDmDmDmDmDmDmDmDmDmDmDmDmDnwntntntnxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaenyntntntnznAntntntnBnCnDnEnFnGnHnInJnKnCnCnCnCnCnCnCnCnCnCnCnLnCnMnyntntndaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaenynynyntntntntntntntntnNnOnPnQnRnSnTnUntntntntntntntntntntntnhntnVntntntndaaaaaaaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaenWnXnYnYnYmDnYnYnYnYnYmDnYnYnYnYnYmDnYnYnYnYnYmDnYnYnYnYmDnhnynyntntntnZjbjbjbaaaaaajyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacdababababababababababdfabababababfkfkfkabababceababababoaoboanyntntnyocodoeofnyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceaaaaaaaaoaogoaohohmFoimFoimFjzjzjzaaaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaojcdcdoaokolomoaononmFoomFoomFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaecdoaopoaoqorosotmFoomFoomFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaouaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaecdcdoaovowoqoxoyozmFoomFoomFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaelOcdhAoaoAoaoBozoCoDmFoEmFoomFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaecdhAoFoGoHoIozoJoKozmFoomFoomFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaecdhchcoaoqoaoLoMowoNmFoomFoEmFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacececeaaoaoaoOoaoaoaoaoamFoomFoEmFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaeoPaeaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaoQaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaoRoRoRaaoSaaoRoToUaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaoVoWoWoXoYoXoZpaefaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaapbpbpbaaoSaapbpcaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaapdaaaaaaefaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaoRoRoRaaoSaaoRoRoRaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaepdpeoWpfoYpfoZoZpgaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaapbpbpbaaoSaapbpbpbaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaphaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaeababaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaeaeaeaeaeaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaaaeaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaecdcdcdcdaeaeaeaeaeaeaaaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaepipipipjpipipicdcdcdaeaaaaaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapipipjpjpkplpkpjpjaeaeaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapipmpkpkpkpkpkpkpiaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapipkpkpnpopppkpqpiaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapiprpspjpkpkpkplpiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapipipkptpkpkpjpipiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapipipipipipjpjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapupuaaaaaaaapvpvpvpvpvpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapupupupuaaaapupupupupupvpvpupupuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapupupupupupupupupupupupvpvpupuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapupupupupupupupupupupupupupuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapupupupupupupupupupupupupvpvaaaapwpwpwpxpxpwpwpwpwpwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapupupupupupupupupupupupupvpwpwpwpvpypzpzpApApBpCpDpEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapupupupupupupupupupupupupupupupFpzpzpzpzpzpGpzpDpEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapupupupupupupupupupupupupupupupHpIpzpJpGpzpGpzpGpDpEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapupupupupupupupupupupupupupKpzpLpzpMpzpypzpzpzpGpDpEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapupupupupupupupupupupupupupwpwpwpzpNpzpzpOpOpApzpDpEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapupupupupupupupupupupupupupupupwpwpwpxpxpwpwpwpwpwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapupupupupupupupupupupupupupupupupupupupupupupupuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapupuaapupupupupupvpvpupupupupupupupupupupuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapupupupupvpvpvpupupupupupupupupuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapupuaaaaaaaapvpvpupvpupupvpvpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapuaaaaaaaaaaaapvpupupupupupupvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapupupupupvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+"}
diff --git a/_maps/map_files/MetaStation/z5.dmm b/_maps/map_files/MetaStation/z5.dmm
new file mode 100644
index 00000000000..a4f6fd1d8ab
--- /dev/null
+++ b/_maps/map_files/MetaStation/z5.dmm
@@ -0,0 +1,969 @@
+"aa" = (/turf/space,/area/space)
+"ab" = (/turf/simulated/mineral,/area/mine/unexplored)
+"ac" = (/turf/simulated/mineral/random,/area/mine/unexplored)
+"ad" = (/turf/simulated/mineral/random/high_chance,/area/mine/unexplored)
+"ae" = (/turf/simulated/mineral,/area/mine/explored)
+"af" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"ag" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"ah" = (/turf/simulated/mineral/random/low_chance,/area/mine/explored)
+"ai" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"aj" = (/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"ak" = (/obj/structure/lattice,/turf/space,/area/space)
+"al" = (/turf/simulated/floor/plating/asteroid/airless/cave,/area/mine/unexplored)
+"am" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"an" = (/obj/item/stack/rods,/obj/structure/door_assembly/door_assembly_ext{name = "Broken External Airlock"},/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"ao" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"ap" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"aq" = (/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"ar" = (/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/mine/abandoned)
+"as" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"at" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/mine/abandoned)
+"au" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"av" = (/obj/item/weapon/shard,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/mine/abandoned)
+"aw" = (/turf/simulated/wall,/area/mine/abandoned)
+"ax" = (/turf/simulated/floor/plating/airless,/area/space)
+"ay" = (/obj/item/stack/rods,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"az" = (/obj/item/stack/rods,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"aA" = (/obj/structure/lattice,/obj/structure/lattice,/turf/space,/area/space)
+"aB" = (/obj/structure/lattice,/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area/space)
+"aC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"aD" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"aE" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/mine/abandoned)
+"aF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"aG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"aH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"aI" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"aJ" = (/obj/effect/decal/remains/xeno,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
+"aK" = (/obj/item/stack/rods,/obj/structure/lattice,/turf/space,/area/space)
+"aL" = (/obj/item/weapon/shard,/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"aM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"aN" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
+"aO" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
+"aP" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/mine/abandoned)
+"aQ" = (/obj/structure/alien/weeds,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"aR" = (/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"aS" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"aT" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
+"aU" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
+"aV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"aW" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"aX" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/obj/structure/alien/weeds,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"aY" = (/obj/item/weapon/shard,/obj/structure/lattice,/turf/space,/area/space)
+"aZ" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/mine/abandoned)
+"ba" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
+"bb" = (/obj/effect/decal/remains/xeno,/obj/structure/alien/weeds,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"bc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"bd" = (/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"be" = (/obj/structure/lattice,/obj/item/weapon/shard{icon_state = "small"},/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/turf/space,/area/mine/abandoned)
+"bf" = (/obj/structure/lattice,/turf/space,/area/mine/abandoned)
+"bg" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"bh" = (/turf/simulated/wall,/area/mine/north_outpost)
+"bi" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/north_outpost)
+"bj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"bk" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"bl" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/mine/abandoned)
+"bm" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
+"bn" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
+"bo" = (/obj/effect/decal/remains/xeno,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/mine/abandoned)
+"bp" = (/obj/structure/table,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"bq" = (/obj/structure/rack,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"br" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/port_gen/pacman{anchored = 1},/turf/simulated/floor/plating,/area/mine/north_outpost)
+"bs" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/mine/north_outpost)
+"bt" = (/obj/machinery/power/smes,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/mine/north_outpost)
+"bu" = (/obj/machinery/atmospherics/unary/tank/air,/turf/simulated/floor/plating,/area/mine/north_outpost)
+"bv" = (/obj/effect/decal/remains/human,/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/mine/abandoned)
+"bw" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
+"bx" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
+"by" = (/obj/structure/table,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"bz" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/north_outpost)
+"bA" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/mine/north_outpost)
+"bB" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/item/weapon/storage/box/lights/bulbs,/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor/plating,/area/mine/north_outpost)
+"bC" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/north_outpost)
+"bD" = (/obj/item/weapon/shard,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched2"},/area/mine/abandoned)
+"bE" = (/obj/item/weapon/shard{icon_state = "small"},/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"bF" = (/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored)
+"bG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "54"},/turf/simulated/floor/plating,/area/mine/north_outpost)
+"bH" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/north_outpost)
+"bI" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/mine/abandoned)
+"bJ" = (/obj/structure/sink{pixel_y = 30},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/abandoned)
+"bK" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/abandoned)
+"bL" = (/obj/structure/table,/obj/item/weapon/paper/crumpled,/obj/item/seeds/cherryseed,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/abandoned)
+"bM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"bN" = (/obj/structure/alien/resin/membrane,/obj/structure/alien/weeds,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"bO" = (/obj/item/clothing/mask/facehugger{icon_state = "facehugger_dead"; stat = 2},/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"bP" = (/obj/structure/table,/obj/item/weapon/pickaxe,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"bQ" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"bR" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"bS" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/north_outpost)
+"bT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"bU" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/alarm{pixel_y = 24},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"bV" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"bW" = (/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"bX" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "loadingarea"},/area/mine/north_outpost)
+"bY" = (/obj/machinery/mineral/unloading_machine{dir = 2; output_dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/north_outpost)
+"bZ" = (/obj/machinery/conveyor{dir = 4; id = "mining_north"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/north_outpost)
+"ca" = (/obj/machinery/disposal/deliveryChute{dir = 8},/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/north_outpost)
+"cb" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/abandoned)
+"cc" = (/turf/simulated/floor/plasteel{icon_state = "damaged2"},/area/mine/abandoned)
+"cd" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/abandoned)
+"ce" = (/obj/structure/alien/weeds,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"cf" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"cg" = (/obj/effect/decal/remains/xeno,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/mine/abandoned)
+"ch" = (/obj/structure/table,/obj/item/weapon/shovel,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"ci" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cj" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"ck" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cl" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "Mining North Outpost APC"; pixel_x = 26; pixel_y = 0},/obj/machinery/conveyor_switch{id = "mining_north"},/obj/machinery/camera{c_tag = "North Outpost"; dir = 8; network = list("MINE")},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/north_outpost)
+"cm" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/north_outpost)
+"cn" = (/obj/machinery/conveyor{backwards = 2; dir = 2; forwards = 1; id = "mining_north"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"co" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/mine/north_outpost)
+"cp" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/north_outpost)
+"cq" = (/turf/simulated/floor/plasteel{icon_state = "damaged3"},/area/mine/abandoned)
+"cr" = (/obj/structure/ore_box,/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored)
+"cs" = (/obj/structure/table,/obj/item/weapon/storage/backpack/satchel,/obj/item/clothing/glasses/meson,/obj/machinery/light/small{dir = 8},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"ct" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cu" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cv" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cw" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cx" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/north_outpost)
+"cy" = (/obj/machinery/door/window/northleft{dir = 8; name = "Pneumatic Tube Access"},/obj/machinery/disposal/deliveryChute{dir = 8; pixel_x = 8; pixel_y = 0},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/north_outpost)
+"cz" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/north_outpost)
+"cA" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/mine/explored)
+"cB" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/north_outpost)
+"cC" = (/obj/machinery/conveyor_switch{id = "mining_north"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/north_outpost)
+"cD" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/north_outpost)
+"cE" = (/obj/effect/decal/remains/human,/obj/item/clothing/suit/xenos,/obj/item/clothing/head/xenos,/turf/simulated/floor/plasteel{icon_state = "damaged2"},/area/mine/abandoned)
+"cF" = (/obj/structure/table,/obj/item/stack/sheet/mineral/sandstone{amount = 30},/turf/simulated/floor/plasteel{icon_state = "damaged3"},/area/mine/abandoned)
+"cG" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "floorgrime"},/area/mine/abandoned)
+"cH" = (/obj/structure/alien/resin/wall,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"cI" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"cJ" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cK" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cL" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cM" = (/obj/structure/rack,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/north_outpost)
+"cN" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/mine/north_outpost)
+"cO" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/plasteel/airless{icon_state = "floorgrime"},/area/mine/abandoned)
+"cP" = (/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/mine/abandoned)
+"cQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"cR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"cS" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/abandoned)
+"cT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"cU" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cV" = (/obj/machinery/recharge_station,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cW" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"cX" = (/obj/effect/decal/remains/human,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless,/area/mine/abandoned)
+"cY" = (/obj/structure/alien/weeds/node,/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/mine/abandoned)
+"cZ" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/abandoned)
+"da" = (/obj/structure/rack,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/abandoned)
+"db" = (/turf/simulated/floor/plating/asteroid/airless,/area/mine/unexplored)
+"dc" = (/obj/machinery/door/airlock/external{name = "Mining North Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"dd" = (/turf/simulated/mineral/random/labormineral,/area/mine/unexplored)
+"de" = (/obj/item/weapon/rack_parts,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/abandoned)
+"df" = (/obj/structure/girder/displaced,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned)
+"dg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/explored)
+"dh" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/mine/explored)
+"di" = (/obj/structure/lattice,/obj/structure/window/reinforced,/turf/space,/area/mine/explored)
+"dj" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/space,/area/mine/north_outpost)
+"dk" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost)
+"dl" = (/turf/simulated/floor/mech_bay_recharge_floor/airless,/area/mine/north_outpost)
+"dm" = (/obj/machinery/computer/mech_bay_power_console,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost)
+"dn" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"do" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/mine/north_outpost)
+"dp" = (/turf/simulated/wall/r_wall,/area/mine/laborcamp)
+"dq" = (/obj/structure/alien/resin/wall,/turf/simulated/floor/plasteel/airless{icon_state = "floorgrime"},/area/mine/abandoned)
+"dr" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorgrime"},/area/mine/abandoned)
+"ds" = (/obj/structure/girder,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned)
+"dt" = (/obj/machinery/door/airlock/external{name = "Mining Bridge"; req_access_txt = "54"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost)
+"du" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel/airless,/area/mine/explored)
+"dv" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/north_outpost)
+"dw" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/north_outpost)
+"dx" = (/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/north_outpost)
+"dy" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/north_outpost)
+"dz" = (/obj/structure/rack{dir = 1},/obj/item/clothing/glasses/meson,/obj/item/device/flashlight,/obj/item/weapon/storage/bag/ore,/obj/item/weapon/shovel{attack_verb = list("ineffectively hit"); desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; force = 1; name = "safety shovel"; pixel_x = -5; throwforce = 1},/obj/item/weapon/pickaxe{attack_verb = list("ineffectively hit"); desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; force = 1; name = "safety pickaxe"; pixel_x = 5; throwforce = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"dA" = (/obj/structure/rack{dir = 1},/obj/item/clothing/glasses/meson,/obj/item/device/flashlight,/obj/item/weapon/storage/bag/ore,/obj/item/weapon/shovel{attack_verb = list("ineffectively hit"); desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; force = 1; name = "safety shovel"; pixel_x = -5; throwforce = 1},/obj/item/weapon/pickaxe{attack_verb = list("ineffectively hit"); desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; force = 1; name = "safety pickaxe"; pixel_x = 5; throwforce = 1},/obj/machinery/camera{c_tag = "Labor Camp Storage"; dir = 8; network = list("Labor")},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"dB" = (/turf/simulated/mineral/random/labormineral,/area/mine/explored)
+"dC" = (/obj/item/weapon/storage/toolbox/syndicate,/obj/structure/alien/weeds/node,/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/mine/abandoned)
+"dD" = (/obj/effect/decal/remains/xeno,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/mine/abandoned)
+"dE" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/north_outpost)
+"dF" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/turf/space,/area/mine/explored)
+"dG" = (/obj/machinery/door/airlock/external{name = "Mining North Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/north_outpost)
+"dH" = (/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/explored)
+"dI" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 2},/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp)
+"dJ" = (/obj/structure/table,/obj/item/device/healthanalyzer,/obj/item/stack/medical/bruise_pack,/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp)
+"dK" = (/obj/structure/sign/bluecross_2{pixel_y = 32},/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp)
+"dL" = (/obj/machinery/camera{c_tag = "Labor Camp Medical"; dir = 8; network = list("Labor")},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/laborcamp)
+"dM" = (/turf/simulated/wall,/area/mine/laborcamp)
+"dN" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"dO" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"dP" = (/turf/simulated/wall,/area/mine/explored)
+"dQ" = (/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored)
+"dR" = (/obj/machinery/door/airlock/external{name = "External Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/abandoned)
+"dS" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/item/weapon/shard{icon_state = "small"},/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
+"dT" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 10},/area/mine/explored)
+"dU" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored)
+"dV" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 6},/area/mine/explored)
+"dW" = (/obj/machinery/light{dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/north_outpost)
+"dX" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/explored)
+"dY" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 5},/area/mine/explored)
+"dZ" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/mine/laborcamp)
+"ea" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/mine/laborcamp)
+"eb" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=1-Storage"; location = "Sleeper"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/mine/laborcamp)
+"ec" = (/obj/machinery/light/small{dir = 4},/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/mine/laborcamp)
+"ed" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/closet/crate/internals,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"ee" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"ef" = (/obj/machinery/bot/secbot/beepsky{desc = "Powered by tears and swet of laborer."; name = "Prison Ofitser"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=2-NMine"; location = "1-Storage"},/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp)
+"eg" = (/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp)
+"eh" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=3-SMine"; location = "2-NMine"},/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp)
+"ei" = (/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/explored)
+"ej" = (/obj/effect/decal/remains/human,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored)
+"ek" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/explored)
+"el" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp)
+"em" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Infirmary"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "whitebluefull"},/area/mine/laborcamp)
+"en" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp)
+"eo" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/laborcamp)
+"ep" = (/obj/machinery/door/airlock{name = "Labor Camp Storage"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eq" = (/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/explored)
+"er" = (/turf/simulated/wall/r_wall,/area/mine/explored)
+"es" = (/obj/structure/girder/reinforced,/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/explored)
+"et" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/abandoned)
+"eu" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/abandoned)
+"ev" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"ew" = (/obj/structure/table,/obj/item/trash/plate,/obj/item/weapon/kitchen/utensil/fork,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"ex" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"ey" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"ez" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eA" = (/obj/machinery/atmospherics/pipe/simple,/obj/item/device/radio/intercom{desc = "Talk through this. It looks like it has been modified to not broadcast."; dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24; prison_radio = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eB" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eC" = (/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored)
+"eD" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/item/stack/rods,/obj/item/weapon/shard,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned)
+"eE" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned)
+"eF" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eG" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=7-Sleeper"; location = "6-Vending"},/mob/living/simple_animal/mouse,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eH" = (/obj/machinery/door/airlock{name = "Vending"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eI" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eJ" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eK" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eL" = (/obj/machinery/door/poddoor/preopen{id = "Labor"; name = "labor camp blast door"},/obj/machinery/door/airlock{name = "Labor Camp External Access"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp)
+"eM" = (/obj/structure/ore_box,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored)
+"eN" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 10},/area/mine/unexplored)
+"eO" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/unexplored)
+"eP" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 6},/area/mine/unexplored)
+"eQ" = (/obj/machinery/vending/sustenance,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eR" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eS" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/wall,/area/mine/laborcamp)
+"eT" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eU" = (/obj/machinery/flasher{id = "Labor"; pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/wall,/area/mine/laborcamp)
+"eV" = (/obj/machinery/conveyor_switch/oneway{id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"eW" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning"; icon_state = "asteroidwarning"; temperature = 273.15},/area/mine/laborcamp)
+"eX" = (/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning"; icon_state = "asteroidwarning"; temperature = 273.15},/area/mine/explored)
+"eY" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/unexplored)
+"eZ" = (/obj/machinery/light_switch{pixel_x = -27; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fa" = (/obj/machinery/camera{c_tag = "Labor Camp Central"; network = list("Labor")},/obj/machinery/atmospherics/pipe/manifold{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fb" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fc" = (/obj/machinery/conveyor{dir = 2; id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fd" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp)
+"fe" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/turf/simulated/floor/plasteel{tag = "icon-asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/laborcamp)
+"ff" = (/obj/machinery/mineral/unloading_machine{dir = 1; input_dir = 4; output_dir = 8},/turf/simulated/floor/plasteel{tag = "icon-asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/laborcamp)
+"fg" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning (WEST)"; icon_state = "asteroidwarning"; dir = 8; temperature = 273.15},/area/mine/explored)
+"fh" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored)
+"fi" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"fj" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"fk" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Security Airlock"; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fl" = (/obj/machinery/light/small{dir = 1},/obj/machinery/door_control{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 0; pixel_y = 28; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fm" = (/obj/machinery/door/poddoor/preopen{id = "Labor"; name = "labor camp blast door"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fn" = (/turf/simulated/floor/plasteel,/area/mine/laborcamp)
+"fo" = (/obj/machinery/mineral/processing_unit_console{machinedir = 6},/turf/simulated/wall,/area/mine/laborcamp)
+"fp" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 2; id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fq" = (/obj/machinery/camera{c_tag = "Labor Camp External"; dir = 4; network = list("Labor")},/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored)
+"fr" = (/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored)
+"fs" = (/obj/machinery/conveyor_switch/oneway{id = "gulag"},/turf/simulated/floor/plasteel{tag = "icon-asteroidwarning (NORTH)"; icon_state = "asteroidwarning"; dir = 1; temperature = 273.15},/area/mine/explored)
+"ft" = (/obj/effect/decal/cleanable/blood/old,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored)
+"fu" = (/obj/machinery/mineral/stacking_unit_console{machinedir = 2},/turf/simulated/wall,/area/mine/laborcamp)
+"fv" = (/obj/machinery/mineral/processing_unit{dir = 1; output_dir = 2},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fw" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/laborcamp)
+"fx" = (/obj/machinery/computer/shuttle/labor/one_way,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fy" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=6-Vending"; location = "5-Central"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fz" = (/obj/machinery/mineral/stacking_machine{dir = 1; input_dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fA" = (/obj/machinery/conveyor{dir = 8; id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fB" = (/obj/machinery/conveyor{dir = 10; icon_state = "conveyor0"; id = "gulag"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
+"fC" = (/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored)
+"fD" = (/obj/item/stack/sheet/metal{amount = 5},/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored)
+"fE" = (/turf/simulated/wall/r_wall,/area/mine/laborcamp/security)
+"fF" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp/security)
+"fG" = (/obj/machinery/camera{c_tag = "Labor Camp Security Hallway"; dir = 8; network = list("Labor"); pixel_x = 0; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp/security)
+"fH" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/laborcamp/security)
+"fI" = (/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"fJ" = (/turf/simulated/wall,/area/mine/laborcamp/security)
+"fK" = (/obj/structure/girder,/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/laborcamp/security)
+"fL" = (/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 5; id = "laborcamp_away"; name = "labor camp"; width = 9},/turf/space,/area/space)
+"fM" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Prisoner Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"fN" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Prisoner Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp/security)
+"fO" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp/security)
+"fP" = (/obj/machinery/atmospherics/pipe/manifold,/obj/machinery/door/airlock/glass_security{name = "Labor Camp Backroom"; req_access_txt = "2"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"fQ" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/laborcamp/security)
+"fR" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"fS" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/mine/laborcamp/security)
+"fT" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Labor Camp APC"; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple{dir = 10},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=5-Central"; location = "4-Maint"},/turf/simulated/floor/plating,/area/mine/laborcamp)
+"fU" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/mine/laborcamp/security)
+"fV" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp External Access"; req_access_txt = "2"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"fW" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Monitoring"; req_access_txt = "2"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"fX" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/laborcamp/security)
+"fY" = (/obj/machinery/door/airlock/maintenance{name = "Labor Camp Maintenance"; req_access_txt = "2"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"fZ" = (/obj/structure/plasticflaps/mining,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"ga" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored)
+"gb" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gc" = (/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gd" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"ge" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 4; name = "Labor Camp Security APC"; pixel_x = 24; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/obj/machinery/camera{c_tag = "Labor Camp Monitoring"; network = list("Labor")},/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/wall,/area/mine/laborcamp/security)
+"gh" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gi" = (/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/laborcamp/security)
+"gk" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gl" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gm" = (/obj/structure/plasticflaps/mining,/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/wall,/area/mine/laborcamp/security)
+"gn" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=4-Maint"; location = "3-SMine"},/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/laborcamp)
+"go" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/explored)
+"gp" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/closet/crate,/turf/simulated/floor/plating/asteroid{temperature = 273.15},/area/mine/explored)
+"gq" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"gr" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/mine/laborcamp/security)
+"gs" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gt" = (/obj/structure/stool/bed/chair/office/dark,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gu" = (/obj/machinery/door_control{id = "Labor"; name = "Labor Camp Lockdown"; pixel_x = 28; pixel_y = 7; req_access_txt = "2"},/obj/machinery/flasher_button{id = "Labor"; pixel_x = 26; pixel_y = -3},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gv" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gw" = (/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gx" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gy" = (/obj/machinery/atmospherics/unary/tank/air{dir = 8},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gz" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gA" = (/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gB" = (/obj/machinery/computer/secure_data,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gC" = (/obj/machinery/computer/security{name = "Labor Camp Monitoring"; network = list("Labor")},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gD" = (/obj/machinery/computer/prisoner,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gE" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/simulated/floor/plasteel,/area/mine/laborcamp/security)
+"gF" = (/obj/machinery/space_heater,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gG" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gH" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gI" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 5},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gJ" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gK" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gL" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
+"gM" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 9},/area/mine/explored)
+"gN" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"gO" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"gP" = (/turf/simulated/floor/plasteel{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored)
+"gQ" = (/obj/item/clothing/under/soviet,/obj/item/clothing/head/ushanka,/turf/simulated/floor/plasteel{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored)
+"gR" = (/obj/effect/decal/remains/human,/turf/simulated/floor/plasteel{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored)
+"gS" = (/obj/docking_port/stationary{dheight = 0; dir = 2; dwidth = 11; height = 15; id = "whiteship_z5"; name = "Asteroid: Space, Central"; width = 27},/turf/space,/area/space)
+"gT" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 8},/area/mine/explored)
+"gU" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored)
+"gV" = (/obj/machinery/door/airlock/external{name = "Mining Bridge"; req_access_txt = "54"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost)
+"gW" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/mine/explored)
+"gX" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless,/area/mine/explored)
+"gY" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light{dir = 1},/turf/space,/area/mine/west_outpost)
+"gZ" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/mine/explored)
+"ha" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/west_outpost)
+"hb" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/mine/explored)
+"hc" = (/turf/simulated/wall/r_wall,/area/mine/maintenance)
+"hd" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless,/area/mine/explored)
+"he" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel/airless,/area/mine/explored)
+"hf" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless,/area/mine/explored)
+"hg" = (/turf/simulated/floor/bluegrid,/area/mine/maintenance)
+"hh" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Mining Communications APC"; pixel_x = 1; pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/mine/maintenance)
+"hi" = (/obj/machinery/telecomms/relay/preset/mining,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 1},/area/mine/maintenance)
+"hj" = (/obj/machinery/alarm{pixel_y = 24},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/mine/maintenance)
+"hk" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/space,/area/mine/explored)
+"hl" = (/obj/structure/lattice,/obj/structure/lattice,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/space,/area/mine/explored)
+"hm" = (/obj/structure/lattice,/turf/space,/area/mine/explored)
+"hn" = (/turf/space,/area/mine/unexplored)
+"ho" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/bluegrid,/area/mine/maintenance)
+"hp" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/mine/maintenance)
+"hq" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor/bluegrid,/area/mine/maintenance)
+"hr" = (/obj/machinery/camera{c_tag = "Communications Relay"; dir = 8; network = list("MINE")},/turf/simulated/floor/bluegrid,/area/mine/maintenance)
+"hs" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"ht" = (/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"hu" = (/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"hv" = (/turf/simulated/wall,/area/mine/living_quarters)
+"hw" = (/obj/machinery/door/airlock/maintenance{name = "Mining Station Communications"; req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "vault"},/area/mine/maintenance)
+"hx" = (/obj/item/clothing/under/rank/miner,/obj/effect/decal/remains/human,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"hy" = (/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris,/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/explored)
+"hz" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/brown,/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters)
+"hA" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm1"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters)
+"hB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"hC" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/obj/machinery/light,/turf/space,/area/mine/west_outpost)
+"hD" = (/obj/structure/table,/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters)
+"hE" = (/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters)
+"hF" = (/obj/machinery/door/airlock{id_tag = "miningdorm1"; name = "Room 1"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters)
+"hG" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet{dir = 1},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/explored)
+"hH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"hI" = (/obj/structure/disposalpipe/segment,/turf/simulated/mineral/random,/area/mine/unexplored)
+"hJ" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm2"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters)
+"hK" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"hL" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/west_outpost)
+"hM" = (/obj/machinery/door/airlock{id_tag = "miningdorm2"; name = "Room 2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters)
+"hN" = (/turf/space,/area/mine/explored)
+"hO" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost)
+"hP" = (/turf/simulated/floor/mech_bay_recharge_floor/airless,/area/mine/west_outpost)
+"hQ" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost)
+"hR" = (/obj/structure/disposalpipe/segment,/obj/structure/sign/deathsposal,/turf/simulated/wall,/area/mine/living_quarters)
+"hS" = (/turf/simulated/wall,/area/mine/west_outpost)
+"hT" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/west_outpost)
+"hU" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating/asteroid/airless,/area/mine/west_outpost)
+"hV" = (/obj/machinery/computer/arcade,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"hW" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"hX" = (/obj/machinery/vending/cigarette,/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"hY" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"hZ" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm3"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/fancy/carpet,/area/mine/living_quarters)
+"ia" = (/obj/structure/table,/obj/item/weapon/pickaxe,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"ib" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"ic" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"id" = (/obj/machinery/recharge_station,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost)
+"ie" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost)
+"if" = (/obj/structure/rack,/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost)
+"ig" = (/obj/structure/rack,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost)
+"ih" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/trunk,/obj/machinery/door/window/northleft{dir = 2; name = "Pneumatic Tube Access"},/obj/machinery/disposal/deliveryChute{pixel_y = 5},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/west_outpost)
+"ii" = (/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"ij" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/west_outpost)
+"ik" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/west_outpost)
+"il" = (/obj/structure/table,/obj/machinery/microwave{pixel_y = 6},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"im" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"in" = (/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"io" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"ip" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 31},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"iq" = (/obj/machinery/door/airlock{id_tag = "miningdorm3"; name = "Room 3"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/mine/living_quarters)
+"ir" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"is" = (/obj/machinery/recharge_station,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"it" = (/obj/structure/closet/secure_closet/miner,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"iu" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/eva)
+"iv" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/eva)
+"iw" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/eva)
+"ix" = (/turf/simulated/wall,/area/mine/eva)
+"iy" = (/obj/structure/table,/obj/item/weapon/shovel,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"iz" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"iA" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/mine/west_outpost)
+"iB" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/mine/west_outpost)
+"iC" = (/obj/machinery/door/airlock/external{name = "Mining West Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"iD" = (/obj/machinery/door/airlock/external{name = "Mining West Outpost Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost)
+"iE" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored)
+"iF" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"iG" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"iH" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"iI" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"iJ" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"iK" = (/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"iL" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"iM" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/table,/obj/item/weapon/pickaxe,/turf/simulated/floor/plasteel,/area/mine/eva)
+"iN" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/suit_storage_unit/mining,/turf/simulated/floor/plasteel,/area/mine/eva)
+"iO" = (/obj/machinery/suit_storage_unit/mining,/turf/simulated/floor/plasteel,/area/mine/eva)
+"iP" = (/obj/machinery/light,/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored)
+"iQ" = (/obj/structure/table,/obj/item/weapon/storage/backpack/satchel,/obj/item/clothing/glasses/meson,/obj/machinery/light/small{dir = 8},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"iR" = (/obj/machinery/door/airlock/glass_mining{name = "Break Room"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"iS" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"iT" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"iU" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/west_outpost)
+"iV" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"iW" = (/obj/machinery/camera{c_tag = "Crew Area"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"iX" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
+"iY" = (/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"iZ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"ja" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"jb" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"jc" = (/obj/machinery/mineral/equipment_vendor,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"jd" = (/obj/machinery/camera{c_tag = "Storage Room"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"je" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"jf" = (/turf/simulated/wall,/area/mine/production)
+"jg" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/mine/production)
+"jh" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/production)
+"ji" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/obj/machinery/camera{c_tag = "EVA"; dir = 4; network = list("MINE")},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/table,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/obj/item/device/gps/mining,/turf/simulated/floor/plasteel,/area/mine/eva)
+"jj" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/eva)
+"jk" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/eva)
+"jl" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor/plasteel,/area/mine/eva)
+"jm" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jn" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jo" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/west_outpost)
+"jp" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jq" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jr" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"js" = (/obj/machinery/conveyor_switch{id = "mining_west"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jt" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"ju" = (/obj/machinery/door/airlock/glass{name = "Crew Area"; req_access_txt = "48"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"jv" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/door/airlock/mining{name = "Mining Station Storage"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"jw" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/northleft{dir = 2; name = "Pneumatic Tube Access"},/obj/machinery/disposal/deliveryChute{pixel_y = 5},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
+"jx" = (/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
+"jy" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
+"jz" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/eva)
+"jA" = (/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/turf/simulated/floor/plasteel,/area/mine/eva)
+"jB" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/eva)
+"jC" = (/turf/simulated/floor/plasteel,/area/mine/eva)
+"jD" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor/plasteel,/area/mine/eva)
+"jE" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/eva)
+"jF" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/eva)
+"jG" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jH" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jI" = (/obj/machinery/power/apc{dir = 2; name = "Mining West Outpost APC"; pixel_x = 1; pixel_y = -23},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/camera{c_tag = "West Outpost"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jK" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jL" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"jM" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "loadingarea"},/area/mine/west_outpost)
+"jN" = (/obj/machinery/mineral/unloading_machine{dir = 2; output_dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/west_outpost)
+"jO" = (/obj/machinery/conveyor{dir = 4; id = "mining_west"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/west_outpost)
+"jP" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal/deliveryChute{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/west_outpost)
+"jQ" = (/obj/structure/grille,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/west_outpost)
+"jR" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/mine/living_quarters)
+"jS" = (/obj/structure/sink{pixel_y = 30},/obj/machinery/light/small,/obj/structure/mirror{pixel_y = -32},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/mine/living_quarters)
+"jT" = (/obj/machinery/door/airlock{name = "Toilet"},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/mine/living_quarters)
+"jU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"jV" = (/obj/machinery/power/apc{dir = 1; name = "Mining Station Port Wing APC"; pixel_x = 1; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"jW" = (/obj/machinery/camera{c_tag = "Crew Area Hallway"; network = list("MINE")},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"jX" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/mine/living_quarters)
+"jY" = (/obj/structure/window/reinforced,/obj/structure/lattice,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/space,/area/mine/living_quarters)
+"jZ" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/mine/living_quarters)
+"ka" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/mine/production)
+"kb" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/mine/production)
+"kc" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/mine/production)
+"kd" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/mine/production)
+"ke" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/mine/production)
+"kf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Mining Station EVA"; req_access_txt = "54"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/eva)
+"kg" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/mine/eva)
+"kh" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/eva)
+"ki" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/eva)
+"kj" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/eva)
+"kk" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/eva)
+"kl" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/west_outpost)
+"km" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/west_outpost)
+"kn" = (/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "54"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/mine/west_outpost)
+"ko" = (/obj/machinery/conveyor{backwards = 2; dir = 2; forwards = 1; id = "mining_west"},/obj/structure/plasticflaps/mining,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
+"kp" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/mine/west_outpost)
+"kq" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kr" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"ks" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"ku" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/living_quarters)
+"ky" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Mining Station Bridge"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kz" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kA" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/production)
+"kB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/glass_mining{name = "Mining Station Bridge"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/mine/production)
+"kC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/production)
+"kD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel,/area/mine/production)
+"kE" = (/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/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/production)
+"kF" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
+"kG" = (/obj/machinery/power/apc{dir = 2; name = "Mining EVA APC"; pixel_x = 1; pixel_y = -23},/obj/structure/cable,/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/turf/simulated/floor/plasteel,/area/mine/eva)
+"kH" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/mine/eva)
+"kI" = (/turf/simulated/floor/mech_bay_recharge_floor,/area/mine/eva)
+"kJ" = (/obj/machinery/computer/mech_bay_power_console,/turf/simulated/floor/plasteel,/area/mine/eva)
+"kK" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel,/area/mine/eva)
+"kL" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/eva)
+"kM" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/west_outpost)
+"kN" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/west_outpost)
+"kO" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/mine/west_outpost)
+"kP" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/item/weapon/storage/box/lights/bulbs,/turf/simulated/floor/plating,/area/mine/west_outpost)
+"kQ" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/west_outpost)
+"kR" = (/obj/machinery/conveyor_switch{id = "mining_west"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 1},/area/mine/west_outpost)
+"kS" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kT" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kU" = (/obj/machinery/atmospherics/pipe/manifold,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kW" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kX" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/light,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"kY" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/mine/living_quarters)
+"kZ" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"la" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/space,/area/mine/living_quarters)
+"lb" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/space,/area/mine/production)
+"lc" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/machinery/light{dir = 4},/turf/space,/area/mine/production)
+"ld" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/production)
+"le" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/production)
+"lf" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 1},/area/mine/production)
+"lg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel,/area/mine/production)
+"lh" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
+"li" = (/obj/machinery/camera{c_tag = "Production Line External"; dir = 4; network = list("MINE")},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/production)
+"lj" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/production)
+"lk" = (/obj/machinery/conveyor_switch{id = "mining_external"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/production)
+"ll" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/production)
+"lm" = (/obj/machinery/atmospherics/unary/tank/air{dir = 1; initialize_directions = 0; level = 1},/turf/simulated/floor/plating,/area/mine/west_outpost)
+"ln" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/west_outpost)
+"lo" = (/obj/machinery/power/terminal{dir = 4},/obj/machinery/light/small,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/west_outpost)
+"lp" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/plating,/area/mine/west_outpost)
+"lq" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Infirmary"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "whitebluefull"},/area/mine/living_quarters)
+"lr" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/mine/living_quarters)
+"ls" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "48"},/turf/simulated/floor/plating,/area/mine/living_quarters)
+"lt" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/mine/living_quarters)
+"lu" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"lv" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/production)
+"lw" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/production)
+"lx" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
+"ly" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock{name = "Closet"; req_access_txt = "0"},/turf/simulated/floor/plating,/area/mine/production)
+"lz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/production)
+"lA" = (/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j1"; tag = "icon-pipe-j1 (EAST)"},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/mine/production)
+"lB" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/mine/production)
+"lC" = (/obj/machinery/disposal/deliveryChute{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/production)
+"lD" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/turf/simulated/floor/plating,/area/mine/production)
+"lE" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/mine/production)
+"lF" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/production)
+"lG" = (/obj/machinery/conveyor{dir = 4; id = "mining_external"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/production)
+"lH" = (/obj/machinery/light/small{dir = 8},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/mine/living_quarters)
+"lI" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/mine/living_quarters)
+"lJ" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/mine/living_quarters)
+"lK" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "whiteblue"},/area/mine/living_quarters)
+"lL" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/living_quarters)
+"lM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"lN" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/mine/living_quarters)
+"lO" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"lP" = (/obj/structure/rack,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/regular{pixel_x = -3; pixel_y = -3},/turf/simulated/floor/plating,/area/mine/living_quarters)
+"lQ" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/living_quarters)
+"lR" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/living_quarters)
+"lS" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
+"lT" = (/obj/structure/sign/xeno_warning_mining,/turf/simulated/wall,/area/mine/living_quarters)
+"lU" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/production)
+"lV" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/production)
+"lW" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/status_display{layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
+"lX" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/production)
+"lY" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty{pixel_x = -3; pixel_y = -3},/obj/item/weapon/reagent_containers/blood/AMinus,/obj/item/weapon/reagent_containers/blood/BMinus{pixel_x = -4; pixel_y = 4},/obj/item/weapon/reagent_containers/blood/BPlus{pixel_x = 1; pixel_y = 2},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OPlus{pixel_x = -2; pixel_y = -1},/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/turf/simulated/floor/plasteel{icon_state = "white"},/area/mine/living_quarters)
+"lZ" = (/obj/machinery/iv_drip,/turf/simulated/floor/plasteel{icon_state = "white"},/area/mine/living_quarters)
+"ma" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/camera{c_tag = "Sleeper Room"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel{icon_state = "white"; temperature = 273.15},/area/mine/living_quarters)
+"mb" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/brute{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/mine/living_quarters)
+"mc" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/mine/living_quarters)
+"md" = (/turf/simulated/floor/plating,/area/mine/living_quarters)
+"me" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"mf" = (/obj/machinery/atmospherics/unary/tank/air{dir = 8},/turf/simulated/floor/plating,/area/mine/living_quarters)
+"mg" = (/obj/structure/ore_box,/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/living_quarters)
+"mh" = (/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/living_quarters)
+"mi" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/mine/living_quarters)
+"mj" = (/obj/machinery/power/apc{dir = 8; name = "Mining Station Starboard Wing APC"; pixel_x = -27; pixel_y = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/mine/production)
+"mk" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/mine/production)
+"ml" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
+"mm" = (/obj/machinery/mineral/equipment_vendor,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
+"mn" = (/obj/machinery/mineral/mint{input_dir = 4},/turf/simulated/floor/plasteel,/area/mine/production)
+"mo" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "loadingarea"},/area/mine/production)
+"mp" = (/obj/structure/closet/crate,/obj/machinery/alarm{pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
+"mq" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/structure/table,/obj/item/weapon/paper{anchored = 0; info = "A hastily written note has been scribbled here...
Please use the ore redemption machine in the science wing for smelting. PLEASE!
--The Research Staff"; name = "URGENT!"},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
+"mr" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production)
+"ms" = (/obj/structure/cable,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/power/port_gen/pacman{anchored = 1},/turf/simulated/floor/plating,/area/mine/living_quarters)
+"mt" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/living_quarters)
+"mu" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"mv" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 5},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/mine/living_quarters)
+"mw" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "54"},/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/living_quarters)
+"mx" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/production)
+"my" = (/turf/simulated/floor/plasteel{icon_state = "loadingarea"},/area/mine/production)
+"mz" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/mine/production)
+"mA" = (/obj/machinery/door/airlock/glass_mining{name = "Conveyor Access"; req_access_txt = "48"},/obj/structure/barricade/wooden,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
+"mB" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/mine/production)
+"mC" = (/turf/simulated/floor/plasteel/airless{icon_state = "asteroidfloor"},/area/mine/explored)
+"mD" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plating/asteroid/airless,/area/mine/living_quarters)
+"mE" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/production)
+"mF" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/mine/production)
+"mG" = (/obj/item/device/radio/beacon,/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/mine/production)
+"mH" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 4},/area/mine/production)
+"mI" = (/obj/machinery/computer/shuttle/mining{req_access = "0"},/obj/machinery/light{dir = 4},/obj/machinery/camera{c_tag = "Shuttle Docking Foyer"; dir = 8; network = list("MINE")},/obj/machinery/newscaster{pixel_x = 30; pixel_y = 1},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
+"mJ" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
+"mK" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plasteel,/area/mine/production)
+"mL" = (/obj/machinery/camera{c_tag = "Processing Area Room"; dir = 8; network = list("MINE")},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = 28},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
+"mM" = (/obj/machinery/mineral/unloading_machine{dir = 1; icon_state = "unloader-corner"; input_dir = 4; output_dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production)
+"mN" = (/obj/docking_port/stationary{dir = 8; dwidth = 3; height = 5; id = "mining_away"; name = "asteroid mine"; width = 7},/turf/space,/area/space)
+"mO" = (/obj/machinery/door/airlock/external{name = "Mining Shuttle Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
+"mP" = (/turf/simulated/floor/plasteel,/area/mine/production)
+"mQ" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/production)
+"mR" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 8},/area/mine/production)
+"mS" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plasteel,/area/mine/production)
+"mT" = (/obj/machinery/conveyor_switch/oneway{id = "mining_internal"; name = "mining conveyor"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
+"mU" = (/obj/effect/decal/remains/human{desc = "Seems to be all that remains of a poor miner that didn't heed the warning signs."},/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored)
+"mV" = (/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/production)
+"mW" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 1},/area/mine/production)
+"mX" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/production)
+"mY" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/obj/structure/disposalpipe/junction{dir = 4; icon_state = "pipe-j2"; tag = "icon-pipe-j1 (WEST)"},/turf/simulated/floor/plasteel,/area/mine/production)
+"mZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
+"na" = (/obj/machinery/door/airlock/glass_mining{name = "Processing Area"; req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
+"nb" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/mine/production)
+"nc" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 4},/area/mine/production)
+"nd" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/turf/simulated/floor/plasteel,/area/mine/production)
+"ne" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
+"nf" = (/obj/machinery/mineral/processing_unit_console,/turf/simulated/wall/r_wall,/area/mine/production)
+"ng" = (/obj/machinery/mineral/processing_unit{dir = 1; output_dir = 2},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production)
+"nh" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/mine/production)
+"ni" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/mine/production)
+"nj" = (/obj/machinery/door/airlock/glass_mining{name = "Processing Area"; req_access_txt = "48"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
+"nk" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/production)
+"nl" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/mine/production)
+"nm" = (/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/mine/production)
+"nn" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/space,/area/space)
+"no" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/mine/production)
+"np" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/mine/production)
+"nq" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/window/northleft{name = "Output Access"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
+"nr" = (/obj/machinery/door/window/northleft{base_state = "right"; icon_state = "right"; name = "Output Access"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
+"ns" = (/obj/machinery/mineral/stacking_unit_console,/turf/simulated/wall/r_wall,/area/mine/production)
+"nt" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/explored)
+"nu" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/mine/explored)
+"nv" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 4},/turf/space,/area/space)
+"nw" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/space,/area/space)
+"nx" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/trunk,/obj/machinery/door/window/northleft{name = "Pneumatic Tube Access"},/obj/machinery/disposal/deliveryChute{dir = 1; pixel_y = -1},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
+"ny" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/machinery/light,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/mine/production)
+"nz" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
+"nA" = (/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/mine/production)
+"nB" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/structure/plasticflaps,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/production)
+"nC" = (/obj/machinery/mineral/stacking_machine{dir = 1; input_dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/mine/production)
+"nD" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/production)
+"nE" = (/obj/machinery/conveyor{icon_state = "conveyor0"; dir = 10; id = "mining_internal"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{tag = "icon-warnplatecorner (EAST)"; icon_state = "warnplatecorner"; dir = 4},/area/mine/production)
+"nF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/mine/explored)
+"nG" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall,/area/mine/production)
+"nH" = (/obj/structure/disposaloutlet{dir = 1; eject_range = 1},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/mine/production)
+"nI" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_z5"; name = "south of asteroid"; turf_type = /turf/space; width = 18},/turf/space,/area/space)
+
+(1,1,1) = {"
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababacacacacacababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababacacacacacacacacacacabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababacacacacacacacacacacacacacacacacacabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacadacacacacacacacacacacacacacacacabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababacacacacacacacacacacacacacacacacacacacacacacacacababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaabababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafagafaaaaaaaaababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeahahahahahahaeaeaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiajaiakaaaaabababababacacacacacacadacacacacacacacacacacacacalacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamanaoapakaaababababacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqarajaiakaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqasatauakakababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababakakakakakakakakakakaeaeaeaeaeaeahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavajawabababababacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacadacacacacacacacacacabababaxaxaxaxaxaxaxaxaxaxaeaeaeaeaeaeahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakayazajawabababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababakakakakakaAakakakaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakaBaCaDaEawabababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakaFaGaHawaIaJawawawawacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaKaLaqaMaNaOafaPaEawaQaQawacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakaRaSaLataTaUaUaVaEaIaWaXaQawacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYaRaSaRaqaqaZaTaTawaIbaawaQbbawacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacababaaaaaaaaaaaaaaaaaaaaaaaaakaeaeaeaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakbcbdaqbebfaqaZbababgaZaIawawawawawawacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababacacacacacababaaaaaaaaaaaaaaaaaaaaaaakbhbhbibhbhbhaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakbjbkblaqbfaqatbmbnaIawaUboawbpajaTbqawacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababacacacababaaaaaaaaaaaaaaaaaaaaakakbhbrbsbtbubhaeaeaeaeaeaeaeaeaeaeahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakakakacacawaOaZbvaqblaTbwbxbyafaUaTawbpajajbqawacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaeaeaeaeaeaeababacacacababaaaaaaaaaaaaaaaaakakakbhbzbAbBbCbhaeaeaeaeaeaeaeaeaeaeahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakawawawawawawaNaTbDaZaTbabEbybyaVajajawbpataIbqawacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacababaeaeaebFbFbFbFaeaeaeababacababaaaaaaaaaaaaaaakbhbhbhbhbhbGbHbhbhbhbhbhbhbhbhbhbFaeaeaeaeahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakawbIbJbKbLawbjbMbkawbgawbNbNbNawaTajajajajbObnawacacacacacacacacacacacacalacacacacacacacacacacacacacacacacacacababaeaebFbFbFbFbFbFbFbFaeaeababababaaaaaaaaaaaaaaakbhbPbQbRbSbTbUbVbWbWbWbXbYbZcabhbFbFaeaeaeaeaeahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabawbIcbcccbcdaIcebOaIcfbnaPcgaIbnaPaZawajbaaIaIawacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabaeaebFbFbFbFbFbFbFbFbFbFaeaeababababaaaaaaaaaaaaakbhchbWcibScjckclbhbhcmcncococpbhbFbFaeaeaeaeaeahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababawbIcbcqcqcdbaaIaIaPaEaIaIaIbOaIaIaIawaIbncfaIawacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabaeaebFbFbFbFbFbFbFbFbFbFbFcraeaeaeaeaeaaaaaaaaaaaaakbhcsctcucvcucwcxcyczcAcBcCcDbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababawbIcEcqcFawcGcHbNbNcHbacHbNbNbNaIaIawcIbOaIbaawacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabaecrbFbFbFbFbFbFbFbFbFbFbFbFaeaeaeaeaaaaaaaaaaaaaaakbhcJbWcKbSbWcLcxcMcNcAbFbFbFbFbFaeaeaeaeaeaeahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababawawawawawawcOcHaIaIaIaIbOaIcPbNcfbnawcQcRcScTawacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabaecrbFbFbFbFbFbFbFbFbFbFbFbFaeaeaeaaaaaaaaaaaaaaakakbhcUbWcVbScWbWcxcMcNcAbFbFbFbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababacacacacacacawcGcHaIbacXcYaEbnaIbNaIaIawajcZcZdaawdbacacacacacacacacacacacacacacacacacacacacacacacacacacacacababaeaebFbFbFbFbFbFbFbFbFbFbFbFaeaeaeaaaaaaaaaaaaakakakbhbhbSbSbhbhbSdcbScNcAbFbFbFbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacawcGcHaIbnaIaIcPaIbacHcGawawbpajcZdedfdbdbacacacacacacacacacacacacacadacacacacacacacacacacacacacababaeaebFbFbFbFbFbFbFbFbFbFbFbFdgdgdhdididididididjdgdgbFbFdkdldmbhdnbWdocNcAbFbFbFbFbFbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpdpdpdpdpdpddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacawdqcHcHcHcHcHcHcHcHcHcGawbpajdrajdadsdbdbacacacacacacacacacacacacacacacacacacacacacacacacacacabababaebFbFbFbFbFbFbFbFbFbFbFbFbFbFdtdududududududududtbFbFbFdvdvdvbhdwdxdycNcAbFbFbFbFbFbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpdpdpdpdpdpdzdzdzdAdpdddddddBdBddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacawdqcGcGcGdCdDcGcGcGdqdqawbpdrdrdrbqawdbdbdbacacacacacacacacacacacacacacacacacacacacacacacacacabababaebFbFbFbFbFbFbFbFbFbFbFbFbFdgdgdEdFdFdFdFdFdFdFdgdgbFbFbFbFbFbhbSdGbScNdHbFbFbFbFbFbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpdIdJdKdLdMdNdOdOdOdpdPdPdPdPdQdBddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababacacacacacacacacacawawawawawawawawawawawawawawcTdRdSawawdbdbdbdbacacacacacacacacacacacacacacacacacacacacacacacacabababaebFbFbFbFbFbFbFbFbFbFbFbFbFaeaaaaaaaaaaaaaaaaaeaeaebFbFbFbFbFbFdTdUdVdWdXdYbFbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpdZeaebecdMeddOeeefegeheieidPdQejdBddddddddddddaaaaaaaaaaaaaaaaaaaaaaababababababacacacacacacacacacacacacacacacacacacacacacdbdbdbawcZcZdrawdbdbdbdbdbacacacacacacacacacacacacacacacacacacacacacacacacabababaebFbFbFbFbFbFbFbFbFbFbFbFaeaaaaaaaaaaaaaaaeaeaeaeaeaeaeaebFbFbFbFbFdTekekdVbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpdpdpdMelemendMeoepdMdMdpdpdpeqeresdBdBddddddddddddddaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacdbdbdbaweteuetawdbdbdbdbdbacacacacacacacacacacacacacacacacacacacacacacacacacababaebFbFbFbFbFbFbFbFbFbFbFbFaeaaaaaaaaaaaaaaaeaeaeaeaeaeaeaeaeaebFbFbFbFevevbFbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpewexdMeydOdNezeAdOeBdMeCeCeCdQeieidBdBddddddddddddddaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacdbdbaweDdReEawdbdbdbdbacacacacacacacacacacacacacacacacacacacacacacacacacacababaeaebFbFbFbFbFbFbFbFaeaeaeaeaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeaeaeaeaebFbFevevbFbFaeaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakdpeFeGeHeIeJeKdOeydOdOeLeCeCeieieieieMdBddddddddddddddddaaaaaaaaaaaaaaabababababacacacacacacacadacacacacacacacacacacacacacacacacacdbdbdbeNeOePdbdbdbdbacacacacacacacacacacacacacacacacacacacacacadacacacacacabababaeaeaeaeaebFbFcrcraeababaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeaeaeaeaeaebFevevbFbFaeaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpeQeReSeTeJeUdOeyeVdOdMeWeXeXeieidQdQdBdBddddddddddddddddaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacdbdbdbdbdbeYdbdbdbdbacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababaeaeaeaeaeaeababaaaaaaaaaaaaaaaaaaaeaeaeahahahaeaeaeaeaeaebFevevbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpdMdMdMeZdOfaeJfbenfcfdfefefffgeidQdQfhdBddddddddddddddddaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacdbdbdbdbdbdbdbeYdbdbacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababaaaaaaaaaaaaaaaaaaaaaeaeaeahahahaeaeaeaeaebFevfifjbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafkflfkfmfndOeydOdOfofpdMfqfrfseieidQdQftdBddddddddddddddddddaaaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacdbdbdbdbeYdbdbdbdbdbacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababaaaaaaaaaaaaaaaaaaaaaeaeaeahahahahahaeaeaebFfifjevbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpdpdpdpdOdOeyenfudMfvdMeCeCeCdQdQdQdQfwdMddddddddddddddddddddaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacdbdbdbdbdbdbdbdbdbdbacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababaaaaaaaaaaaaaaaaaaaaaeaeaeaeahahahahaeaeaebFbFevevbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpfxdOdOeyfyfzfAfBdMfCfDdQdQdQdQeMdBdBddddddddddddddddddddakakabababababacacacacacacacacacacacacacacacacacacacacacacacacdbdbdbdbdbdbdbdbdbacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaeaeaeahahahahaeaeaebFbFevevbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafEfEfEfFfFfGfHfIfJfJdMfJfJfKdQeidQdQeMdBddddddddddddddddddddddaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacdbdbdbdbdbdbacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababaaaaaaaaaaaaaaaaaaaeaeaeaeahahahaeaeaebFbFevevbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaafLfMfFfNfFfFfOfPfQfRfSfTfUfVeCeCdQdQdQdBdBddddddddddddddddddddddddaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacdbdbdbacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababaaaaaaaaaaaaaaaaaeaeaeaeahahahahaeaeaebFevevbFbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafEfJfJfJfWfHfJfJfXfYfZfJfJgaeCdQdQdBdBddddddddddddddddddddddddddaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaeaeaeaeahahahahaeaeaebFevevbFbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafEgbgcgdgegfggghgigjgkglgmgngogpdBdBddddddddddddddddddddddddddddddaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaeaeaeaeahahahahaeaeaebFevfigqfjbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakgrgsgcgtgcgufJgvgwgwgxgyfJdBdBdBdBddddddddddddddddddddddddddddddddaaaaaaaaababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaeaeaeahahahahaeaeaebFfigqfjevbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagzgAgBgCgDgEfJgFgGgHgIgyfJdBddddddddddddddddddddddddddddddddddddddddaaaaaaaaabababacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacalacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaeaeaeahahahahaeaeaebFbFbFevevbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagJgKgLfEfEfEfJfJfJfJfJfJfJdBddddddddddddddddddddddddddddddddddddddddaaaaaaaaabababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaeaeaeahahahahaeaeaebFgMdXdXdYbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadBdBdBdBdBdBdBdBdBdBdBddddddddddddddddddddddddddddddddddddddddddakakababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababaaaaaaaaaaaaaaaaaaaeaeaeaeahahahaeaeaebFdTekekdVbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababaaaaaaaaaaaaaaaaaeaeaeaeahahahaeaeaebFbFevevbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaabababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacabababababaaaaaaaaaaaaaaaeaeaeaeahahahaeaeaebFbFevevbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaababababababacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababaaaaaaaaaaaaaaaaaeaeaeaeaeahaeaeaebFbFevevbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababaaaaaaaaaaaaaaaaaeaeaeaeahahaeaeaebFevevbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaabababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaeaeahahaeaeaebFevevbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaeahahaeaeaebFevevbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacadacacacacacacababaaaaaaaaaaaaaaaaaaaaaaaeahahaeaeaebFevevbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaabababacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababaaaaaaaaaaaaaaaaaaaaaeahahaeaeaebFevfifjbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababaaaaaaaaaaaaaaaaaaaaaeahahaeaeaebFfifjevbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaabababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababakakakakakakakakaeaeahahaeaeaebFbFevevbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababaxaxaxaxaxaxaxaxaeaeahahaeaeaebFbFevevbFaeaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababakakakakakakakakaeaeahahaeaeaebFbFevevbFaeaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaeaeahahaeaeaebFgMdXdXdYbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababaaaaaaaaaaaaaaaaaaaeaeahahaeaeaebFdTekekdVbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaddddddaaaaaaaaaaaaaaaaaaaaaaaaababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacabababababababababaaaaaaaaaaaaaaaaaaaeaeaeahahaeaeaebFbFevevbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaddddddddaaaaaaaaaaaaaaaaaaaaaaaaababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacabababababababaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeahahaeaeaebFbFevevbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaddddddddddaaaaaaaaaaaaaaaaaaaaaaababacacacacacacacacacacacacacacacacacacalacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeahahaeaeaebFgNgOevbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaddddddddddddakakakakakakakakakababababacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeahahaeaeaebFevgNgObFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaddddddddddaxaxaxaxaxaxaxaxaxababababacacacadacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeahaeaeaebFevevbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaddddddddddakakakakakakakakakababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaebFbFevevbFaeaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaddddddddddddaaaaaaaaaaaaaaaaaaababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaebFgNgOevbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaddddddddddddddaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaebFevgNgObFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddgPddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaebFevevbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddgQgRddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaebFbFbFevevbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFbFbFbFevevbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFbFbFbFevevbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacadacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFbFbFbFevevbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFbFbFbFevevbFbFbFaeaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFbFbFbFbFevevbFbFbFaeaeaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFbFbFbFbFbFevevbFbFbFbFaeaeaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaddddaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaaaabababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFbFbFbFbFbFevevbFbFbFbFbFbFbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaddddddddddakakakakakakakakakakakabababababaaabababacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFbFbFbFbFbFevevbFgMdYbFbFbFbFbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaddddddddddaxaxaxaxaxaxaxaxaxaxaxabababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFbFbFbFbFevfigqgTgUgqgqgqfjbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddabababababababababababababababababababababababababababakakakakakakakakakakakababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFbFbFbFbFfigqgqgTgUgqgqfjevbFbFbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddababacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaebFbFbFbFbFdTdVbFbFevfigqfjbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddababababababababababacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaebFbFbFbFbFfigqfjevbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacadacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeaeaebFbFbFevevbFbFbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeaeaeaebFevfigqgqfjbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddabababacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeaeaebFfigqgqfjevbFbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeaebFbFbFbFevfigqgqfjbFbFaeaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddabababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaeaeaeaeaeaeaeaeaeaeaebFfigqgqfjevbFbFaeaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddabababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbdbacacacacdbdbaaaaaeaeaeaeaeaeaeaeaeaeaebFbFbFbFevevbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddabababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbdbdbacacacdbdbdbaaaaaaaeaeaeahahahaeaeaeaeaeaeaebFevfigqfjbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddabababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbdbdbacacacdbdbaaaaaaaaaeaeaeahahahahaeaeaeaeaeaebFfigqfjevbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddabababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbdbacacacdbdbaaaaaaaaaeaeaeahahahahaeaeaeaeaeaebFbFbFevevbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacabababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacdbdbaaaaaaaaaeaeaeaeaeahahahahaeaeaeaeaebFbFgMdXdXdYbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacalacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeahahahahaeaeaeaeaebFbFdTekekdVbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeahahahahahahaeaeaeaebFbFbFbFevevbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababakakakakakakakakakakakakakakaeaeaeaeaeaeaeahahahahahaeaeaebFbFbFbFbFbFevevbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababaxaxaxaxaxaxaxaxaxaxaxaxaxaxaeaeaeaeaeaeaeahahahahahaeaeaebFgNgqgqgqgqgOevbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababakakakakakakakakakakakakakaeaeaeaeaeaeaeahahahahahaeaeaebFevgNgqgqgqgqgObFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeahahahahahaeaeaebFevevbFbFbFbFbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacababababababaaaaaaaaaadbdbdbaaaaaaaeaeaeaeaeaeaeahahahahahaeaeaebFevevbFbFbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababaaaaaaaaacacdbaaaaaaaaaeaeaeaeaeaeaeahahahahaeaeaebFevevbFbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababaaaaaaaaacacaaaaaaaaaaaeaeaeaeaeaeahahahahaeaeaebFevevbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaabababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeahahaeaeaeaebFevevbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaabababacacacacadacacacacacacacacalacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaadbdbaaaaaaaaaeaeaeaeahahaeaeaebFbFevevbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaababababacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababaaaaaaaaaadbdbacdbdbaaaaaaaaaeaeaeahahaeaeaebFgNgOevbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaadbacacacdbaaaaaaaaaeaeaeahahaeaeaebFevgNgObFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacabababaaaaaadbdbacacdbaaaaaaaaaeaeaeahahaeaebFbFevevbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaadbdbdbdbaaaaaaaaaeaeaeahahaeaebFgMdXdXdYbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaeaeaeahahaeaebFdTekekdVbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabaeaeaeabababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababaaaaaaaaaaaaaaaaaaaeaeaeaeaeahahaeaebFbFevevbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabababacacacacacacacacadacacacacacacacacacacacacacacacacacacacacababaebFbFaeababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababakakakakakakakakakakaeaeaeaeaeahahaeaeaebFevevbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabaebFbFbFbFaeabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababaxaxaxaxaxaxaxaxaxaeaeaeaeaeaeahahaeaeaebFevevbFbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacabaeaebFbFbFbFaeabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababakakakakakakakakakakaeaeaeaeaeaeahahaeaeaebFevevbFbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacabaebFbFbFbFaeaeabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeahahahahaeaeaebFevevbFbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabaebFbFbFbFbFaeabacacacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacalacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeahahaeaeaeaeaebFevevbFbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabaebFbFbFbFbFaeabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeahahaeaeaeaeaebFevevbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabaedgbFdgbFaeababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeahahaeaeaeaebFbFevevbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacadacacacacacacacacacacacacacacacacacacacacacacacaedggVdgbFaeababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeahahaeaeaeaebFbFevevbFbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababacacacacacacacacacacacacacacacacacacacacababababacacacacacacacaegWgXgYaeababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeahahaeaeaebFbFbFevevbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababacacacacacacacacacacacacacacacacacabababaeaeaeaeaeaeaeaeaeaeaegWgXgZaeababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeahahaeaeaebFbFbFevevbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaabababacacacacacacacacacacacacacacacacacababaebFbFdgdghadidididididihbgXgZaeabababacacacacacacacacacacacacacacacacacacalacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacachchchchchchchcacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeahahaeaeaebFbFbFevevbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababacacacacacacacacacacacacacacacacacabaebFbFbFbFgVhdhdhdhdhdhdhdhehfgZaeababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacachchghhhihjhghcacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeahahaeaeaeaebFbFevevbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahaeaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacabaebFbFbFdgdgdFdFdFdFdFdFhkgXhlhmhnaeaeaeaeabababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacachchghohphqhrhcacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeahahaeaeaeaebFbFevevbFaeaeaeaeahahahahahahahahahahahahahahahahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacababaebFbFbFaehnhnhnhnhnhngWgXgZhnhnhnbFbFbFaeababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacachshthuachvhchchchwhchchcacacabababaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeahahaeaeaeaebFbFevevbFaeaeaeaeaeaeahahahahahahahahahahahahahahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacacabaebFbFaehnhnhnhnhnhnhngWgXgZhnbFbFbFbFbFaeaeabababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacachxhuhyachvhzhAhvhBhvaeaeabacabababaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeahahaeaeaeaeaebFevevbFbFaeaeaeaeaeaeaeahahahahahahahahahahahahahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacadacacacacacacacacababaebFaehnhnhnhnhnhnhnhCgXgZbFbFbFbFbFbFbFaeabababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacachsdPachvhDhEhFhBhvbFaeaeababababaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeahahaeaeaeaeaebFevevbFbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababacacacacacacacacacacacacacacacababaeaeaeaeaehnhnhnhndggVdgbFbFbFbFbFbFbFaeaeababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacachGacachvhvhvhvhHhvbFbFaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeahahaeaeaeaeaebFevevbFbFbFbFbFbFaeaeaeaeahahahahahahahahahahahahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababacacacacacacacacacacacacacacacabababababababaehnbFbFdgbFdgbFbFbFbFbFbFbFbFaeababacacacacacacacacacacacacacadacacacacacacacacacacacacacacababababababacacacacacacacacacacacacacacacacacacacachIacachvhzhJhvhBhKbFbFbFbFbFbFaeaeaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeaeaeaeaeaeaebFevevbFbFbFbFbFbFbFaeaeaeaeaeahahahahahahahahahahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababacacacacacacacacacacacacacacababababababaebFbFbFbFbFbFbFbFhLhLhLbFbFbFaeababacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababacacacacacacacacacacacacacacacachIacachvhDhEhMhBhKbFbFbFbFbFbFbFbFbFaaaaaaaaaaaaaaaaaahNaeaeaeaeaeaeaeaeaeaeaebFbFevevbFbFbFbFbFbFbFbFbFaeaeaeaeahahahahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababacacacacacacacacacacacacacababaeaeaeaeaeaebFbFbFbFbFbFbFbFhOhPhQbFbFbFaeababababacacacacacacacacacacacacacacacacacacacacacabababababaeaeaeaeaeaeaeabababababababacacacacacacacacacachvhvhRhvhvhvhvhvhvhBhKbFbFbFbFbFbFbFbFbFbFbFaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaebFbFbFbFgMdXdXdYbFbFbFbFbFbFbFbFbFaeaeaeaeaeahahahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababacacacacacacacacacacacacabaeaebFbFhShShShShShShThThThThShShShShUbFbFaeababababacacacacacacacacacacacacacacacacacacacacacababababaeaebFbFbFbFbFaeaeaeaeaeabababababababacacacachvhvhvhVhWhXhYhvhzhZhvhHhvhvhvhKhKhKhvbFbFbFbFbFbFaaaaaaaaaaaaaaaaaaaeaeaeaeaebFbFbFbFbFdTekekdVbFbFbFbFbFbFbFbFbFaeaeaeaeaeahahahahahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababacacacacacacacababaebFbFbFhSiaibichTidieifigihhTiiijikdYbFbFaeaeaeaeababababababacacacacacacacacacacacacacacabababababaeaebFbFbFbFbFbFbFbFbFbFaeaeaeaeaeabababababacachviliminioiniphvhDhEiqhBhvirisititithKbFbFbFbFbFbFbFaaaaaaaaaaaaaaaaaaaeaeaebFbFbFbFbFbFbFeviuiviwiwixixbFbFbFbFbFbFaeaeaeaeaeahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababacacacacacacababaebFbFbFhSiyiiizhTiAiAiAiAiBiCiiijiDiEbFbFbFbFbFaeaeaeabababababababacacacacacacacacacacacabababaeaeaebFbFbFbFbFbFbFbFbFbFbFbFbFbFbFaeaeabababababachviFiniGiHiIiJhvhvhvhvhBhviriKiKiKiLhKbFbFbFbFbFbFbFaaaaaaaaaaaaaaaaaabFbFbFbFbFbFbFbFgNgqgOixiMiNiOiOixbFiPbFbFbFbFaeaeaeaeaeahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaababababababababacacacababaebFbFbFhSiQiiiiiRiiiiiiiiiShTiTiUhTdVbFbFbFbFbFbFbFaeaeaeaeabababababacacacacacacacacababababaeaebFbFbFbFbFbFbFbFbFbFgMdYbFbFbFbFbFbFaeaeaeaeababachviViniWiniXiniYiLiZjajbhvjciKjdiKjehKbFbFbFbFbFbFaaaaaaaaaaaaaaaaaaaaakaabFbFbFbFbFjfjgjhjhixjijjjkjlixixixixbFbFbFbFaeaeaeaeahahahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababaeaebFbFhSjmiijnjojpjqjriijshShShShShSgMdYbFbFbFbFbFbFbFbFaeaeaeabababacacacacacacacacabababaeaebFbFgNgqgqgqgqgqgqgqgqgTgUgqgqgqgqfjbFbFbFbFaeaeababhvhvhvhvhvhvhvhKjtjuhKjthvhvhvhvhvjvhvhvhKhKbFbFaaaaaaaaaaaaaaaaaaaaaaakaaaaaabFbFjhjhjwjxjyjzjAjBjCjDiwjEjFiwdYbFbFbFcraeaeaeaeaeahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaebFbFhSjGiijHhTjIjJjKiijLjMjNjOjPjQgTgUgqgqgqgqgqfjbFbFbFbFaeaeaeababacacacacacacabababaeaebFbFgNgOgNgqgqgqgqgqgqgqgTgUgqgqgqfjfigqfjbFbFbFaeabababababhvjRjSjTiKjejUiLjeiYjVjWiKiLjeiKiKjXhKhKhKjYjZjZjZjZjZjZjZkakakakakakakajhjhjhkbkckdkekfkgjBjCjCkhkikjkkiEbFbFbFcraeaeaeaeaeahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaebFbFhShShShShSklkmknhShSkokpkpkpkpgTgUgqgqgqgqfjfigqgqfjbFbFbFaeaeabababacacababababaeaebFbFgNgOgNgObFbFbFbFbFbFbFdTdVbFbFbFfigqfjevbFbFbFbFaeaeaeaeabhvhvhvhvkqjekrksktjakukvkvkwkwkvkvkxkykxkykzkzkzkzkzkzkzkzkAkAkAkAkAkAkAkBkCkBkCkDkEkFiwkGkHkIkJiwkKkLiwdVbFbFbFbFaeaeaeaeaeahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaeaebFbFbFbFbFhSkMkNkOkPhSkQkRhLbFbFdTdVbFbFbFbFfigqgqfjevbFbFbFbFaeaeaeababababababaeaebFbFgNgOgNgObFbFbFbFaebFbFbFbFbFbFbFbFbFbFevevbFbFbFbFbFbFbFaeaeaeaeaehviKkSkTkUkUkTkVkWkXkUkUkTkTkYkZkZkZlalalalalalalalalblblblblblblcldldldlelflglhjfjfjgjfjfjfjfjfjfliljlkljllcraeaeaeaeaeahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaeaebFbFbFbFhSlmlnlolphSbFbFbFbFbFbFbFbFbFbFbFbFbFbFevfifjbFbFbFbFbFaeaeaeaeaeaeaeaebFbFgNgOgNgObFbFaeaeaeaeaeaeaebFbFbFbFbFbFbFevevbFgMdYbFbFbFbFbFbFaeaehvhvhKlqhKhvhvlrlslthvhvhKluhKhvhKbFbFbFaaaaaaaaakaaaaaaakaaaaaaaaaaakaajhjhlvlwlxlylzlAlBlClDlDlElFlGlGlGlGllbFaeaeaeaeaeahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababaeaebFbFbFhShShShShShSbFbFaeaeaeaeaeaeaeaeaebFbFbFfifjfigqgqgqfjbFbFbFbFbFbFbFbFbFbFbFevgNgObFbFaeaeabababababaebFbFbFbFbFbFbFevfigqgTgUgqgqgqgqfjbFbFaehvlHlIlJlKhvlLlMlNlOlPhvlQlRlSlTbFbFbFbFbFbFaaaaakaaaaaaakakakakakakakakakjflUlVlWjfjfjfjfjfjfjfjfjflXllllllllbFaeaeaeaeaeahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababaebFbFbFbFbFbFbFbFbFbFbFaeabababababababaeaebFbFbFfigqgqgqfjfifjbFgMdYbFbFgNgqgqgqgqgOevbFbFaeaeababababababaeaebFbFbFbFbFbFfigqgqgTgUgqgqgqfjevbFbFbFhvlYlZmambhvmcmdmdmemfhvmgmhmihvbFbFbFbFbFbFakakakakakakakaaaaaaaaaaakaaakjfmjmkmlmmjfmnmompmqjhmrjfbFbFbFbFbFaeaeaeaeahahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababaebFbFbFbFbFbFbFbFbFaeaeaeabababacacabababaeaeaebFbFbFbFbFfifjfigqgTgUgqgqgOgNgqgqgqgqgObFaeaeababababababababaeaeaebFbFbFbFbFbFbFdTdVbFbFbFevevbFbFbFlThvhvhvhvhvmsmtmumvmfhvhKmwhKhvbFbFbFbFbFbFaaaaakaaaaaaakaaaaaaaaaaakaajhjhlvmxmlmmjhmykbkcmzmAmBjfbFbFbFbFbFaeaeaeaeahahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababaeaeaeaebFbFbFbFaeaeaeababacacacacacacacabababaeaeaebFbFbFbFfigqgqgTgUgqgqgqgObFbFbFbFbFbFaeababababababacacabababaeaeaeaebFbFbFbFbFbFbFbFbFevfigqfjbFbFbFbFbFbFlThvhvhvhvhvlTmCmCiEmDbFbFbFbFbFaaaaaaakaaaaaaakaaaaaaaaaamEjhmFmGmHmxmlmIjfmJlvmKmLjfmMjfbFbFbFbFaeaeaeaeaeahahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababaeaeaeaeaeaeababababacacacacacacacacababababaeaeaeaebFbFbFbFdTdVbFbFbFbFbFbFaeaeaeaeaeababababababacacacabababababaeaeaeaeaeaeaeaebFbFfigqfjfifjbFbFbFbFbFbFbFdTdUdUdUdUdUdUdVbFbFbFbFbFbFakakakakakakakakaaaaaaaamNmOlvmOlvmPmQmRmzjhjxlvmSmTjhmBjfbFbFbFbFaeaeaeaeahahahahahahahaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababacacacacacacacacacacacacabababababaeaebFbFbFbFbFbFbFbFbFaeaeaeabababababababacacacacacacacabababababababababababaeaebFbFbFfifjfifjmUbFbFbFbFbFbFbFbFbFbFbFbFbFbFbFbFbFbFbFbFaaaaaaaaaaaaakaaaaaaaaaajhjhjhmVmWmXmYmZnanbncndnenfngjfbFbFbFbFaeaeaeaeahahahahahahahaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababacacacacacacacacacacacacacacacacacababababaeaeaebFbFbFaeaeaeaeaeabababababacacacacacacacacacacacacacababababababababababaebFbFbFbFfifjfigqgqgqgqgqgqgqgqgqgqgqgqgqgqgqfjbFbFbFbFbFbFaaaaaaaaaaakaaaaaaaaaaakaajhjhlvmxnhninjnknlnlnmjhmBjfbFbFbFbFaeaeaeaeahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacabababaeaeaeaeaeababababababababacacacacacacacacacacacacacacacabababababababababaeaeaebFbFbFfigqgqgqgqgqgqgqgqgqgqgqgqgqgqgqfjevbFgMdYbFbFbFererakaaaaakaaaaaaaaaaakaannlBnonpnlnmjhnqnrnsjhjhmBjfbFbFbFbFaeaeaeaeahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacababababaeaeaebFbFbFbFbFbFbFbFbFbFbFbFbFbFbFbFbFevfigqgTgUgqgqgqntnunvnvnvnvnvnvnvnvnvnvnvnwjfnxnyjxmJjfnznAnBnCnDnEjfbFbFaeaeaeaeahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaeaeaebFbFbFbFbFbFbFaeaebFbFbFbFbFbFfigqgqgTgUgqgqgqnFnunvnvnvnvnvnvnvnvnvnvnvnvlBnGjfjhjhjfnHjfjfjfjfjfjfbFbFaeaeaeaeahahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababaeaeaeaeaeaeaeaeaeaeaebFbFbFbFbFbFbFbFdTdVbFbFbFererakaaaaaaaaaaaaaaaaaaaaakakbFbFbFbFjfjfjfbFbFbFbFbFbFbFaeaeaeaeahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacalacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababaebFbFbFbFbFbFbFbFbFbFbFbFbFbFbFbFaaaaaaaaaaaaaaaaaaaaaaaabFbFbFbFbFbFbFbFbFbFbFbFbFaeaeaeahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababaebFbFbFbFbFbFbFbFbFbFbFbFaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaabFbFbFbFbFbFbFbFbFbFbFaeaeaeaeahahahahahahaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababaeaebFbFbFbFbFbFbFbFbFaeababababaeaaaaaaaaaaaaaaaaaaaaaaaaaabFbFbFbFbFbFbFbFbFbFbFaeaeaeaeahahahahahaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababaeaeaeaeaeaeaeaeaeaeaeabababababaeaaaaaaaaaaaaaaaaaaaaaaaabFbFbFbFbFbFbFbFbFbFaeaeaeahahahahahahahaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaabFbFbFbFbFbFbFaeaeaeaeaeaeahahahahahahaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababacacababababaaaaaaaaaaaaaaaaaaaaaabFbFaeaeaeaeaeaeaeaeaeaeahahahahahahahaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeaeahahahahahahahahaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeahahahahahahahahahaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacacacacacacacacacacacacacacacacacacalacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeahahahahahahahaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeahahahahaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaeaeaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacalacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaeaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababaaaaaaaaababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacalacacacacacacacacacacacacacacacacababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababacacacacacacacacacacacabababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababacacacacacacacacacacababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababaaaaaaaaababababababababababababababaaabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaabababaaaaaaaaabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+"}
diff --git a/_maps/map_files/MiniStation/MiniStation.dmm b/_maps/map_files/MiniStation/MiniStation.dmm
index 392ef5442c9..144eb8c3a48 100644
--- a/_maps/map_files/MiniStation/MiniStation.dmm
+++ b/_maps/map_files/MiniStation/MiniStation.dmm
@@ -1227,7 +1227,7 @@
"xE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"xF" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"xG" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay)
-"xH" = (/obj/structure/closet/l3closet/general,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay)
+"xH" = (/obj/structure/closet/l3closet,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay)
"xI" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/space)
"xJ" = (/obj/docking_port/stationary{dir = 8; dwidth = 1; height = 7; id = "supply_home"; name = "supply bay"; width = 10},/turf/space,/area/space)
"xK" = (/obj/docking_port/stationary{dir = 8; dwidth = 12; height = 9; id = "emergency_home"; name = "emergency evac bay"; width = 21},/turf/space,/area/space)
@@ -1235,11 +1235,11 @@
"xM" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/meter{use_power = 0},/turf/space,/area/space)
"xN" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/hallway/primary/central)
"xO" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/hallway/primary/central)
-"xP" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/kitchenspike,/obj/item/weapon/reagent_containers/food/snacks/meat/monkey,/obj/item/weapon/reagent_containers/food/snacks/meat/monkey,/obj/item/weapon/reagent_containers/food/snacks/meat/monkey,/obj/item/weapon/reagent_containers/food/snacks/meat/monkey,/obj/item/weapon/reagent_containers/food/snacks/meat/monkey,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/bar)
+"xP" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/kitchenspike,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/bar)
"xQ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/bar)
"xR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/gibber,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/bar)
"xS" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/simulated/floor/wood,/area/crew_quarters/bar)
-"xT" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/light/small,/obj/structure/closet/gmcloset{icon_closed = "black"; icon_state = "black"; name = "formal wardrobe"},/turf/simulated/floor/wood,/area/crew_quarters/bar)
+"xT" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/light/small,/obj/structure/closet/gmcloset,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"xU" = (/obj/structure/table/wood,/obj/item/weapon/gun/projectile/revolver/doublebarrel,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"xV" = (/obj/machinery/camera/autoname{dir = 1},/obj/structure/table/wood,/obj/item/weapon/book/manual/chef_recipes{pixel_y = 5},/obj/item/weapon/reagent_containers/food/condiment/enzyme,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"xW" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/simulated/floor/wood,/area/crew_quarters/bar)
diff --git a/_maps/map_files/MiniStation/z2.dmm b/_maps/map_files/MiniStation/z2.dmm
index c72401c0fb1..059bd30b2cf 100644
--- a/_maps/map_files/MiniStation/z2.dmm
+++ b/_maps/map_files/MiniStation/z2.dmm
@@ -294,7 +294,7 @@
"jc" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac)
"jd" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership)
"je" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership)
-"jf" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroompizza,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"jf" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroom,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"jg" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = 5; pixel_y = -2; step_x = 0},/obj/item/toy/cards/deck/syndicate{icon_state = "deck_syndicate_full"; pixel_x = -6; pixel_y = 6},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"jh" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (WEST)"; icon_state = "podhatch"; dir = 8},/area/syndicate_mothership)
"ji" = (/turf/unsimulated/floor{icon_state = "red"; dir = 10},/area/tdome/tdomeobserve)
@@ -339,7 +339,7 @@
"kq" = (/obj/machinery/computer/libraryconsole/bookmanagement,/obj/structure/table/wood,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"kr" = (/obj/machinery/vending/magivend,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"ks" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
-"kt" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/weapon/storage/backpack/satchel,/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/wizard_station)
+"kt" = (/obj/structure/closet/cabinet,/obj/item/weapon/storage/backpack/satchel,/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/wizard_station)
"ku" = (/obj/structure/mirror{pixel_y = 28},/turf/unsimulated/floor{dir = 1; icon_state = "carpetside"},/area/wizard_station)
"kv" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/wiz,/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/wizard_station)
"kw" = (/turf/unsimulated/wall,/area/tdome)
diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm
index d3883396221..6b5ff650249 100644
--- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm
+++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm
@@ -1987,9 +1987,9 @@
"aMk" = (/obj/machinery/door/window{dir = 4; name = "Theatre Stage"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/theatre)
"aMl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aMm" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
-"aMn" = (/obj/machinery/computer/slot_machine,/obj/machinery/light/small{dir = 4},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aMn" = (/obj/machinery/computer/slot_machine,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aMo" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/wood,/area/crew_quarters/bar)
-"aMp" = (/obj/structure/closet/gmcloset{icon_closed = "black"; icon_state = "black"; name = "formal wardrobe"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/wood,/area/crew_quarters/bar)
+"aMp" = (/obj/structure/closet/gmcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aMq" = (/obj/structure/kitchenspike,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
"aMr" = (/mob/living/simple_animal/hostile/retaliate/goat{name = "Pete"},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
"aMs" = (/obj/machinery/light/small{dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/closet/chefcloset,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
@@ -2037,7 +2037,7 @@
"aNi" = (/obj/structure/window/reinforced,/turf/simulated/floor/wood,/area/crew_quarters/theatre)
"aNj" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/wood,/area/crew_quarters/theatre)
"aNk" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/theatre)
-"aNl" = (/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aNl" = (/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/obj/machinery/computer/slot_machine,/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aNm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/crew_quarters/bar)
"aNn" = (/obj/machinery/door/airlock{name = "Bar Storage"; req_access_txt = "25"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "wood"},/area/crew_quarters/bar)
"aNo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/crew_quarters/bar)
@@ -2108,9 +2108,9 @@
"aOB" = (/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aOC" = (/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aOD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
-"aOE" = (/obj/structure/table/wood/poker,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aOE" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aOF" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
-"aOG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aOG" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/chem_dispenser/drinks/beer,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aOH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/crew_quarters/kitchen)
"aOI" = (/obj/machinery/door/airlock{name = "Kitchen cold room"; req_access_txt = "28"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/crew_quarters/kitchen)
"aOJ" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "green"},/area/hydroponics)
@@ -2175,9 +2175,9 @@
"aPQ" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/wrench,/obj/item/device/assembly/timer,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/turf/simulated/floor/plasteel,/area/bridge)
"aPR" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel,/area/hallway/primary/central)
"aPS" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
-"aPT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4},/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = 29},/obj/item/stack/spacecash/c10{amount = 20},/obj/item/stack/spacecash/c50{amount = 20},/obj/item/stack/spacecash/c100{amount = 20},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aPT" = (/obj/structure/stool/bed/chair,/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aPU" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
-"aPV" = (/obj/structure/sign/securearea{desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; pixel_x = 4; pixel_y = 28},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aPV" = (/obj/structure/table/reinforced,/obj/structure/sign/securearea{desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; pixel_x = 4; pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aPW" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aPX" = (/obj/machinery/vending/boozeomat,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aPY" = (/obj/machinery/vending/dinnerware,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
@@ -2238,15 +2238,15 @@
"aRb" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "greencorner"},/area/bridge)
"aRc" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/floor/plasteel,/area/bridge)
"aRd" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/simulated/floor/plating,/area/crew_quarters/bar)
-"aRe" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/chem_dispenser/drinks/beer,/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aRe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aRf" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/prison)
"aRg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aRh" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 1; icon_state = "comfychair"},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/secondary/entry)
-"aRi" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
-"aRj" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/deck,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
-"aRk" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (WEST)"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
-"aRl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/table/wood/poker,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
-"aRm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aRi" = (/obj/structure/table,/obj/item/weapon/kitchen/utensil/fork,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aRj" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aRk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aRl" = (/obj/structure/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aRm" = (/obj/structure/table/reinforced,/obj/item/weapon/lighter/zippo,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aRn" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aRo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/mob/living/carbon/monkey{name = "Pun Pun"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aRp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
@@ -2267,7 +2267,7 @@
"aRE" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/wood,/area/library)
"aRF" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/ai_monitored/security/armory)
"aRG" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
-"aRH" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera{c_tag = "Bar West"; dir = 4; network = list("SS13")},/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aRH" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aRI" = (/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "chapel"},/area/chapel/main)
"aRJ" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "chapel"},/area/chapel/main)
"aRK" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "chapel"},/area/chapel/main)
@@ -2318,11 +2318,11 @@
"aSD" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plasteel{dir = 10; icon_state = "brown"},/area/bridge)
"aSE" = (/obj/machinery/computer/ordercomp,/turf/simulated/floor/plasteel{dir = 2; icon_state = "brown"},/area/bridge)
"aSF" = (/obj/machinery/computer/security/mining,/turf/simulated/floor/plasteel{dir = 6; icon_state = "brown"},/area/bridge)
-"aSG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table/reinforced,/obj/item/clothing/head/that{throwforce = 1; throwing = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aSG" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera{c_tag = "Bar West"; dir = 4; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aSH" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "chapel"},/area/chapel/main)
"aSI" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (WEST)"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
-"aSJ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
-"aSK" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aSJ" = (/obj/structure/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aSK" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aSL" = (/obj/effect/landmark/start{name = "Bartender"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aSM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aSN" = (/obj/machinery/requests_console{department = "Bar"; departmentType = 2; pixel_x = 30; pixel_y = 0},/obj/machinery/camera{c_tag = "Bar"; dir = 8; network = list("SS13")},/obj/structure/table,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/machinery/chem_dispenser/drinks,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
@@ -2392,7 +2392,7 @@
"aTZ" = (/obj/machinery/camera{c_tag = "Bridge East Entrance"; dir = 2},/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/hallway/primary/central)
"aUa" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aUb" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
-"aUc" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -31},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aUc" = (/obj/structure/table/reinforced,/obj/item/clothing/head/that{throwforce = 1; throwing = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aUd" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/snacks/pie,/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
"aUe" = (/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
"aUf" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
@@ -2481,12 +2481,12 @@
"aVK" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/central)
"aVL" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/central)
"aVM" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/hallway/primary/central)
-"aVN" = (/obj/structure/table/reinforced,/obj/item/weapon/lighter/zippo,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
-"aVO" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aVN" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -31},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aVO" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aVP" = (/obj/structure/table,/obj/item/weapon/kitchen/utensil/fork,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
-"aVQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
-"aVR" = (/obj/structure/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
-"aVS" = (/obj/machinery/camera{c_tag = "Research Division Access"; dir = 2; network = list("SS13")},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 5},/area/medical/research{name = "Research Division"})
+"aVQ" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aVR" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
+"aVS" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aVT" = (/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aVU" = (/obj/machinery/door/window/southright{name = "Bar Door"; req_access_txt = "0"; req_one_access_txt = "25;28"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aVV" = (/obj/structure/table/reinforced,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/obj/item/weapon/book/manual/barman_recipes,/obj/item/weapon/reagent_containers/glass/rag,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
@@ -2563,7 +2563,7 @@
"aXo" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 10},/area/hallway/primary/central)
"aXp" = (/obj/machinery/power/apc{dir = 2; name = "Central Hall APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/hallway/primary/central)
"aXq" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central)
-"aXr" = (/obj/machinery/shower{dir = 8},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"})
+"aXr" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aXs" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar)
"aXt" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock{name = "Kitchen"; req_access_txt = "28"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/kitchen)
"aXu" = (/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen)
@@ -3102,7 +3102,7 @@
"bhH" = (/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitered"},/area/assembly/robotics)
"bhI" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{dir = 9; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"})
"bhJ" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"})
-"bhK" = (/obj/structure/closet/crate,/obj/item/clothing/under/color/lightpurple,/obj/item/stack/spacecash/c200,/turf/simulated/floor/plating,/area/maintenance/asmaint2)
+"bhK" = (/obj/machinery/camera{c_tag = "Research Division Access"; dir = 2; network = list("SS13")},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 5},/area/medical/research{name = "Research Division"})
"bhL" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/lab)
"bhM" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/lab)
"bhN" = (/obj/machinery/camera{c_tag = "Research and Development"; dir = 2; network = list("SS13","RD"); pixel_x = 22},/obj/machinery/door_control{dir = 2; id = "rnd"; name = "Shutters Control Button"; pixel_x = -6; pixel_y = 24; req_access_txt = "47"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurplecorner"},/area/toxins/lab)
@@ -3177,6 +3177,7 @@
"bje" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics)
"bjf" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = 6},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/obj/item/clothing/glasses/welding,/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics)
"bjg" = (/obj/structure/closet/firecloset,/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"})
+"bjh" = (/obj/machinery/shower{dir = 8},/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"})
"bji" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = -30; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab)
"bjj" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab)
"bjk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab)
@@ -4125,7 +4126,7 @@
"bBr" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/gun/syringe,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/soap/nanotrasen,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/sleeper)
"bBs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitebluecorner"},/area/medical/sleeper)
"bBt" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/medical/sleeper)
-"bBu" = (/obj/structure/closet/l3closet/general,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/sleeper)
+"bBu" = (/obj/structure/closet/l3closet,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/sleeper)
"bBv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/closet/wardrobe/white/medical,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/sleeper)
"bBw" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/sleeper)
"bBx" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/camera{c_tag = "Medbay Storage"; dir = 2; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/sleeper)
@@ -5220,6 +5221,7 @@
"bWu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/toxins/misc_lab)
"bWv" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/toxins/misc_lab)
"bWw" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
+"bWx" = (/obj/structure/closet/crate,/obj/item/clothing/under/color/lightpurple,/obj/item/stack/spacecash/c200,/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"bWy" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/plating,/area/maintenance/aft)
"bWz" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft)
"bWA" = (/obj/machinery/atmospherics/binary/pump{dir = 8; name = "Mix to Port"; on = 0},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/aft)
@@ -5537,7 +5539,7 @@
"ccA" = (/obj/structure/disposalpipe/segment,/obj/structure/rack{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/asmaint)
"ccB" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/asmaint)
"ccC" = (/obj/structure/disposalpipe/segment,/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/asmaint)
-"ccD" = (/obj/structure/disposalpipe/segment,/obj/structure/closet/l3closet/general,/turf/simulated/floor/plating,/area/maintenance/asmaint)
+"ccD" = (/obj/structure/disposalpipe/segment,/obj/structure/closet/l3closet,/turf/simulated/floor/plating,/area/maintenance/asmaint)
"ccE" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"ccF" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/cyan/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"ccG" = (/obj/machinery/atmospherics/pipe/simple/cyan/hidden{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
@@ -6458,7 +6460,7 @@
"cuA" = (/obj/structure/sign/directions/medical{dir = 4; icon_state = "direction_med"; pixel_x = 32; pixel_y = -24; tag = "icon-direction_med (EAST)"},/obj/structure/sign/directions/science{dir = 4; icon_state = "direction_sci"; pixel_x = 32; pixel_y = -32; tag = "icon-direction_sci (EAST)"},/obj/structure/sign/directions/engineering{pixel_x = 32; pixel_y = -40},/turf/simulated/floor/plasteel,/area/hallway/primary/central)
"cuB" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sign/directions/engineering{pixel_x = -32; pixel_y = -40},/obj/structure/sign/directions/medical{dir = 4; icon_state = "direction_med"; pixel_x = -32; pixel_y = -24; tag = "icon-direction_med (EAST)"},/obj/structure/sign/directions/evac{dir = 4; icon_state = "direction_evac"; pixel_x = -32; pixel_y = -32; tag = "icon-direction_evac (EAST)"},/turf/simulated/floor/plasteel,/area/hallway/primary/central)
"cuD" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/camera{c_tag = "Custodial Closet"},/obj/structure/stool/bed/chair/janicart,/turf/simulated/floor/plasteel,/area/janitor)
-
+
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -6575,14 +6577,14 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanTaekaekaCXaCYalQalQalQalQalQalQaIMalQaDgaINavMaBGaxaaIOaIPaIPaIPaIPaIPaIPaIPaIQaxaayuaIRaISaIRayuayuaITaIUaIVaADaADaADaADaIVaIWaIXaAEaIYaIZaIZaJaaJbaJaaIZaIZaJcaxoaJdaxvaJeaxvaJfaJfaJgaxvaJhaJiaxKaxKaxKaAgaDHaAgaxKaxKaxKaHUaHUaHUaJjaHYaHYaHYaHYaHYaJkaHUaHUaHUaIcaJlaIeaJmayZayZayZayZayZayZayZayZayZayZaJnaJoaJpaJqaJraJsaJtaJuaIkaJvaImaJwaJxaJwaIpaJyaJzaIpaJAaIpaJBaJCaJDaJEaJFaJFaJFaJGaJHaJIaGWaGXaEfaJJaIwaJKaIyaIzaJLaEfaJMaJNaJOaJPaJQaJRaJSaJTaJUaJVaJWaCTaHlaHmaFYaaaaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanTaekaJXaekaeZaeZaeZaeZaekaBEaJYafOaqpaJZaxaaKaaHbaKbaKcaKbaKdarpaKeaKfaxaaKgaKhaKiaKiaKjaKiaKkaKlaKiaKiaKiaKiaKiaKiaKiaKmaKnaKoaKpaKqaKqaKraKsaKqaKqaKqaKtaKuaKvaKraKqaKqaKqaKwaGyaKxaHYaKyaKzaHZaIaaIaaIaaHXaHYaHYaKAaHYaKBaKCaKDaKEaKFaKGaKHaKIaHYaHYaKAaKJaKKaKLaKMaKNaKOaKPaKQaHYaKRaHYaBdaKSaKTaKUaJoaKVaKWaKXaKYaKZaLaaIkaLbaLcaLdaLeaLfaIpaLgaJzaLhaLiaIpaIpaLjaLkaLlaLmaLnaLoaLpaLqaLraGWaGXaEfaLsaLtaLuaLvaLwaLxaEfaLyaLzaEiaLAaLAaLAaLAaEiaLBaCRaJWaCTaBDaBDaBDaLCaLCaLCaLDaLDaLDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMaylavMavMavMavMavMavMaylavMaaaaqpaAuaLEaKaaLFaLGaLHaLHaLIarpaLJaKfaLKaLLaKhaLMaLNaLOaLPaLQaLRaKiaKiaKiaKiaKiaKiaKiaKmaKiaKhaKiaKiaKiaLSaLTaLUaLUaLUaLUaLVaLUaLWaLUaLUaLXaKhaGyaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaKAaHYaLYaLZaMaaMbaMcaMdaMeaMfaHYaHYaKAaHYaHYaHYaHYaHYaHYaHYaHYaHYaMgaHYaBdaKUaKUaKUaMhaMiaMjaMkaMlaMmaMnaIkaMoaImaMpaIkaIkaIpaMqaJzaMraLiaMsaIpaGWaGWaGWaGWaGWaGWaMtaMuaMvaGWaGXaEfaMwaGZaMxaMyaGZaMzaEfaEiaEiaEiaEiaEiaEiaMAaEiaEjaEjaEkaCTaMCaMDaBDaMEaMFaMGaMHaMIaLDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaafaafaafaztaqpavMatBavMaNTaNUaNVaNWavMatBavMavMaqpaBGaxaaKaaMJaMKaLHaLHaLIarpaMLaKfaxaaLLaKhaKiaMMaMNaMNaMNaMOaMPaMQaMNaMRaMNaMNaMNaMSaMNaMTaMNaMNaMNaMUaMVaMWaMXaMXaMYaMZaNaaNbaNcaKicrraKhaGyaHYaNeaHYaNfaNfaNfaNfaNfaNfaNfaNfaNgaNfaNfaNfaNfaNfaNfaNfaNfaNfaNfaNfaNhaNfaNfaNfaNfaNfaNfaNfaNfaHYaHYaHYaBdaNiaNiaNiaNiaNiaNjaNkaJsaODaRdaIkaNmaNnaNoaIkaNpaIpaNqaNraNsaLiaNtaIpaGWaNuaNvaNwaNxaNwaNyaNzaNAaGWaGXaEfaNBaNBaNCaNDaNEaNEbqoaEfaNGaNHaNIaBDaNJaNKaNLaEjaEjaNMaNNaBDaNOaBDaNPaNQaNRaNRaNSaLDaLDaLDaLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafarpavMaylavMaBGaxaaxaaMBavMaylavMaNXaNYaNZaxaaKaaOaaRhaKcaOaaKdarpaObaKfaxaaOcaOcaOcaOdaOcaOeaOeaOeaOeaOeaOfaOgaOeaOhaOeaOeaOeaOiaOjaOkaOjaOlaOmaOnaKiaKiaOoaOpaOqaOraKlaKiaNdaOsaOsaHYaHYaHZaHUaHUaHUaHUaHUaHUaHUaHUaOtbUPbUObUQbUObUObUObVMbUObWHbUObXtaOtaHUaHUaHUaHUaHUaHUaHUaHUaHXaHYaHYaIkaOAaOBaNlaNlaNlaNlaOCaJsaOGaOEaPVaPTaOFaReaIpaIpaIpaOHaOIaIpaIpaIpaIpaIpaNwaOJaOKaOKaOKaOLaOMaNwaGWaGXaEfaONaGZaNCaNDaGZaGZaOOaEfaOPaOQaORaBDaEjaOSaOTaOUaOUaOVaOWaOXaOYaBDaOZaPaaNRaPbaNRaPcaPdaPdaPcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMaPeaxaavNaNZaxaaxaaPfavNaxaaPeaNZaxaaxaaxaaPgaPhaPhaPhaPhaPhaPhaPhaPiaxaaOcaPjaOcaPkaOeaPlaPmaPnaPoaPpaPmaPqaPraPsaPtaPuaPvaOiaPwaPxaPyaOlaPzaOnaOnaPAaOnaOnaOsaPBaPCaPDaPEaOsaOsaPFaHYaHZaHUaaaaaaaaaaaaaaaaaaaaaaOtaPGaPHaPIaPJaPKaPLaPMaPNaPOaPPaPQaOtaaaaaaaaaaaaaaaaaaaaaaHUaHXaHYaPRaIkaPSaOCaRiaXsaXsaXsaOCaJsaOGaRjaPUaJsaPWaPXaIpaPYaPZaQaaQbaQcaQdaQeaQfaIpaNwaQgaQhaQhaQhaQiaQjaNwaGWaQkaEfaQlaQlaNCaNDaQmaQmaQnaEfaEfaQoaEfaBDaQpaNKaNLaQqaQqaNMaNNaBDaBDaBDaLDaQraQsaQtaLDaLDaLDaLDaQuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaavMaQvaQwaQwaQwaQwaQwaQwaQwaQwaQvaQwaQxaxaaxaaLLaxaaQyaQzaxaaQAaQBaxaaQCaQDaOcaQEaOcaPkaOeaQFaPmaQGaPmaPmaPmaPqaQHaPmaPmaPmaPvaOiaQIaPxaPxaOlaPzaOnaQJaQKaQKaQLaOsaQMaQNaQOaQPaQQaQRaHYaHYaHZaHUaaaaaaaaaaaaaOtaOtaOtaOtaQSaQTaQUaQVaQWaQXaQYaQZaRaaRbaRcaOtaOtaOtaOtaaaaaaaaaaaaaHUaHXaHYaHYaRdaOCaOCaOCaOCaOCaOCaOCaRkaRmaRlaRlaRnaRoaRpaRqaRraRraRsaRtaRuaRuaRvaRraRwaRxaRyaRzaRAaRBaRCaQjaNwaGWaGXaEfaGZaGZaNCaNDaGZaGZaGZaRDaREaGZbqpaBDaRGaUyaRIaQqaQqaSHaRKaRLaBDaRMaRNaPaaNRaROaNRaRPaPdaPdaRQaRRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaqpaqpavMavMavMavMavMavMavMavMaqpaqparpaLLaRSaRTaRTaRUaRTaRTaRTaRVaRTaRTaRTaOcaQEaRWaRXaOeaRYaPmaRZaTfaSbaScaSdaSaaPmaPmaPmaSeaOiaSfaSgaShaOlaPzaOnaSiaSjaSkaSlaOsaSmaSnaSoaSpaSqaQRaHYaHYaHZaHUaHUaIcaSraOtaOtaSsaStaSuaSvaSwaSxaSyaSzaSxaSAaSxaSxaSBaSCaSDaSEaSFaOtaOtaSraIcaHUaHUaHXaHYaHYaIkaRHaOCaUaaUaaUaaUaaOCaJsaSIaSGaSMaSLaSMaSNaSOaSPaSQaSRaSSaSTaSUaSVaSPaSWaSXaSYaSZaTaaTbaSZaTcaTdaGWaGXaEfaTeaTeaNCaNDaTlaGZaGZaTgaGZaThaTiaBDaTjaTkaTpaQqaQqaTmaTnaEjaBDaToaNRaPaaNRaROaNSaLDaLDaLDaLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMaymaxbaTqaRTaTraTsaTtaTuaTtaTvaTraTtaRTaQEaQEaTwaTxaOeaTyaPmaTzaTAaTBaTCaTDaTfaPmaPmaPmaPvaOiaOiaOiaOiaOlaPzaOnaOnaOnaOnaOnaOsaTEaQOaQOaQOaQOaQRaHYaHYaHZaIaaIaaTFaTGaTHaOtaTIaTJaTKaTLaTMaTLaTNaTOaTPaTQaTRaTSaTTaTRaTUaTVaTWaOtaTXaTGaTYaTZaIaaHXaHYaHYaRdaNlaUbaVPaSJaSKaNlaOCaJsaOGaVTaOCaOCaOCaOCaUdaUeaUfaUgaUhaUiaUjaUkaUlaIpaUmaUnaUoaQhaUpaQhaUqaUraGWaUsaEfaEfaEfaNCaNDaUtaUuaGZaUvaUwaJKaUxaBDaEjaUyaRIaQqaQqaRJaRKaUAaBDaUBaNRaPaaUCaUDaUEaLDaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUFavMavMaBGaUGaUHaUIaUJaUKaULaUMaUNaTraTtaRTaUOaUPaUQaOcaOeaURaUSaUTaUUaUTaUVaUWaUVaUVaUVaUXaUYaOeaUZaVaaVbaVcaVdaVeaVfaVgaOcaVhaOsaViaVjaVkaVlaVlaQRaHYaHYaHYaHYaHYaVmaVnaVoaVpaVqaVraVsaVtaVuaVvaVwaVxaVyaVzaVAaVBaVCaVDaVsaVEaVFaVGaVHaVIaVJaVKaVLaVMaHYaHYaIkaUcaOCaXsaXsaRiaXsaOCaJsaOGaVTaVNaVTaVUaVVaIpaUeaUeaUeaVWaUeaUeaUkaVXaIpaNwaUnaQhaQhaUpaQhaVYaNwaGWaVZaWaaWbaWcaWdaWeaWfaWfaWfaWfaWfaWfaWgaWhaWiaWiaWiaWiaWiaWjaWkaWlaWhaWmaWnaWoaWpaNRaWqaLDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWraWsatBaWsaxaaxaaRTaWtaWuaWvaWvaWvaWwaWxaWyaRTaWzaQEaUQaWAaWAaWAaWBaWCaWAaWDaWEaWFaWGaWHaWHaWIaWJaOeaWKaWLaWMaWNaWOaWPaWPaWQaWRaWRaWSaWSaWSaWSaWSaWTaOsaHYaHYaWUaWVaWWaWXaWYaWZaOtaXaaXbaXcaXdaXeaXfaXfaXgaXhaXiaXjaXkaXlaXmaXcaXnaXaaOtaWZaWYaXoaXpaWVaXqaHYaHYaRdaOCaVOaRgaRgaRgaRgaRgaVQaODaPUaVRaPUaOCaOCaXtaXuaXvaUeaUeaUeaUeaXwaXxaIpaXyaXzaQhaXAaXBaXCaXzaXDaGWaXEaXFaXFaXGaXHaXIaXJaXKaXLaXJaXJaXJaXMaXNaXOaXPaXPaXPaXPaXPaXQaXRaXNaXSaXTaXUaXVaNRaXWaLDaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaafaafaafaztaqpavMatBavMaNTaNUaNVaNWavMatBavMavMaqpaBGaxaaKaaMJaMKaLHaLHaLIarpaMLaKfaxaaLLaKhaKiaMMaMNaMNaMNaMOaMPaMQaMNaMRaMNaMNaMNaMSaMNaMTaMNaMNaMNaMUaMVaMWaMXaMXaMYaMZaNaaNbaNcaKicrraKhaGyaHYaNeaHYaNfaNfaNfaNfaNfaNfaNfaNfaNgaNfaNfaNfaNfaNfaNfaNfaNfaNfaNfaNfaNhaNfaNfaNfaNfaNfaNfaNfaNfaHYaHYaHYaBdaNiaNiaNiaNiaNiaNjaNkaJsaKZaNlaIkaNmaNnaNoaIkaNpaIpaNqaNraNsaLiaNtaIpaGWaNuaNvaNwaNxaNwaNyaNzaNAaGWaGXaEfaNBaNBaNCaNDaNEaNEbqoaEfaNGaNHaNIaBDaNJaNKaNLaEjaEjaNMaNNaBDaNOaBDaNPaNQaNRaNRaNSaLDaLDaLDaLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafarpavMaylavMaBGaxaaxaaMBavMaylavMaNXaNYaNZaxaaKaaOaaRhaKcaOaaKdarpaObaKfaxaaOcaOcaOcaOdaOcaOeaOeaOeaOeaOeaOfaOgaOeaOhaOeaOeaOeaOiaOjaOkaOjaOlaOmaOnaKiaKiaOoaOpaOqaOraKlaKiaNdaOsaOsaHYaHYaHZaHUaHUaHUaHUaHUaHUaHUaHUaOtbUPbUObUQbUObUObUObVMbUObWHbUObXtaOtaHUaHUaHUaHUaHUaHUaHUaHUaHXaHYaHYaIkaOAaOBaOCaOCaOCaOCaOCaJsaODaOCaIkaOEaOFaOGaIpaIpaIpaOHaOIaIpaIpaIpaIpaIpaNwaOJaOKaOKaOKaOLaOMaNwaGWaGXaEfaONaGZaNCaNDaGZaGZaOOaEfaOPaOQaORaBDaEjaOSaOTaOUaOUaOVaOWaOXaOYaBDaOZaPaaNRaPbaNRaPcaPdaPdaPcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMaPeaxaavNaNZaxaaxaaPfavNaxaaPeaNZaxaaxaaxaaPgaPhaPhaPhaPhaPhaPhaPhaPiaxaaOcaPjaOcaPkaOeaPlaPmaPnaPoaPpaPmaPqaPraPsaPtaPuaPvaOiaPwaPxaPyaOlaPzaOnaOnaPAaOnaOnaOsaPBaPCaPDaPEaOsaOsaPFaHYaHZaHUaaaaaaaaaaaaaaaaaaaaaaOtaPGaPHaPIaPJaPKaPLaPMaPNaPOaPPaPQaOtaaaaaaaaaaaaaaaaaaaaaaHUaHXaHYaPRaIkaPSaOCaOCaOCaOCaOCaUaaJsaODaPUaPVaJsaPWaPXaIpaPYaPZaQaaQbaQcaQdaQeaQfaIpaNwaQgaQhaQhaQhaQiaQjaNwaGWaQkaEfaQlaQlaNCaNDaQmaQmaQnaEfaEfaQoaEfaBDaQpaNKaNLaQqaQqaNMaNNaBDaBDaBDaLDaQraQsaQtaLDaLDaLDaLDaQuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaavMaQvaQwaQwaQwaQwaQwaQwaQwaQwaQvaQwaQxaxaaxaaLLaxaaQyaQzaxaaQAaQBaxaaQCaQDaOcaQEaOcaPkaOeaQFaPmaQGaPmaPmaPmaPqaQHaPmaPmaPmaPvaOiaQIaPxaPxaOlaPzaOnaQJaQKaQKaQLaOsaQMaQNaQOaQPaQQaQRaHYaHYaHZaHUaaaaaaaaaaaaaOtaOtaOtaOtaQSaQTaQUaQVaQWaQXaQYaQZaRaaRbaRcaOtaOtaOtaOtaaaaaaaaaaaaaHUaHXaHYaHYaRdaOCaReaRgaRgaRgaRjaRiaRHaRkaRlaRmaRnaRoaRpaRqaRraRraRsaRtaRuaRuaRvaRraRwaRxaRyaRzaRAaRBaRCaQjaNwaGWaGXaEfaGZaGZaNCaNDaGZaGZaGZaRDaREaGZbqpaBDaRGaUyaRIaQqaQqaSHaRKaRLaBDaRMaRNaPaaNRaROaNRaRPaPdaPdaRQaRRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaqpaqpavMavMavMavMavMavMavMavMaqpaqparpaLLaRSaRTaRTaRUaRTaRTaRTaRVaRTaRTaRTaOcaQEaRWaRXaOeaRYaPmaRZaTfaSbaScaSdaSaaPmaPmaPmaSeaOiaSfaSgaShaOlaPzaOnaSiaSjaSkaSlaOsaSmaSnaSoaSpaSqaQRaHYaHYaHZaHUaHUaIcaSraOtaOtaSsaStaSuaSvaSwaSxaSyaSzaSxaSAaSxaSxaSBaSCaSDaSEaSFaOtaOtaSraIcaHUaHUaHXaHYaHYaIkaSGaJsaOCaOCaOCaOCaXsaOCaSIaSJaSKaSLaSMaSNaSOaSPaSQaSRaSSaSTaSUaSVaSPaSWaSXaSYaSZaTaaTbaSZaTcaTdaGWaGXaEfaTeaTeaNCaNDaTlaGZaGZaTgaGZaThaTiaBDaTjaTkaTpaQqaQqaTmaTnaEjaBDaToaNRaPaaNRaROaNSaLDaLDaLDaLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMaymaxbaTqaRTaTraTsaTtaTuaTtaTvaTraTtaRTaQEaQEaTwaTxaOeaTyaPmaTzaTAaTBaTCaTDaTfaPmaPmaPmaPvaOiaOiaOiaOiaOlaPzaOnaOnaOnaOnaOnaOsaTEaQOaQOaQOaQOaQRaHYaHYaHZaIaaIaaTFaTGaTHaOtaTIaTJaTKaTLaTMaTLaTNaTOaTPaTQaTRaTSaTTaTRaTUaTVaTWaOtaTXaTGaTYaTZaIaaHXaHYaHYaRdaOCaJsaPTaOCaUbaOCaPTaOCaODaPUaUcaOCaOCaOCaUdaUeaUfaUgaUhaUiaUjaUkaUlaIpaUmaUnaUoaQhaUpaQhaUqaUraGWaUsaEfaEfaEfaNCaNDaUtaUuaGZaUvaUwaJKaUxaBDaEjaUyaRIaQqaQqaRJaRKaUAaBDaUBaNRaPaaUCaUDaUEaLDaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUFavMavMaBGaUGaUHaUIaUJaUKaULaUMaUNaTraTtaRTaUOaUPaUQaOcaOeaURaUSaUTaUUaUTaUVaUWaUVaUVaUVaUXaUYaOeaUZaVaaVbaVcaVdaVeaVfaVgaOcaVhaOsaViaVjaVkaVlaVlaQRaHYaHYaHYaHYaHYaVmaVnaVoaVpaVqaVraVsaVtaVuaVvaVwaVxaVyaVzaVAaVBaVCaVDaVsaVEaVFaVGaVHaVIaVJaVKaVLaVMaHYaHYaIkaVNaVOaVPaVQaOCaVRaVSaVQaODaPUaVTaVTaVUaVVaIpaUeaUeaUeaVWaUeaUeaUkaVXaIpaNwaUnaQhaQhaUpaQhaVYaNwaGWaVZaWaaWbaWcaWdaWeaWfaWfaWfaWfaWfaWfaWgaWhaWiaWiaWiaWiaWiaWjaWkaWlaWhaWmaWnaWoaWpaNRaWqaLDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWraWsatBaWsaxaaxaaRTaWtaWuaWvaWvaWvaWwaWxaWyaRTaWzaQEaUQaWAaWAaWAaWBaWCaWAaWDaWEaWFaWGaWHaWHaWIaWJaOeaWKaWLaWMaWNaWOaWPaWPaWQaWRaWRaWSaWSaWSaWSaWSaWTaOsaHYaHYaWUaWVaWWaWXaWYaWZaOtaXaaXbaXcaXdaXeaXfaXfaXgaXhaXiaXjaXkaXlaXmaXcaXnaXaaOtaWZaWYaXoaXpaWVaXqaHYaHYaRdaOCaXraXsaOCaOCaOCaXsaOCaODaOCaPUaPUaOCaOCaXtaXuaXvaUeaUeaUeaUeaXwaXxaIpaXyaXzaQhaXAaXBaXCaXzaXDaGWaXEaXFaXFaXGaXHaXIaXJaXKaXLaXJaXJaXJaXMaXNaXOaXPaXPaXPaXPaXPaXQaXRaXNaXSaXTaXUaXVaNRaXWaLDaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMavMavMaBGaxaaXXaTraXYaWvaWvaWvaXZaYaaTraRTaYbaYcaUQaWAaYdaYeaYfaYgaWAaYhaYiaYjaOeaYkaYlaYmaRZaOeaYnaYoaYpaYpaYpaYpaYqaYpaYpaYraYsaYsaYsaYtaYsaYuaYvaKAaKAaYwaYxaYxaYxaYxaYxaYxaYyaYzaYAaYBaXgaYCaYDaYDaYEaYFaYDaYCaXiaYGaYHaYIaYJaYHaYHaYHaYHaYHaYHaYKaKAaKAaIkaYLaYMaYNaYOaOCaOCaOCaYPaYQaYRaOCaYSaYTaYUaIpaIpaIpaYVaYWaYWaYWaIpaIpaIpaYXaQhaQhaYYaYZaZaaZbaYYaGWaZcaXFaZdaEfaZeaUzaZgaZfaZiaZjaTgaUuaZkaBDaZlaEjaZmaQqaQqaZmaEjaZnaBDaZoaZpaZqaROaNRaNSaLDaLDaLDaLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMaZraNZaZsaRTaTtaZtaTtaTraZuaZvaZwaTtaRTaZxaZyaZzaWAaWAaWAaZAaZBaWAaZCaYiaZEaOeaYkaYlaYmaRZaOeaYnaYoaYpaZFaZGaZGaZGaZHaYpaZIaZJaZKaZLaYvaYvaYvaYvaHYaHYaZMaZNaZOaZPaZQaZRaZSaZTaZUaZVaZWaZXaYDaYDaZYaZZaZYaYDaYDbaababbacbadbaebafbagbahbaibajaYHaXqaHYaHYaIkaIkaIkaIkaIkbakaRdbakbalaIkaIkaIkaIkaIkaIkaIkbaobaobaobaobaobaobapbaoaGWaYYbaqbaqaYYbaraXFaXFaXFbanaZcaXFaZdaEfaEfaEfbasbatbasaEfbasaEfaEfaBDaBDbaubaubaubaubaubauaBDaBDbavaNRbawaROaNRaNRaRQaPdaPdaRQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaqpaqpavMavMavMavMavMavMavMavMaqpaqparpaQyaxaaRTaRTaRUaRTaRTaRTaRVaRTaRTaRTbaxbaybazaWAaYdbaBaZAbaCaWAbaDbaEbaDaOeaYkaYlaYmaRZaOeaYnaYoaYpaZGbaFbaFaZGbaFaYpaZIbaGbaHbaHbaIbaJbaKaYvbaLaHYaWUbXubaNbaObaPbaQbaQbaRbaSbaTaZWbaUaYDaYDaZYbaVaZYaYDaYDbaWbabbaXbaYbaZbbabbbbbcbajbbdaYHaXqbbecrtaGybbfaXFaXFaXFaXFaXFaXFaXFaXFbbgaXFaXFaXFaXFbbhaXFaXFaXFaXFaXFaXFaXFaXFbbfaXFaXFaXFaXFbaraXFaXFaXFbbibbjaXFaXFbbkaXFaXFaXFbblaXFaXFaXFaXFaXFbbhbbmaXFaXFaXFaXFaXFaXFbbfbbnaRNaNRbbobbpbbqbbraLDaLDaLDaQuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -6590,8 +6592,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafavMawZaxaawZaxbaxaaxaaxcawZaxaawZaxbaxabcqaHqbcrbcsbctbcrbcrbcrbcubcvaOcaOcaOcbcwaUQaWAaYdbcxbcybczaWAbcAbcBbcAaOeaOeaOebcCbcDaOcaYnaYoaYpbcEaZGbaFbcFbcGaYpaZIaYvbcHbaHbaHbcIbcJbcKbcLaHYaWUbXvbcMbaObbNbcNbcObcPbaSbaOaZWbcQbcRaYDbcSbcTbcUaYDbcVbaAbabbcXbcYbcZbdabdabdbbajbdcaYHbddbdecuAaGybbfaXFaXFbdfaXFbdgbdhbdhbdhbdibdhbdhbdhbdjaXFaXFaXFaXFaXFaXFbdkbdlbdmbbfaXFaXFaXFaXFbarbdnbdobdpbdqbdraXFaXFaXFaXFaXFbdsbdtaXFaXFaXFaXFaXFaXFaXFaXFaXFaXFaXFaXFaXFbbfbdubdvbdwbdxaROaNRaNSaLDaLDaLDaLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarpavMbdyavMaBGaxaaxaaMBavMbdAavMayqbdBbdCbdCbdDbdEbdFbdGbdHbdIbdJbdKbdLbdMbdMbdNbdOaWAaWAaWAbdPbdQaWAaOcaOcaOcaOcbdRaVbbdSbdTaVbbdUaYoaYpbdVaZGaZGbdWbdXaYpbdYaYvbdZbaHbaHbeabebbecbedaHYaWUaYxbaObeebaPbaPbefbaRbaSbegbcWaXfbeibejbekbekbekbelbemaXkbdzbeobepbeqberbajbesbajbetaYHaXqaHYaHYbeubeubeubeubeubeubeubevbewbewbexbeybeybevbezbezbezbezbezbeAbeAbeBbeCbeAbeAbeAbeAbeDaXFbeEbeFbeGbeHbeIaXFaXFaXFbeJbeJbeKbeKbeKbeKbeKbeLbeMbeMbeMbeNbeMbeObePbeMbeMbeQbeRbeRbeRbeRbeSbeTbeUbeVaLDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaztaqpazuatBavMaymaynbeWbeXavMatBazuavMaqpaztarpbdDbeYbeZbeZbeZbfabdJbfbbfcbfdbfdbfebffaWAaYdbfgbdPbfhaWAbfibfiaQEaQEbfjbfkbflbfmbflbflbfnaYpbfobfpaZGaZGbdXbfqbfraYvbfsbaHbaHbeabftbfubedaHYbfvaYxbfwaYAbfxbfybfzbfAbaSbfBaYxaafbfCbfDbfDbfDbfEbfFbfGaafaYHbfHbfIbfJbfKbajbfLbajbfMaYHaXqaHYbfNbeubfObotbfQbfRbfSbeubehbfVbfVbfWbfXbfXbfXbfYbfZbgabgbbezbgcbgdbgebgdbgdbgfbggbeAbeGbghbeGbeGbeGbgibeIbeIbgjbeIbgkbgkbeKbglbgmbgnbeKbgobgpbgobeKbgqbgrbgqbeRbgsbgtbgsbeRbgubgvbeRbgwbgxaLDaLDaLDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafavMbdyavMavMavMavMavMavMbdAavMaafaafaafaaabdDbgybdDbgzbeZbgAbgBbcraVbbgCbgDbgEbgFbgGbgGbgGbgGbgGbgGbgHbgIbgJbfdbgKbgLaYpaYpaYpaYpaYpaYpbgMaYpaYpaYpbgNbgObgPbgQbgRbaHbaHbeabgSbecbedaHYbgTaYxbgUaYAaYAaYAaYAbfAbaSbgVaYxaafbfCbfDbgWbgXbgYbfDbgZaafaYHbhabbYbhbbhcbajbesbajbajaYHaXqaHYaHYbeubqqbhebhfbhgbhhbhibfXbhjbfXbhkbfXbfXbhlbfYbhmbhnbhobezbhpbgdbhqbgdbhpbhrbgdbeAbhsbhsbhubhvbeGbhwbeIbhxbhybhzbhAbhAbeKbhBbhCbhDbhEbhFbhGbhHbeKbhIbhJaVSbeRbhLbhMbhLbhNbhObhObeRbhPbgxaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaacuzaaaaaaaafaafaaaaaaaaaaaaaaaaafaafaaabdDbhQbhRbhSbhTbhTbhUbhVaWPbhWaOcbhXbhYbhZbhZbhZbiabiabiabiabiabiabiabibbgNbicbidbiebifbigbihbiibijaYpbikbilbimbinbinbiobaHbaHbeabaHaYvbedaHYaWUbipbiqbirbisbitaYAbiubaSaYxaYxaafbfCbfDbgXbfDbgXbfDbgZaafaYHaYHbivbcZbiwbajbixbiybizaYHaXqaHYbiAbiBbiCbiDbqrbiFbrWbiHbfXbiIbiJbiKbiLbiLbiMbfYbiNbhnbiObezbhpbgdbhqbiPbhpbiQbiRbeAbiSbiTbiUbiVbeGbgibeIbiWbiXbiXbiYbiZbjabjbbjcbjcbjcbjdbjebjfbeKbjgbhJaXrbeRbjibjjbjkbjlbjmbjnbeRbhPbgxbjobjobjobjoaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafavMbdyavMavMavMavMavMavMbdAavMaafaafaafaaabdDbgybdDbgzbeZbgAbgBbcraVbbgCbgDbgEbgFbgGbgGbgGbgGbgGbgGbgHbgIbgJbfdbgKbgLaYpaYpaYpaYpaYpaYpbgMaYpaYpaYpbgNbgObgPbgQbgRbaHbaHbeabgSbecbedaHYbgTaYxbgUaYAaYAaYAaYAbfAbaSbgVaYxaafbfCbfDbgWbgXbgYbfDbgZaafaYHbhabbYbhbbhcbajbesbajbajaYHaXqaHYaHYbeubqqbhebhfbhgbhhbhibfXbhjbfXbhkbfXbfXbhlbfYbhmbhnbhobezbhpbgdbhqbgdbhpbhrbgdbeAbhsbhsbhubhvbeGbhwbeIbhxbhybhzbhAbhAbeKbhBbhCbhDbhEbhFbhGbhHbeKbhIbhJbhKbeRbhLbhMbhLbhNbhObhObeRbhPbgxaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaacuzaaaaaaaafaafaaaaaaaaaaaaaaaaafaafaaabdDbhQbhRbhSbhTbhTbhUbhVaWPbhWaOcbhXbhYbhZbhZbhZbiabiabiabiabiabiabiabibbgNbicbidbiebifbigbihbiibijaYpbikbilbimbinbinbiobaHbaHbeabaHaYvbedaHYaWUbipbiqbirbisbitaYAbiubaSaYxaYxaafbfCbfDbgXbfDbgXbfDbgZaafaYHaYHbivbcZbiwbajbixbiybizaYHaXqaHYbiAbiBbiCbiDbqrbiFbrWbiHbfXbiIbiJbiKbiLbiLbiMbfYbiNbhnbiObezbhpbgdbhqbiPbhpbiQbiRbeAbiSbiTbiUbiVbeGbgibeIbiWbiXbiXbiYbiZbjabjbbjcbjcbjcbjdbjebjfbeKbjgbhJbjhbeRbjibjjbjkbjlbjmbjnbeRbhPbgxbjobjobjobjoaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaafaaabdDbjpbdDbjqbjrbjrbjsbdDbjtbjtaOcbjubjvbjubjubjubjvbjuaOcaOcaYpaYpaYpbjwbgNbjxbjxbjybjxbjxbjxbiibjxbjzbjAbjBbjCbjDbjEbjEbjEbjEbjFbjGbjHbjIbjJbjKbjLbjMbjNbjObjPaYAbfAbaSaYxaafaafbfCbfDbgYbjQbgWbjRbgZaafaafaYHbjSbjTaYHaYHaYHaYHbjUaYHbjVaHYaHYbeubjWbhebjXbhgbhhbjYbfXbjZbkabkbbkcbtmbkebezbkfbkgbkhbezbhpbgdbkibkjbhpbkkbgdbeAbeGbeGbeGbeGbeGbgibeIbklbkmbknbkobkpbkqbkrbksbktbktbkubkvbkwbeKbkxbhJbkybeRbkzbkAbkBbkCbkDbkEbeRbhPbkFbkGbkHbkIbkHaaaaaaaafaaaaafaaaaafaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaafaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaabdDbkJbhRbkKbjrbkLbkMbdDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkNbkObkPbkQbkRbkSbkSbkTbkSbkSbkSbkUbkSbkVbkWbkXbkYbkZbecbecbecblaaYvblbaYvblcbldaKAbipbleblfblfblfblfblgblhbliaafaaabljblkbllbfDbfDblmbgZaaaaafblnbloblpblqblrblsblnbltblnbluaHYaHYbeublvbhectCblwblxbeublybjZbkablzblAbfXblBbezblCblDblEbezblFblGblHblIblJblKblLblMblNblOblNblNblNblPbeIblQbhyblRblSblTbkqblUblVblWblWblXblYblZbeKbmabgrbmbbeRbmcbmdbmebkCbhObmfbeRbhPbmgbmhbmibmibmibmibmibmibmjaafaaaaafaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaabdDbmkbhRbhRbhRbdDbdDbdDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkNbmlbjxbmmbmnbmobmnbmnbmnbmnbmnbmpbmnbmqbmrbmsbmtbmubmvbecbmwbaHbmxbmybmzbedbmAbmBbipbipblibmCbmDbmEbmFbmGbliaaaaaabfCbmHbmIbmJbmIbmKbgZaaaaaablnbmLbmMbmNblnbmOblnbltblnbluaHYaHYbeubmPbhebjXbmQbmRbeubmSbmTbmUbmVbmWbfXbmXbezbfYbmYbmZbezbeAbnabeAbeBbnbbncbncbncbncbncbncbncbncbgibeIbndbkmbknbnebnfbngbnhbnibnibniblXbkvbnjbnkbnlbnmbnnbnobnpbnqbnpbnrbhObnsbeRbntbnubnubnubnubnubnubnubnvbgxbjobjobjoaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -6623,7 +6625,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabStbSubSubSubSubSvbSwbSwbSxbSybSzbSAbSBbSCbSDbSEbBcbGnbGnbGnbGnbGnbGnbGnbSFbSGbSHbSIbSJbSKbSKbSKbSKbSLbSMbSMbSMbSNcqubSObDybDybSPbBccqnbMqbOAbSQbSRbSSbSTbRQbRQbSUbSVbRQbRQbSWbSXbSYbMFbSZbTabTbbTcbMFbTdbTebTfbOUaafbOVbTgbThbTibMKbMLbNPbTjbTkbTkbTkbTlbLFbTmbQZbTnbTobTpbTqbTrbTsbTsbTtbLFbKvbBMbItbItbItbItbTubTvbRjbTwbTubItbItbItbItbItbTxbTybTzbTAbTBbTCbTCbTCbTCbTDbOmbSqbSqbTEbPvbTFbSsbGVbjobjobjoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaaaaafaaaaaabJYbJYbJYbGnbTHbTIbTJbTKbTLbBcbTMbJYbJYbJYbJYbJYbJYbJYbJYbDCbTNbTObTObTObTObTObTObTObTObTPbTPcqxbTPbTPbTQbTRbBccqnbMqbOAbSQbTSbTTbTUbTVbPSbTWbTXbPSbPSbTYbTZbUabUbbUcbUdbUebUfbMFbTdbUgbUhbQabQbbNLbUibRYbRYbMKbMLbNPbUjbyebyebyebNYbLFbUkbMUbMUbUlbUmbUnbUobUpbUobUnbLFbKvbBMbQjbQkbQkbUqbQmbKKbQnbQobUrbUsbCWbCWbCWbItbUtbUubUvbUwbRnbRpbUxbUybUzbUAbOpbSqbSqbSqbPvbTFbSsbGVbsebsebjoaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaagaagaagaagbUDbGnbUDbGnbUEbTIbTIbUFbGnbBcbGnbJYaaaaaaaafaaaaaaaafaaabDCbTNbTObUGbUHbUIbUJbUKbULbUGbUMbUNcqCcqybTPbTPbTRbBccqDbMqbOAbURbUSbUTbUTbUUbKmbKmbKmbKmbKmbUVbUWbLnbLnbLnbUXbMFbTbbMFbTdbTebUYbOUaafbMKbMKbMKbMKbMKbMLbNPbUjbyebUZbzibNYbMMbVabVbbVcbVdbVebVfbVgbUpbVgbVhbLFbKvbBMbCWbVibCWbVjbRibKKbRjbKKbRkbVkbCWbVibCWbItbVlbVmbVnbVobVpbVqbVrbVsbVtbVubOmbVvbVwbVxbPvbSqbSsbHzbjobsebjobjobjoaagaagaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbJYbJYbJYbVzbVAbVBbVCbVDbGnbVEbGnbJYaaaaaaaafaaaaaaaafaaabDCbTNbTObUGbVFbVGbVHbVIbVJbUGbVKbVLcqEbVNbVObTPbTRbBccqnbMqbOAbVPbVQbKmbVRbVSbKmbVTbVUbVVbKmbVWbQRbVXbLnbVYbUfbMFbUdbVZbWabRVbWbbNKbLDbNLbWcbWdbWebMKbMLbyebUjbyebABbzibNYbLFbWfbWgbWhbWibUmbWgbWjbUpbWjbNVbNXbKvbBMbCWbCWbCWbWkbWlbQobSgbKKbShbWmbQkbQkbSjbBMbPvbWnbWobWobPvbPvbWpbWqbWrbWsbWtbWubTCbWvbSqbSqbSsbGVbjobWwbjobhKbjoaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbJYbJYbJYbVzbVAbVBbVCbVDbGnbVEbGnbJYaaaaaaaafaaaaaaaafaaabDCbTNbTObUGbVFbVGbVHbVIbVJbUGbVKbVLcqEbVNbVObTPbTRbBccqnbMqbOAbVPbVQbKmbVRbVSbKmbVTbVUbVVbKmbVWbQRbVXbLnbVYbUfbMFbUdbVZbWabRVbWbbNKbLDbNLbWcbWdbWebMKbMLbyebUjbyebABbzibNYbLFbWfbWgbWhbWibUmbWgbWjbUpbWjbNVbNXbKvbBMbCWbCWbCWbWkbWlbQobSgbKKbShbWmbQkbQkbSjbBMbPvbWnbWobWobPvbPvbWpbWqbWrbWsbWtbWubTCbWvbSqbSqbSsbGVbjobWwbjobWxbjoaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbJYbWybWzbWzbWAbTLbWBbBcbJYbJYaaaaaaaaaaaaaaaaaaaaabDCbTNbTObWCbWDbWEbVHbWFbWCbWCbVKbWGcqGcqFbWIbTPbTRbBccqnbMqbWJbWKbWKbWLbWMbWNbWObWPbWQbWRbKmbMFbQRbWSbWTbVYbWUbMFbUdbVZbTdbTebWVbOUaafbOVbWWbWXbWYbMKbMLbyebUjbyebGHbGHbNYbLFbLGbWZbXabLGbXbbLGbLGbLGbLGbLGbLFbKvbBMbItbItbItbItbTubXcbRjbXdbTubItbItbItbItbBMbRrbXebRrbRrbRrbPvbWpbWqbXfbXgbXhbXibUwbXjbPvbSqbSsbGVbjobsebsebsebXkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafbBcbBcbBcbBcbBcbBcbVEbBcbBcbBcbBcaafaaaaaabXlaaaaaaaaaaaaaaabEZbTNbTObWCbWCbXmbXnbXobWCbXpbXqbXrcqIcqHbXsbTPbTRbBccqJbXwbCrbWKbXxbXybXybXzbXAbXBbXCbXDbKmbXEbXFbVXbLnbVYbXGbMFbXHbVZbTdbXIbXJbQabQbbNLbXKbWdbWdbMKbMLbNPbUjbyebXLbzibNYbXMbSabSabXNbLGbIHbIkbQBbyebXRbXSbKwbKvbBMbQjbQkbQkbXTbQmbKKbQnbQobXUbXVbCWbCWbCWbBMbXWbRrbRrbRrbRrbPvbXXbXXbXYbXZbOpbOpbUwbOpbPvbOpbSsbGVbjobYabYbbYcbXkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfabfabfabfabfabfabfabfabfabqabfabfabfabfabfaaaaaabBcbGnbGnbGnbGnbGnbGnbGnbGnbWBbJYaafaaaaaaaafaaIbYdaaaaaaaaabEZbTNbTObYebYfbYgbYhbYibYjbYkbYlbYmcqMcqKbYobTPbYpbYqbYrbYsbGybWKbYtbXybYubYvbYwbYxbYybYzbYAbNFbYBbLnbLnbLnbYCbMFbYDbYEbTdbTebMFbOUaafbMKbMKbMKbMKbMKbMLbNPbUjbyebYFbzibYGbYHbTkbYIbYJbyebRybQCbTGbyebYNbKFbYObYPbBMbCWbCWbCWbYQbRibKKbRjbKKbRkbYRbCWbCWbCWbBMbYSbRrbYTbRrbRrbYUbYVbYWbYXbYYbOpbUwbUwbYZbPvbBRbZabUBbjobZcbZdbsebXkaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/_maps/map_files/generic/z2.dmm b/_maps/map_files/generic/z2.dmm
index 950e7c8cb57..2fe61ad1702 100644
--- a/_maps/map_files/generic/z2.dmm
+++ b/_maps/map_files/generic/z2.dmm
@@ -542,7 +542,7 @@
"kv" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space)
"kw" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership)
"kx" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership)
-"ky" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroompizza,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"ky" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroom,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"kz" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = 5; pixel_y = -2; step_x = 0},/obj/item/toy/cards/deck/syndicate{icon_state = "deck_syndicate_full"; pixel_x = -6; pixel_y = 6},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"kA" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (WEST)"; icon_state = "podhatch"; dir = 8},/area/syndicate_mothership)
"kB" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "green"},/area/centcom/evac)
@@ -834,7 +834,7 @@
"qb" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/centcom/holding)
"qc" = (/obj/effect/landmark{name = "Holding Facility"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/holding)
"qd" = (/obj/docking_port/stationary/transit{dheight = 0; dir = 2; dwidth = 11; height = 22; id = "whiteship_transit"; width = 35},/turf/space/transit/horizontal,/area/space)
-
+
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababadaeaeaeaeaeafaeaeaeaeaeafaeaeaeaeaeafaeaeaeaeaeag
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahaiaiaiaiaiajakakakakakajalalalalalajamanananaoap
diff --git a/_maps/map_files/generic/z4.dmm b/_maps/map_files/generic/z4.dmm
index e702c0a1a27..f856eaaf86f 100644
--- a/_maps/map_files/generic/z4.dmm
+++ b/_maps/map_files/generic/z4.dmm
@@ -704,7 +704,7 @@
"os" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
"ot" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel/airless{icon_state = "white"},/area/derelict/medical)
"ou" = (/obj/machinery/door/poddoor{id = "derelict_gun"; name = "Derelict Mass Driver"},/turf/simulated/floor/plating,/area/space)
-"ov" = (/obj/structure/closet/l3closet/general,/turf/simulated/floor/plating/airless,/area/space)
+"ov" = (/obj/structure/closet/l3closet,/turf/simulated/floor/plating/airless,/area/space)
"ow" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/space,/area/space)
"ox" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/derelict/medical/chapel)
"oy" = (/obj/structure/table,/turf/simulated/floor/plating/airless,/area/space)
diff --git a/_maps/metastation.dm b/_maps/metastation.dm
index 00ead643189..1e0e8b973c9 100644
--- a/_maps/metastation.dm
+++ b/_maps/metastation.dm
@@ -15,15 +15,15 @@ z7 = empty space
#if !defined(MAP_FILE)
- #include "map_files\MetaStation\MetaStation.v40D.dmm"
+ #include "map_files\MetaStation\MetaStation.v41A.dmm"
#include "map_files\MetaStation\z2.dmm"
#include "map_files\MetaStation\z3.dmm"
- #include "map_files\generic\z4.dmm"
- #include "map_files\generic\z5.dmm"
+ #include "map_files\MetaStation\z4.dmm"
+ #include "map_files\MetaStation\z5.dmm"
#include "map_files\generic\z6.dmm"
#include "map_files\generic\z7.dmm"
- #define MAP_FILE "MetaStation.v40D.dmm"
+ #define MAP_FILE "MetaStation.v41A.dmm"
#define MAP_NAME "MetaStation"
#elif !defined(MAP_OVERRIDE)
diff --git a/cfg/admin.txt b/cfg/admin.txt
index 62879301135..1f4c89d373b 100644
--- a/cfg/admin.txt
+++ b/cfg/admin.txt
@@ -12,3 +12,4 @@ cheridan
giacomand
rockdtben
MrStonedOne
+Jordie0608
diff --git a/code/ATMOSPHERICS/datum_pipeline.dm b/code/ATMOSPHERICS/datum_pipeline.dm
index c654e930bc2..d09df8ed19e 100644
--- a/code/ATMOSPHERICS/datum_pipeline.dm
+++ b/code/ATMOSPHERICS/datum_pipeline.dm
@@ -22,7 +22,7 @@
A.nullifyPipenet(src)
..()
-/datum/pipeline/proc/process()//This use to be called called from the pipe networks
+/datum/pipeline/process()//This use to be called called from the pipe networks
if(update)
update = 0
reconcile_air()
diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm
index 0c121617b81..eba85018d34 100644
--- a/code/__DEFINES/atmospherics.dm
+++ b/code/__DEFINES/atmospherics.dm
@@ -110,3 +110,4 @@
#define PRESSURE_SUIT_REDUCTION_COEFFICIENT 0.8 //This is how much (percentual) a suit with the flag STOPSPRESSUREDMAGE reduces pressure.
#define PRESSURE_HEAD_REDUCTION_COEFFICIENT 0.4 //This is how much (percentual) a helmet/hat with the flag STOPSPRESSUREDMAGE reduces pressure.
+#define COLD_SLOWDOWN_FACTOR 20 //Humans are slowed by the difference between bodytemp and BODYTEMP_COLD_DAMAGE_LIMIT divided by this
\ No newline at end of file
diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm
index 61aa9962d6b..558538d97ef 100644
--- a/code/__DEFINES/misc.dm
+++ b/code/__DEFINES/misc.dm
@@ -97,6 +97,7 @@
//used by canUseTopic()
//Sizes of mobs, used by mob/living/var/mob_size
+#define MOB_SIZE_TINY 0
#define MOB_SIZE_SMALL 1
#define MOB_SIZE_HUMAN 2
#define MOB_SIZE_LARGE 3
diff --git a/code/__HELPERS/lists.dm b/code/__HELPERS/lists.dm
index 9a237d24be0..243c176cb8d 100644
--- a/code/__HELPERS/lists.dm
+++ b/code/__HELPERS/lists.dm
@@ -185,8 +185,8 @@
return
L = L.Copy()
- for(var/i=1, i<=L.len, ++i)
- L.Swap(i,rand(1,L.len))
+ for(var/i=1, iNo longer running on internals."
+ C << "You are no longer running on internals."
icon_state = "internal0"
else
if(!istype(C.wear_mask, /obj/item/clothing/mask))
- C << "You are not wearing a mask."
+ C << "You are not wearing an internals mask!"
return 1
else
+ var/obj/item/clothing/mask/M = C.wear_mask
+ if(M.mask_adjusted) // if mask on face but pushed down
+ M.adjustmask(C) // adjust it back
+ if( !(M.flags & MASKINTERNALS) )
+ C << "You are not wearing an internals mask!"
+ return
if(istype(C.l_hand, /obj/item/weapon/tank))
C << "You are now running on internals from the [C.l_hand] on your left hand."
C.internal = C.l_hand
@@ -162,7 +168,7 @@
if(C.internal)
icon_state = "internal1"
else
- C << "You don't have an oxygen tank."
+ C << "You don't have an oxygen tank!"
/obj/screen/mov_intent
name = "run/walk toggle"
diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm
index dba2b9a506b..8b31f3a7c74 100644
--- a/code/controllers/configuration.dm
+++ b/code/controllers/configuration.dm
@@ -98,17 +98,13 @@
var/protect_assistant_from_antagonist = 0 //If assistants can be traitor/cult/other
var/enforce_human_authority = 0 //If non-human species are barred from joining as a head of staff
var/allow_latejoin_antagonists = 0 // If late-joining players can be traitor/changeling
- var/continuous_round_rev = 0 // Gamemodes which end instantly will instead keep on going until the round ends by escape shuttle or nuke.
- var/continuous_round_gang = 0
- var/continuous_round_wiz = 0
- var/continuous_round_malf = 0
- var/continuous_round_blob = 0
+ var/list/continuous = list() // which roundtypes continue if all antagonists die
+ var/list/midround_antag = list() // which roundtypes use the midround antagonist system
var/midround_antag_time_check = 60 // How late (in minutes) you want the midround antag system to stay on, setting this to 0 will disable the system
var/midround_antag_life_check = 0.7 // A ratio of how many people need to be alive in order for the round not to immediately end in midround antagonist
var/shuttle_refuel_delay = 12000
var/show_game_type_odds = 0 //if set this allows players to see the odds of each roundtype on the get revision screen
var/mutant_races = 0 //players can choose their mutant race before joining the game
- var/mutant_colors = 0
var/no_summon_guns //No
var/no_summon_magic //Fun
@@ -397,16 +393,18 @@
config.sec_start_brig = 1
if("gateway_delay")
config.gateway_delay = text2num(value)
- if("continuous_round_rev")
- config.continuous_round_rev = 1
- if("continuous_round_gang")
- config.continuous_round_gang = 1
- if("continuous_round_wiz")
- config.continuous_round_wiz = 1
- if("continuous_round_malf")
- config.continuous_round_malf = 1
- if("continuous_round_blob")
- config.continuous_round_blob = 1
+ if("continuous")
+ var/mode_name = lowertext(value)
+ if(mode_name in config.modes)
+ config.continuous[mode_name] = 1
+ else
+ diary << "Unknown continuous configuration definition: [mode_name]."
+ if("midround_antag")
+ var/mode_name = lowertext(value)
+ if(mode_name in config.modes)
+ config.midround_antag[mode_name] = 1
+ else
+ diary << "Unknown midround antagonist configuration definition: [mode_name]."
if("midround_antag_time_check")
config.midround_antag_time_check = text2num(value)
if("midround_antag_life_check")
@@ -472,8 +470,6 @@
config.silicon_max_law_amount = text2num(value)
if("join_with_mutant_race")
config.mutant_races = 1
- if("mutant_colors")
- config.mutant_colors = 1
if("assistant_cap")
config.assistant_cap = text2num(value)
if("starlight")
diff --git a/code/controllers/failsafe.dm b/code/controllers/failsafe.dm
index 737ac4df64a..86aef1dc056 100644
--- a/code/controllers/failsafe.dm
+++ b/code/controllers/failsafe.dm
@@ -15,7 +15,7 @@ var/datum/controller/failsafe/Failsafe
Failsafe.process()
-/datum/controller/failsafe/proc/process()
+/datum/controller/failsafe/process()
spawn(0)
while(1) //more efficient than recursivly calling ourself over and over. background = 1 ensures we do not trigger an infinite loop
if(!master_controller) new /datum/controller/game_controller() //replace the missing master_controller! This should never happen.
diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm
index 46379e1ed8b..cd9aced630c 100644
--- a/code/controllers/master_controller.dm
+++ b/code/controllers/master_controller.dm
@@ -65,7 +65,7 @@ Note: you can set the datum's defined processing_interval to some integer to set
//used for smoothing out the cost values so they don't fluctuate wildly
#define MC_AVERAGE(average, current) (0.8*(average) + 0.2*(current))
-/datum/controller/game_controller/proc/process()
+/datum/controller/game_controller/process()
if(!Failsafe) new /datum/controller/failsafe()
spawn(0)
var/timer = world.time
diff --git a/code/controllers/subsystem/objects.dm b/code/controllers/subsystem/objects.dm
index e54c5bc0faa..34104df2e0d 100644
--- a/code/controllers/subsystem/objects.dm
+++ b/code/controllers/subsystem/objects.dm
@@ -1,5 +1,9 @@
var/datum/subsystem/objects/SSobj
+/datum/proc/process()
+ SSobj.processing.Remove(src)
+ return 0
+
/datum/subsystem/objects
name = "Objects"
priority = 12
diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm
index cd55cc37db9..f7772c5ac2b 100644
--- a/code/datums/diseases/_disease.dm
+++ b/code/datums/diseases/_disease.dm
@@ -126,7 +126,7 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease
C.ContractDisease(src)
-/datum/disease/proc/process()
+/datum/disease/process()
if(!holder)
SSdisease.processing -= src
return
diff --git a/code/datums/helper_datums/global_iterator.dm b/code/datums/helper_datums/global_iterator.dm
index 1c6d5ce341e..828f6cfe559 100644
--- a/code/datums/helper_datums/global_iterator.dm
+++ b/code/datums/helper_datums/global_iterator.dm
@@ -115,7 +115,7 @@ Data storage vars:
CRASH("The global_iterator loop \ref[src] failed to terminate in designated timeframe. This may be caused by server lagging.")
return 1
-/datum/global_iterator/proc/process()
+/datum/global_iterator/process()
return
/datum/global_iterator/proc/active()
diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm
index 119f1682296..69dfe876213 100644
--- a/code/datums/supplypacks.dm
+++ b/code/datums/supplypacks.dm
@@ -736,12 +736,13 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/datum/supply_packs/organic/food
name = "Food Crate"
contains = list(/obj/item/weapon/reagent_containers/food/condiment/flour,
+ /obj/item/weapon/reagent_containers/food/condiment/rice,
/obj/item/weapon/reagent_containers/food/condiment/milk,
/obj/item/weapon/reagent_containers/food/condiment/soymilk,
/obj/item/weapon/storage/fancy/egg_box,
/obj/item/weapon/reagent_containers/food/condiment/enzyme,
/obj/item/weapon/reagent_containers/food/condiment/sugar,
- /obj/item/weapon/reagent_containers/food/snacks/meat/monkey,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey,
/obj/item/weapon/reagent_containers/food/snacks/grown/banana,
/obj/item/weapon/reagent_containers/food/snacks/grown/banana,
/obj/item/weapon/reagent_containers/food/snacks/grown/banana)
@@ -1254,19 +1255,19 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/obj/item/weapon/gun/projectile/shotgun/toy,
/obj/item/weapon/gun/projectile/shotgun/toy,
/obj/item/weapon/gun/projectile/shotgun/toy,
- /obj/item/weapon/gun/projectile/shotgun/toy,
/obj/item/weapon/gun/projectile/shotgun/toy,
- /obj/item/weapon/gun/projectile/shotgun/toy,
+ /obj/item/weapon/gun/projectile/shotgun/toy,
+ /obj/item/weapon/gun/projectile/shotgun/toy,
/obj/item/weapon/gun/projectile/shotgun/toy)
cost = 10
containername = "foam force crate"
/datum/supply_packs/misc/foamforce/bonus
- name = "Foam Force Pistols Crate"
+ name = "Foam Force Pistols Crate"
contains = list(/obj/item/weapon/gun/projectile/automatic/toy/pistol,
/obj/item/weapon/gun/projectile/automatic/toy/pistol,
/obj/item/ammo_box/magazine/toy/pistol,
/obj/item/ammo_box/magazine/toy/pistol)
cost = 40
- containername = "foam force pistols crate"
+ containername = "foam force pistols crate"
contraband = 1
\ No newline at end of file
diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm
index d2546252d2d..5963b07faf1 100644
--- a/code/datums/uplink_item.dm
+++ b/code/datums/uplink_item.dm
@@ -367,6 +367,13 @@ var/list/uplink_items = list()
cost = 3
surplus = 10
+/datum/uplink_item/stealthy_weapons/pizza_bomb
+ name = "Pizza Bomb"
+ desc = "A pizza box with a bomb taped inside of it. The timer needs to be set by opening the box; afterwards, opening the box again will trigger the detonation."
+ item = /obj/item/device/pizza_bomb
+ cost = 4
+ surplus = 8
+
/datum/uplink_item/stealthy_weapons/dehy_carp
name = "Dehydrated Space Carp"
desc = "Just add water to make your very own hostile to everything space carp. It looks just like a plushie."
diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index b5d6712d4bd..9f349e338b0 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -134,7 +134,7 @@
name = "syntiflesh"
desc = "Meat that appears...strange..."
gender = PLURAL
- icon = 'icons/obj/food.dmi'
+ icon = 'icons/obj/food/food.dmi'
icon_state = "meat"
flags = CONDUCT
w_class = 1.0
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 18b10d45ffa..66042f4f67b 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -357,7 +357,8 @@ var/list/blood_splatter_icons = list()
/atom/proc/add_vomit_floor(mob/living/carbon/M as mob, var/toxvomit = 0)
if( istype(src, /turf/simulated) )
var/obj/effect/decal/cleanable/vomit/this = new /obj/effect/decal/cleanable/vomit(src)
-
+ if(M.reagents)
+ M.reagents.trans_to(this, M.reagents.total_volume / 10)
// Make toxins vomit look different
if(toxvomit)
this.icon_state = "vomittox_[pick(1,4)]"
diff --git a/code/game/gamemodes/blob/blob_finish.dm b/code/game/gamemodes/blob/blob_finish.dm
index 32073430a46..c16c462e1a1 100644
--- a/code/game/gamemodes/blob/blob_finish.dm
+++ b/code/game/gamemodes/blob/blob_finish.dm
@@ -1,4 +1,6 @@
/datum/game_mode/blob/check_finished()
+ if(replacementmode && round_converted == 2)
+ return replacementmode.check_finished()
if(round_converted)
return ..()
if(infected_crew.len > burst)//Some blobs have yet to burst
@@ -6,15 +8,16 @@
if(blobwincount <= blobs.len)//Blob took over
return 1
if(!blob_cores.len) // blob is dead
- if(config.continuous_round_blob)
- round_converted = convert_roundtype()
- if(!round_converted)
- return 1
+ if(config.continuous["blob"])
+ if(config.midround_antag["blob"])
+ round_converted = convert_roundtype()
+ if(!round_converted)
+ return 1
if(SSshuttle.emergency.mode == SHUTTLE_STRANDED)
SSshuttle.emergency.mode = SHUTTLE_DOCKED
SSshuttle.emergency.timer = world.time
priority_announce("Hostile enviroment resolved. You have 3 minutes to board the Emergency Shuttle.", null, 'sound/AI/shuttledock.ogg', "Priority")
- return 0
+ return ..()
return 1
if(station_was_nuked)//Nuke went off
return 1
diff --git a/code/game/gamemodes/blob/blobs/blob_mobs.dm b/code/game/gamemodes/blob/blobs/blob_mobs.dm
index d8b317d1eb6..4965aae660e 100644
--- a/code/game/gamemodes/blob/blobs/blob_mobs.dm
+++ b/code/game/gamemodes/blob/blobs/blob_mobs.dm
@@ -140,8 +140,8 @@
icon_dead = "blobbernaut_dead"
health = 240
maxHealth = 240
- melee_damage_lower = 10
- melee_damage_upper = 10
+ melee_damage_lower = 20
+ melee_damage_upper = 20
attacktext = "hits"
attack_sound = 'sound/effects/blobattack.ogg'
minbodytemp = 0
@@ -151,16 +151,9 @@
mob_size = MOB_SIZE_LARGE
-/mob/living/simple_animal/hostile/blob/blobbernaut/AttackingTarget()
- ..()
- if(isliving(target))
- if(overmind)
- overmind.blob_reagent_datum.reaction_mob(target, TOUCH)
-
-
/mob/living/simple_animal/hostile/blob/blobbernaut/blob_act()
return
/mob/living/simple_animal/hostile/blob/blobbernaut/death(gibbed)
..(gibbed)
- flick("blobbernaut_death", src)
\ No newline at end of file
+ flick("blobbernaut_death", src)
diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm
index 0f71d2ee0aa..3e31c0f573b 100644
--- a/code/game/gamemodes/cult/cult.dm
+++ b/code/game/gamemodes/cult/cult.dm
@@ -216,6 +216,7 @@
if (!istype(cult_mind))
return 0
if(!(cult_mind in cult) && is_convertable_to_cult(cult_mind))
+ cult_mind.current.Paralyse(5)
cult += cult_mind
cult_mind.current.cult_add_comm()
update_cult_icons_added(cult_mind)
@@ -233,6 +234,7 @@
if(cult_mind in cult)
cult -= cult_mind
cult_mind.current.verbs -= /mob/living/proc/cult_innate_comm
+ cult_mind.current.Paralyse(5)
cult_mind.current << "An unfamiliar white light flashes through your mind, cleansing the taint of the dark-one and the memories of your time as his servant with it."
cult_mind.memory = ""
cult_mind.cult_words = initial(cult_mind.cult_words)
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index 65296e76354..7be427bcb97 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -104,7 +104,7 @@
living_crew++
if(living_crew / joined_player_list.len <= config.midround_antag_life_check) //If a lot of the player base died, we start fresh
message_admins("Convert_roundtype failed due to too many dead people. Limit is [config.midround_antag_life_check * 100]% living crew")
- return 0
+ return null
var/list/datum/game_mode/runnable_modes = config.get_runnable_midround_modes(living_crew)
var/list/datum/game_mode/usable_modes = list()
@@ -118,7 +118,7 @@
if(!usable_modes)
message_admins("Convert_roundtype failed due to no valid modes to convert to. Please report this error to the Coders.")
- return 0
+ return null
replacementmode = pickweight(usable_modes)
@@ -131,7 +131,7 @@
if(world.time >= (config.midround_antag_time_check * 600))
message_admins("Convert_roundtype failed due to round length. Limit is [config.midround_antag_time_check] minutes.")
- return 0
+ return null
var/list/antag_canadates = list()
@@ -141,7 +141,7 @@
if(!antag_canadates)
message_admins("Convert_roundtype failed due to no antag canadates.")
- return 0
+ return null
antag_canadates = shuffle(antag_canadates)
@@ -150,9 +150,12 @@
if(config.protect_assistant_from_antagonist)
replacementmode.restricted_jobs += "Assistant"
- message_admins("The roundtype will be converted. If you feel that the round should not continue, end the round now.")
+ message_admins("The roundtype will be converted. If you have other plans for the station or think the round should end stop the creation of antags or end the round now.")
- spawn(rand(1800,4200)) //somewhere between 3 and 7 minutes from now
+ spawn(rand(1200,3000)) //somewhere between 2 and 5 minutes from now
+ if(!config.midround_antag[ticker.mode.config_tag])
+ round_converted = 0
+ return 1
for(var/mob/living/carbon/human/H in antag_canadates)
replacementmode.make_antag_chance(H)
round_converted = 2
@@ -161,7 +164,7 @@
///process()
///Called by the gameticker
-/datum/game_mode/proc/process()
+/datum/game_mode/process()
return 0
diff --git a/code/game/gamemodes/gang/gang.dm b/code/game/gamemodes/gang/gang.dm
index 76d11848dfe..7bd6c7f0f17 100644
--- a/code/game/gamemodes/gang/gang.dm
+++ b/code/game/gamemodes/gang/gang.dm
@@ -220,7 +220,7 @@
//Checks if the round is over//
///////////////////////////////
/datum/game_mode/gang/check_finished()
- if(finished && !config.continuous_round_gang) //Check for Gang Boss death
+ if(finished && !config.continuous["gang"]) //Check for Gang Boss death
return 1
return ..() //Check for evacuation/nuke
@@ -237,7 +237,11 @@
else
B_gangsters += gangster_mind
if(check)
- gangster_mind.current.Paralyse(5)
+ if(iscarbon(gangster_mind.current))
+ var/mob/living/carbon/carbon_mob = gangster_mind.current
+ carbon_mob.silent = max(carbon_mob.silent, 5)
+ carbon_mob.flash_eyes(1, 1)
+ gangster_mind.current.Stun(5)
gangster_mind.current << "You are now a member of the [gang=="A" ? gang_name("A") : gang_name("B")] Gang!"
gangster_mind.current << "Help your Boss take over the station by defeating the rival gang. You can identify your Boss by their brown \"B\" icon."
gangster_mind.current.attack_log += "\[[time_stamp()]\] Has been converted to the [gang=="A" ? "[gang_name("A")] Gang (A)" : "[gang_name("B")] Gang (B)"]!"
@@ -376,18 +380,18 @@
if(A_bosses.len || A_gangsters.len)
if(winner)
world << "
The [gang_name("A")] Gang was [winner=="A" ? "victorious" : "defeated"] with [num_ganga] members!"
- world << "
The [gang_name("A")] Gang Boss was:"
+ world << "
The [gang_name("A")] Gang Boss was:"
gang_membership_report(A_bosses)
- world << "
The [gang_name("A")] Gangsters were:"
+ world << "
The [gang_name("A")] Gangsters were:"
gang_membership_report(A_gangsters)
world << "
"
if(B_bosses.len || B_gangsters.len)
if(winner)
world << "
The [gang_name("B")] Gang was [winner=="B" ? "victorious" : "defeated"] with [num_gangb] members!"
- world << "
The [gang_name("B")] Gang Boss was:"
+ world << "
The [gang_name("B")] Gang Boss was:"
gang_membership_report(B_bosses)
- world << "
The [gang_name("B")] Gangsters were:"
+ world << "
The [gang_name("B")] Gangsters were:"
gang_membership_report(B_gangsters)
world << "
"
diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm
index cc74384e53a..5e5aa1bf462 100644
--- a/code/game/gamemodes/malfunction/Malf_Modules.dm
+++ b/code/game/gamemodes/malfunction/Malf_Modules.dm
@@ -47,6 +47,10 @@
/mob/living/silicon/ai/proc/upgrade_turrets()
set category = "Malfunction"
set name = "Upgrade Turrets"
+
+ if(!canUseTopic())
+ return
+
src.verbs -= /mob/living/silicon/ai/proc/upgrade_turrets
for(var/obj/machinery/porta_turret/turret in machines)
if(turret.ai) //Make sure only the AI's turrets are affected.
@@ -67,8 +71,7 @@
set category = "Malfunction"
set name = "Initiate Hostile Lockdown"
- if(src.stat == 2)
- src <<"You cannot begin a lockdown because you are dead!"
+ if(!canUseTopic())
return
if(malf_cooldown)
@@ -105,8 +108,7 @@
set category = "Malfunction"
set name = "Disable Lockdown"
- if(src.stat == 2)
- src <<"You cannot disable lockdown because you are dead!"
+ if(!canUseTopic())
return
if(malf_cooldown)
return
@@ -141,6 +143,10 @@
/mob/living/silicon/ai/proc/disable_rcd()
set category = "Malfunction"
set name = "Disable RCDs"
+
+ if(!canUseTopic())
+ return
+
for(var/datum/AI_Module/large/disable_rcd/rcdmod in current_modules)
if(rcdmod.uses > 0)
rcdmod.uses --
@@ -165,6 +171,9 @@
set name = "Override Thermal Sensors"
set category = "Malfunction"
+ if(!canUseTopic())
+ return
+
for(var/obj/machinery/firealarm/F in world)
if(F.z != ZLEVEL_STATION)
continue
@@ -186,6 +195,9 @@
set name = "Disable Air Alarm Safeties"
set category = "Malfunction"
+ if(!canUseTopic())
+ return
+
for(var/obj/machinery/alarm/A in world)
if(A.z != ZLEVEL_STATION)
continue
@@ -207,6 +219,10 @@
/mob/living/silicon/ai/proc/overload_machine(obj/machinery/M as obj in world)
set name = "Overload Machine"
set category = "Malfunction"
+
+ if(!canUseTopic())
+ return
+
if (istype(M, /obj/machinery))
for(var/datum/AI_Module/small/overload_machine/overload in current_modules)
if(overload.uses > 0)
@@ -233,6 +249,10 @@
/mob/living/silicon/ai/proc/override_machine(obj/machinery/M as obj in world)
set name = "Override Machine"
set category = "Malfunction"
+
+ if(!canUseTopic())
+ return
+
if (istype(M, /obj/machinery))
for(var/datum/AI_Module/small/override_machine/override in current_modules)
if(override.uses > 0)
@@ -271,6 +291,9 @@
src << "Out of uses."
return
+ if(!canUseTopic())
+ return
+
var/sure = alert(src, "Make sure the room it is in is big enough, there is camera vision and that there is a 1x3 area for the machine. Are you sure you want to place the machine here?", "Are you sure?", "Yes", "No")
if(sure != "Yes")
return
@@ -319,6 +342,10 @@
/mob/living/silicon/ai/proc/blackout()
set category = "Malfunction"
set name = "Blackout"
+
+ if(!canUseTopic())
+ return
+
for(var/datum/AI_Module/small/blackout/blackout in current_modules)
if(blackout.uses > 0)
blackout.uses --
@@ -341,6 +368,10 @@
/mob/living/silicon/ai/proc/reactivate_camera(obj/machinery/camera/C as obj in cameranet.cameras)
set name = "Reactivate Camera"
set category = "Malfunction"
+
+ if(!canUseTopic())
+ return
+
if (istype (C, /obj/machinery/camera))
for(var/datum/AI_Module/small/reactivate_camera/camera in current_modules)
if(camera.uses > 0)
@@ -365,6 +396,10 @@
/mob/living/silicon/ai/proc/upgrade_camera(obj/machinery/camera/C as obj in cameranet.cameras)
set name = "Upgrade Camera"
set category = "Malfunction"
+
+ if(!canUseTopic())
+ return
+
if(istype(C))
var/datum/AI_Module/small/upgrade_camera/UC = locate(/datum/AI_Module/small/upgrade_camera) in current_modules
if(UC)
@@ -439,6 +474,10 @@
return
var/mob/living/silicon/ai/A = usr
+ if(A.stat == DEAD)
+ A <<"You are already dead!" //Omae Wa Mou Shindeiru
+ return
+
for(var/datum/AI_Module/AM in possible_modules)
if (href_list[AM.mod_pick_name])
diff --git a/code/game/gamemodes/malfunction/malfunction.dm b/code/game/gamemodes/malfunction/malfunction.dm
index f9a33fb2308..0fa77a06c92 100644
--- a/code/game/gamemodes/malfunction/malfunction.dm
+++ b/code/game/gamemodes/malfunction/malfunction.dm
@@ -5,7 +5,7 @@
name = "AI malfunction"
config_tag = "malfunction"
antag_flag = BE_MALF
- required_players = 1
+ required_players = 25
required_enemies = 1
recommended_enemies = 1
pre_setup_before_jobs = 1
@@ -170,12 +170,14 @@
/datum/game_mode/malfunction/check_finished()
- if(round_converted)
- return ..()
+ if(replacementmode && round_converted == 2)
+ return replacementmode.check_finished()
+ if((config.continuous["malfunction"] && !config.midround_antag["malfunction"]) || round_converted == 1) //No reason to waste resources
+ return ..() //Check for evacuation/nuke
if (station_captured && !to_nuke_or_not_to_nuke)
return 1
if (is_malf_ai_dead() || !check_ai_loc())
- if(config.continuous_round_malf)
+ if(config.continuous["malfunction"])
if(SSshuttle.emergency.mode == SHUTTLE_STRANDED)
SSshuttle.emergency.mode = SHUTTLE_DOCKED
SSshuttle.emergency.timer = world.time
diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm
index b4b9edbac73..43992706cd4 100644
--- a/code/game/gamemodes/meteor/meteors.dm
+++ b/code/game/gamemodes/meteor/meteors.dm
@@ -267,7 +267,7 @@
//Meaty Ore Xeno edition
/obj/effect/meteor/meaty/xeno
color = "#5EFF00"
- meteordrop = /obj/item/weapon/reagent_containers/food/snacks/meat/xeno
+ meteordrop = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno
meteorgibs = /obj/effect/gibspawner/xeno
/obj/effect/meteor/meaty/xeno/ram_turf(var/turf/T)
diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm
index 34713b6fb25..ca69a926263 100644
--- a/code/game/gamemodes/objective_items.dm
+++ b/code/game/gamemodes/objective_items.dm
@@ -49,7 +49,7 @@ datum/objective_item/steal/magboots
datum/objective_item/steal/corgimeat
name = "a piece of corgi meat"
- targetitem = /obj/item/weapon/reagent_containers/food/snacks/meat/corgi
+ targetitem = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi
difficulty = 5
excludefromjob = list("Head of Personnel", "Quartermaster", "Cargo Technician") //>hurting your little buddy ever
diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm
index 5e6433647f4..22e80ad7b4b 100644
--- a/code/game/gamemodes/revolution/revolution.dm
+++ b/code/game/gamemodes/revolution/revolution.dm
@@ -213,7 +213,7 @@
//Checks if the round is over//
///////////////////////////////
/datum/game_mode/revolution/check_finished()
- if(config.continuous_round_rev)
+ if(config.continuous["revolution"])
if(finished != 0)
SSshuttle.emergencyNoEscape = 0
return ..()
@@ -234,6 +234,11 @@
if((rev_mind in revolutionaries) || (rev_mind in head_revolutionaries))
return 0
revolutionaries += rev_mind
+ if(iscarbon(rev_mind.current))
+ var/mob/living/carbon/carbon_mob = rev_mind.current
+ carbon_mob.silent = max(carbon_mob.silent, 5)
+ carbon_mob.flash_eyes(1, 1)
+ rev_mind.current.Stun(5)
rev_mind.current << " You are now a revolutionary! Help your cause. Do not harm your fellow freedom fighters. You can identify your comrades by the red \"R\" icons, and your leaders by the blue \"R\" icons. Help them kill the heads to win the revolution!"
rev_mind.current.attack_log += "\[[time_stamp()]\] Has been converted to the revolution!"
rev_mind.special_role = "Revolutionary"
@@ -253,6 +258,7 @@
message_admins("[key_name_admin(rev_mind.current)] ? has been borged while being a member of the revolution.")
else
+ rev_mind.current.Paralyse(5)
rev_mind.current << "You have been brainwashed! You are no longer a revolutionary! Your memory is hazy from the time you were a rebel...the only thing you remember is the name of the one who brainwashed you..."
update_rev_icons_removed(rev_mind)
diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm
index b6a7df9996f..4a946eb6f4b 100644
--- a/code/game/gamemodes/wizard/wizard.dm
+++ b/code/game/gamemodes/wizard/wizard.dm
@@ -171,30 +171,24 @@
/datum/game_mode/wizard/check_finished()
- if(round_converted)
- return ..()
+ if(replacementmode && round_converted == 2)
+ return replacementmode.check_finished()
+
+ if((config.continuous["wizard"] && !config.midround_antag["wizard"]) || round_converted == 1 || !wizards) //No reason to waste resources
+ return ..() //Check for evacuation/nuke
- var/wizards_alive = 0
- var/traitors_alive = 0
for(var/datum/mind/wizard in wizards)
- if(!istype(wizard.current,/mob/living/carbon))
- continue
- if(wizard.current.stat==2)
- continue
- wizards_alive++
+ if(wizard.current.stat != DEAD)
+ return ..()
- if(!wizards_alive)
- for(var/datum/mind/traitor in traitors)
- if(!istype(traitor.current,/mob/living/carbon))
- continue
- if(traitor.current.stat==2)
- continue
- traitors_alive++
+ for(var/datum/mind/traitor in traitors)
+ if(traitor.current.stat != DEAD)
+ return ..()
- if (wizards_alive || traitors_alive)
- return ..()
+ if(!config.continuous["wizard"] || !config.midround_antag["wizard"])
+ return 1
- if(config.continuous_round_wiz)
+ else
round_converted = convert_roundtype()
if(!round_converted)
finished = 1
@@ -203,10 +197,7 @@
if(SSevent.wizardmode) //If summon events was active, turn it off
SSevent.toggleWizardmode()
SSevent.resetFrequency()
- return ..()
-
- finished = 1
- return 1
+ return ..()
/datum/game_mode/wizard/declare_completion()
if(finished)
diff --git a/code/game/jobs/job/cargo_service.dm b/code/game/jobs/job/cargo_service.dm
index a3f2f33b3b4..1708474abdf 100644
--- a/code/game/jobs/job/cargo_service.dm
+++ b/code/game/jobs/job/cargo_service.dm
@@ -42,7 +42,7 @@ Cargo Technician
default_headset = /obj/item/device/radio/headset/headset_cargo
access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_station, access_mineral_storeroom)
- minimal_access = list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting)
+ minimal_access = list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mailsorting, access_mineral_storeroom)
/datum/job/cargo_tech/equip_items(var/mob/living/carbon/human/H)
H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/cargotech(H), slot_w_uniform)
diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm
index f91fb5a6ddf..9e51ce6bcf3 100644
--- a/code/game/machinery/doors/brigdoors.dm
+++ b/code/game/machinery/doors/brigdoors.dm
@@ -101,7 +101,7 @@
if(C.broken) continue
if(C.opened && !C.close()) continue
C.locked = 1
- C.icon_state = C.icon_locked
+ C.update_icon()
return 1
@@ -117,7 +117,7 @@
if(C.broken) continue
if(C.opened) continue
C.locked = 0
- C.icon_state = C.icon_closed
+ C.update_icon()
return 1
diff --git a/code/game/machinery/embedded_controller/embedded_controller_base.dm b/code/game/machinery/embedded_controller/embedded_controller_base.dm
index b7645d58a2b..6f9b91169b0 100644
--- a/code/game/machinery/embedded_controller/embedded_controller_base.dm
+++ b/code/game/machinery/embedded_controller/embedded_controller_base.dm
@@ -14,7 +14,7 @@ datum/computer/file/embedded_program/proc/receive_user_command(command)
datum/computer/file/embedded_program/proc/receive_signal(datum/signal/signal, receive_method, receive_param)
return null
-datum/computer/file/embedded_program/proc/process()
+datum/computer/file/embedded_program/process()
return 0
obj/machinery/embedded_controller
diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm
index b713085f801..6f20b8ce9f6 100644
--- a/code/game/machinery/hologram.dm
+++ b/code/game/machinery/hologram.dm
@@ -40,23 +40,47 @@ var/const/HOLOPAD_MODE = RANGE_BASED
var/list/masters = list()//List of AIs that use the holopad
var/last_request = 0 //to prevent request spam. ~Carn
var/holo_range = 5 // Change to change how far the AI can move away from the holopad before deactivating.
+ var/temp = ""
/obj/machinery/hologram/holopad/attack_hand(var/mob/living/carbon/human/user) //Carn: Hologram requests.
if(!istype(user))
return
- if(alert(user,"Would you like to request an AI's presence?",,"Yes","No") == "Yes")
- if(!Adjacent(user)) //also prevents request spam!
- user << "You are too far from the holopad."
- return
- if(last_request + 200 < world.time) //don't spam the AI with requests you jerk!
+ if(user.stat || stat & (NOPOWER|BROKEN))
+ return
+ user.set_machine(src)
+ var/dat
+ if(temp)
+ dat = temp
+ else
+ dat = "request an AI's presence."
+
+ var/datum/browser/popup = new(user, "holopad", name, 300, 130)
+ popup.set_content(dat)
+ popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
+ popup.open()
+
+/obj/machinery/hologram/holopad/Topic(href, href_list)
+ if(..())
+ return
+ if (href_list["AIrequest"])
+ if(last_request + 200 < world.time)
last_request = world.time
- user << "You request an AI's presence."
+ temp = "You requested an AI's presence.
"
+ temp += "Main Menu"
var/area/area = get_area(src)
for(var/mob/living/silicon/ai/AI in living_mob_list)
- if(!AI.client) continue
+ if(!AI.client)
+ continue
AI << "Your presence is requested at \the [area]."
else
- user << "A request for AI presence was already sent recently."
+ temp = "A request for AI presence was already sent recently.
"
+ temp += "Main Menu"
+
+ else if(href_list["mainmenu"])
+ temp = ""
+
+ updateUsrDialog()
+ add_fingerprint(usr)
/obj/machinery/hologram/holopad/attack_ai(mob/living/silicon/ai/user)
if (!istype(user))
diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm
index 61fb96edcb0..900edaf63ea 100644
--- a/code/game/machinery/portable_turret.dm
+++ b/code/game/machinery/portable_turret.dm
@@ -298,9 +298,7 @@
else
//if the turret was attacked with the intention of harming it:
user.changeNext_move(CLICK_CD_MELEE)
- health -= I.force * 0.5
- if(health <= 0)
- die()
+ take_damage(I.force * 0.5)
if(I.force * 0.5 > 1) //if the force of impact dealt at least 1 damage, the turret gets pissed off
if(!attacked && !emagged)
attacked = 1
@@ -309,6 +307,32 @@
attacked = 0
..()
+/obj/machinery/porta_turret/attack_animal(mob/living/simple_animal/M as mob)
+ M.changeNext_move(CLICK_CD_MELEE)
+ M.do_attack_animation(src)
+ if(M.melee_damage_upper == 0)
+ return
+ if(!(stat & BROKEN))
+ visible_message("[M] [M.attacktext] [src]!")
+ add_logs(M, src, "attacked", admin=0)
+ take_damage(M.melee_damage_upper)
+ else
+ M << "That object is useless to you."
+ return
+
+/obj/machinery/porta_turret/attack_alien(mob/living/carbon/alien/humanoid/M as mob)
+ M.changeNext_move(CLICK_CD_MELEE)
+ M.do_attack_animation(src)
+ if(!(stat & BROKEN))
+ playsound(src.loc, 'sound/weapons/slash.ogg', 25, 1, -1)
+ visible_message("[M] has slashed at [src]!")
+ add_logs(M, src, "attacked", admin=0)
+ take_damage(15)
+ else
+ M << "\green That object is useless to you."
+ return
+
+
/obj/machinery/porta_turret/emag_act(user as mob)
if(!emagged)
user << "You short out [src]'s threat assessment circuits."
@@ -328,15 +352,16 @@
sleep(60)
attacked = 0
+ var/damage_dealt = 0
if((Proj.damage_type == BRUTE || Proj.damage_type == BURN))
- health -= Proj.damage
+ damage_dealt = Proj.damage
..()
- if(prob(45) && Proj.damage > 0)
- spark_system.start()
- if(health <= 0)
- die() //the death process :(
+ if(damage_dealt)
+ if(prob(45))
+ spark_system.start()
+ take_damage(damage_dealt)
if(lasercolor == "b" && disabled == 0)
if(istype(Proj, /obj/item/projectile/lasertag/redtag))
@@ -372,8 +397,14 @@
/obj/machinery/porta_turret/ex_act(severity, target)
if(severity >= 3) //turret dies if an explosion touches it!
- qdel(src)
+ die()
else
+ qdel(src)
+
+
+/obj/machinery/porta_turret/proc/take_damage(damage)
+ health -= damage
+ if(health <= 0)
die()
/obj/machinery/porta_turret/proc/die() //called when the turret dies, ie, health <= 0
diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm
index 18e6e16ebac..a0ef6a5fc31 100644
--- a/code/game/machinery/syndicatebomb.dm
+++ b/code/game/machinery/syndicatebomb.dm
@@ -274,6 +274,14 @@
/obj/item/weapon/bombcore/badmin/explosion/detonate()
explosion(get_turf(src),HeavyExplosion,MediumExplosion,LightExplosion, flame_range = Flames)
+/obj/item/weapon/bombcore/miniature
+ name = "small bomb core"
+ w_class = 2
+
+/obj/item/weapon/bombcore/miniature/detonate()
+ explosion(src.loc,1,2,4,flame_range = 2) //Identical to a minibomb
+ qdel(src)
+
///Syndicate Detonator (aka the big red button)///
/obj/item/device/syndicatedetonator
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index d5be45d6338..f7385507a95 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -844,14 +844,14 @@
/obj/item/clothing/head/bandana = 1,/obj/item/clothing/under/soviet = 1,/obj/item/clothing/head/ushanka = 1,/obj/item/clothing/suit/imperium_monk = 1,
/obj/item/clothing/mask/gas/cyborg = 1,/obj/item/clothing/suit/holidaypriest = 1,/obj/item/clothing/head/wizard/marisa/fake = 1,
/obj/item/clothing/suit/wizrobe/marisa/fake = 1,/obj/item/clothing/under/sundress = 1,/obj/item/clothing/head/witchwig = 1,/obj/item/weapon/staff/broom = 1,
- /obj/item/clothing/suit/wizrobe/fake = 1,/obj/item/clothing/head/wizard/fake = 1,/obj/item/weapon/staff = 3,/obj/item/clothing/mask/gas/sexyclown = 1,
+ /obj/item/clothing/suit/wizrobe/fake = 1,/obj/item/clothing/head/wizard/fake = 1,/obj/item/weapon/staff = 3,/obj/item/clothing/mask/gas/sexyclown = 1,
/obj/item/clothing/under/sexyclown = 1,/obj/item/clothing/mask/gas/sexymime = 1,/obj/item/clothing/under/sexymime = 1,/obj/item/clothing/suit/apron/overalls = 1,
/obj/item/clothing/head/rabbitears =1, /obj/item/clothing/head/sombrero = 1, /obj/item/clothing/head/sombrero/green = 1, /obj/item/clothing/suit/poncho = 1,
/obj/item/clothing/suit/poncho/green = 1, /obj/item/clothing/suit/poncho/red = 1,
/obj/item/clothing/under/maid = 1, /obj/item/clothing/under/janimaid = 1,/obj/item/clothing/glasses/cold=1,/obj/item/clothing/glasses/heat=1,
- /obj/item/clothing/suit/whitedress = 1,
+ /obj/item/clothing/suit/whitedress = 1,
/obj/item/clothing/under/jester = 1, /obj/item/clothing/head/jester = 1)
- contraband = list(/obj/item/clothing/suit/judgerobe = 1,/obj/item/clothing/head/powdered_wig = 1,/obj/item/weapon/gun/magic/wand = 1,/obj/item/clothing/glasses/sunglasses/garb = 1)
+ contraband = list(/obj/item/clothing/suit/judgerobe = 1,/obj/item/clothing/head/powdered_wig = 1,/obj/item/weapon/gun/magic/wand = 1,/obj/item/clothing/glasses/sunglasses/garb = 1)
premium = list(/obj/item/clothing/suit/hgpirate = 1, /obj/item/clothing/head/hgpiratecap = 1, /obj/item/clothing/head/helmet/roman = 1, /obj/item/clothing/head/helmet/roman/legionaire = 1, /obj/item/clothing/under/roman = 1, /obj/item/clothing/shoes/roman = 1, /obj/item/weapon/shield/riot/roman = 1)
refill_canister = /obj/item/weapon/vending_refill/autodrobe
@@ -860,7 +860,7 @@
desc = "A kitchen and restaurant equipment vendor"
product_ads = "Mm, food stuffs!;Food and food accessories.;Get your plates!;You like forks?;I like forks.;Woo, utensils.;You don't really need these..."
icon_state = "dinnerware"
- products = list(/obj/item/weapon/storage/bag/tray = 8,/obj/item/weapon/kitchen/utensil/fork = 6,/obj/item/weapon/kitchenknife = 3,/obj/item/weapon/kitchen/rollingpin = 2,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 8,/obj/item/clothing/suit/apron/chef = 2,/obj/item/weapon/reagent_containers/food/condiment/pack/ketchup = 5,/obj/item/weapon/reagent_containers/food/condiment/pack/hotsauce = 5,/obj/item/weapon/reagent_containers/glass/bowl = 10)
+ products = list(/obj/item/weapon/storage/bag/tray = 8,/obj/item/weapon/kitchen/utensil/fork = 6,/obj/item/weapon/kitchenknife = 3,/obj/item/weapon/kitchen/rollingpin = 2,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 8,/obj/item/clothing/suit/apron/chef = 2,/obj/item/weapon/reagent_containers/food/condiment/pack/ketchup = 5,/obj/item/weapon/reagent_containers/food/condiment/pack/hotsauce = 5,/obj/item/weapon/reagent_containers/glass/bowl = 20)
contraband = list(/obj/item/weapon/kitchen/rollingpin = 2, /obj/item/weapon/kitchenknife/butcher = 2)
/obj/machinery/vending/sovietsoda
diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm
index e8fe2378646..40389aae5a9 100644
--- a/code/game/mecha/equipment/weapons/weapons.dm
+++ b/code/game/mecha/equipment/weapons/weapons.dm
@@ -102,19 +102,19 @@
fire_sound = 'sound/weapons/marauder.ogg'
/obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma
- equip_cooldown = 8
+ equip_cooldown = 20
name = "217-D Heavy Plasma Cutter"
desc = "A device that shoots resonant plasma bursts at extreme velocity. The blasts are capable of crushing rock and demloishing solid obstacles."
icon_state = "mecha_plasmacutter"
item_state = "plasmacutter"
- energy_drain = 45
+ energy_drain = 60
origin_tech = "materials=3;combat=2;powerstorage=3;plasma=3"
projectile = /obj/item/projectile/plasma/adv/mech
- fire_sound = 'sound/weapons/pulse.ogg'
+ fire_sound = 'sound/weapons/Laser.ogg'
/obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma/can_attach(obj/mecha/M as obj)
if(istype(M, /obj/mecha/working))
- if(M.equipment.len 0)
src.icon_state = pick(src.random_icon_states)
+ create_reagents(300)
+ ..()
+
+/obj/effect/decal/cleanable/attackby(obj/item/weapon/W as obj, mob/user as mob,)
+ if(istype(W, /obj/item/weapon/reagent_containers/glass) || istype(W, /obj/item/weapon/reagent_containers/food/drinks))
+ if(src.reagents && W.reagents)
+ if(!src.reagents.total_volume)
+ user << "[src] isn't thick enough to scoop up!"
+ return
+ if(W.reagents.total_volume >= W.reagents.maximum_volume)
+ user << "[W] is full!"
+ return
+ user << "You scoop up [src] into [W]!"
+ reagents.trans_to(W, reagents.total_volume)
+ if(!reagents.total_volume) //scooped up all of it
+ qdel(src)
+ return
+ if(is_hot(W)) //todo: make heating a reagent holder proc
+ if(istype(W, /obj/item/clothing/mask/cigarette)) return
+ else
+ var/hotness = is_hot(W)
+ var/added_heat = (hotness / 100)
+ src.reagents.chem_temp = min(src.reagents.chem_temp + added_heat, hotness)
+ src.reagents.handle_reactions()
+ user << "You heat [src] with [W]!"
+
+/obj/effect/decal/cleanable/ex_act()
+ if(reagents)
+ for(var/datum/reagent/R in reagents.reagent_list)
+ R.on_ex_act()
+ ..()
+
+/obj/effect/decal/cleanable/fire_act()
+ reagents.chem_temp += 30
+ reagents.handle_reactions()
..()
\ No newline at end of file
diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm
index 892bd547dc3..8bb92d6e51e 100644
--- a/code/game/objects/effects/effect_system/effects_foam.dm
+++ b/code/game/objects/effects/effect_system/effects_foam.dm
@@ -142,7 +142,7 @@
metal = metaltype
/datum/effect/effect/system/foam_spread/start()
- var/obj/effect/effect/foam/foundfoam = locate()
+ var/obj/effect/effect/foam/foundfoam = locate() in location
if(foundfoam)//If there was already foam where we start, we add our foaminess to it.
foundfoam.amount += amount
else
diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm
index f61ca544a37..7d401160b80 100644
--- a/code/game/objects/effects/mines.dm
+++ b/code/game/objects/effects/mines.dm
@@ -13,7 +13,12 @@
icon_state = "uglyminearmed"
/obj/effect/mine/Crossed(AM as mob|obj)
- Bumped(AM)
+ if(isanimal(AM))
+ var/mob/living/simple_animal/SA = AM
+ if(!SA.flying)
+ Bumped(SA)
+ else
+ Bumped(AM)
/obj/effect/mine/Bumped(AM as mob|obj)
diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm
index 0fae4cdfa6e..c32a35c5b89 100644
--- a/code/game/objects/items/bodybag.dm
+++ b/code/game/objects/items/bodybag.dm
@@ -34,9 +34,7 @@
name = "body bag"
desc = "A plastic bag designed for the storage and transportation of cadavers."
icon = 'icons/obj/bodybag.dmi'
- icon_state = "bodybag_closed"
- icon_closed = "bodybag_closed"
- icon_opened = "bodybag_open"
+ icon_state = "bodybag"
var/foldedbag_path = /obj/item/bodybag
density = 0
mob_storage_capacity = 2
@@ -84,13 +82,6 @@
qdel(src)
-/obj/structure/closet/body_bag/update_icon()
- if(!opened)
- icon_state = icon_closed
- else
- icon_state = icon_opened
-
-
// Bluespace bodybag
/obj/item/bodybag/bluespace
@@ -105,9 +96,7 @@
name = "bluespace body bag"
desc = "A bluespace body bag designed for the storage and transportation of cadavers."
icon = 'icons/obj/bodybag.dmi'
- icon_state = "bluebodybag_closed"
- icon_closed = "bluebodybag_closed"
- icon_opened = "bluebodybag_open"
+ icon_state = "bluebodybag"
foldedbag_path = /obj/item/bodybag/bluespace
density = 0
mob_storage_capacity = 15
diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm
index 87505d593e7..91d2e6d603a 100644
--- a/code/game/objects/items/crayons.dm
+++ b/code/game/objects/items/crayons.dm
@@ -125,6 +125,7 @@
C.confused = max(C.confused, 3)
C.Weaken(3)
C.lip_style = "spray_face"
+ C.lip_color = colour
C.update_body()
playsound(user.loc, 'sound/effects/spray.ogg', 5, 1, 5)
..()
diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm
index 677d1f112d8..29c9fbfbba9 100644
--- a/code/game/objects/items/devices/megaphone.dm
+++ b/code/game/objects/items/devices/megaphone.dm
@@ -17,12 +17,11 @@
if(user.client.prefs.muted & MUTE_IC)
src << "You cannot speak in IC (muted)."
return
+
if(!ishuman(user))
user << "You don't know how to use this!"
return
- if(user.can_speak())
- user << "You find yourself unable to speak at all."
- return
+
if(spamcheck > world.time)
user << "\The [src] needs to recharge!"
return
@@ -30,16 +29,21 @@
var/message = copytext(sanitize(input(user, "Shout a message?", "Megaphone", null) as text),1,MAX_MESSAGE_LEN)
if(!message)
return
+
message = capitalize(message)
+ if(!user.can_speak(message))
+ user << "You find yourself unable to speak at all."
+ return
+
if ((src.loc == user && user.stat == 0))
if(emagged)
if(insults)
- user.audible_message("[user] broadcasts, \"[pick(insultmsg)]\"", null, 1) // 2 stands for hearable message
+ user.audible_message("[user] broadcasts, \"[pick(insultmsg)]\"")
insults--
else
user << "*BZZZZzzzzzt*"
else
- user.audible_message("[user] broadcasts, \"[message]\"", null, 1) // 2 stands for hearable message
+ user.audible_message("[user] broadcasts, \"[message]\"")
playsound(loc, 'sound/items/megaphone.ogg', 100, 0, 1)
spamcheck = world.time + 50
@@ -60,4 +64,4 @@
/obj/item/device/megaphone/cargo
name = "supply megaphone"
- icon_state = "megaphone-cargo"
\ No newline at end of file
+ icon_state = "megaphone-cargo"
diff --git a/code/game/objects/items/devices/pizza_bomb.dm b/code/game/objects/items/devices/pizza_bomb.dm
new file mode 100644
index 00000000000..b7256885428
--- /dev/null
+++ b/code/game/objects/items/devices/pizza_bomb.dm
@@ -0,0 +1,101 @@
+/obj/item/device/pizza_bomb
+ name = "pizza box"
+ desc = "A box suited for pizzas."
+ icon = 'icons/obj/food/containers.dmi'
+ icon_state = "pizzabox1"
+ var/timer = 10 //Adjustable timer
+ var/timer_set = 0
+ var/primed = 0
+ var/disarmed = 0
+ var/wires = list("orange", "green", "blue", "yellow", "aqua", "purple")
+ var/correct_wire
+ var/armer //Used for admin purposes
+
+/obj/item/device/pizza_bomb/attack_self(mob/user)
+ if(disarmed)
+ user << "\The [src] is disarmed."
+ return
+ if(!timer_set)
+ name = "pizza bomb"
+ desc = "It seems inactive."
+ icon_state = "pizzabox_bomb"
+ timer_set = 1
+ timer = (input(user, "Set a timer, from one second to ten seconds.", "Timer", "[timer]") as num) * 10
+ if(!user.canUseTopic(src))
+ timer_set = 0
+ name = "pizza box"
+ desc = "A box suited for pizzas."
+ icon_state = "pizzabox1"
+ return
+ timer = Clamp(timer, 10, 100)
+ icon_state = "pizzabox1"
+ user << "You set the timer to [timer / 10] before activating the payload and closing \the [src]."
+ message_admins("[key_name(usr)]? has set a timer on a pizza bomb to [timer/10] seconds at (JMP).")
+ log_game("[key_name(usr)] has set the timer on a pizza bomb to [timer/10] seconds ([loc.x],[loc.y],[loc.z]).")
+ armer = usr
+ name = "pizza box"
+ desc = "A box suited for pizzas."
+ return
+ if(!primed)
+ name = "pizza bomb"
+ desc = "OH GOD THAT'S NOT A PIZZA"
+ icon_state = "pizzabox_bomb"
+ audible_message("\icon[src] *beep* *beep*")
+ user << "That's no pizza! That's a bomb!"
+ message_admins("[key_name(usr)]? has triggered a pizza bomb armed by [armer] at (JMP).")
+ log_game("[key_name(usr)] has triggered a pizza bomb armed by [armer] ([loc.x],[loc.y],[loc.z]).")
+ primed = 1
+ sleep(timer)
+ return go_boom()
+
+/obj/item/device/pizza_bomb/proc/go_boom()
+ if(disarmed)
+ visible_message("\icon[src] Sparks briefly jump out of the [correct_wire] wire on \the [src], but it's disarmed!")
+ return
+ src.audible_message("\icon[src] [src] beeps, \"Enjoy the pizza!\"")
+ src.visible_message("\The [src] violently explodes!")
+ explosion(src.loc,1,2,4,flame_range = 2) //Identical to a minibomb
+ qdel(src)
+
+/obj/item/device/pizza_bomb/attackby(var/obj/item/I, var/mob/user, params)
+ if(istype(I, /obj/item/weapon/wirecutters) && primed)
+ user << "Oh God, what wire do you cut?!"
+ var/chosen_wire = input(user, "OH GOD OH GOD", "WHAT WIRE?!") in wires
+ if(!user.canUseTopic(src))
+ return
+ playsound(src, 'sound/items/Wirecutter.ogg', 50, 1, 1)
+ user.visible_message("[user] cuts the [chosen_wire] wire!", "You cut the [chosen_wire] wire!")
+ sleep(5)
+ if(chosen_wire == correct_wire)
+ src.audible_message("\icon[src] \The [src] suddenly stops beeping and seems lifeless.")
+ user << "You did it!"
+ icon_state = "pizzabox_bomb_[correct_wire]"
+ name = "pizza bomb"
+ desc = "A devious contraption, made of a small explosive payload hooked up to pressure-sensitive wires. It's disarmed."
+ disarmed = 1
+ primed = 0
+ return
+ else
+ user << "WRONG WIRE!"
+ go_boom()
+ return
+ if(istype(I, /obj/item/weapon/wirecutters) && disarmed)
+ if(!in_range(user, src))
+ user << "You can't see the box well enough to cut the wires out."
+ return
+ user.visible_message("[user] starts removing the payload and wires from \the [src].")
+ if(do_after(user, 40))
+ playsound(src, 'sound/items/Wirecutter.ogg', 50, 1, 1)
+ user.unEquip(src)
+ user.visible_message("[user] removes the insides of \the [src]!")
+ var/obj/item/stack/cable_coil/C = new /obj/item/stack/cable_coil(src.loc)
+ C.amount = 3
+ new /obj/item/weapon/bombcore/miniature(src.loc)
+ new /obj/item/pizzabox(src.loc)
+ qdel(src)
+ return
+ ..()
+
+/obj/item/device/pizza_bomb/New()
+ ..()
+ correct_wire = pick(wires)
diff --git a/code/game/objects/items/weapons/cosmetics.dm b/code/game/objects/items/weapons/cosmetics.dm
index c40f89ddc7b..a78daf7096a 100644
--- a/code/game/objects/items/weapons/cosmetics.dm
+++ b/code/game/objects/items/weapons/cosmetics.dm
@@ -14,8 +14,9 @@
colour = "purple"
/obj/item/weapon/lipstick/jade
+ //It's still called Jade, but theres no HTML color for jade, so we use lime.
name = "jade lipstick"
- colour = "jade"
+ colour = "lime"
/obj/item/weapon/lipstick/black
name = "black lipstick"
@@ -26,17 +27,21 @@
name = "lipstick"
/obj/item/weapon/lipstick/random/New()
- colour = pick("red","purple","jade","black")
+ colour = pick("red","purple","lime","black","green","blue","white")
name = "[colour] lipstick"
/obj/item/weapon/lipstick/attack_self(mob/user)
+ overlays.Cut()
user << "You twist \the [src] [open ? "closed" : "open"]."
open = !open
if(open)
- icon_state = "[initial(icon_state)]_[colour]"
+ var/image/colored = image("icon"='icons/obj/items.dmi', "icon_state"="lipstick_uncap_color")
+ colored.color = colour
+ icon_state = "lipstick_uncap"
+ overlays += colored
else
- icon_state = initial(icon_state)
+ icon_state = "lipstick"
/obj/item/weapon/lipstick/attack(mob/M, mob/user)
if(!open) return
@@ -51,7 +56,8 @@
if(H == user)
user.visible_message("[user] does their lips with \the [src].", \
"You take a moment to apply \the [src]. Perfect!")
- H.lip_style = colour
+ H.lip_style = "lipstick"
+ H.lip_color = colour
H.update_body()
else
user.visible_message("[user] begins to do [H]'s lips with \the [src].", \
@@ -59,7 +65,8 @@
if(do_after(user, 20) && do_after(H, 20, 5, 0)) //user needs to keep their active hand, H does not.
user.visible_message("[user] does [H]'s lips with \the [src].", \
"You apply \the [src].")
- H.lip_style = colour
+ H.lip_style = "lipstick"
+ H.lip_color = colour
H.update_body()
else
user << "Where are the lips on that?"
diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm
index 17c514f8ffe..e12f568c694 100644
--- a/code/game/objects/items/weapons/handcuffs.dm
+++ b/code/game/objects/items/weapons/handcuffs.dm
@@ -1,3 +1,7 @@
+
+/obj/item/weapon/restraints
+ var/breakouttime = 600
+
//Handcuffs
/obj/item/weapon/restraints/handcuffs
@@ -14,7 +18,7 @@
throw_range = 5
m_amt = 500
origin_tech = "materials=1"
- var/breakouttime = 600 //Deciseconds = 60s = 1 minute
+ breakouttime = 600 //Deciseconds = 60s = 1 minute
var/cuffsound = 'sound/weapons/handcuffs.ogg'
var/trashtype = null //for disposable cuffs
@@ -144,7 +148,7 @@
w_class = 3.0
origin_tech = "materials=1"
slowdown = 7
- var/breakouttime = 300 //Deciseconds = 30s = 0.5 minute
+ breakouttime = 300 //Deciseconds = 30s = 0.5 minute
/obj/item/weapon/restraints/legcuffs/beartrap
name = "bear trap"
@@ -169,26 +173,29 @@
/obj/item/weapon/restraints/legcuffs/beartrap/Crossed(AM as mob|obj)
if(armed && isturf(src.loc))
- if( (iscarbon(AM) || isanimal(AM)) && !istype(AM, /mob/living/simple_animal/parrot) && !istype(AM, /mob/living/simple_animal/construct) && !istype(AM, /mob/living/simple_animal/shade) && !istype(AM, /mob/living/simple_animal/hostile/viscerator))
+ if(isliving(AM))
var/mob/living/L = AM
- armed = 0
- icon_state = "beartrap0"
- playsound(src.loc, 'sound/effects/snap.ogg', 50, 1)
- L.visible_message("[L] triggers \the [src].", \
- "You trigger \the [src]!")
-
- if(ishuman(AM))
- var/mob/living/carbon/H = AM
- if(H.lying)
- H.apply_damage(20,BRUTE,"chest")
- else
- H.apply_damage(20,BRUTE,(pick("l_leg", "r_leg")))
- if(!H.legcuffed) //beartrap can't cuff you leg if there's already a beartrap or legcuffs.
- H.legcuffed = src
- src.loc = H
- H.update_inv_legcuffed(0)
- feedback_add_details("handcuffs","B") //Yes, I know they're legcuffs. Don't change this, no need for an extra variable. The "B" is used to tell them apart.
-
- else
- L.apply_damage(20,BRUTE)
+ var/snap = 0
+ var/def_zone = "chest"
+ if(iscarbon(L))
+ var/mob/living/carbon/C = L
+ snap = 1
+ if(!C.lying)
+ def_zone = pick("l_leg", "r_leg")
+ if(!C.legcuffed) //beartrap can't cuff your leg if there's already a beartrap or legcuffs.
+ C.legcuffed = src
+ src.loc = C
+ C.update_inv_legcuffed(0)
+ feedback_add_details("handcuffs","B") //Yes, I know they're legcuffs. Don't change this, no need for an extra variable. The "B" is used to tell them apart.
+ else if(isanimal(L))
+ var/mob/living/simple_animal/SA = L
+ if(!SA.flying && SA.mob_size > MOB_SIZE_TINY)
+ snap = 1
+ if(snap)
+ armed = 0
+ icon_state = "beartrap0"
+ playsound(src.loc, 'sound/effects/snap.ogg', 50, 1)
+ L.visible_message("[L] triggers \the [src].", \
+ "You trigger \the [src]!")
+ L.apply_damage(20,BRUTE, def_zone)
..()
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm
index 94a1afa043c..5136e6073d2 100644
--- a/code/game/objects/items/weapons/manuals.dm
+++ b/code/game/objects/items/weapons/manuals.dm
@@ -686,7 +686,8 @@
All doughs can be microwaved.
Bowl: Add water to it for soup preparation.
Meat: Microwave it, process it, slice it into microwavable cutlets with your knife, or use it raw.
- Cheese: Add 5u universal enzyme (catalyst) to milk and soy milk to prepare cheese (sliceable) and tofu.
+ Cheese: Add 5u universal enzyme (catalyst) to milk and soy milk to prepare cheese (sliceable) and tofu.
+ Rice: Mix 10u rice with 10u water in a bowl then microwave it.
Custom food:
Add ingredients to a base item to prepare a custom meal.
diff --git a/code/game/objects/items/weapons/signs.dm b/code/game/objects/items/weapons/signs.dm
index 21c85b31297..15451d602a8 100644
--- a/code/game/objects/items/weapons/signs.dm
+++ b/code/game/objects/items/weapons/signs.dm
@@ -7,6 +7,7 @@
attack_verb = list("bashed","smacked")
var/label = ""
+ var/last_wave = 0
/obj/item/weapon/picket_sign/attackby(obj/item/weapon/W, mob/user, params)
if(istype(W, /obj/item/weapon/pen) || istype(W, /obj/item/toy/crayon))
@@ -18,11 +19,13 @@
..()
/obj/item/weapon/picket_sign/attack_self(mob/living/carbon/human/user)
- if(label)
- user.visible_message("[user] waves around \the \"[label]\" sign.")
- else
- user.visible_message("[user] waves around blank sign.")
- user.changeNext_move(CLICK_CD_MELEE)
+ if( last_wave + 20 < world.time )
+ last_wave = world.time
+ if(label)
+ user.visible_message("[user] waves around \the \"[label]\" sign.")
+ else
+ user.visible_message("[user] waves around blank sign.")
+ user.changeNext_move(CLICK_CD_MELEE)
/datum/table_recipe/picket_sign
name = "Picket Sign"
diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm
index 2c9bb1a2ccf..15543721ac9 100644
--- a/code/game/objects/items/weapons/storage/backpack.dm
+++ b/code/game/objects/items/weapons/storage/backpack.dm
@@ -43,6 +43,9 @@
/obj/item/weapon/storage/backpack/holding/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user)
if(istype(W, /obj/item/weapon/storage/backpack/holding) && !W.crit_fail)
+ var/safety = alert(user, "You feel this may not be the best idea.", "Put in [name]?", "Proceed", "Abort")
+ if(safety == "Abort" || !in_range(src, user) || !src || !W)
+ return
investigate_log("has become a singularity. Caused by [user.key]","singulo")
user << "The Bluespace interfaces of the two devices catastrophically malfunction!"
qdel(W)
diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm
index b5b0d9f60b3..92ebff9c716 100644
--- a/code/game/objects/items/weapons/storage/bags.dm
+++ b/code/game/objects/items/weapons/storage/bags.dm
@@ -286,7 +286,7 @@
*/
/obj/item/weapon/storage/bag/tray
name = "tray"
- icon = 'icons/obj/food.dmi'
+ icon = 'icons/obj/food/containers.dmi'
icon_state = "tray"
desc = "A metal tray to lay food on."
force = 5
diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index 08bba19ba87..83a70c95bb8 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -350,7 +350,7 @@
/obj/item/weapon/storage/box/monkeycubes
name = "monkey cube box"
desc = "Drymate brand monkey cubes. Just add water!"
- icon = 'icons/obj/food.dmi'
+ icon = 'icons/obj/food/food.dmi'
icon_state = "monkeycubebox"
storage_slots = 7
can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube)
diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm
index 1f3675fc8a1..8fafce35f10 100644
--- a/code/game/objects/items/weapons/storage/fancy.dm
+++ b/code/game/objects/items/weapons/storage/fancy.dm
@@ -15,7 +15,7 @@
*/
/obj/item/weapon/storage/fancy/
- icon = 'icons/obj/food.dmi'
+ icon = 'icons/obj/food/containers.dmi'
icon_state = "donutbox6"
name = "donut box"
var/icon_type = "donut"
@@ -39,7 +39,7 @@
*/
/obj/item/weapon/storage/fancy/donut_box
- icon = 'icons/obj/food.dmi'
+ icon = 'icons/obj/food/containers.dmi'
icon_state = "donutbox6"
icon_type = "donut"
name = "donut box"
@@ -58,7 +58,7 @@
*/
/obj/item/weapon/storage/fancy/egg_box
- icon = 'icons/obj/food.dmi'
+ icon = 'icons/obj/food/containers.dmi'
icon_state = "eggbox"
icon_type = "egg"
name = "egg box"
diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm
index 878b80b8b05..7654a396f22 100644
--- a/code/game/objects/items/weapons/stunbaton.dm
+++ b/code/game/objects/items/weapons/stunbaton.dm
@@ -13,7 +13,6 @@
var/status = 0
var/obj/item/weapon/stock_parts/cell/high/bcell = null
var/hitcost = 1000
- var/losspertick = 5
/obj/item/weapon/melee/baton/suicide_act(mob/user)
user.visible_message("[user] is putting the live [name] in \his mouth! It looks like \he's trying to commit suicide.")
@@ -45,24 +44,8 @@
else
return 0
-/obj/item/weapon/melee/baton/proc/update_process()
- if(status)
- SSobj.processing |= src
- else
- SSobj.processing.Remove(src)
-/obj/item/weapon/melee/baton/process()
- if(bcell)
- if(bcell.charge < hitcost)
- status = 0
- update_icon()
- if(status)
- if(isrobot(loc))
- var/mob/living/silicon/robot/R = loc
- if(R && R.cell)
- R.cell.use(losspertick)
- else
- bcell.use(losspertick)
+
/obj/item/weapon/melee/baton/update_icon()
if(status)
@@ -71,7 +54,6 @@
icon_state = "[initial(name)]_nocell"
else
icon_state = "[initial(name)]"
- update_process()
/obj/item/weapon/melee/baton/examine(mob/user)
..()
diff --git a/code/game/objects/items/weapons/table_rack_parts.dm b/code/game/objects/items/weapons/table_rack_parts.dm
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm
index ab28088dfe3..0f0467ea62e 100644
--- a/code/game/objects/items/weapons/tanks/tanks.dm
+++ b/code/game/objects/items/weapons/tanks/tanks.dm
@@ -102,7 +102,7 @@
Tank
Tank Pressure: [air_contents.return_pressure()]
-Mask Release Pressure: - - [distribute_pressure] + +
+Mask Release Pressure: - - [distribute_pressure] + +
Mask Release Valve: [using_internal?("Open"):("Closed")]
"}
user << browse(message, "window=tank;size=600x300")
diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm
index 3d9068d8b53..57d102eb03f 100644
--- a/code/game/objects/items/weapons/weaponry.dm
+++ b/code/game/objects/items/weapons/weaponry.dm
@@ -138,7 +138,7 @@ obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob, params)
icon_state = "throwingstar"
item_state = "eshield0"
force = 2
- throwforce = 0 //This is never used since this has a 100% embed chance.
+ throwforce = 20 //This is never used on mobs since this has a 100% embed chance.
throw_speed = 4
embedded_pain_multiplier = 4
w_class = 2
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index 0685f81d020..bf297b6a8b3 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -10,10 +10,6 @@
var/damtype = "brute"
var/force = 0
-/obj/proc/process()
- SSobj.processing.Remove(src)
- return 0
-
/obj/Destroy()
if(!istype(src, /obj/machinery))
SSobj.processing.Remove(src) // TODO: Have a processing bitflag to reduce on unnecessary loops through the processing lists
diff --git a/code/game/objects/structures/crates_lockers/bins.dm b/code/game/objects/structures/crates_lockers/bins.dm
index 8ece4f59820..295d4a86c9d 100644
--- a/code/game/objects/structures/crates_lockers/bins.dm
+++ b/code/game/objects/structures/crates_lockers/bins.dm
@@ -1,12 +1,8 @@
/obj/structure/closet/crate/bin
desc = "A trash bin, place your trash here for the janitor to collect."
name = "trash bin"
- icon = 'icons/obj/storage.dmi'
- icon_state = "largebins"
- density = 1
+ icon_crate = "largebins"
anchored = 1
- icon_opened = "largebinsopen"
- icon_closed = "largebins"
sound_effect_open = 'sound/effects/bin_open.ogg'
sound_effect_close = 'sound/effects/bin_close.ogg'
var/animation = "animate_largebins"
@@ -14,7 +10,6 @@
var/greenlight = "largebing"
var/orangelight = "largebino"
-
/obj/structure/closet/crate/bin/New()
..()
update_icon()
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index d657f0e1b25..9bc8e11c5af 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -2,10 +2,9 @@
name = "closet"
desc = "It's a basic storage unit."
icon = 'icons/obj/closet.dmi'
- icon_state = "closed"
+ icon_state = "generic"
density = 1
- var/icon_closed = "closed"
- var/icon_opened = "open"
+ var/icon_door = null
var/opened = 0
var/welded = 0
var/locked = 0
@@ -19,11 +18,30 @@
var/storage_capacity = 30 //This is so that someone can't pack hundreds of items in a locker/crate
//then open it in a populated area to crash clients.
+/obj/structure/closet/New()
+ ..()
+ update_icon()
+
/obj/structure/closet/initialize()
..()
if(!opened) // if closed, any item at the crate's loc is put in the contents
take_contents()
+/obj/structure/closet/update_icon()
+ overlays.Cut()
+ if(!opened)
+ if(icon_door)
+ overlays += "[icon_door]_door"
+ else
+ overlays += "[icon_state]_door"
+ if(welded)
+ overlays += "welded"
+ else
+ if(icon_door)
+ overlays += "[icon_door]_open"
+ else
+ overlays += "[icon_state]_open"
+
/obj/structure/closet/alter_health()
return get_turf(src)
@@ -68,13 +86,13 @@
src.dump_contents()
- src.icon_state = src.icon_opened
src.opened = 1
if(istype(src, /obj/structure/closet/body_bag))
playsound(src.loc, 'sound/items/zip.ogg', 15, 1, -3)
else
playsound(src.loc, 'sound/machines/click.ogg', 15, 1, -3)
density = 0
+ update_icon()
return 1
/obj/structure/closet/proc/insert(var/atom/movable/AM)
@@ -86,7 +104,7 @@
var/mob/living/L = AM
if(L.buckled || L.mob_size > max_mob_size) //buckled mobs and mobs too big for the container don't get inside closets.
return 0
- if(L.mob_size > 0)
+ if(L.mob_size > MOB_SIZE_TINY) //decently sized mobs take more space than objects.
var/mobs_stored = 0
for(var/mob/living/M in contents)
mobs_stored++
@@ -112,13 +130,13 @@
take_contents()
- src.icon_state = src.icon_closed
src.opened = 0
if(istype(src, /obj/structure/closet/body_bag))
playsound(src.loc, 'sound/items/zip.ogg', 15, 1, -3)
else
playsound(src.loc, 'sound/machines/click.ogg', 15, 1, -3)
density = 1
+ update_icon()
return 1
/obj/structure/closet/proc/toggle()
@@ -275,15 +293,6 @@
else
usr << "This mob type can't use this verb."
-/obj/structure/closet/update_icon()//Putting the welded stuff in updateicon() so it's easy to overwrite for special cases (Fridges, cabinets, and whatnot)
- overlays.Cut()
- if(!opened)
- icon_state = icon_closed
- if(welded)
- overlays += "welded"
- else
- icon_state = icon_opened
-
// Objects that try to exit a locker by stepping were doing so successfully,
// and due to an oversight in turf/Enter() were going through walls. That
// should be independently resolved, but this is also an interesting twist.
diff --git a/code/game/objects/structures/crates_lockers/closets/coffin.dm b/code/game/objects/structures/crates_lockers/closets/coffin.dm
deleted file mode 100644
index 256f72522e8..00000000000
--- a/code/game/objects/structures/crates_lockers/closets/coffin.dm
+++ /dev/null
@@ -1,12 +0,0 @@
-/obj/structure/closet/coffin
- name = "coffin"
- desc = "It's a burial receptacle for the dearly departed."
- icon_state = "coffin"
- icon_closed = "coffin"
- icon_opened = "coffin_open"
-
-/obj/structure/closet/coffin/update_icon()
- if(!opened)
- icon_state = icon_closed
- else
- icon_state = icon_opened
\ No newline at end of file
diff --git a/code/game/objects/structures/crates_lockers/closets/crittercrate.dm b/code/game/objects/structures/crates_lockers/closets/crittercrate.dm
index 82fd942e368..4854cdcdf89 100644
--- a/code/game/objects/structures/crates_lockers/closets/crittercrate.dm
+++ b/code/game/objects/structures/crates_lockers/closets/crittercrate.dm
@@ -2,8 +2,6 @@
name = "critter crate"
desc = "A crate designed for safe transport of animals. Only openable from the the outside."
icon_state = "critter"
- icon_opened = "critteropen"
- icon_closed = "critter"
var/already_opened = 0
var/content_mob = null
var/amount = 1
diff --git a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm
index 04f7361017b..41786c4b092 100644
--- a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm
+++ b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm
@@ -3,9 +3,8 @@
name = "fire axe cabinet"
desc = "There is small label that reads \"For Emergency use only\" along with details for safe use of the axe. As if."
var/obj/item/weapon/twohanded/fireaxe/fireaxe = new/obj/item/weapon/twohanded/fireaxe
+ icon = 'icons/obj/wallmounts.dmi'
icon_state = "fireaxe1000"
- icon_closed = "fireaxe1000"
- icon_opened = "fireaxe1100"
anchored = 1
density = 0
wall_mounted = 1
diff --git a/code/game/objects/structures/crates_lockers/closets/fitness.dm b/code/game/objects/structures/crates_lockers/closets/fitness.dm
index c22b32d12b2..46dc772b5fe 100644
--- a/code/game/objects/structures/crates_lockers/closets/fitness.dm
+++ b/code/game/objects/structures/crates_lockers/closets/fitness.dm
@@ -1,8 +1,7 @@
/obj/structure/closet/athletic_mixed
name = "athletic wardrobe"
desc = "It's a storage unit for athletic wear."
- icon_state = "mixed"
- icon_closed = "mixed"
+ icon_door = "mixed"
/obj/structure/closet/athletic_mixed/New()
..()
@@ -40,8 +39,7 @@
/obj/structure/closet/lasertag/red
name = "red laser tag equipment"
desc = "It's a storage unit for laser tag equipment."
- icon_state = "red"
- icon_closed = "red"
+ icon_door = "red"
/obj/structure/closet/lasertag/red/New()
..()
@@ -57,8 +55,7 @@
/obj/structure/closet/lasertag/blue
name = "blue laser tag equipment"
desc = "It's a storage unit for laser tag equipment."
- icon_state = "blue"
- icon_closed = "blue"
+ icon_door = "blue"
/obj/structure/closet/lasertag/blue/New()
..()
diff --git a/code/game/objects/structures/crates_lockers/closets/gimmick.dm b/code/game/objects/structures/crates_lockers/closets/gimmick.dm
index 9db64cf3f2f..d68d9555c05 100644
--- a/code/game/objects/structures/crates_lockers/closets/gimmick.dm
+++ b/code/game/objects/structures/crates_lockers/closets/gimmick.dm
@@ -1,38 +1,22 @@
/obj/structure/closet/cabinet
name = "cabinet"
desc = "Old will forever be in fashion."
- icon_state = "cabinet_closed"
- icon_closed = "cabinet_closed"
- icon_opened = "cabinet_open"
-
-/obj/structure/closet/cabinet/update_icon()
- if(!opened)
- icon_state = icon_closed
- else
- icon_state = icon_opened
+ icon_state = "cabinet"
/obj/structure/closet/acloset
name = "strange closet"
desc = "It looks alien!"
- icon_state = "acloset"
- icon_closed = "acloset"
- icon_opened = "aclosetopen"
+ icon_state = "alien"
/obj/structure/closet/gimmick
name = "administrative supply closet"
desc = "It's a storage unit for things that have no right being here."
- icon_state = "syndicate1"
- icon_closed = "syndicate1"
- icon_opened = "syndicate1open"
- anchored = 0
+ icon_state = "syndicate"
/obj/structure/closet/gimmick/russian
name = "russian surplus closet"
desc = "It's a storage unit for Russian standard-issue surplus."
- icon_state = "syndicate1"
- icon_closed = "syndicate1"
- icon_opened = "syndicate1open"
/obj/structure/closet/gimmick/russian/New()
..()
@@ -51,9 +35,6 @@
/obj/structure/closet/gimmick/tacticool
name = "tacticool gear closet"
desc = "It's a storage unit for Tacticool gear."
- icon_state = "syndicate1"
- icon_closed = "syndicate1"
- icon_opened = "syndicate1open"
/obj/structure/closet/gimmick/tacticool/New()
..()
@@ -76,16 +57,11 @@
/obj/structure/closet/thunderdome
name = "\improper Thunderdome closet"
desc = "Everything you need!"
- icon_state = "syndicate"
- icon_closed = "syndicate"
- icon_opened = "syndicateopen"
anchored = 1
-/obj/structure/closet/thunderdome/New()
- ..()
-
/obj/structure/closet/thunderdome/tdred
name = "red-team Thunderdome closet"
+ icon_door = "red"
/obj/structure/closet/thunderdome/tdred/New()
..()
@@ -110,9 +86,7 @@
/obj/structure/closet/thunderdome/tdgreen
name = "green-team Thunderdome closet"
- icon_state = "syndicate1"
- icon_closed = "syndicate1"
- icon_opened = "syndicate1open"
+ icon_door = "green"
/obj/structure/closet/thunderdome/tdgreen/New()
..()
@@ -135,3 +109,16 @@
new /obj/item/clothing/head/helmet/thunderdome(src)
new /obj/item/clothing/head/helmet/thunderdome(src)
+/obj/structure/closet/malf/suits
+ desc = "It's a storage unit for operational gear."
+ icon_state = "syndicate"
+
+/obj/structure/closet/malf/suits/New()
+ ..()
+ new /obj/item/weapon/tank/jetpack/void(src)
+ new /obj/item/clothing/mask/breath(src)
+ new /obj/item/clothing/head/helmet/space/nasavoid(src)
+ new /obj/item/clothing/suit/space/nasavoid(src)
+ new /obj/item/weapon/crowbar(src)
+ new /obj/item/weapon/stock_parts/cell(src)
+ new /obj/item/device/multitool(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
index b6ac87fe2ab..9ac55af828a 100644
--- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
@@ -3,6 +3,7 @@
* Bartender
* Janitor
* Lawyer
+ * Coffin
*/
/*
@@ -11,8 +12,7 @@
/obj/structure/closet/gmcloset
name = "formal closet"
desc = "It's a storage unit for formal clothing."
- icon_state = "black"
- icon_closed = "black"
+ icon_door = "black"
/obj/structure/closet/gmcloset/New()
..()
@@ -37,8 +37,7 @@
/obj/structure/closet/chefcloset
name = "\proper chef's closet"
desc = "It's a storage unit for foodservice garments and mouse traps."
- icon_state = "black"
- icon_closed = "black"
+ icon_door = "black"
/obj/structure/closet/chefcloset/New()
..()
@@ -65,8 +64,7 @@
/obj/structure/closet/jcloset
name = "custodial closet"
desc = "It's a storage unit for janitorial clothes and gear."
- icon_state = "mixed"
- icon_closed = "mixed"
+ icon_door = "mixed"
/obj/structure/closet/jcloset/New()
..()
@@ -91,10 +89,10 @@
/obj/structure/closet/lawcloset
name = "legal closet"
desc = "It's a storage unit for courtroom apparel and items."
- icon_state = "blue"
- icon_closed = "blue"
+ icon_door = "blue"
/obj/structure/closet/lawcloset/New()
+ ..()
new /obj/item/clothing/under/lawyer/female(src)
new /obj/item/clothing/under/lawyer/black(src)
new /obj/item/clothing/under/lawyer/red(src)
@@ -105,4 +103,9 @@
new /obj/item/clothing/under/lawyer/blacksuit(src)
new /obj/item/clothing/suit/toggle/lawyer/black(src)
new /obj/item/clothing/shoes/laceup(src)
- new /obj/item/clothing/shoes/laceup(src)
\ No newline at end of file
+ new /obj/item/clothing/shoes/laceup(src)
+
+/obj/structure/closet/coffin
+ name = "coffin"
+ desc = "It's a burial receptacle for the dearly departed."
+ icon_state = "coffin"
\ No newline at end of file
diff --git a/code/game/objects/structures/crates_lockers/closets/l3closet.dm b/code/game/objects/structures/crates_lockers/closets/l3closet.dm
index 65f14e7d443..5f1109c35c6 100644
--- a/code/game/objects/structures/crates_lockers/closets/l3closet.dm
+++ b/code/game/objects/structures/crates_lockers/closets/l3closet.dm
@@ -2,31 +2,14 @@
name = "level-3 biohazard suit closet"
desc = "It's a storage unit for level-3 biohazard gear."
icon_state = "bio"
- icon_closed = "bio"
- icon_opened = "bioopen"
/obj/structure/closet/l3closet/New()
..()
new /obj/item/clothing/suit/bio_suit/general( src )
new /obj/item/clothing/head/bio_hood/general( src )
-
-/obj/structure/closet/l3closet/general
- icon_state = "bio_general"
- icon_closed = "bio_general"
- icon_opened = "bio_generalopen"
-
-/obj/structure/closet/l3closet/general/New()
- ..()
- contents = list()
- new /obj/item/clothing/suit/bio_suit/general( src )
- new /obj/item/clothing/head/bio_hood/general( src )
-
-
/obj/structure/closet/l3closet/virology
- icon_state = "bio_virology"
- icon_closed = "bio_virology"
- icon_opened = "bio_virologyopen"
+ icon_state = "bio_viro"
/obj/structure/closet/l3closet/virology/New()
..()
@@ -36,9 +19,7 @@
/obj/structure/closet/l3closet/security
- icon_state = "bio_security"
- icon_closed = "bio_security"
- icon_opened = "bio_securityopen"
+ icon_state = "bio_sec"
/obj/structure/closet/l3closet/security/New()
..()
@@ -48,9 +29,7 @@
/obj/structure/closet/l3closet/janitor
- icon_state = "bio_janitor"
- icon_closed = "bio_janitor"
- icon_opened = "bio_janitoropen"
+ icon_state = "bio_jan"
/obj/structure/closet/l3closet/janitor/New()
..()
@@ -60,9 +39,7 @@
/obj/structure/closet/l3closet/scientist
- icon_state = "bio_scientist"
- icon_closed = "bio_scientist"
- icon_opened = "bio_scientistopen"
+ icon_state = "bio_viro"
/obj/structure/closet/l3closet/scientist/New()
..()
diff --git a/code/game/objects/structures/crates_lockers/closets/malfunction.dm b/code/game/objects/structures/crates_lockers/closets/malfunction.dm
deleted file mode 100644
index ba32e37f38c..00000000000
--- a/code/game/objects/structures/crates_lockers/closets/malfunction.dm
+++ /dev/null
@@ -1,16 +0,0 @@
-
-/obj/structure/closet/malf/suits
- desc = "It's a storage unit for operational gear."
- icon_state = "syndicate"
- icon_closed = "syndicate"
- icon_opened = "syndicateopen"
-
-/obj/structure/closet/malf/suits/New()
- ..()
- new /obj/item/weapon/tank/jetpack/void(src)
- new /obj/item/clothing/mask/breath(src)
- new /obj/item/clothing/head/helmet/space/nasavoid(src)
- new /obj/item/clothing/suit/space/nasavoid(src)
- new /obj/item/weapon/crowbar(src)
- new /obj/item/weapon/stock_parts/cell(src)
- new /obj/item/device/multitool(src)
\ No newline at end of file
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm
index 0a237335dff..e5d818ca19f 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm
@@ -1,13 +1,7 @@
/obj/structure/closet/secure_closet/bar
name = "booze storage"
req_access = list(access_bar)
- icon_state = "cabinetdetective_locked"
- icon_closed = "cabinetdetective"
- icon_locked = "cabinetdetective_locked"
- icon_opened = "cabinetdetective_open"
- icon_broken = "cabinetdetective_broken"
- icon_off = "cabinetdetective_broken"
-
+ icon_state = "cabinet"
/obj/structure/closet/secure_closet/bar/New()
..()
@@ -21,16 +15,3 @@
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
- return
-
-/obj/structure/closet/secure_closet/bar/update_icon()
- if(broken)
- icon_state = icon_broken
- else
- if(!opened)
- if(locked)
- icon_state = icon_locked
- else
- icon_state = icon_closed
- else
- icon_state = icon_opened
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm
index c84a04233ca..c603163c427 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm
@@ -1,12 +1,7 @@
/obj/structure/closet/secure_closet/cargotech
name = "cargo technician's locker"
req_access = list(access_cargo)
- icon_state = "securecargo1"
- icon_closed = "securecargo"
- icon_locked = "securecargo1"
- icon_opened = "securecargoopen"
- icon_broken = "securecargobroken"
- icon_off = "securecargooff"
+ icon_state = "cargo"
/obj/structure/closet/secure_closet/cargotech/New()
..()
@@ -15,18 +10,11 @@
new /obj/item/device/radio/headset/headset_cargo(src)
new /obj/item/clothing/gloves/fingerless(src)
new /obj/item/clothing/head/soft(src)
-// new /obj/item/weapon/cartridge/quartermaster(src)
- return
/obj/structure/closet/secure_closet/quartermaster
name = "\proper quartermaster's locker"
req_access = list(access_qm)
- icon_state = "secureqm1"
- icon_closed = "secureqm"
- icon_locked = "secureqm1"
- icon_opened = "secureqmopen"
- icon_broken = "secureqmbroken"
- icon_off = "secureqmoff"
+ icon_state = "qm"
/obj/structure/closet/secure_closet/quartermaster/New()
..()
@@ -34,7 +22,6 @@
new /obj/item/clothing/under/rank/cargo(src)
new /obj/item/clothing/shoes/sneakers/brown(src)
new /obj/item/device/radio/headset/headset_cargo(src)
-// new /obj/item/weapon/cartridge/quartermaster(src)
new /obj/item/clothing/suit/fire/firefighter(src)
new /obj/item/clothing/gloves/fingerless(src)
new /obj/item/device/megaphone/cargo(src)
@@ -42,4 +29,3 @@
new /obj/item/clothing/mask/gas(src)
new /obj/item/clothing/glasses/meson(src)
new /obj/item/clothing/head/soft(src)
- return
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
index 037b5f64864..206eef09a91 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm
@@ -1,13 +1,7 @@
/obj/structure/closet/secure_closet/engineering_chief
name = "\proper chief engineer's locker"
req_access = list(access_ce)
- icon_state = "securece1"
- icon_closed = "securece"
- icon_locked = "securece1"
- icon_opened = "secureceopen"
- icon_broken = "securecebroken"
- icon_off = "secureceoff"
-
+ icon_state = "ce"
/obj/structure/closet/secure_closet/engineering_chief/New()
..()
@@ -35,18 +29,12 @@
new /obj/item/device/multitool(src)
new /obj/item/device/flash/handheld(src)
new /obj/item/clothing/glasses/meson/engine(src)
- return
/obj/structure/closet/secure_closet/engineering_electrical
name = "electrical supplies locker"
req_access = list(access_engine_equip)
- icon_state = "secureengelec1"
- icon_closed = "secureengelec"
- icon_locked = "secureengelec1"
- icon_opened = "toolclosetopen"
- icon_broken = "secureengelecbroken"
- icon_off = "secureengelecoff"
-
+ icon_state = "eng"
+ icon_door = "eng_elec"
/obj/structure/closet/secure_closet/engineering_electrical/New()
..()
@@ -61,20 +49,12 @@
new /obj/item/device/multitool(src)
new /obj/item/device/multitool(src)
new /obj/item/device/multitool(src)
- return
-
-
/obj/structure/closet/secure_closet/engineering_welding
name = "welding supplies locker"
req_access = list(access_engine_equip)
- icon_state = "secureengweld1"
- icon_closed = "secureengweld"
- icon_locked = "secureengweld1"
- icon_opened = "toolclosetopen"
- icon_broken = "secureengweldbroken"
- icon_off = "secureengweldoff"
-
+ icon_state = "eng"
+ icon_door = "eng_weld"
/obj/structure/closet/secure_closet/engineering_welding/New()
..()
@@ -84,20 +64,11 @@
new /obj/item/weapon/weldingtool/largetank(src)
new /obj/item/weapon/weldingtool/largetank(src)
new /obj/item/weapon/weldingtool/largetank(src)
- return
-
-
/obj/structure/closet/secure_closet/engineering_personal
name = "engineer's locker"
req_access = list(access_engine_equip)
- icon_state = "secureeng1"
- icon_closed = "secureeng"
- icon_locked = "secureeng1"
- icon_opened = "secureengopen"
- icon_broken = "secureengbroken"
- icon_off = "secureengoff"
-
+ icon_state = "eng_secure"
/obj/structure/closet/secure_closet/engineering_personal/New()
..()
@@ -115,18 +86,11 @@
new /obj/item/tapeproj/engineering(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/clothing/glasses/meson/engine(src)
- return
/obj/structure/closet/secure_closet/atmospherics
name = "\proper atmospheric technician's locker"
req_access = list(access_atmospherics)
- icon_state = "secureatmos1"
- icon_closed = "secureatmos"
- icon_locked = "secureatmos1"
- icon_opened = "secureatmosopen"
- icon_broken = "secureatmosbroken"
- icon_off = "secureatmosoff"
-
+ icon_state = "atmos"
/obj/structure/closet/secure_closet/atmospherics/New()
..()
@@ -139,5 +103,4 @@
new /obj/item/tapeproj/engineering(src)
new /obj/item/weapon/watertank/atmos(src)
new /obj/item/clothing/suit/fire/atmos(src)
- new /obj/item/clothing/head/hardhat/atmos(src)
- return
\ No newline at end of file
+ new /obj/item/clothing/head/hardhat/atmos(src)
\ No newline at end of file
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm
index 1471e62185f..79a66cda856 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm
@@ -1,16 +1,5 @@
/obj/structure/closet/secure_closet/freezer
-
-/obj/structure/closet/secure_closet/freezer/update_icon()
- if(broken)
- icon_state = icon_broken
- else
- if(!opened)
- if(locked)
- icon_state = icon_locked
- else
- icon_state = icon_closed
- else
- icon_state = icon_opened
+ icon_state = "freezer"
/obj/structure/closet/secure_closet/freezer/kitchen
name = "kitchen Cabinet"
@@ -20,42 +9,21 @@
..()
for(var/i = 0, i < 3, i++)
new /obj/item/weapon/reagent_containers/food/condiment/flour(src)
+ new /obj/item/weapon/reagent_containers/food/condiment/rice(src)
new /obj/item/weapon/reagent_containers/food/condiment/sugar(src)
- return
-
/obj/structure/closet/secure_closet/freezer/kitchen/mining
req_access = list()
-
-
/obj/structure/closet/secure_closet/freezer/meat
name = "meat fridge"
- icon_state = "fridge1"
- icon_closed = "fridge"
- icon_locked = "fridge1"
- icon_opened = "fridgeopen"
- icon_broken = "fridgebroken"
- icon_off = "fridge1"
-
/obj/structure/closet/secure_closet/freezer/meat/New()
..()
for(var/i = 0, i < 4, i++)
- new /obj/item/weapon/reagent_containers/food/snacks/meat/monkey(src)
- return
-
-
-
+ new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey(src)
/obj/structure/closet/secure_closet/freezer/fridge
name = "refrigerator"
- icon_state = "fridge1"
- icon_closed = "fridge"
- icon_locked = "fridge1"
- icon_opened = "fridgeopen"
- icon_broken = "fridgebroken"
- icon_off = "fridge1"
-
/obj/structure/closet/secure_closet/freezer/fridge/New()
..()
@@ -65,22 +33,12 @@
new /obj/item/weapon/reagent_containers/food/condiment/soymilk(src)
for(var/i = 0, i < 2, i++)
new /obj/item/weapon/storage/fancy/egg_box(src)
- return
-
-
/obj/structure/closet/secure_closet/freezer/money
name = "freezer"
desc = "This contains cold hard cash."
- icon_state = "fridge1"
- icon_closed = "fridge"
- icon_locked = "fridge1"
- icon_opened = "fridgeopen"
- icon_broken = "fridgebroken"
- icon_off = "fridge1"
req_access = list(access_heads_vault)
-
/obj/structure/closet/secure_closet/freezer/money/New()
..()
for(var/i = 0, i < 3, i++)
@@ -89,4 +47,3 @@
new /obj/item/stack/spacecash/c500(src)
for(var/i = 0, i < 6, i++)
new /obj/item/stack/spacecash/c200(src)
- return
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm
index 100ecee2218..8dccb1c86e2 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm
@@ -1,31 +1,24 @@
/obj/structure/closet/secure_closet/hydroponics
name = "botanist's locker"
req_access = list(access_hydroponics)
- icon_state = "hydrosecure1"
- icon_closed = "hydrosecure"
- icon_locked = "hydrosecure1"
- icon_opened = "hydrosecureopen"
- icon_broken = "hydrosecurebroken"
- icon_off = "hydrosecureoff"
+ icon_state = "hydro"
-
- New()
- ..()
- new /obj/item/clothing/suit/hooded/wintercoat/hydro(src)
- switch(rand(1,2))
- if(1)
- new /obj/item/clothing/suit/apron(src)
- if(2)
- new /obj/item/clothing/suit/apron/overalls(src)
- new /obj/item/weapon/storage/bag/plants/portaseeder(src)
- new /obj/item/clothing/under/rank/hydroponics(src)
- new /obj/item/device/analyzer/plant_analyzer(src)
- new /obj/item/device/radio/headset/headset_srv(src)
- new /obj/item/clothing/mask/bandana(src)
- new /obj/item/weapon/minihoe(src)
- new /obj/item/weapon/hatchet(src)
- new /obj/item/weapon/storage/backpack/botany(src)
- new /obj/item/weapon/storage/backpack/botany(src)
- new /obj/item/weapon/storage/backpack/satchel_hyd(src)
- new /obj/item/weapon/storage/backpack/satchel_hyd(src)
- return
\ No newline at end of file
+/obj/structure/closet/secure_closet/hydroponics/New()
+ ..()
+ new /obj/item/clothing/suit/hooded/wintercoat/hydro(src)
+ switch(rand(1,2))
+ if(1)
+ new /obj/item/clothing/suit/apron(src)
+ if(2)
+ new /obj/item/clothing/suit/apron/overalls(src)
+ new /obj/item/weapon/storage/bag/plants/portaseeder(src)
+ new /obj/item/clothing/under/rank/hydroponics(src)
+ new /obj/item/device/analyzer/plant_analyzer(src)
+ new /obj/item/device/radio/headset/headset_srv(src)
+ new /obj/item/clothing/mask/bandana(src)
+ new /obj/item/weapon/minihoe(src)
+ new /obj/item/weapon/hatchet(src)
+ new /obj/item/weapon/storage/backpack/botany(src)
+ new /obj/item/weapon/storage/backpack/botany(src)
+ new /obj/item/weapon/storage/backpack/satchel_hyd(src)
+ new /obj/item/weapon/storage/backpack/satchel_hyd(src)
\ No newline at end of file
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
index ca7ccf94c1a..6f7a5d24e61 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm
@@ -1,15 +1,9 @@
/obj/structure/closet/secure_closet/medical1
name = "medicine closet"
desc = "Filled to the brim with medical junk."
- icon_state = "medical1"
- icon_closed = "medical"
- icon_locked = "medical1"
- icon_opened = "medicalopen"
- icon_broken = "medicalbroken"
- icon_off = "medicaloff"
+ icon_state = "med"
req_access = list(access_medical)
-
/obj/structure/closet/secure_closet/medical1/New()
..()
new /obj/item/weapon/reagent_containers/glass/beaker(src)
@@ -28,22 +22,12 @@
new /obj/item/weapon/reagent_containers/glass/bottle/charcoal(src)
new /obj/item/weapon/reagent_containers/glass/bottle/charcoal(src)
new /obj/item/weapon/storage/box/rxglasses(src)
- return
-
-
/obj/structure/closet/secure_closet/medical2
name = "anesthetic closet"
desc = "Used to knock people out."
- icon_state = "medical1"
- icon_closed = "medical"
- icon_locked = "medical1"
- icon_opened = "medicalopen"
- icon_broken = "medicalbroken"
- icon_off = "medicaloff"
req_access = list(access_surgery)
-
/obj/structure/closet/secure_closet/medical2/New()
..()
new /obj/item/weapon/tank/internals/anesthetic(src)
@@ -52,19 +36,11 @@
new /obj/item/clothing/mask/breath/medical(src)
new /obj/item/clothing/mask/breath/medical(src)
new /obj/item/clothing/mask/breath/medical(src)
- return
-
-
/obj/structure/closet/secure_closet/medical3
name = "medical doctor's locker"
req_access = list(access_surgery)
- icon_state = "securemed1"
- icon_closed = "securemed"
- icon_locked = "securemed1"
- icon_opened = "securemedopen"
- icon_broken = "securemedbroken"
- icon_off = "securemedoff"
+ icon_state = "med_secure"
/obj/structure/closet/secure_closet/medical3/New()
..()
@@ -83,17 +59,10 @@
new /obj/item/clothing/glasses/hud/health(src)
return
-
-
/obj/structure/closet/secure_closet/CMO
name = "\proper chief medical officer's locker"
req_access = list(access_cmo)
- icon_state = "cmosecure1"
- icon_closed = "cmosecure"
- icon_locked = "cmosecure1"
- icon_opened = "cmosecureopen"
- icon_broken = "cmosecurebroken"
- icon_off = "cmosecureoff"
+ icon_state = "cmo"
/obj/structure/closet/secure_closet/CMO/New()
..()
@@ -116,65 +85,24 @@
new /obj/item/device/flash/handheld(src)
new /obj/item/weapon/reagent_containers/hypospray/CMO(src)
new /obj/item/cybernetic_implant/eyes/hud/medical(src)
- return
-
-
/obj/structure/closet/secure_closet/animal
name = "animal control"
req_access = list(access_surgery)
-
/obj/structure/closet/secure_closet/animal/New()
..()
new /obj/item/device/assembly/signaler(src)
new /obj/item/device/electropack(src)
new /obj/item/device/electropack(src)
new /obj/item/device/electropack(src)
- return
-
-
/obj/structure/closet/secure_closet/chemical
name = "chemical closet"
desc = "Store dangerous chemicals in here."
- icon_state = "chemical1"
- icon_closed = "chemical"
- icon_locked = "chemical1"
- icon_opened = "medicalopen"
- icon_broken = "chemicalbroken"
- icon_off = "chemicaloff"
- req_access = list(access_chemistry)
-
+ icon_door = "chemical"
/obj/structure/closet/secure_closet/chemical/New()
..()
new /obj/item/weapon/storage/box/pillbottles(src)
new /obj/item/weapon/storage/box/pillbottles(src)
- return
-
-/obj/structure/closet/secure_closet/medical_wall
- name = "first aid closet"
- desc = "It's a secure wall-mounted storage unit for first aid supplies."
- icon_state = "medical_wall_locked"
- icon_closed = "medical_wall_unlocked"
- icon_locked = "medical_wall_locked"
- icon_opened = "medical_wall_open"
- icon_broken = "medical_wall_spark"
- icon_off = "medical_wall_off"
- anchored = 1
- density = 0
- wall_mounted = 1
- req_access = list(access_medical)
-
-/obj/structure/closet/secure_closet/medical_wall/update_icon()
- if(broken)
- icon_state = icon_broken
- else
- if(!opened)
- if(locked)
- icon_state = icon_locked
- else
- icon_state = icon_closed
- else
- icon_state = icon_opened
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/misc.dm b/code/game/objects/structures/crates_lockers/closets/secure/misc.dm
index 5701b358b4f..41242ba802f 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/misc.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/misc.dm
@@ -2,12 +2,7 @@
name = "commander's closet"
desc = "Emergency Response Team equipment locker."
req_access = list(access_cent_captain)
- icon_state = "capsecure1"
- icon_closed = "capsecure"
- icon_locked = "capsecure1"
- icon_opened = "capsecureopen"
- icon_broken = "capsecurebroken"
- icon_off = "capsecureoff"
+ icon_state = "cap"
/obj/structure/closet/secure_closet/ertCom/New()
..()
@@ -24,18 +19,12 @@
new /obj/item/ammo_box/a357(src)
new /obj/item/ammo_box/a357(src)
new /obj/item/weapon/gun/projectile/revolver/mateba(src)
- return
/obj/structure/closet/secure_closet/ertSec
name = "security closet"
desc = "Emergency Response Team equipment locker."
req_access = list(access_cent_specops)
- icon_state = "hossecure1"
- icon_closed = "hossecure"
- icon_locked = "hossecure1"
- icon_opened = "hossecureopen"
- icon_broken = "hossecurebroken"
- icon_off = "hossecureoff"
+ icon_state = "hos"
/obj/structure/closet/secure_closet/ertSec/New()
..()
@@ -45,18 +34,12 @@
new /obj/item/weapon/storage/box/handcuffs(src)
new /obj/item/weapon/melee/baton/loaded(src)
new /obj/item/weapon/shield/riot/tele(src)
- return
/obj/structure/closet/secure_closet/ertMed
name = "medical closet"
desc = "Emergency Response Team equipment locker."
req_access = list(access_cent_medical)
- icon_state = "cmosecure1"
- icon_closed = "cmosecure"
- icon_locked = "cmosecure1"
- icon_opened = "cmosecureopen"
- icon_broken = "cmosecurebroken"
- icon_off = "cmosecureoff"
+ icon_state = "cmo"
/obj/structure/closet/secure_closet/ertMed/New()
..()
@@ -68,18 +51,12 @@
new /obj/item/weapon/melee/baton/loaded(src)
new /obj/item/weapon/defibrillator/compact/combat(src)
new /obj/machinery/bot/medbot(src)
- return
/obj/structure/closet/secure_closet/ertEngi
name = "engineer closet"
desc = "Emergency Response Team equipment locker."
req_access = list(access_cent_storage)
- icon_state = "securece1"
- icon_closed = "securece"
- icon_locked = "securece1"
- icon_opened = "secureceopen"
- icon_broken = "securecebroken"
- icon_off = "secureceoff"
+ icon_state = "ce"
/obj/structure/closet/secure_closet/ertEngi/New()
..()
@@ -92,4 +69,3 @@
new /obj/item/weapon/rcd_ammo/large(src)
new /obj/item/weapon/rcd_ammo/large(src)
new /obj/item/weapon/rcd_ammo/large(src)
- return
\ No newline at end of file
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
index 0bbe929e43c..d3dac41e27d 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm
@@ -13,8 +13,6 @@
else
new /obj/item/weapon/storage/backpack/satchel_norm(src)
new /obj/item/device/radio/headset( src )
- return
-
/obj/structure/closet/secure_closet/personal/patient
name = "patient's closet"
@@ -24,36 +22,15 @@
contents.Cut()
new /obj/item/clothing/under/color/white( src )
new /obj/item/clothing/shoes/sneakers/white( src )
- return
-
-
/obj/structure/closet/secure_closet/personal/cabinet
- icon_state = "cabinetdetective_locked"
- icon_closed = "cabinetdetective"
- icon_locked = "cabinetdetective_locked"
- icon_opened = "cabinetdetective_open"
- icon_broken = "cabinetdetective_broken"
- icon_off = "cabinetdetective_broken"
-
-/obj/structure/closet/secure_closet/personal/cabinet/update_icon()
- if(broken)
- icon_state = icon_broken
- else
- if(!opened)
- if(locked)
- icon_state = icon_locked
- else
- icon_state = icon_closed
- else
- icon_state = icon_opened
+ icon_state = "cabinet"
/obj/structure/closet/secure_closet/personal/cabinet/New()
..()
contents = list()
new /obj/item/weapon/storage/backpack/satchel/withwallet( src )
new /obj/item/device/radio/headset( src )
- return
/obj/structure/closet/secure_closet/personal/attackby(obj/item/W as obj, mob/user as mob, params)
@@ -67,8 +44,7 @@
if(src.allowed(user) || !src.registered_name || (istype(I) && (src.registered_name == I.registered_name)))
//they can open all lockers, or nobody owns this, or they own this locker
src.locked = !( src.locked )
- if(src.locked) src.icon_state = src.icon_locked
- else src.icon_state = src.icon_closed
+ update_icon()
if(!src.registered_name)
src.registered_name = I.registered_name
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
index a7298c248e3..3720a560df7 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm
@@ -1,12 +1,7 @@
/obj/structure/closet/secure_closet/scientist
name = "scientist's locker"
req_access = list(access_tox_storage)
- icon_state = "secureres1"
- icon_closed = "secureres"
- icon_locked = "secureres1"
- icon_opened = "secureresopen"
- icon_broken = "secureresbroken"
- icon_off = "secureresoff"
+ icon_state = "science"
/obj/structure/closet/secure_closet/scientist/New()
..()
@@ -21,19 +16,11 @@
new /obj/item/weapon/storage/backpack/science(src)
new /obj/item/weapon/storage/backpack/satchel_tox(src)
new /obj/item/weapon/storage/backpack/satchel_tox(src)
- return
-
-
/obj/structure/closet/secure_closet/RD
name = "\proper research director's locker"
req_access = list(access_rd)
- icon_state = "rdsecure1"
- icon_closed = "rdsecure"
- icon_locked = "rdsecure1"
- icon_opened = "rdsecureopen"
- icon_broken = "rdsecurebroken"
- icon_off = "rdsecureoff"
+ icon_state = "rd"
/obj/structure/closet/secure_closet/RD/New()
..()
@@ -53,4 +40,3 @@
new /obj/item/clothing/suit/armor/reactive(src)
new /obj/item/device/flash/handheld(src)
new /obj/item/device/laser_pointer(src)
- return
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
index 9625cff53cd..37dd82fd1c2 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
@@ -1,19 +1,21 @@
/obj/structure/closet/secure_closet
name = "secure locker"
desc = "It's an immobile card-locked storage unit."
- icon = 'icons/obj/closet.dmi'
- icon_state = "secure1"
- density = 1
- opened = 0
locked = 1
- icon_closed = "secure"
- var/icon_locked = "secure1"
- icon_opened = "secureopen"
- var/icon_broken = "securebroken"
- var/icon_off = "secureoff"
- wall_mounted = 0 //never solid (You can always pass over it)
+ icon_state = "secure"
health = 200
+/obj/structure/closet/secure_closet/update_icon()//Putting the welded stuff in updateicon() so it's easy to overwrite for special cases (Fridges, cabinets, and whatnot)
+ ..()
+ if(!opened)
+ if(!broken)
+ if(locked)
+ overlays += "locked"
+ else
+ overlays += "unlocked"
+ else
+ overlays += "off"
+
/obj/structure/closet/secure_closet/examine(mob/user)
..()
if(broken || opened || !ishuman(user))
@@ -41,12 +43,6 @@
return 0
return 1
-/obj/structure/closet/secure_closet/close()
- ..()
- if(broken)
- icon_state = src.icon_off
- return 1
-
/obj/structure/closet/secure_closet/emp_act(severity)
for(var/obj/O in src)
O.emp_act(severity)
@@ -69,10 +65,7 @@
for(var/mob/O in viewers(user, 3))
if((O.client && !( O.eye_blind )))
O << "[user] has [locked ? null : "un"]locked the locker."
- if(src.locked)
- src.icon_state = src.icon_locked
- else
- src.icon_state = src.icon_closed
+ update_icon()
else
user << "Access Denied"
@@ -94,11 +87,14 @@
if(!broken)
broken = 1
locked = 0
- desc = "It appears to be broken."
- icon_state = icon_off
- flick(icon_broken, src)
+ desc += "It appears to be broken."
+ update_icon()
+
for(var/mob/O in viewers(user, 3))
O.show_message("The locker has been broken by [user] with an electromagnetic card!", 1, "You hear a faint electrical spark.", 2)
+ overlays += "sparking"
+ spawn(4) //overlays don't support flick so we have to cheat
+ update_icon()
/obj/structure/closet/secure_closet/relaymove(mob/user as mob)
if(user.stat || !isturf(src.loc))
@@ -121,16 +117,4 @@
return src.attackby(null, user)
/obj/structure/closet/secure_closet/attack_paw(mob/user as mob)
- return src.attack_hand(user)
-
-/obj/structure/closet/secure_closet/update_icon()//Putting the welded stuff in updateicon() so it's easy to overwrite for special cases (Fridges, cabinets, and whatnot)
- overlays.Cut()
- if(!opened)
- if(locked)
- icon_state = icon_locked
- else
- icon_state = icon_closed
- if(welded)
- overlays += "welded"
- else
- icon_state = icon_opened
\ No newline at end of file
+ return src.attack_hand(user)
\ No newline at end of file
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
index 115a165649d..47af5875f04 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -1,12 +1,7 @@
/obj/structure/closet/secure_closet/captains
name = "\proper captain's locker"
req_access = list(access_captain)
- icon_state = "capsecure1"
- icon_closed = "capsecure"
- icon_locked = "capsecure1"
- icon_opened = "capsecureopen"
- icon_broken = "capsecurebroken"
- icon_off = "capsecureoff"
+ icon_state = "cap"
/obj/structure/closet/secure_closet/captains/New()
..()
@@ -27,17 +22,11 @@
new /obj/item/clothing/glasses/sunglasses/gar/supergar(src)
new /obj/item/clothing/gloves/color/captain(src)
new /obj/item/weapon/gun/energy/gun(src)
- return
/obj/structure/closet/secure_closet/hop
name = "\proper head of personnel's locker"
req_access = list(access_hop)
- icon_state = "hopsecure1"
- icon_closed = "hopsecure"
- icon_locked = "hopsecure1"
- icon_opened = "hopsecureopen"
- icon_broken = "hopsecurebroken"
- icon_off = "hopsecureoff"
+ icon_state = "hop"
/obj/structure/closet/secure_closet/hop/New()
..()
@@ -56,19 +45,11 @@
new /obj/item/weapon/mining_voucher(src)
new /obj/item/weapon/gun/energy/gun(src)
new /obj/item/clothing/tie/petcollar(src)
- return
-
-
/obj/structure/closet/secure_closet/hos
name = "\proper head of security's locker"
req_access = list(access_hos)
- icon_state = "hossecure1"
- icon_closed = "hossecure"
- icon_locked = "hossecure1"
- icon_opened = "hossecureopen"
- icon_broken = "hossecurebroken"
- icon_off = "hossecureoff"
+ icon_state = "hos"
/obj/structure/closet/secure_closet/hos/New()
..()
@@ -91,19 +72,11 @@
new /obj/item/weapon/melee/baton/loaded(src)
new /obj/item/weapon/storage/belt/security/full(src)
new /obj/item/weapon/gun/energy/gun/hos(src)
- return
-
/obj/structure/closet/secure_closet/warden
name = "\proper warden's locker"
req_access = list(access_armory)
- icon_state = "wardensecure1"
- icon_closed = "wardensecure"
- icon_locked = "wardensecure1"
- icon_opened = "wardensecureopen"
- icon_broken = "wardensecurebroken"
- icon_off = "wardensecureoff"
-
+ icon_state = "warden"
/obj/structure/closet/secure_closet/warden/New()
..()
@@ -122,19 +95,11 @@
new /obj/item/weapon/melee/baton/loaded(src)
new /obj/item/weapon/storage/belt/security/full(src)
new /obj/item/weapon/gun/energy/gun/advtaser(src)
- return
-
-
/obj/structure/closet/secure_closet/security
name = "security officer's locker"
req_access = list(access_security)
- icon_state = "sec1"
- icon_closed = "sec"
- icon_locked = "sec1"
- icon_opened = "secopen"
- icon_broken = "secbroken"
- icon_off = "secoff"
+ icon_state = "sec"
/obj/structure/closet/secure_closet/security/New()
..()
@@ -148,58 +113,45 @@
new /obj/item/weapon/grenade/flashbang(src)
new /obj/item/weapon/storage/belt/security/full(src)
new /obj/item/clothing/glasses/hud/security/sunglasses(src)
- return
-
/obj/structure/closet/secure_closet/security/sec
/obj/structure/closet/secure_closet/security/sec/New()
- new /obj/item/weapon/melee/baton/loaded(src)
..()
- return
+ new /obj/item/weapon/melee/baton/loaded(src)
/obj/structure/closet/secure_closet/security/cargo
/obj/structure/closet/secure_closet/security/cargo/New()
+ ..()
new /obj/item/clothing/tie/armband/cargo(src)
new /obj/item/device/encryptionkey/headset_cargo(src)
- ..()
- return
/obj/structure/closet/secure_closet/security/engine
/obj/structure/closet/secure_closet/security/engine/New()
+ ..()
new /obj/item/clothing/tie/armband/engine(src)
new /obj/item/device/encryptionkey/headset_eng(src)
- ..()
- return
/obj/structure/closet/secure_closet/security/science
/obj/structure/closet/secure_closet/security/science/New()
+ ..()
new /obj/item/clothing/tie/armband/science(src)
new /obj/item/device/encryptionkey/headset_sci(src)
- ..()
- return
/obj/structure/closet/secure_closet/security/med
/obj/structure/closet/secure_closet/security/med/New()
+ ..()
new /obj/item/clothing/tie/armband/medblue(src)
new /obj/item/device/encryptionkey/headset_med(src)
- ..()
- return
-
/obj/structure/closet/secure_closet/detective
name = "\proper detective's cabinet"
req_access = list(access_forensics_lockers)
- icon_state = "cabinetdetective_locked"
- icon_closed = "cabinetdetective"
- icon_locked = "cabinetdetective_locked"
- icon_opened = "cabinetdetective_open"
- icon_broken = "cabinetdetective_broken"
- icon_off = "cabinetdetective_broken"
+ icon_state = "cabinet"
/obj/structure/closet/secure_closet/detective/New()
..()
@@ -221,19 +173,6 @@
new /obj/item/ammo_box/c38(src)
new /obj/item/weapon/storage/belt/holster(src)
new /obj/item/weapon/gun/projectile/revolver/detective(src)
- return
-
-/obj/structure/closet/secure_closet/detective/update_icon()
- if(broken)
- icon_state = icon_broken
- else
- if(!opened)
- if(locked)
- icon_state = icon_locked
- else
- icon_state = icon_closed
- else
- icon_state = icon_opened
/obj/structure/closet/secure_closet/injection
name = "lethal injections"
@@ -247,7 +186,6 @@
new /obj/item/weapon/reagent_containers/syringe/lethal/choral(src)
new /obj/item/weapon/reagent_containers/syringe/lethal/choral(src)
-
/obj/structure/closet/secure_closet/brig
name = "brig locker"
req_access = list(access_brig)
@@ -255,11 +193,9 @@
var/id = null
/obj/structure/closet/secure_closet/brig/New()
+ ..()
new /obj/item/clothing/under/rank/prisoner( src )
new /obj/item/clothing/shoes/sneakers/orange( src )
- return
-
-
/obj/structure/closet/secure_closet/courtroom
name = "courtroom locker"
@@ -275,30 +211,3 @@
new /obj/item/clothing/suit/judgerobe (src)
new /obj/item/clothing/head/powdered_wig (src)
new /obj/item/weapon/storage/briefcase(src)
- return
-
-/obj/structure/closet/secure_closet/wall
- name = "wall locker"
- req_access = list(access_security)
- icon_state = "wall-locker1"
- density = 1
- icon_closed = "wall-locker"
- icon_locked = "wall-locker1"
- icon_opened = "wall-lockeropen"
- icon_broken = "wall-lockerbroken"
- icon_off = "wall-lockeroff"
-
- //too small to put a man in
- large = 0
-
-/obj/structure/closet/secure_closet/wall/update_icon()
- if(broken)
- icon_state = icon_broken
- else
- if(!opened)
- if(locked)
- icon_state = icon_locked
- else
- icon_state = icon_closed
- else
- icon_state = icon_opened
diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm
index 0cdf06406cf..303e3160e37 100644
--- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm
+++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm
@@ -2,8 +2,6 @@
name = "armory closet"
desc = "Why is this here?"
icon_state = "syndicate"
- icon_closed = "syndicate"
- icon_opened = "syndicateopen"
/obj/structure/closet/syndicate/personal
desc = "It's a personal storage unit for operative gear."
@@ -107,6 +105,8 @@
desc = "It's an emergency storage closet for repairs."
/obj/structure/closet/syndicate/resources/everything/New()
+ ..()
+ contents = list()
var/list/resources = list(
/obj/item/stack/sheet/metal,
/obj/item/stack/sheet/glass,
diff --git a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
index 7fb6712b9e7..9105fd08796 100644
--- a/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/utility_closets.dm
@@ -16,8 +16,6 @@
name = "emergency closet"
desc = "It's a storage unit for emergency breath masks and O2 tanks."
icon_state = "emergency"
- icon_closed = "emergency"
- icon_opened = "emergencyopen"
/obj/structure/closet/emcloset/New()
..()
@@ -53,19 +51,13 @@
new /obj/structure/closet/firecloset(src.loc)
qdel(src)*/
-/obj/structure/closet/emcloset/legacy/New()
- new /obj/item/weapon/tank/internals/oxygen(src)
- new /obj/item/clothing/mask/gas(src)
-
/*
* Fire Closet
*/
/obj/structure/closet/firecloset
name = "fire-safety closet"
desc = "It's a storage unit for fire-fighting supplies."
- icon_state = "firecloset"
- icon_closed = "firecloset"
- icon_opened = "fireclosetopen"
+ icon_state = "fire"
/obj/structure/closet/firecloset/New()
..()
@@ -87,24 +79,17 @@
new /obj/item/weapon/extinguisher(src)
new /obj/item/clothing/head/hardhat/red(src)
-/obj/structure/closet/firecloset/update_icon()
- if(!opened)
- icon_state = icon_closed
- else
- icon_state = icon_opened
-
-
/*
* Tool Closet
*/
/obj/structure/closet/toolcloset
name = "tool closet"
desc = "It's a storage unit for tools."
- icon_state = "toolcloset"
- icon_closed = "toolcloset"
- icon_opened = "toolclosetopen"
+ icon_state = "eng"
+ icon_door = "eng_tool"
/obj/structure/closet/toolcloset/New()
+ ..()
if(prob(40))
new /obj/item/clothing/suit/hazardvest(src)
if(prob(70))
@@ -143,9 +128,8 @@
/obj/structure/closet/radiation
name = "radiation suit closet"
desc = "It's a storage unit for rad-protective suits."
- icon_state = "radsuitcloset"
- icon_opened = "toolclosetopen"
- icon_closed = "radsuitcloset"
+ icon_state = "eng"
+ icon_door = "eng_rad"
/obj/structure/closet/radiation/New()
..()
@@ -158,9 +142,7 @@
/obj/structure/closet/bombcloset
name = "\improper EOD closet"
desc = "It's a storage unit for explosion-protective suits."
- icon_state = "bombsuit"
- icon_closed = "bombsuit"
- icon_opened = "bombsuitopen"
+ icon_state = "bomb"
/obj/structure/closet/bombcloset/New()
..()
@@ -173,9 +155,7 @@
/obj/structure/closet/bombclosetsecurity
name = "\improper EOD closet"
desc = "It's a storage unit for explosion-protective suits."
- icon_state = "bombsuitsec"
- icon_closed = "bombsuitsec"
- icon_opened = "bombsuitsecopen"
+ icon_state = "bomb"
/obj/structure/closet/bombclosetsecurity/New()
..()
@@ -184,38 +164,6 @@
new /obj/item/clothing/shoes/sneakers/brown( src )
new /obj/item/clothing/head/bomb_hood/security( src )
-/*
- * Hydrant
- */
-/obj/structure/closet/hydrant //wall mounted fire closet
- name = "fire-safety closet"
- desc = "It's a storage unit for fire-fighting supplies."
- icon_state = "hydrant"
- icon_closed = "hydrant"
- icon_opened = "hydrant_open"
- anchored = 1
- density = 0
- wall_mounted = 1
-
-/*
- * First Aid
- */
-/obj/structure/closet/medical_wall //wall mounted medical closet
- name = "first-aid closet"
- desc = "It's wall-mounted storage unit for first aid supplies."
- icon_state = "medical_wall"
- icon_closed = "medical_wall"
- icon_opened = "medical_wall_open"
- anchored = 1
- density = 0
- wall_mounted = 1
-
-/obj/structure/closet/medical_wall/update_icon()
- if(!opened)
- icon_state = icon_closed
- else
- icon_state = icon_opened
-
/*
* Ammunition
*/
@@ -232,4 +180,3 @@
new /obj/item/ammo_casing/shotgun/beanbag(src)
new /obj/item/ammo_casing/shotgun/beanbag(src)
new /obj/item/ammo_casing/shotgun/beanbag(src)
-
diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
index 74608f4f0d3..0b4950b45b5 100644
--- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
+++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
@@ -1,10 +1,10 @@
/obj/structure/closet/wardrobe
name = "wardrobe"
desc = "It's a storage unit for standard-issue Nanotrasen attire."
- icon_state = "blue"
- icon_closed = "blue"
+ icon_door = "blue"
/obj/structure/closet/wardrobe/New()
+ ..()
new /obj/item/clothing/under/color/blue(src)
new /obj/item/clothing/under/color/blue(src)
new /obj/item/clothing/under/color/blue(src)
@@ -16,10 +16,10 @@
/obj/structure/closet/wardrobe/red
name = "security wardrobe"
- icon_state = "red"
- icon_closed = "red"
+ icon_door = "red"
/obj/structure/closet/wardrobe/red/New()
+ ..()
new /obj/item/weapon/storage/backpack/security(src)
new /obj/item/weapon/storage/backpack/satchel_sec(src)
new /obj/item/weapon/storage/backpack/dufflebag/sec(src)
@@ -42,10 +42,10 @@
/obj/structure/closet/wardrobe/pink
name = "pink wardrobe"
- icon_state = "pink"
- icon_closed = "pink"
+ icon_door = "pink"
/obj/structure/closet/wardrobe/pink/New()
+ ..()
new /obj/item/clothing/under/color/pink(src)
new /obj/item/clothing/under/color/pink(src)
new /obj/item/clothing/under/color/pink(src)
@@ -56,10 +56,10 @@
/obj/structure/closet/wardrobe/black
name = "black wardrobe"
- icon_state = "black"
- icon_closed = "black"
+ icon_door = "black"
/obj/structure/closet/wardrobe/black/New()
+ ..()
new /obj/item/clothing/under/color/black(src)
new /obj/item/clothing/under/color/black(src)
new /obj/item/clothing/under/color/black(src)
@@ -84,10 +84,10 @@
/obj/structure/closet/wardrobe/chaplain_black
name = "chapel wardrobe"
desc = "It's a storage unit for Nanotrasen-approved religious attire."
- icon_state = "black"
- icon_closed = "black"
+ icon_door = "black"
/obj/structure/closet/wardrobe/chaplain_black/New()
+ ..()
new /obj/item/clothing/under/rank/chaplain(src)
new /obj/item/clothing/shoes/sneakers/black(src)
new /obj/item/clothing/suit/nun(src)
@@ -102,10 +102,10 @@
/obj/structure/closet/wardrobe/green
name = "green wardrobe"
- icon_state = "green"
- icon_closed = "green"
+ icon_door = "green"
/obj/structure/closet/wardrobe/green/New()
+ ..()
new /obj/item/clothing/under/color/green(src)
new /obj/item/clothing/under/color/green(src)
new /obj/item/clothing/under/color/green(src)
@@ -120,10 +120,10 @@
/obj/structure/closet/wardrobe/orange
name = "prison wardrobe"
desc = "It's a storage unit for Nanotrasen-regulation prisoner attire."
- icon_state = "orange"
- icon_closed = "orange"
+ icon_door = "orange"
/obj/structure/closet/wardrobe/orange/New()
+ ..()
new /obj/item/clothing/under/rank/prisoner(src)
new /obj/item/clothing/under/rank/prisoner(src)
new /obj/item/clothing/under/rank/prisoner(src)
@@ -135,10 +135,10 @@
/obj/structure/closet/wardrobe/yellow
name = "yellow wardrobe"
- icon_state = "yellow"
- icon_closed = "yellow"
+ icon_door = "yellow"
/obj/structure/closet/wardrobe/yellow/New()
+ ..()
new /obj/item/clothing/under/color/yellow(src)
new /obj/item/clothing/under/color/yellow(src)
new /obj/item/clothing/under/color/yellow(src)
@@ -152,10 +152,10 @@
/obj/structure/closet/wardrobe/atmospherics_yellow
name = "atmospherics wardrobe"
- icon_state = "atmos"
- icon_closed = "atmos"
+ icon_door = "atmos"
/obj/structure/closet/wardrobe/atmospherics_yellow/New()
+ ..()
new /obj/item/clothing/under/rank/atmospheric_technician(src)
new /obj/item/clothing/under/rank/atmospheric_technician(src)
new /obj/item/clothing/under/rank/atmospheric_technician(src)
@@ -171,10 +171,10 @@
/obj/structure/closet/wardrobe/engineering_yellow
name = "engineering wardrobe"
- icon_state = "yellow"
- icon_closed = "yellow"
+ icon_door = "yellow"
/obj/structure/closet/wardrobe/engineering_yellow/New()
+ ..()
new /obj/item/clothing/under/rank/engineer(src)
new /obj/item/clothing/under/rank/engineer(src)
new /obj/item/clothing/under/rank/engineer(src)
@@ -186,10 +186,10 @@
/obj/structure/closet/wardrobe/white
name = "white wardrobe"
- icon_state = "white"
- icon_closed = "white"
+ icon_door = "white"
/obj/structure/closet/wardrobe/white/New()
+ ..()
new /obj/item/clothing/under/color/white(src)
new /obj/item/clothing/under/color/white(src)
new /obj/item/clothing/under/color/white(src)
@@ -205,6 +205,7 @@
name = "medical doctor's wardrobe"
/obj/structure/closet/wardrobe/white/medical/New()
+ ..()
new /obj/item/clothing/under/rank/nursesuit (src)
new /obj/item/clothing/head/nursehat (src)
new /obj/item/clothing/under/rank/medical/blue(src)
@@ -223,10 +224,10 @@
/obj/structure/closet/wardrobe/pjs
name = "pajama wardrobe"
- icon_state = "white"
- icon_closed = "white"
+ icon_door = "white"
/obj/structure/closet/wardrobe/pjs/New()
+ ..()
new /obj/item/clothing/under/pj/red(src)
new /obj/item/clothing/under/pj/red(src)
new /obj/item/clothing/under/pj/blue(src)
@@ -240,10 +241,10 @@
/obj/structure/closet/wardrobe/toxins_white
name = "toxins wardrobe"
- icon_state = "white"
- icon_closed = "white"
+ icon_door = "white"
/obj/structure/closet/wardrobe/toxins_white/New()
+ ..()
new /obj/item/clothing/under/rank/scientist(src)
new /obj/item/clothing/under/rank/scientist(src)
new /obj/item/clothing/under/rank/scientist(src)
@@ -258,10 +259,10 @@
/obj/structure/closet/wardrobe/robotics_black
name = "robotics wardrobe"
- icon_state = "black"
- icon_closed = "black"
+ icon_door = "black"
/obj/structure/closet/wardrobe/robotics_black/New()
+ ..()
new /obj/item/clothing/under/rank/roboticist(src)
new /obj/item/clothing/under/rank/roboticist(src)
new /obj/item/clothing/suit/toggle/labcoat(src)
@@ -281,10 +282,10 @@
/obj/structure/closet/wardrobe/chemistry_white
name = "chemistry wardrobe"
- icon_state = "white"
- icon_closed = "white"
+ icon_door = "white"
/obj/structure/closet/wardrobe/chemistry_white/New()
+ ..()
new /obj/item/clothing/under/rank/chemist(src)
new /obj/item/clothing/under/rank/chemist(src)
new /obj/item/clothing/shoes/sneakers/white(src)
@@ -300,10 +301,10 @@
/obj/structure/closet/wardrobe/genetics_white
name = "genetics wardrobe"
- icon_state = "white"
- icon_closed = "white"
+ icon_door = "white"
/obj/structure/closet/wardrobe/genetics_white/New()
+ ..()
new /obj/item/clothing/under/rank/geneticist(src)
new /obj/item/clothing/under/rank/geneticist(src)
new /obj/item/clothing/shoes/sneakers/white(src)
@@ -319,10 +320,10 @@
/obj/structure/closet/wardrobe/virology_white
name = "virology wardrobe"
- icon_state = "white"
- icon_closed = "white"
+ icon_door = "white"
/obj/structure/closet/wardrobe/virology_white/New()
+ ..()
new /obj/item/clothing/under/rank/virologist(src)
new /obj/item/clothing/under/rank/virologist(src)
new /obj/item/clothing/shoes/sneakers/white(src)
@@ -340,10 +341,10 @@
/obj/structure/closet/wardrobe/grey
name = "grey wardrobe"
- icon_state = "grey"
- icon_closed = "grey"
+ icon_door = "grey"
/obj/structure/closet/wardrobe/grey/New()
+ ..()
new /obj/item/clothing/under/color/grey(src)
new /obj/item/clothing/under/color/grey(src)
new /obj/item/clothing/under/color/grey(src)
@@ -370,10 +371,10 @@
/obj/structure/closet/wardrobe/mixed
name = "mixed wardrobe"
- icon_state = "mixed"
- icon_closed = "mixed"
+ icon_door = "mixed"
/obj/structure/closet/wardrobe/mixed/New()
+ ..()
if(prob(40))
new /obj/item/clothing/suit/jacket(src)
if(prob(40))
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index f64395b7f24..5ae0237e1e9 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -3,82 +3,48 @@
/obj/structure/closet/crate
name = "crate"
desc = "A rectangular steel crate."
- icon = 'icons/obj/storage.dmi'
- icon_state = "crate"
- density = 1
- icon_opened = "crateopen"
- icon_closed = "crate"
+ icon = 'icons/obj/crates.dmi'
+ var/icon_crate = "crate"
req_access = null
- opened = 0
// mouse_drag_pointer = MOUSE_ACTIVE_POINTER //???
var/rigged = 0
var/sound_effect_open = 'sound/machines/click.ogg'
var/sound_effect_close = 'sound/machines/click.ogg'
+/obj/structure/closet/crate/New()
+ ..()
+ update_icon()
+
+/obj/structure/closet/crate/update_icon()
+ if(opened)
+ icon_state = "[icon_crate]open"
+ else
+ icon_state = icon_crate
+
/obj/structure/closet/crate/internals
desc = "A internals crate."
name = "internals crate"
- icon = 'icons/obj/storage.dmi'
- icon_state = "o2crate"
- density = 1
- icon_opened = "o2crateopen"
- icon_closed = "o2crate"
+ icon_crate = "o2crate"
/obj/structure/closet/crate/trashcart
desc = "A heavy, metal trashcart with wheels."
name = "trash cart"
- icon = 'icons/obj/storage.dmi'
- icon_state = "trashcart"
- density = 1
- icon_opened = "trashcartopen"
- icon_closed = "trashcart"
-
-/*these aren't needed anymore
-/obj/structure/closet/crate/hat
- desc = "A crate filled with Valuable Collector's Hats!."
- name = "Hat Crate"
- icon = 'icons/obj/storage.dmi'
- icon_state = "crate"
- density = 1
- icon_opened = "crateopen"
- icon_closed = "crate"
-
-/obj/structure/closet/crate/contraband
- name = "Poster crate"
- desc = "A random assortment of posters manufactured by providers NOT listed under Nanotrasen's whitelist."
- icon = 'icons/obj/storage.dmi'
- icon_state = "crate"
- density = 1
- icon_opened = "crateopen"
- icon_closed = "crate"
-*/
+ icon_crate = "trashcart"
/obj/structure/closet/crate/medical
desc = "A medical crate."
name = "medical crate"
- icon = 'icons/obj/storage.dmi'
- icon_state = "medicalcrate"
- density = 1
- icon_opened = "medicalcrateopen"
- icon_closed = "medicalcrate"
+ icon_crate = "medicalcrate"
/obj/structure/closet/crate/rcd
desc = "A crate for the storage of the RCD."
name = "\improper RCD crate"
- icon = 'icons/obj/storage.dmi'
- icon_state = "crate"
- density = 1
- icon_opened = "crateopen"
- icon_closed = "crate"
+ icon_crate = "crate"
/obj/structure/closet/crate/freezer
desc = "A freezer."
name = "freezer"
- icon = 'icons/obj/storage.dmi'
- icon_state = "freezer"
- density = 1
- icon_opened = "freezeropen"
- icon_closed = "freezer"
+ icon_crate = "freezer"
var/target_temp = T0C - 40
var/cooling_power = 40
@@ -104,119 +70,7 @@
/obj/structure/closet/crate/radiation
desc = "A crate with a radiation sign on it."
name = "radioactive gear crate"
- icon = 'icons/obj/storage.dmi'
- icon_state = "radiation"
- density = 1
- icon_opened = "radiationopen"
- icon_closed = "radiation"
-
-/obj/structure/closet/crate/secure/weapon
- desc = "A secure weapons crate."
- name = "weapons crate"
- icon = 'icons/obj/storage.dmi'
- icon_state = "weaponcrate"
- density = 1
- icon_opened = "weaponcrateopen"
- icon_closed = "weaponcrate"
-
-/obj/structure/closet/crate/secure/plasma
- desc = "A secure plasma crate."
- name = "plasma crate"
- icon = 'icons/obj/storage.dmi'
- icon_state = "plasmacrate"
- density = 1
- icon_opened = "plasmacrateopen"
- icon_closed = "plasmacrate"
-
-/obj/structure/closet/crate/secure/gear
- desc = "A secure gear crate."
- name = "gear crate"
- icon = 'icons/obj/storage.dmi'
- icon_state = "secgearcrate"
- density = 1
- icon_opened = "secgearcrateopen"
- icon_closed = "secgearcrate"
-
-/obj/structure/closet/crate/secure/hydrosec
- desc = "A crate with a lock on it, painted in the scheme of the station's botanists."
- name = "secure hydroponics crate"
- icon = 'icons/obj/storage.dmi'
- icon_state = "hydrosecurecrate"
- density = 1
- icon_opened = "hydrosecurecrateopen"
- icon_closed = "hydrosecurecrate"
-
-/obj/structure/closet/crate/secure/bin
- desc = "A secure bin."
- name = "secure bin"
- icon_state = "largebins"
- icon_opened = "largebinsopen"
- icon_closed = "largebins"
- redlight = "largebinr"
- greenlight = "largebing"
- sparks = "largebinsparks"
- emag = "largebinemag"
-
-/obj/structure/closet/crate/secure
- desc = "A secure crate."
- name = "secure crate"
- icon_state = "securecrate"
- icon_opened = "securecrateopen"
- icon_closed = "securecrate"
- var/redlight = "securecrater"
- var/greenlight = "securecrateg"
- var/sparks = "securecratesparks"
- var/emag = "securecrateemag"
- broken = 0
- locked = 1
- health = 1000
-
-/obj/structure/closet/crate/hydroponics
- name = "hydroponics crate"
- desc = "All you need to destroy those pesky weeds and pests."
- icon = 'icons/obj/storage.dmi'
- icon_state = "hydrocrate"
- icon_opened = "hydrocrateopen"
- icon_closed = "hydrocrate"
- density = 1
-
-/obj/structure/closet/crate/hydroponics/prespawned
- //This exists so the prespawned hydro crates spawn with their contents.
-/* name = "Hydroponics crate"
- desc = "All you need to destroy those pesky weeds and pests."
- icon = 'icons/obj/storage.dmi'
- icon_state = "hydrocrate"
- icon_opened = "hydrocrateopen"
- icon_closed = "hydrocrate"
- density = 1*/
-
-/obj/structure/closet/crate/hydroponics/prespawned/New()
- ..()
- new /obj/item/weapon/reagent_containers/spray/plantbgone(src)
- new /obj/item/weapon/reagent_containers/spray/plantbgone(src)
- new /obj/item/weapon/minihoe(src)
-// new /obj/item/weapon/reagent_containers/spray/weedspray(src)
-// new /obj/item/weapon/reagent_containers/spray/weedspray(src)
-// new /obj/item/weapon/reagent_containers/spray/pestspray(src)
-// new /obj/item/weapon/reagent_containers/spray/pestspray(src)
-// new /obj/item/weapon/reagent_containers/spray/pestspray(src)
-
-
-/obj/structure/closet/crate/secure/New()
- ..()
- if(locked)
- overlays.Cut()
- overlays += redlight
- else
- overlays.Cut()
- overlays += greenlight
-
-/obj/structure/closet/crate/rcd/New()
- ..()
- new /obj/item/weapon/rcd_ammo(src)
- new /obj/item/weapon/rcd_ammo(src)
- new /obj/item/weapon/rcd_ammo(src)
- new /obj/item/weapon/rcd(src)
+ icon_crate = "radiation"
/obj/structure/closet/crate/radiation/New()
..()
@@ -229,22 +83,78 @@
new /obj/item/clothing/suit/radiation(src)
new /obj/item/clothing/head/radiation(src)
+/obj/structure/closet/crate/hydroponics
+ name = "hydroponics crate"
+ desc = "All you need to destroy those pesky weeds and pests."
+ icon = 'icons/obj/storage.dmi'
+ icon_crate = "hydrocrate"
+
+/obj/structure/closet/crate/hydroponics/prespawned
+
+/obj/structure/closet/crate/hydroponics/prespawned/New()
+ ..()
+ new /obj/item/weapon/reagent_containers/spray/plantbgone(src)
+ new /obj/item/weapon/reagent_containers/spray/plantbgone(src)
+ new /obj/item/weapon/minihoe(src)
+
+/obj/structure/closet/crate/secure
+ desc = "A secure crate."
+ name = "secure crate"
+ icon_crate = "securecrate"
+ var/redlight = "securecrater"
+ var/greenlight = "securecrateg"
+ var/sparks = "securecratesparks"
+ var/emag = "securecrateemag"
+ locked = 1
+ health = 1000
+
+/obj/structure/closet/crate/secure/weapon
+ desc = "A secure weapons crate."
+ name = "weapons crate"
+ icon_crate = "weaponcrate"
+
+/obj/structure/closet/crate/secure/plasma
+ desc = "A secure plasma crate."
+ name = "plasma crate"
+ icon_crate = "plasmacrate"
+
+/obj/structure/closet/crate/secure/gear
+ desc = "A secure gear crate."
+ name = "gear crate"
+ icon_crate = "secgearcrate"
+
+/obj/structure/closet/crate/secure/hydrosec
+ desc = "A crate with a lock on it, painted in the scheme of the station's botanists."
+ name = "secure hydroponics crate"
+ icon_crate = "hydrosecurecrate"
+
+/obj/structure/closet/crate/secure/New()
+ ..()
+ overlays.Cut()
+ if(locked)
+ overlays += redlight
+ else
+ overlays += greenlight
+
+/obj/structure/closet/crate/rcd/New()
+ ..()
+ new /obj/item/weapon/rcd_ammo(src)
+ new /obj/item/weapon/rcd_ammo(src)
+ new /obj/item/weapon/rcd_ammo(src)
+ new /obj/item/weapon/rcd(src)
+
/obj/structure/closet/crate/open()
playsound(src.loc, sound_effect_open, 15, 1, -3)
-
dump_contents()
-
- icon_state = icon_opened
src.opened = 1
+ update_icon()
return 1
/obj/structure/closet/crate/close()
playsound(src.loc, sound_effect_close, 15, 1, -3)
-
take_contents()
-
- icon_state = icon_closed
src.opened = 0
+ update_icon()
return 1
/obj/structure/closet/crate/insert(var/atom/movable/AM, var/include_mobs = 0)
diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm
index 038dee96250..28b15223ebd 100644
--- a/code/game/objects/structures/crates_lockers/largecrate.dm
+++ b/code/game/objects/structures/crates_lockers/largecrate.dm
@@ -1,7 +1,7 @@
/obj/structure/largecrate
name = "large crate"
desc = "A hefty wooden crate."
- icon = 'icons/obj/storage.dmi'
+ icon = 'icons/obj/crates.dmi'
icon_state = "densecrate"
density = 1
diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm
index db03ae8550c..06c763ffca7 100644
--- a/code/game/objects/structures/extinguisher.dm
+++ b/code/game/objects/structures/extinguisher.dm
@@ -1,7 +1,7 @@
/obj/structure/extinguisher_cabinet
name = "extinguisher cabinet"
desc = "A small wall mounted cabinet designed to hold a fire extinguisher."
- icon = 'icons/obj/closet.dmi'
+ icon = 'icons/obj/wallmounts.dmi'
icon_state = "extinguisher_closed"
anchored = 1
density = 0
diff --git a/code/game/objects/structures/guncase.dm b/code/game/objects/structures/guncase.dm
index 6bf884653a7..5793006ba6f 100644
--- a/code/game/objects/structures/guncase.dm
+++ b/code/game/objects/structures/guncase.dm
@@ -3,15 +3,19 @@
name = "gun locker"
desc = "A locker that holds guns."
icon = 'icons/obj/closet.dmi'
- icon_state = "gcase-0-open"
+ icon_state = "shotguncase"
anchored = 0
density = 1
opacity = 0
- var/case_type = "gcase"
+ var/case_type = null
var/gun_category = /obj/item/weapon/gun
var/open = 1
var/capacity = 4
+/obj/structure/guncase/New()
+ ..()
+ update_icon()
+
/obj/structure/guncase/initialize()
..()
for(var/obj/item/I in loc.contents)
@@ -22,7 +26,13 @@
update_icon()
/obj/structure/guncase/update_icon()
- icon_state = "[case_type]-[contents.len]-[open ? "open" : "closed"]"
+ overlays.Cut()
+ for(var/i = contents.len, i >= 1, i--)
+ overlays += image(icon = src.icon, icon_state = "[case_type]", pixel_x = 4 * (i -1) )
+ if(open)
+ overlays += "[icon_state]_open"
+ else
+ overlays += "[icon_state]_door"
/obj/structure/guncase/attackby(obj/item/I, mob/user, params)
if(isrobot(user) || isalien(user))
@@ -75,12 +85,12 @@
/obj/structure/guncase/shotgun
name = "shotgun locker"
desc = "A locker that holds shotguns."
- case_type = "gcase"
+ case_type = "shotgun"
gun_category = /obj/item/weapon/gun/projectile/shotgun
/obj/structure/guncase/ecase
name = "energy gun locker"
desc = "A locker that holds energy guns."
- icon_state = "ecase-0-open"
- case_type = "ecase"
+ icon_state = "ecase"
+ case_type = "egun"
gun_category = /obj/item/weapon/gun/energy/gun
diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm
index 34251cd9c17..9df1aa4ef93 100644
--- a/code/game/objects/structures/kitchen_spike.dm
+++ b/code/game/objects/structures/kitchen_spike.dm
@@ -91,11 +91,11 @@
user << "You remove the hide from the monkey!"
else if(src.meat > 1)
src.meat--
- new /obj/item/weapon/reagent_containers/food/snacks/meat/monkey(src.loc )
+ new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey(src.loc )
usr << "You remove some meat from the monkey."
else if(src.meat == 1)
src.meat--
- new /obj/item/weapon/reagent_containers/food/snacks/meat/monkey(src.loc)
+ new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey(src.loc)
usr << "You remove the last piece of meat from the monkey!"
src.icon_state = "spike"
src.occupied = 0
@@ -106,11 +106,11 @@
user << "You remove the hide from the alien!"
else if(src.meat > 1)
src.meat--
- new /obj/item/weapon/reagent_containers/food/snacks/meat/xeno(src.loc )
+ new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno(src.loc )
usr << "You remove some meat from the alien."
else if(src.meat == 1)
src.meat--
- new /obj/item/weapon/reagent_containers/food/snacks/meat/xeno(src.loc)
+ new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno(src.loc)
usr << "You remove the last piece of meat from the alien!"
src.icon_state = "spike"
src.occupied = 0
@@ -121,11 +121,11 @@
user << "You remove the hide from the bear!"
else if(src.meat > 1)
src.meat--
- new /obj/item/weapon/reagent_containers/food/snacks/meat/bear(src.loc )
+ new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear(src.loc )
usr << "You remove some meat from the bear."
else if(src.meat == 1)
src.meat--
- new /obj/item/weapon/reagent_containers/food/snacks/meat/bear(src.loc)
+ new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear(src.loc)
usr << "You remove the last piece of meat from the bear!"
src.icon_state = "spike"
src.occupied = 0
diff --git a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm
index 5a7cb5c8f2d..15c26a7a058 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm
@@ -60,8 +60,7 @@
M.pixel_x = initial(M.pixel_x)
M.pixel_y = initial(M.pixel_y)
if(M.lying)
- var/lying_pixel_y_offset = -6
- M.pixel_y += lying_pixel_y_offset
+ M.pixel_y = M.lying_pixel_offset
overlays.Cut()
/obj/structure/stool/bed/nest/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
index e99a06209bf..3a4588dcb3b 100644
--- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm
+++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm
@@ -60,8 +60,7 @@
icon_state = "down"
anchored = 0
-
-/obj/structure/stool/bed/roller/post_buckle_mob(mob/M)
+/obj/structure/stool/bed/roller/post_buckle_mob(mob/living/M)
if(M == buckled_mob)
density = 1
icon_state = "up"
@@ -71,8 +70,7 @@
icon_state = "down"
M.pixel_y = initial(M.pixel_y)
if(M.lying)
- var/lying_pixel_y_offset = -6
- M.pixel_y += lying_pixel_y_offset
+ M.pixel_y = M.lying_pixel_offset
/obj/item/roller
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index 74be224cc36..66019ef52b5 100644
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -349,4 +349,4 @@
return !density
/turf/proc/can_lay_cable()
- return can_have_cabling() & !intact
+ return can_have_cabling() & !intact
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 6c0a2019fe7..05990a54129 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -27,7 +27,7 @@ var/global/floorIsLava = 0
body += "Options panel for [M]"
if(M.client)
body += " played by [M.client] "
- body += "\[[M.client.holder ? M.client.holder.rank : "Player"]\]"
+ body += "\[[M.client.holder ? M.client.holder.rank : "Player"]\]"
if(istype(M, /mob/new_player))
body += " Hasn't Entered Game "
diff --git a/code/modules/admin/admin_ranks.dm b/code/modules/admin/admin_ranks.dm
index 711907c6025..0fa01cb6319 100644
--- a/code/modules/admin/admin_ranks.dm
+++ b/code/modules/admin/admin_ranks.dm
@@ -248,6 +248,7 @@ var/list/admin_ranks = list() //list of all admin_rank datums
admin_datums -= adm_ckey
D.disassociate()
+ updateranktodb(adm_ckey, "player")
message_admins("[key_name_admin(usr)] removed [adm_ckey] from the admins list")
log_admin("[key_name(usr)] removed [adm_ckey] from the admins list")
log_admin_rank_modification(adm_ckey, "Removed")
@@ -288,6 +289,7 @@ var/list/admin_ranks = list() //list of all admin_rank datums
var/client/C = directory[adm_ckey] //find the client with the specified ckey (if they are logged in)
D.associate(C) //link up with the client and add verbs
+ updateranktodb(adm_ckey, new_rank)
message_admins("[key_name_admin(usr)] edited the admin rank of [adm_ckey] to [new_rank]")
log_admin("[key_name(usr)] edited the admin rank of [adm_ckey] to [new_rank]")
log_admin_rank_modification(adm_ckey, new_rank)
@@ -319,3 +321,13 @@ var/list/admin_ranks = list() //list of all admin_rank datums
log_admin_permission_modification(adm_ckey, D.rank.rights)
edit_admin_permissions()
+
+/datum/admins/proc/updateranktodb(ckey,newrank)
+ establish_db_connection()
+ if (!dbcon.IsConnected())
+ return
+ var/sql_ckey = sanitizeSQL(ckey)
+ var/sql_admin_rank = sanitizeSQL(newrank)
+
+ var/DBQuery/query_update = dbcon.NewQuery("UPDATE [format_table_name("player")] SET lastadminrank = '[sql_admin_rank]' WHERE ckey = '[sql_ckey]'")
+ query_update.Execute()
\ No newline at end of file
diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm
index 4b50cfa3af0..8810c6f98e0 100644
--- a/code/modules/admin/player_panel.dm
+++ b/code/modules/admin/player_panel.dm
@@ -305,6 +305,8 @@
usr << browse(dat, "window=players;size=600x480")
/datum/admins/proc/check_antagonists()
+ var/list/supported_continuous_modes = list("revolution", "gang", "wizard", "malfunction", "blob")
+ var/list/supported_midround_antag_modes = list("wizard", "malfunction", "blob")
if (ticker && ticker.current_state >= GAME_STATE_PLAYING)
var/dat = "Round StatusRound Status
"
dat += "Current Game Mode: [ticker.mode.name]
"
@@ -321,6 +323,16 @@
dat += "Send Back
"
else
dat += "ETA: [(timeleft / 60) % 60]:[add_zero(num2text(timeleft % 60), 2)]
"
+ dat += "Continuous Round Status
"
+ if(!ticker.mode.config_tag in supported_continuous_modes)
+ dat += "Continue if antagonists die"
+ else
+ dat += "[config.continuous[ticker.mode.config_tag] ? "Continue if antagonists die" : "End on antagonist death"]"
+ if(config.continuous[ticker.mode.config_tag] && ticker.mode.config_tag in supported_midround_antag_modes)
+ dat += ", [config.midround_antag[ticker.mode.config_tag] ? "creating replacement antagonists" : "not creating new antagonists"]
"
+ else
+ dat += "
"
+ dat += "
"
dat += "End Round Now
"
dat += "[ticker.delay_end ? "End Round Normally" : "Delay Round End"]
"
if(ticker.mode.syndicates.len)
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 1821f3d7f71..44d926d1764 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -221,6 +221,28 @@
message_admins("[key_name_admin(usr)] edited the Emergency Shuttle's timeleft to [timer] seconds")
href_list["secretsadmin"] = "check_antagonist"
+ else if(href_list["toggle_continuous"])
+ if(!check_rights(R_ADMIN)) return
+
+ if(!config.continuous[ticker.mode.config_tag])
+ config.continuous[ticker.mode.config_tag] = 1
+ else
+ config.continuous[ticker.mode.config_tag] = 0
+
+ message_admins("[key_name_admin(usr)] toggled the round to [config.continuous[ticker.mode.config_tag] ? "continue if all antagonists die" : "end with the antagonists"].")
+ check_antagonists()
+
+ else if(href_list["toggle_midround_antag"])
+ if(!check_rights(R_ADMIN)) return
+
+ if(!config.midround_antag[ticker.mode.config_tag])
+ config.midround_antag[ticker.mode.config_tag] = 1
+ else
+ config.midround_antag[ticker.mode.config_tag] = 0
+
+ message_admins("[key_name_admin(usr)] toggled the round to [config.midround_antag[ticker.mode.config_tag] ? "use" : "skip"] the midround antag system.")
+ check_antagonists()
+
else if(href_list["delay_round_end"])
if(!check_rights(R_SERVER)) return
diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm
index b8041bc269e..be22d3a4e25 100644
--- a/code/modules/admin/verbs/one_click_antag.dm
+++ b/code/modules/admin/verbs/one_click_antag.dm
@@ -355,6 +355,7 @@ client/proc/one_click_antag()
var/list/spawnpoints = deathsquadspawn
while(numagents && candidates.len)
if (numagents > spawnpoints.len)
+ numagents--
continue // This guy's unlucky, not enough spawn points, we skip him.
var/spawnloc = spawnpoints[numagents]
var/mob/dead/observer/chosen_candidate = pick(candidates)
@@ -469,7 +470,8 @@ client/proc/one_click_antag()
var/numagents = min(7,candidates.len) //How many officers to spawn
var/list/spawnpoints = emergencyresponseteamspawn
while(numagents && candidates.len)
- if (candidates.len > spawnpoints.len)
+ if (numagents > spawnpoints.len)
+ numagents--
continue // This guy's unlucky, not enough spawn points, we skip him.
var/spawnloc = spawnpoints[numagents]
var/mob/dead/observer/chosen_candidate = pick(candidates)
diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm
index 8c94dafb76f..38bdb41d43b 100644
--- a/code/modules/assembly/mousetrap.dm
+++ b/code/modules/assembly/mousetrap.dm
@@ -104,8 +104,10 @@
triggered(H)
H.visible_message("[H] accidentally steps on [src].", \
"You accidentally step on [src]")
- else if(ismouse(AM))
- triggered(AM)
+ else if(isanimal(AM))
+ var/mob/living/simple_animal/SA = AM
+ if(!SA.flying)
+ triggered(AM)
else if(AM.density) // For mousetrap grenades, set off by anything heavy
triggered(AM)
..()
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 8c058c98459..405bdda0c41 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -722,13 +722,10 @@ datum/preferences
if(result)
var/newtype = roundstart_species[result]
pref_species = new newtype()
- if(!config.mutant_colors || mutant_color == "#000")
+ if(mutant_color == "#000")
mutant_color = pref_species.default_color
if("mutant_color")
- if(!config.mutant_colors)
- user << "Alien colors are disabled."
- return
var/new_mutantcolor = input(user, "Choose your character's alien skin color:", "Character Preference") as color|null
if(new_mutantcolor)
var/temp_hsv = RGBtoHSV(new_mutantcolor)
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 65205405358..4878387b59e 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -106,7 +106,7 @@ BLIND // can't see anything
//Proc that moves gas/breath masks out of the way, disabling them and allowing pill/food consumption
/obj/item/clothing/mask/proc/adjustmask(var/mob/user)
if(!ignore_maskadjust)
- if(!user.canmove || user.stat || user.restrained())
+ if(user.incapacitated())
return
if(src.mask_adjusted == 1)
src.icon_state = initial(icon_state)
@@ -131,6 +131,7 @@ BLIND // can't see anything
+
//Shoes
/obj/item/clothing/shoes
name = "shoes"
diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm
index 09f52337f14..9dfdee6ef9e 100644
--- a/code/modules/clothing/spacesuits/miscellaneous.dm
+++ b/code/modules/clothing/spacesuits/miscellaneous.dm
@@ -110,6 +110,7 @@
icon_state = "pirate"
item_state = "pirate"
w_class = 3
+ flags_inv = 0
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
slowdown = 0
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm
index 92fe8b9272c..6c4d586d740 100644
--- a/code/modules/clothing/under/ties.dm
+++ b/code/modules/clothing/under/ties.dm
@@ -280,6 +280,7 @@
/obj/item/clothing/tie/petcollar //don't really wear this though please c'mon seriously guys
name = "pet collar"
+ desc = "It's for pets. Though you probably could wear it yourself, you'd doubtless be the subject of ridicule."
icon_state = "petcollar"
item_color = "petcollar"
var/tagname = null
diff --git a/code/modules/crafting/table.dm b/code/modules/crafting/table.dm
index 684f3ec5eb2..89305cf1eb4 100644
--- a/code/modules/crafting/table.dm
+++ b/code/modules/crafting/table.dm
@@ -176,7 +176,7 @@
return Deletion
/obj/structure/table/interact(mob/user)
- if(user.stat || user.lying || !Adjacent(user))
+ if(user.incapacitated() || user.lying || !Adjacent(user))
return
check_table()
if(!table_contents.len)
diff --git a/code/modules/events/event.dm b/code/modules/events/event.dm
index e55c3203f4c..e9661d5dc7c 100644
--- a/code/modules/events/event.dm
+++ b/code/modules/events/event.dm
@@ -86,7 +86,7 @@
//Do not override this proc, instead use the appropiate procs.
//This proc will handle the calls to the appropiate procs.
-/datum/round_event/proc/process()
+/datum/round_event/process()
if(!processing)
return
diff --git a/code/modules/events/prison_break.dm b/code/modules/events/prison_break.dm
index 878a22a0050..df937798ef8 100644
--- a/code/modules/events/prison_break.dm
+++ b/code/modules/events/prison_break.dm
@@ -40,7 +40,7 @@
else if(istype(O,/obj/structure/closet/secure_closet/brig))
var/obj/structure/closet/secure_closet/brig/temp = O
temp.locked = 0
- temp.icon_state = temp.icon_closed
+ temp.update_icon()
else if(istype(O,/obj/machinery/door/airlock/security))
var/obj/machinery/door/airlock/security/temp = O
temp.prison_open()
diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm
index 525d66debca..75f860eb5f0 100644
--- a/code/modules/events/spacevine.dm
+++ b/code/modules/events/spacevine.dm
@@ -303,14 +303,12 @@
anchored = 1
density = 0
layer = 5
+ mouse_opacity = 2 //Clicking anywhere on the turf is good enough
pass_flags = PASSTABLE | PASSGRILLE
var/energy = 0
var/obj/effect/spacevine_controller/master = null
var/list/mutations = list()
-/obj/effect/spacevine/New()
- return
-
/obj/effect/spacevine/Destroy()
for(var/datum/spacevine_mutation/SM in mutations)
SM.on_death(src)
diff --git a/code/modules/food&drinks/drinks/drinks.dm b/code/modules/food&drinks/drinks/drinks.dm
index 51ece9f90d7..6888a4a9a04 100644
--- a/code/modules/food&drinks/drinks/drinks.dm
+++ b/code/modules/food&drinks/drinks/drinks.dm
@@ -219,6 +219,9 @@
//////////////////////////soda_cans//
//These are in their own group to be used as IED's in /obj/item/weapon/grenade/ghettobomb.dm
+/obj/item/weapon/reagent_containers/food/drinks/soda_cans
+ name = "soda can"
+
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/attack(mob/M, mob/user)
if(M == user && !src.reagents.total_volume && user.a_intent == "harm" && user.zone_sel.selecting == "head")
user.visible_message("[user] crushes the can of [src] on \his forehead!", "You crush the can of [src] on your forehead!")
diff --git a/code/modules/food&drinks/drinks/drinks/drinkingglass.dm b/code/modules/food&drinks/drinks/drinks/drinkingglass.dm
index 816c4d7f651..116f3b42480 100644
--- a/code/modules/food&drinks/drinks/drinks/drinkingglass.dm
+++ b/code/modules/food&drinks/drinks/drinks/drinkingglass.dm
@@ -8,6 +8,7 @@
volume = 50
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/on_reagent_change()
+ overlays.Cut()
if (reagents.reagent_list.len > 0)
switch(reagents.get_master_reagent_id())
if("beer")
@@ -442,8 +443,39 @@
icon_state = "toxinsspecialglass"
name = "Toxins Special"
desc = "Whoah, this thing is on FIRE"
+ if("chocolatepudding")
+ icon_state = "chocolatepudding"
+ name = "Chocolate Pudding"
+ desc = ""
+ if("vanillapudding")
+ icon_state = "vanillapudding"
+ name = "Vanilla Pudding"
+ desc = "Whoah, this thing is on FIRE"
+ if("cherryshake")
+ icon_state = "cherryshake"
+ name = "Cherry Shake"
+ desc = "A cherry flavored milkshake."
+ if("bluecherryshake")
+ icon_state = "bluecherryshake"
+ name = "Blue Cherry Shake"
+ desc = "An exotic blue milkshake."
+ if("drunkenblumpkin")
+ icon_state = "drunkenblumpkin"
+ name = "Drunken Blumpkin"
+ desc = "A drink for the drunks."
+ if("pumpkin_latte")
+ icon_state = "pumpkin_latte"
+ name = "Pumpkin Latte"
+ desc = "A mix of coffee and pumpkin juice."
+ if("gibbfloats")
+ icon_state = "gibbfloats"
+ name = "Gibbfloat"
+ desc = "Dr. Gibb with ice cream on top."
else
icon_state ="glass_brown"
+ var/image/I = image(icon, "glassoverlay")
+ I.color = mix_color_from_reagents(reagents.reagent_list)
+ overlays += I
name = "Glass of ..what?"
desc = "You can't really tell what this is."
else
@@ -546,3 +578,16 @@
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/filled/cola
list_reagents = list("cola" = 50)
+/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/attackby(var/obj/item/I, mob/user as mob, params)
+ if(istype(I,/obj/item/weapon/reagent_containers/food/snacks/egg)) //breaking eggs
+ var/obj/item/weapon/reagent_containers/food/snacks/egg/E = I
+ if(reagents)
+ if(reagents.total_volume >= reagents.maximum_volume)
+ user << "[src] is full."
+ else
+ user << "You break [E] in [src]."
+ reagents.add_reagent("eggyolk", 5)
+ qdel(E)
+ return
+ else
+ ..()
diff --git a/code/modules/food&drinks/food/condiment.dm b/code/modules/food&drinks/food/condiment.dm
index 02419159876..5f489ddaa49 100644
--- a/code/modules/food&drinks/food/condiment.dm
+++ b/code/modules/food&drinks/food/condiment.dm
@@ -8,7 +8,7 @@
/obj/item/weapon/reagent_containers/food/condiment
name = "condiment container"
desc = "Just your average condiment container."
- icon = 'icons/obj/food.dmi'
+ icon = 'icons/obj/food/containers.dmi'
icon_state = "emptycondiment"
flags = OPENCONTAINER
possible_transfer_amounts = list(1,5,10)
@@ -157,7 +157,6 @@
/obj/item/weapon/reagent_containers/food/condiment/flour
name = "flour sack"
desc = "A big bag of flour. Good for baking!"
- icon = 'icons/obj/food.dmi'
icon_state = "flour"
item_state = "flour"
list_reagents = list("flour" = 30)
@@ -171,6 +170,13 @@
list_reagents = list("soymilk" = 50)
possible_states = list()
+/obj/item/weapon/reagent_containers/food/condiment/rice
+ name = "rice sack"
+ desc = "A big bag of rice. Good for cooking!"
+ icon_state = "rice"
+ item_state = "flour"
+ list_reagents = list("rice" = 30)
+ possible_states = list()
diff --git a/code/modules/food&drinks/food/customizables.dm b/code/modules/food&drinks/food/customizables.dm
index 627a3b58b80..7cc0ec3c7f0 100644
--- a/code/modules/food&drinks/food/customizables.dm
+++ b/code/modules/food&drinks/food/customizables.dm
@@ -15,7 +15,7 @@
/obj/item/weapon/reagent_containers/food/snacks/customizable
bitesize = 4
w_class = 3
- volume = 60
+ volume = 80
var/ingMax = 12
var/list/ingredients = list()
@@ -50,7 +50,7 @@
S.trash = null //we remove the plate before adding the ingredient
ingredients += S
S.loc = src
- filling_color = S.filling_color
+ mix_filling_color(S)
S.reagents.trans_to(src,min(S.reagents.total_volume, 15)) //limit of 15, we don't want our custom food to be completely filled by just one ingredient with large reagent volume.
update_overlays(S)
user << "You add the [I.name] to the [name]."
@@ -77,24 +77,43 @@
customname = "custom"
break
if(ingredients.len == 1) //first ingredient
- if(istype(S, /obj/item/weapon/reagent_containers/food/snacks/meat/human))
- var/obj/item/weapon/reagent_containers/food/snacks/meat/human/H = S
- if(H.subjectname)
- customname = "[H.subjectname]"
- else if(H.subjectjob)
- customname = "[H.subjectjob]"
+ if(istype(S, /obj/item/weapon/reagent_containers/food/snacks/meat))
+ var/obj/item/weapon/reagent_containers/food/snacks/meat/M = S
+ if(M.subjectname)
+ customname = "[M.subjectname]"
+ else if(M.subjectjob)
+ customname = "[M.subjectjob]"
+ else
+ customname = S.name
else
- customname = "[initial(S.name)]"
+ customname = S.name
name = "[customname] [initial(name)]"
/obj/item/weapon/reagent_containers/food/snacks/customizable/proc/initialize_custom_food(obj/item/BASE, obj/item/I, mob/user)
if(istype(BASE,/obj/item/weapon/reagent_containers))
var/obj/item/weapon/reagent_containers/RC = BASE
RC.reagents.trans_to(src,RC.reagents.total_volume)
+ for(var/obj/O in BASE.contents)
+ contents += O
if(I && user)
attackby(I, user)
+ user.unEquip(BASE)
qdel(BASE)
+/obj/item/weapon/reagent_containers/food/snacks/customizable/proc/mix_filling_color(obj/item/weapon/reagent_containers/food/snacks/S)
+
+ if(ingredients.len == 1)
+ filling_color = S.filling_color
+ else
+ var/list/rgbcolor = list(0,0,0,0)
+ var/customcolor = GetColors(filling_color)
+ var/ingcolor = GetColors(S.filling_color)
+ rgbcolor[1] = (customcolor[1]+ingcolor[1])/2
+ rgbcolor[2] = (customcolor[2]+ingcolor[2])/2
+ rgbcolor[3] = (customcolor[3]+ingcolor[3])/2
+ rgbcolor[4] = (customcolor[4]+ingcolor[4])/2
+ filling_color = rgb(rgbcolor[1], rgbcolor[2], rgbcolor[3], rgbcolor[4])
+
/obj/item/weapon/reagent_containers/food/snacks/customizable/update_overlays(obj/item/weapon/reagent_containers/food/snacks/S)
var/image/I = new(icon, "[initial(icon_state)]_filling")
@@ -122,6 +141,7 @@
return
if(INGREDIENTS_FILL)
overlays.Cut()
+ I.color = filling_color
if(INGREDIENTS_LINE)
I.pixel_y = rand(-8,3)
I.pixel_x = I.pixel_y
@@ -153,6 +173,7 @@
name = "burger"
desc = "A timeless classic."
Ingredientsplacement = INGREDIENTS_STACKPLUSTOP
+ icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "bun"
@@ -161,6 +182,7 @@
ingMax = 6
slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice/custom
slices_num = 5
+ icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "tofubread"
@@ -169,6 +191,7 @@
ingMax = 6
slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/custom
slices_num = 5
+ icon = 'icons/obj/food/piecake.dmi'
icon_state = "plaincake"
@@ -187,12 +210,14 @@
desc = "Noodles. With stuff. Delicious."
Ingredientsplacement = INGREDIENTS_SCATTER
ingMax = 6
+ icon = 'icons/obj/food/pizzaspaghetti.dmi'
icon_state = "spaghettiboiled"
/obj/item/weapon/reagent_containers/food/snacks/customizable/pie
name = "pie"
ingMax = 6
+ icon = 'icons/obj/food/piecake.dmi'
icon_state = "pie"
@@ -203,6 +228,7 @@
ingMax = 8
slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/custom
slices_num = 6
+ icon = 'icons/obj/food/pizzaspaghetti.dmi'
icon_state = "pizzamargherita"
@@ -211,6 +237,7 @@
desc = "Very tasty."
trash = /obj/item/weapon/reagent_containers/glass/bowl
ingMax = 6
+ icon = 'icons/obj/food/soupsalad.dmi'
icon_state = "bowl"
@@ -218,6 +245,7 @@
name = "toast"
desc = "A timeless classic."
Ingredientsplacement = INGREDIENTS_STACK
+ icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "breadslice"
var/finished = 0
@@ -254,9 +282,12 @@
desc = "A bowl with liquid and... stuff in it."
trash = /obj/item/weapon/reagent_containers/glass/bowl
ingMax = 8
+ icon = 'icons/obj/food/soupsalad.dmi'
icon_state = "wishsoup"
-
+/obj/item/weapon/reagent_containers/food/snacks/customizable/soup/New()
+ ..()
+ eatverb = pick("slurp","sip","suck","inhale","drink")
@@ -269,7 +300,7 @@
icon_state = "snack_bowl"
name = "bowl"
desc = "A simple bowl, used for soups and salads."
- icon = 'icons/obj/food.dmi'
+ icon = 'icons/obj/food/soupsalad.dmi'
icon_state = "bowl"
flags = OPENCONTAINER
w_class = 3
@@ -298,7 +329,9 @@
/obj/item/weapon/reagent_containers/glass/bowl/update_icon()
overlays.Cut()
if(reagents.total_volume)
- icon_state = "wishsoup"
+ var/image/filling = image('icons/obj/food/soupsalad.dmi', "fullbowl")
+ filling.color = mix_color_from_reagents(reagents.reagent_list)
+ overlays += filling
else
icon_state = "bowl"
diff --git a/code/modules/food&drinks/food/snacks.dm b/code/modules/food&drinks/food/snacks.dm
index 3199cde393a..ebd60167175 100644
--- a/code/modules/food&drinks/food/snacks.dm
+++ b/code/modules/food&drinks/food/snacks.dm
@@ -1,7 +1,7 @@
/obj/item/weapon/reagent_containers/food/snacks
name = "snack"
desc = "yummy"
- icon = 'icons/obj/food.dmi'
+ icon = 'icons/obj/food/food.dmi'
icon_state = null
var/bitesize = 2
var/bitecount = 0
@@ -18,7 +18,7 @@
var/custom_food_type = null //for food customizing. path of the custom food to create
var/junkiness = 0 //for junk food. used to lower human satiety.
var/list/bonus_reagents = list() //the amount of reagents (usually nutriment and vitamin) added to crafted/cooked snacks, on top of the ingredients reagents.
-
+ var/customfoodfilling = 1 // whether it can be used as filling in custom food
//Placeholder for effect that trigger on eating that aren't tied to reagents.
/obj/item/weapon/reagent_containers/food/snacks/proc/On_Consume()
@@ -142,7 +142,10 @@
var/obj/item/weapon/reagent_containers/food/snacks/S = W
if(custom_food_type && ispath(custom_food_type))
if(S.w_class > 2)
- user << "The ingredient is too big for [src]."
+ user << "[S] is too big for [src]."
+ return 0
+ if(!S.customfoodfilling)
+ user << "[src] can't be filled with [S]."
return 0
if(contents.len >= 20)
user << "You can't add more ingredients to [src]."
@@ -188,8 +191,6 @@
)
slices_lost = rand(1,min(1,round(slices_num/2)))
- if(!slice_path && !slices_num)
- return
var/reagents_per_slice = reagents.total_volume/slices_num
for(var/i=1 to (slices_num-slices_lost))
var/obj/item/weapon/reagent_containers/food/snacks/slice = new slice_path (loc)
@@ -275,17 +276,31 @@
/obj/item/weapon/reagent_containers/food/snacks/store
w_class = 3
+ var/stored_item = 0
/obj/item/weapon/reagent_containers/food/snacks/store/attackby(obj/item/weapon/W, mob/user, params)
- if(W.w_class > 2 || custom_food_type) //can't store objects inside food needed to start a customizable snack.
- ..()
- else
- if(contents.len)
+ ..()
+ if(W.w_class <= 2 & !istype(W, /obj/item/weapon/reagent_containers/food/snacks)) //can't slip snacks inside, they're used for custom foods.
+ if(is_sharp(W))
+ return 0
+ if(stored_item)
return 0
if(!iscarbon(user))
return 0
+ if(contents.len >= 20)
+ user << "[src] is full."
+ return 0
user << "You slip [W] inside [src]."
user.unEquip(W)
add_fingerprint(user)
contents += W
+ stored_item = 1
return 1 // no afterattack here
+
+/obj/item/weapon/reagent_containers/food/snacks/MouseDrop(atom/over)
+ var/turf/T = get_turf(src)
+ var/obj/structure/table/TB = locate(/obj/structure/table) in T
+ if(TB)
+ TB.MouseDrop(over)
+ else
+ ..()
diff --git a/code/modules/food&drinks/food/snacks/dough.dm b/code/modules/food&drinks/food/snacks/dough.dm
index d03339809cd..7773d08534c 100644
--- a/code/modules/food&drinks/food/snacks/dough.dm
+++ b/code/modules/food&drinks/food/snacks/dough.dm
@@ -5,7 +5,7 @@
/obj/item/weapon/reagent_containers/food/snacks/dough
name = "dough"
desc = "A piece of dough."
- icon = 'icons/obj/food_ingredients.dmi'
+ icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "dough"
cooked_type = /obj/item/weapon/reagent_containers/food/snacks/store/bread/plain
list_reagents = list("nutriment" = 6)
@@ -29,7 +29,7 @@
/obj/item/weapon/reagent_containers/food/snacks/flatdough
name = "flat dough"
desc = "A flattened dough."
- icon = 'icons/obj/food_ingredients.dmi'
+ icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "flat dough"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/doughslice
slices_num = 3
@@ -40,7 +40,7 @@
/obj/item/weapon/reagent_containers/food/snacks/pizzabread
name = "pizza bread"
desc = "Add ingredients to make a pizza"
- icon = 'icons/obj/food_ingredients.dmi'
+ icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "pizzabread"
custom_food_type = /obj/item/weapon/reagent_containers/food/snacks/customizable/pizza
list_reagents = list("nutriment" = 7)
@@ -50,7 +50,7 @@
/obj/item/weapon/reagent_containers/food/snacks/doughslice
name = "dough slice"
desc = "A slice of dough. Can be cooked into a bun."
- icon = 'icons/obj/food_ingredients.dmi'
+ icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "doughslice"
cooked_type = /obj/item/weapon/reagent_containers/food/snacks/bun
filling_color = "#CD853F"
@@ -59,7 +59,7 @@
/obj/item/weapon/reagent_containers/food/snacks/bun
name = "bun"
desc = "A base for any self-respecting burger."
- icon = 'icons/obj/food.dmi'
+ icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "bun"
list_reagents = list("nutriment" = 1)
custom_food_type = /obj/item/weapon/reagent_containers/food/snacks/customizable/burger
@@ -68,7 +68,7 @@
/obj/item/weapon/reagent_containers/food/snacks/cakebatter
name = "cake batter"
desc = "Cook it to get a cake."
- icon = 'icons/obj/food_ingredients.dmi'
+ icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "cakebatter"
cooked_type = /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain
list_reagents = list("nutriment" = 9)
@@ -89,7 +89,7 @@
/obj/item/weapon/reagent_containers/food/snacks/piedough
name = "pie dough"
desc = "Cook it to get a pie."
- icon = 'icons/obj/food_ingredients.dmi'
+ icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "piedough"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/rawpastrybase
slices_num = 3
@@ -100,7 +100,7 @@
/obj/item/weapon/reagent_containers/food/snacks/rawpastrybase
name = "raw pastry base"
desc = "Must be cooked before use."
- icon = 'icons/obj/food_ingredients.dmi'
+ icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "rawpastrybase"
cooked_type = /obj/item/weapon/reagent_containers/food/snacks/pastrybase
filling_color = "#CD853F"
@@ -109,7 +109,7 @@
/obj/item/weapon/reagent_containers/food/snacks/pastrybase
name = "pastry base"
desc = "A base for any self-respecting pastry"
- icon = 'icons/obj/food_ingredients.dmi'
+ icon = 'icons/obj/food/food_ingredients.dmi'
icon_state = "pastrybase"
list_reagents = list("nutriment" = 1)
filling_color = "#CD853F"
diff --git a/code/modules/food&drinks/food/snacks/meat.dm b/code/modules/food&drinks/food/snacks/meat.dm
index 7fe20242799..be5fc026d86 100644
--- a/code/modules/food&drinks/food/snacks/meat.dm
+++ b/code/modules/food&drinks/food/snacks/meat.dm
@@ -1,16 +1,20 @@
/obj/item/weapon/reagent_containers/food/snacks/meat
+ var/subjectname = ""
+ var/subjectjob = null
+
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab
name = "meat"
desc = "A slab of meat"
icon_state = "meat"
dried_type = /obj/item/weapon/reagent_containers/food/snacks/sosjerky
bitesize = 3
list_reagents = list("nutriment" = 3)
- cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meatsteak/plain
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/rawcutlet/plain
+ cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/plain
slices_num = 3
filling_color = "#FF0000"
-/obj/item/weapon/reagent_containers/food/snacks/meat/initialize_slice(obj/item/weapon/reagent_containers/food/snacks/rawcutlet/slice, reagents_per_slice)
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/initialize_slice(obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/slice, reagents_per_slice)
..()
var/image/I = new(icon, "rawcutlet_coloration")
I.color = filling_color
@@ -19,21 +23,19 @@
slice.name = "raw [name] cutlet"
slice.meat_type = name
-/obj/item/weapon/reagent_containers/food/snacks/meat/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S, cooking_efficiency)
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S, cooking_efficiency)
..()
S.name = "[name] steak"
///////////////////////////////////// HUMAN MEATS //////////////////////////////////////////////////////
-/obj/item/weapon/reagent_containers/food/snacks/meat/human
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human
name = "-meat"
- var/subjectname = ""
- var/subjectjob = null
- cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meatsteak/plain/human
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/rawcutlet/plain/human
+ cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain/human
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/plain/human
-/obj/item/weapon/reagent_containers/food/snacks/meat/human/initialize_slice(obj/item/weapon/reagent_containers/food/snacks/rawcutlet/plain/human/slice, reagents_per_slice)
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/initialize_slice(obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/plain/human/slice, reagents_per_slice)
..()
if(subjectname)
slice.subjectname = subjectname
@@ -42,7 +44,7 @@
slice.subjectjob = subjectjob
slice.name = "raw [subjectjob] cutlet"
-/obj/item/weapon/reagent_containers/food/snacks/meat/human/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S, cooking_efficiency)
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S, cooking_efficiency)
..()
if(subjectname)
S.name = "[subjectname] meatsteak"
@@ -50,51 +52,51 @@
S.name = "[subjectjob] meatsteak"
-/obj/item/weapon/reagent_containers/food/snacks/meat/human/mutant/slime
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime
icon_state = "slimemeat"
desc = "Because jello wasn't offensive enough to vegans"
list_reagents = list("nutriment" = 3, "slimejelly" = 3)
filling_color = "#00FFFF"
-/obj/item/weapon/reagent_containers/food/snacks/meat/human/mutant/golem
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem
icon_state = "golemmeat"
desc = "Edible rocks, welcome to the future"
list_reagents = list("nutriment" = 3, "iron" = 3)
filling_color = "#A9A9A9"
-/obj/item/weapon/reagent_containers/food/snacks/meat/human/mutant/golem/adamantine
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine
icon_state = "agolemmeat"
desc = "From the slime pen to the rune to the kitchen, science"
filling_color = "#66CDAA"
-/obj/item/weapon/reagent_containers/food/snacks/meat/human/mutant/lizard
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard
icon_state = "lizardmeat"
desc = "Delicious dino damage"
filling_color = "#6B8E23"
-/obj/item/weapon/reagent_containers/food/snacks/meat/human/mutant/plant
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/plant
icon_state = "plantmeat"
desc = "All the joys of healthy eating with all the fun of cannibalism"
filling_color = "#E9967A"
-/obj/item/weapon/reagent_containers/food/snacks/meat/human/mutant/shadow
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/shadow
icon_state = "shadowmeat"
desc = "Ow, the edge"
filling_color = "#202020"
-/obj/item/weapon/reagent_containers/food/snacks/meat/human/mutant/fly
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/fly
icon_state = "flymeat"
desc = "Nothing says tasty like maggot filled radioactive mutant flesh"
list_reagents = list("nutriment" = 3, "uranium" = 3)
-/obj/item/weapon/reagent_containers/food/snacks/meat/human/mutant/skeleton
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton
name = "-bone"
icon_state = "skeletonmeat"
desc = "There's a point where this needs to stop and clearly we have passed it"
filling_color = "#F0F0F0"
slice_path = null //can't slice a bone into cutlets
-/obj/item/weapon/reagent_containers/food/snacks/meat/human/mutant/zombie
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/zombie
name = "-meat (rotten)"
icon_state = "lizardmeat" //Close enough.
desc = "Halfway to becoming fertilizer for your garden."
@@ -108,58 +110,58 @@
////////////////////////////////////// OTHER MEATS ////////////////////////////////////////////////////////
-/obj/item/weapon/reagent_containers/food/snacks/meat/synthmeat
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/synthmeat
name = "synthmeat"
desc = "A synthetic slab of meat."
-/obj/item/weapon/reagent_containers/food/snacks/meat/monkey
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/monkey
name = "monkey meat"
-/obj/item/weapon/reagent_containers/food/snacks/meat/corgi
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi
name = "corgi meat"
desc = "Tastes like... well you know..."
-/obj/item/weapon/reagent_containers/food/snacks/meat/pug
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/pug
name = "pug meat"
desc = "Tastes like... well you know..."
-/obj/item/weapon/reagent_containers/food/snacks/meat/killertomato
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/killertomato
name = "killer tomato meat"
desc = "A slice from a huge tomato."
icon_state = "tomatomeat"
list_reagents = list("nutriment" = 2)
filling_color = "#FF0000"
- cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meatsteak/killertomato
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/rawcutlet/killertomato
+ cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/steak/killertomato
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/killertomato
-/obj/item/weapon/reagent_containers/food/snacks/meat/bear
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear
name = "bear meat"
desc = "A very manly slab of meat."
icon_state = "bearmeat"
list_reagents = list("nutriment" = 12, "morphine" = 5, "vitamin" = 2)
filling_color = "#FFB6C1"
- cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meatsteak/bear
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/rawcutlet/bear
+ cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/steak/bear
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/bear
-/obj/item/weapon/reagent_containers/food/snacks/meat/xeno
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno
name = "xeno meat"
desc = "A slab of meat"
icon_state = "xenomeat"
list_reagents = list("nutriment" = 3, "vitamin" = 1)
bitesize = 4
filling_color = "#32CD32"
- cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meatsteak/xeno
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/rawcutlet/xeno
+ cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/steak/xeno
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/xeno
-/obj/item/weapon/reagent_containers/food/snacks/meat/spider
+/obj/item/weapon/reagent_containers/food/snacks/meat/slab/spider
name = "spider meat"
desc = "A slab of spider meat."
icon_state = "spidermeat"
list_reagents = list("nutriment" = 3, "toxin" = 3, "vitamin" = 1)
filling_color = "#7CFC00"
- cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meatsteak/spider
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/rawcutlet/spider
+ cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/steak/spider
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/spider
@@ -167,7 +169,7 @@
////////////////////////////////////// MEAT STEAKS ///////////////////////////////////////////////////////////
-/obj/item/weapon/reagent_containers/food/snacks/meatsteak
+/obj/item/weapon/reagent_containers/food/snacks/meat/steak
name = "steak"
desc = "A piece of hot spicy meat."
icon_state = "meatsteak"
@@ -176,17 +178,17 @@
trash = /obj/item/trash/plate
filling_color = "#B22222"
-/obj/item/weapon/reagent_containers/food/snacks/meatsteak/plain
+/obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain
-/obj/item/weapon/reagent_containers/food/snacks/meatsteak/plain/human
+/obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain/human
-/obj/item/weapon/reagent_containers/food/snacks/meatsteak/killertomato
+/obj/item/weapon/reagent_containers/food/snacks/meat/steak/killertomato
-/obj/item/weapon/reagent_containers/food/snacks/meatsteak/bear
+/obj/item/weapon/reagent_containers/food/snacks/meat/steak/bear
-/obj/item/weapon/reagent_containers/food/snacks/meatsteak/xeno
+/obj/item/weapon/reagent_containers/food/snacks/meat/steak/xeno
-/obj/item/weapon/reagent_containers/food/snacks/meatsteak/spider
+/obj/item/weapon/reagent_containers/food/snacks/meat/steak/spider
@@ -194,47 +196,45 @@
//Raw cutlets
-/obj/item/weapon/reagent_containers/food/snacks/rawcutlet
+/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet
name = "raw cutlet"
desc = "A raw meat cutlet."
icon_state = "rawcutlet"
- cooked_type = /obj/item/weapon/reagent_containers/food/snacks/cutlet/plain
+ cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/plain
bitesize = 2
list_reagents = list("nutriment" = 1)
filling_color = "#B22222"
var/meat_type = "meat"
-/obj/item/weapon/reagent_containers/food/snacks/rawcutlet/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S, cooking_efficiency)
+/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S, cooking_efficiency)
..()
S.name = "[meat_type] cutlet"
-/obj/item/weapon/reagent_containers/food/snacks/rawcutlet/plain
+/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/plain
-/obj/item/weapon/reagent_containers/food/snacks/rawcutlet/plain/human
- cooked_type = /obj/item/weapon/reagent_containers/food/snacks/cutlet/plain/human
- var/subjectname = ""
- var/subjectjob = null
+/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/plain/human
+ cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/plain/human
-/obj/item/weapon/reagent_containers/food/snacks/rawcutlet/plain/human/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S, cooking_efficiency)
+/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/plain/human/initialize_cooked_food(obj/item/weapon/reagent_containers/food/snacks/S, cooking_efficiency)
..()
if(subjectname)
S.name = "[subjectname] [initial(S.name)]"
else if(subjectjob)
S.name = "[subjectjob] [initial(S.name)]"
-/obj/item/weapon/reagent_containers/food/snacks/rawcutlet/killertomato
+/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/killertomato
-/obj/item/weapon/reagent_containers/food/snacks/rawcutlet/bear
+/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/bear
-/obj/item/weapon/reagent_containers/food/snacks/rawcutlet/xeno
+/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/xeno
-/obj/item/weapon/reagent_containers/food/snacks/rawcutlet/spider
+/obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/spider
//Cooked cutlets
-/obj/item/weapon/reagent_containers/food/snacks/cutlet
+/obj/item/weapon/reagent_containers/food/snacks/meat/cutlet
name = "cutlet"
desc = "A cooked meat cutlet."
icon_state = "cutlet"
@@ -243,14 +243,14 @@
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
filling_color = "#B22222"
-/obj/item/weapon/reagent_containers/food/snacks/cutlet/plain
+/obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/plain
-/obj/item/weapon/reagent_containers/food/snacks/cutlet/plain/human
+/obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/plain/human
-/obj/item/weapon/reagent_containers/food/snacks/cutlet/killertomato
+/obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/killertomato
-/obj/item/weapon/reagent_containers/food/snacks/cutlet/bear
+/obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/bear
-/obj/item/weapon/reagent_containers/food/snacks/cutlet/xeno
+/obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/xeno
-/obj/item/weapon/reagent_containers/food/snacks/cutlet/spider
\ No newline at end of file
+/obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/spider
\ No newline at end of file
diff --git a/code/modules/food&drinks/food/snacks_bread.dm b/code/modules/food&drinks/food/snacks_bread.dm
index 694ed000946..8ff5e2681a3 100644
--- a/code/modules/food&drinks/food/snacks_bread.dm
+++ b/code/modules/food&drinks/food/snacks_bread.dm
@@ -1,13 +1,18 @@
/obj/item/weapon/reagent_containers/food/snacks/store/bread
+ icon = 'icons/obj/food/burgerbread.dmi'
+ volume = 80
slices_num = 5
/obj/item/weapon/reagent_containers/food/snacks/breadslice
+ icon = 'icons/obj/food/burgerbread.dmi'
bitesize = 2
custom_food_type = /obj/item/weapon/reagent_containers/food/snacks/customizable/sandwich
filling_color = "#FFA500"
- slot_flags = SLOT_HEAD // i'm going to kill myself. i'm going to murder my own self.
+ list_reagents = list("nutriment" = 2)
+ slot_flags = SLOT_HEAD
+ customfoodfilling = 0 //to avoid infinite bread-ception
/obj/item/weapon/reagent_containers/food/snacks/store/bread/plain
name = "bread"
@@ -22,6 +27,7 @@
name = "bread slice"
desc = "A slice of home."
icon_state = "breadslice"
+ customfoodfilling = 1
/obj/item/weapon/reagent_containers/food/snacks/store/bread/meat
name = "meatbread loaf"
@@ -112,6 +118,21 @@
filling_color = "#FF8C00"
list_reagents = list("nutriment" = 4, "vitamin" = 1)
+/obj/item/weapon/reagent_containers/food/snacks/store/bread/mimana
+ name = "mimana bread"
+ desc = "Best eaten in silence."
+ icon_state = "mimanabread"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/breadslice/mimana
+ bonus_reagents = list("nutriment" = 5, "vitamin" = 5)
+ list_reagents = list("nutriment" = 20, "mutetoxin" = 5, "nothing" = 5, "vitamin" = 5)
+
+/obj/item/weapon/reagent_containers/food/snacks/breadslice/mimana
+ name = "mimana bread slice"
+ desc = "A slice of silence!"
+ icon_state = "mimanabreadslice"
+ filling_color = "#C0C0C0"
+ list_reagents = list("nutriment" = 2, "mutetoxin" = 1, "nothing" = 1, "vitamin" = 1)
+
/obj/item/weapon/reagent_containers/food/snacks/breadslice/custom
name = "bread slice"
icon_state = "tofubreadslice"
@@ -120,8 +141,9 @@
/obj/item/weapon/reagent_containers/food/snacks/baguette
name = "baguette"
desc = "Bon appetit!"
+ icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "baguette"
bonus_reagents = list("nutriment" = 2, "vitamin" = 2)
list_reagents = list("nutriment" = 6, "vitamin" = 1)
bitesize = 3
- w_class = 3
\ No newline at end of file
+ w_class = 3
diff --git a/code/modules/food&drinks/food/snacks_burgers.dm b/code/modules/food&drinks/food/snacks_burgers.dm
index 9f77bfce846..27f0b2b2bb2 100644
--- a/code/modules/food&drinks/food/snacks_burgers.dm
+++ b/code/modules/food&drinks/food/snacks_burgers.dm
@@ -1,6 +1,7 @@
/obj/item/weapon/reagent_containers/food/snacks/burger
filling_color = "#CD853F"
+ icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "hburger"
bitesize = 3
list_reagents = list("nutriment" = 6, "vitamin" = 1)
@@ -13,7 +14,7 @@
/obj/item/weapon/reagent_containers/food/snacks/burger/human
var/hname = ""
var/job = null
- name = "-burger"
+ name = "human burger"
desc = "A bloody burger."
bonus_reagents = list("vitamin" = 4)
@@ -163,4 +164,18 @@
bonus_reagents = list("vitamin" = 10)
list_reagents = list("nutriment" = 40, "vitamin" = 5)
w_class = 3
- volume = 80
+ bitesize = 7
+ volume = 100
+
+/obj/item/weapon/reagent_containers/food/snacks/burger/fivealarm
+ name = "five alarm burger"
+ desc = "HOT! HOT!"
+ icon_state = "fivealarmburger"
+ bonus_reagents = list("nutriment" = 2, "vitamin" = 5)
+ list_reagents = list("nutriment" = 6, "capsaicin" = 5, "condensedcapsaicin" = 5, "vitamin" = 1)
+
+/obj/item/weapon/reagent_containers/food/snacks/burger/rat
+ name = "rat burger"
+ desc = "Pretty much what you'd expect..."
+ icon_state = "ratburger"
+ bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
\ No newline at end of file
diff --git a/code/modules/food&drinks/food/snacks_cake.dm b/code/modules/food&drinks/food/snacks_cake.dm
index f1ccae6255e..0d287060996 100644
--- a/code/modules/food&drinks/food/snacks_cake.dm
+++ b/code/modules/food&drinks/food/snacks_cake.dm
@@ -1,13 +1,17 @@
/obj/item/weapon/reagent_containers/food/snacks/store/cake
+ icon = 'icons/obj/food/piecake.dmi'
slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/plain
slices_num = 5
bitesize = 3
+ volume = 80
list_reagents = list("nutriment" = 20, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/cakeslice
+ icon = 'icons/obj/food/piecake.dmi'
trash = /obj/item/trash/plate
list_reagents = list("nutriment" = 4, "vitamin" = 1)
+ customfoodfilling = 0 //to avoid infinite cake-ception
/obj/item/weapon/reagent_containers/food/snacks/store/cake/plain
name = "vanilla cake"
@@ -21,6 +25,7 @@
desc = "Just a slice of cake, it is enough for everyone."
icon_state = "plaincake_slice"
filling_color = "#FFD700"
+ customfoodfilling = 1
/obj/item/weapon/reagent_containers/food/snacks/store/cake/carrot
name = "carrot cake"
@@ -174,10 +179,23 @@
desc = "A cake made of slimes. Probably not electrified."
icon_state = "slimecake"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/slimecake
- slices_num = 5
bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
/obj/item/weapon/reagent_containers/food/snacks/cakeslice/slimecake
- name = "Slime cake slice"
+ name = "slime cake slice"
+ desc = "A slice of slime cake."
icon_state = "slimecake_slice"
filling_color = "#00FFFF"
+
+/obj/item/weapon/reagent_containers/food/snacks/store/cake/pumpkinspice
+ name = "pumpkin spice cake"
+ desc = "A hollow cake with real pumpkin."
+ icon_state = "pumpkinspicecake"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/cakeslice/pumpkinspice
+ bonus_reagents = list("nutriment" = 3, "vitamin" = 5)
+
+/obj/item/weapon/reagent_containers/food/snacks/cakeslice/pumpkinspice
+ name = "pumpkin spice cake slice"
+ desc = "A spicy slice of pumpkin goodness."
+ icon_state = "pumpkinspicecakeslice"
+ filling_color = "#FFD700"
\ No newline at end of file
diff --git a/code/modules/food&drinks/food/snacks_other.dm b/code/modules/food&drinks/food/snacks_other.dm
index 735b65f5048..f11f863aad2 100644
--- a/code/modules/food&drinks/food/snacks_other.dm
+++ b/code/modules/food&drinks/food/snacks_other.dm
@@ -1,7 +1,7 @@
////////////////////////////////////////////OTHER////////////////////////////////////////////
-/obj/item/weapon/reagent_containers/food/snacks/cheesewheel
+/obj/item/weapon/reagent_containers/food/snacks/store/cheesewheel
name = "cheese wheel"
desc = "A big wheel of delcious Cheddar."
icon_state = "cheesewheel"
@@ -141,10 +141,10 @@
list_reagents = list("minttoxin" = 1)
filling_color = "#800000"
-/obj/item/weapon/reagent_containers/food/snacks/wrap
+/obj/item/weapon/reagent_containers/food/snacks/eggwrap
name = "egg wrap"
desc = "The precursor to Pigs in a Blanket."
- icon_state = "wrap"
+ icon_state = "eggwrap"
bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
list_reagents = list("nutriment" = 5)
filling_color = "#F0E68C"
@@ -187,4 +187,127 @@
trash = /obj/item/trash/plate
bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
list_reagents = list("nutriment" = 6, "vitamin" = 2)
- filling_color = "#BA55D3"
\ No newline at end of file
+ filling_color = "#BA55D3"
+
+/obj/item/weapon/reagent_containers/food/snacks/tortilla
+ name = "tortilla"
+ desc = "The base for all your burritos."
+ icon = 'icons/obj/food/food_ingredients.dmi'
+ icon_state = "tortilla"
+ list_reagents = list("nutriment" = 3, "vitamin" = 1)
+ filling_color = "#FFEFD5"
+
+/obj/item/weapon/reagent_containers/food/snacks/burrito
+ name = "burrito"
+ desc = "Tortilla wrapped goodness."
+ icon_state = "burrito"
+ bonus_reagents = list("nutriment" = 2, "vitamin" = 2)
+ list_reagents = list("nutriment" = 4, "vitamin" = 1)
+ filling_color = "#FFEFD5"
+
+/obj/item/weapon/reagent_containers/food/snacks/cheesyburrito
+ name = "cheesy burrito"
+ desc = "It's a burrito filled with cheese."
+ icon_state = "cheesyburrito"
+ bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
+ list_reagents = list("nutriment" = 4, "vitamin" = 2)
+ filling_color = "#FFD800"
+
+/obj/item/weapon/reagent_containers/food/snacks/carneburrito
+ name = "carne asada burrito"
+ desc = "The best burrito for meat lovers."
+ icon_state = "carneburrito"
+ bonus_reagents = list("nutriment" = 2, "vitamin" = 1)
+ list_reagents = list("nutriment" = 5, "vitamin" = 1)
+ filling_color = "#A0522D"
+
+/obj/item/weapon/reagent_containers/food/snacks/fuegoburrito
+ name = "fuego plasma burrito"
+ desc = "A super spicy burrito."
+ icon_state = "fuegoburrito"
+ bonus_reagents = list("nutriment" = 2, "vitamin" = 3)
+ list_reagents = list("nutriment" = 4, "capsaicin" = 5, "vitamin" = 3)
+ filling_color = "#FF2000"
+
+/obj/item/weapon/reagent_containers/food/snacks/yakiimo
+ name = "yaki imo"
+ desc = "Made with roasted sweet potatoes!"
+ icon_state = "yakiimo"
+ trash = /obj/item/trash/plate
+ list_reagents = list("nutriment" = 5, "vitamin" = 4)
+ filling_color = "#8B1105"
+
+/obj/item/weapon/reagent_containers/food/snacks/roastparsnip
+ name = "roast parsnip"
+ desc = "Sweet and crunchy."
+ icon_state = "roastparsnip"
+ trash = /obj/item/trash/plate
+ list_reagents = list("nutriment" = 3, "vitamin" = 4)
+ filling_color = "#FF5500"
+
+/obj/item/weapon/reagent_containers/food/snacks/melonfruitbowl
+ name = "melon fruit bowl"
+ desc = "For people who wants edible fruit bowls."
+ icon_state = "melonfruitbowl"
+ bonus_reagents = list("nutriment" = 2, "vitamin" = 2)
+ list_reagents = list("nutriment" = 6, "vitamin" = 4)
+ filling_color = "#FF5500"
+ w_class = 3
+
+/obj/item/weapon/reagent_containers/food/snacks/spacefreezy
+ name = "space freezy"
+ desc = "The best icecream in space."
+ icon_state = "spacefreezy"
+ bonus_reagents = list("nutriment" = 2, "vitamin" = 2)
+ list_reagents = list("nutriment" = 6, "bluecherryjelly" = 5, "vitamin" = 4)
+ filling_color = "#87CEFA"
+
+/obj/item/weapon/reagent_containers/food/snacks/sundae
+ name = "sundae"
+ desc = "A classic dessert."
+ icon_state = "sundae"
+ bonus_reagents = list("nutriment" = 2, "vitamin" = 1)
+ list_reagents = list("nutriment" = 6, "banana" = 5, "vitamin" = 2)
+ filling_color = "#FFFACD"
+
+/obj/item/weapon/reagent_containers/food/snacks/honkdae
+ name = "honkdae"
+ desc = "The clown's favorite dessert."
+ icon_state = "honkdae"
+ bonus_reagents = list("nutriment" = 2, "vitamin" = 2)
+ list_reagents = list("nutriment" = 6, "banana" = 10, "vitamin" = 4)
+ filling_color = "#FFFACD"
+
+/obj/item/weapon/reagent_containers/food/snacks/nachos
+ name = "nachos"
+ desc = "Chips from Space Mexico."
+ icon_state = "nachos"
+ bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
+ list_reagents = list("nutriment" = 6, "vitamin" = 2)
+ filling_color = "#F4A460"
+
+/obj/item/weapon/reagent_containers/food/snacks/cheesynachos
+ name = "cheesy nachos"
+ desc = "The delicious combination of nachos and melting cheese."
+ icon_state = "cheesynachos"
+ bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
+ list_reagents = list("nutriment" = 6, "vitamin" = 3)
+ filling_color = "#FFD700"
+
+/obj/item/weapon/reagent_containers/food/snacks/cubannachos
+ name = "cuban nachos"
+ desc = "That's some dangerously spicy nachos."
+ icon_state = "cubannachos"
+ bonus_reagents = list("nutriment" = 2, "vitamin" = 3)
+ list_reagents = list("nutriment" = 7, "capsaicin" = 8, "vitamin" = 4)
+ filling_color = "#DC143C"
+
+/obj/item/weapon/reagent_containers/food/snacks/melonkeg
+ name = "melon keg"
+ desc = "Who knew vodka was a fruit?"
+ icon_state = "melonkeg"
+ bonus_reagents = list("nutriment" = 3, "vitamin" = 3)
+ list_reagents = list("nutriment" = 9, "vodka" = 15, "vitamin" = 4)
+ filling_color = "#FFD700"
+ volume = 80
+ bitesize = 5
\ No newline at end of file
diff --git a/code/modules/food&drinks/food/snacks_pastry.dm b/code/modules/food&drinks/food/snacks_pastry.dm
index ffd7f5dc9fc..1af2b47ad8a 100644
--- a/code/modules/food&drinks/food/snacks_pastry.dm
+++ b/code/modules/food&drinks/food/snacks_pastry.dm
@@ -93,7 +93,6 @@
name = "chawanmushi"
desc = "A legendary egg custard that makes friends out of enemies. Probably too hot for a cat to eat."
icon_state = "chawanmushi"
- trash = /obj/item/weapon/reagent_containers/glass/bowl
bonus_reagents = list("vitamin" = 1)
list_reagents = list("nutriment" = 5)
filling_color = "#FFE4E1"
@@ -156,7 +155,7 @@
filling_color = "#CD853F"
/obj/item/weapon/reagent_containers/food/snacks/donkpocket/warm
- name = "\improper Warm Donk-pocket"
+ name = "warm Donk-pocket"
desc = "The heated food of choice for the seasoned traitor."
bonus_reagents = list("omnizine" = 3)
list_reagents = list("nutriment" = 4, "omnizine" = 3)
@@ -234,3 +233,35 @@
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
list_reagents = list("nutriment" = 5, "vitamin" = 1)
filling_color = "#FFE4C4"
+
+/obj/item/weapon/reagent_containers/food/snacks/oatmealcookie
+ name = "oatmeal cookie"
+ desc = "The best of both cookie and oat"
+ icon_state = "oatmealcookie"
+ bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
+ list_reagents = list("nutriment" = 5, "vitamin" = 1)
+ filling_color = "#D2691E"
+
+/obj/item/weapon/reagent_containers/food/snacks/raisincookie
+ name = "raisin cookie"
+ desc = "Why would you put raisins on a cookie?"
+ icon_state = "raisincookie"
+ bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
+ list_reagents = list("nutriment" = 5, "vitamin" = 1)
+ filling_color = "#F0E68C"
+
+/obj/item/weapon/reagent_containers/food/snacks/cherrycupcake
+ name = "cherry cupcake"
+ desc = "A sweet cupcake with cherry bits."
+ icon_state = "cherrycupcake"
+ bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
+ list_reagents = list("nutriment" = 5, "vitamin" = 1)
+ filling_color = "#F0E68C"
+
+/obj/item/weapon/reagent_containers/food/snacks/bluecherrycupcake
+ name = "blue cherry cupcake"
+ desc = "Blue cherries inside a delicious cupcake"
+ icon_state = "bluecherrycupcake"
+ bonus_reagents = list("nutriment" = 1, "vitamin" = 3)
+ list_reagents = list("nutriment" = 5, "vitamin" = 1)
+ filling_color = "#F0E68C"
diff --git a/code/modules/food&drinks/food/snacks_pie.dm b/code/modules/food&drinks/food/snacks_pie.dm
index 1a69a62b334..e4fe6700f67 100644
--- a/code/modules/food&drinks/food/snacks_pie.dm
+++ b/code/modules/food&drinks/food/snacks_pie.dm
@@ -1,8 +1,10 @@
/obj/item/weapon/reagent_containers/food/snacks/pie
+ icon = 'icons/obj/food/piecake.dmi'
trash = /obj/item/trash/plate
bitesize = 3
w_class = 3
+ volume = 80
list_reagents = list("nutriment" = 10, "vitamin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/pie/plain
@@ -102,7 +104,7 @@
bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
-/obj/item/weapon/reagent_containers/food/snacks/pumpkinpie
+/obj/item/weapon/reagent_containers/food/snacks/pie/pumpkinpie
name = "pumpkin pie"
desc = "A delicious treat for the autumn months."
icon_state = "pumpkinpie"
@@ -113,8 +115,10 @@
/obj/item/weapon/reagent_containers/food/snacks/pumpkinpieslice
name = "pumpkin pie slice"
desc = "A slice of pumpkin pie, with whipped cream on top. Perfection."
+ icon = 'icons/obj/food/piecake.dmi'
icon_state = "pumpkinpieslice"
trash = /obj/item/trash/plate
+ filling_color = "#FFA500"
list_reagents = list("nutriment" = 2)
/obj/item/weapon/reagent_containers/food/snacks/pie/appletart
@@ -123,3 +127,43 @@
icon_state = "gappletart"
bonus_reagents = list("nutriment" = 1, "vitamin" = 4)
list_reagents = list("nutriment" = 8, "gold" = 5, "vitamin" = 4)
+
+/obj/item/weapon/reagent_containers/food/snacks/pie/blumpkinpie
+ name = "blumpkin pie"
+ desc = "An odd blue pie made with toxic blumpkin."
+ icon_state = "blumpkinpie"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/blumpkinpieslice
+ slices_num = 5
+ bonus_reagents = list("nutriment" = 3, "vitamin" = 6)
+
+/obj/item/weapon/reagent_containers/food/snacks/blumpkinpieslice
+ name = "blumpkin pie slice"
+ desc = "A slice of blumpkin pie, with whipped cream on top. Is this edible?"
+ icon = 'icons/obj/food/piecake.dmi'
+ icon_state = "blumpkinpieslice"
+ trash = /obj/item/trash/plate
+ filling_color = "#1E90FF"
+ list_reagents = list("nutriment" = 2)
+
+/obj/item/weapon/reagent_containers/food/snacks/pie/dulcedebatata
+ name = "dulce de batata"
+ desc = "A delicious jelly made with sweet potatoes."
+ icon_state = "dulcedebatata"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/dulcedebatataslice
+ slices_num = 5
+ bonus_reagents = list("nutriment" = 4, "vitamin" = 8)
+
+/obj/item/weapon/reagent_containers/food/snacks/dulcedebatataslice
+ name = "dulce de batata slice"
+ desc = "A slice of sweet dulce de batata jelly."
+ icon = 'icons/obj/food/piecake.dmi'
+ icon_state = "dulcedebatataslice"
+ trash = /obj/item/trash/plate
+ filling_color = "#8B4513"
+ list_reagents = list("nutriment" = 2)
+
+/obj/item/weapon/reagent_containers/food/snacks/pie/frostypie
+ name = "frosty pie"
+ desc = "Tastes like blue and cold."
+ icon_state = "frostypie"
+ bonus_reagents = list("nutriment" = 4, "vitamin" = 6)
diff --git a/code/modules/food&drinks/food/snacks_pizza.dm b/code/modules/food&drinks/food/snacks_pizza.dm
index 6237ce52192..c9f993c17f7 100644
--- a/code/modules/food&drinks/food/snacks_pizza.dm
+++ b/code/modules/food&drinks/food/snacks_pizza.dm
@@ -2,10 +2,14 @@
/////////////////////////////////////////////////PIZZA////////////////////////////////////////
/obj/item/weapon/reagent_containers/food/snacks/pizza
+ icon = 'icons/obj/food/pizzaspaghetti.dmi'
w_class = 3
slices_num = 6
+ volume = 80
+ list_reagents = list("nutriment" = 30, "tomatojuice" = 6, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/pizzaslice
+ icon = 'icons/obj/food/pizzaspaghetti.dmi'
list_reagents = list("nutriment" = 5)
/obj/item/weapon/reagent_containers/food/snacks/pizza/margherita
@@ -13,9 +17,7 @@
desc = "The most cheezy pizza in galaxy."
icon_state = "pizzamargherita"
slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/margherita
- slices_num = 6
bonus_reagents = list("nutriment" = 5, "vitamin" = 5)
- list_reagents = list("nutriment" = 30, "tomatojuice" = 6, "vitamin" = 5)
/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/margherita
name = "margherita slice"
@@ -23,51 +25,89 @@
icon_state = "pizzamargheritaslice"
filling_color = "#FFA500"
-/obj/item/weapon/reagent_containers/food/snacks/pizza/meatpizza
+/obj/item/weapon/reagent_containers/food/snacks/pizza/meat
name = "meatpizza"
desc = "Greasy pizza with delicious meat."
icon_state = "meatpizza"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/meatpizza
- slices_num = 6
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/meat
bonus_reagents = list("nutriment" = 5, "vitamin" = 8)
list_reagents = list("nutriment" = 30, "tomatojuice" = 6, "vitamin" = 8)
-/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/meatpizza
+/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/meat
name = "meatpizza slice"
desc = "A nutritious slice of meatpizza."
icon_state = "meatpizzaslice"
filling_color = "#A52A2A"
-/obj/item/weapon/reagent_containers/food/snacks/pizza/mushroompizza
+/obj/item/weapon/reagent_containers/food/snacks/pizza/mushroom
name = "mushroom pizza"
desc = "Very special pizza."
icon_state = "mushroompizza"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroompizza
- slices_num = 6
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroom
bonus_reagents = list("nutriment" = 5, "vitamin" = 5)
list_reagents = list("nutriment" = 30, "vitamin" = 5)
-/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroompizza
+/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/mushroom
name = "mushroom pizza slice"
desc = "Maybe it is the last slice of pizza in your life."
icon_state = "mushroompizzaslice"
filling_color = "#FFE4C4"
-/obj/item/weapon/reagent_containers/food/snacks/pizza/vegetablepizza
+/obj/item/weapon/reagent_containers/food/snacks/pizza/vegetable
name = "vegetable pizza"
desc = "No one of Tomatos Sapiens were harmed during making this pizza."
icon_state = "vegetablepizza"
- slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/vegetablepizza
- slices_num = 6
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/vegetable
bonus_reagents = list("nutriment" = 5, "vitamin" = 5)
list_reagents = list("nutriment" = 25, "tomatojuice" = 6, "oculine" = 12, "vitamin" = 5)
-/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/vegetablepizza
+/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/vegetable
name = "vegetable pizza slice"
desc = "A slice of the most green pizza of all pizzas not containing green ingredients."
icon_state = "vegetablepizzaslice"
filling_color = "#FFA500"
+/obj/item/weapon/reagent_containers/food/snacks/pizza/donkpocket
+ name = "donkpocket pizza"
+ desc = "Who thought this would be a good idea?"
+ icon_state = "donkpocketpizza"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/donkpocket
+ bonus_reagents = list("nutriment" = 5, "vitamin" = 5)
+ list_reagents = list("nutriment" = 25, "tomatojuice" = 6, "omnizine" = 10, "vitamin" = 5)
+
+/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/donkpocket
+ name = "donkpocket pizza slice"
+ desc = "Smells like donkpocket."
+ icon_state = "donkpocketpizzaslice"
+ filling_color = "#FFA500"
+
+/obj/item/weapon/reagent_containers/food/snacks/pizza/dank
+ name = "dank pizza"
+ desc = "The hippie's pizza of choice."
+ icon_state = "dankpizza"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/dank
+ bonus_reagents = list("nutriment" = 2, "vitamin" = 6)
+ list_reagents = list("nutriment" = 25, "doctorsdelight" = 5, "tomatojuice" = 6, "vitamin" = 5)
+
+/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/dank
+ name = "dank pizza slice"
+ desc = "So good, man..."
+ icon_state = "dankpizzaslice"
+ filling_color = "#2E8B57"
+
+/obj/item/weapon/reagent_containers/food/snacks/pizza/sassysage
+ name = "sassysage pizza"
+ desc = "You can really smell the sassiness."
+ icon_state = "sassysagepizza"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/pizzaslice/sassysage
+ bonus_reagents = list("nutriment" = 6, "vitamin" = 6)
+
+/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/sassysage
+ name = "sassysage pizza slice"
+ desc = "Deliciously sassy."
+ icon_state = "sassysagepizzaslice"
+ filling_color = "#FF4500"
+
/obj/item/weapon/reagent_containers/food/snacks/pizzaslice/custom
name = "pizza slice"
icon_state = "pizzamargheritaslice"
@@ -76,7 +116,7 @@
/obj/item/pizzabox
name = "pizza box"
desc = "A box suited for pizzas."
- icon = 'icons/obj/food.dmi'
+ icon = 'icons/obj/food/containers.dmi'
icon_state = "pizzabox1"
var/open = 0 // Is the box open?
var/ismessy = 0 // Fancy mess on the lid
@@ -111,7 +151,7 @@
icon_state = "pizzabox_open"
if(pizza)
- var/image/pizzaimg = image("food.dmi", icon_state = pizza.icon_state)
+ var/image/pizzaimg = image('icons/obj/food/pizzaspaghetti.dmi', icon_state = pizza.icon_state)
pizzaimg.pixel_y = -3
overlays += pizzaimg
@@ -128,7 +168,7 @@
doimgtag = 1
if(doimgtag)
- var/image/tagimg = image("food.dmi", icon_state = "pizzabox_tag")
+ var/image/tagimg = image('icons/obj/food/containers.dmi', icon_state = "pizzabox_tag")
tagimg.pixel_y = boxes.len * 3
overlays += tagimg
@@ -235,16 +275,16 @@
update_icon()
/obj/item/pizzabox/vegetable/New()
- pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/vegetablepizza(src)
+ pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/vegetable(src)
boxtag = "Gourmet Vegatable"
update_icon()
/obj/item/pizzabox/mushroom/New()
- pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/mushroompizza(src)
+ pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/mushroom(src)
boxtag = "Mushroom Special"
update_icon()
/obj/item/pizzabox/meat/New()
- pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/meatpizza(src)
+ pizza = new /obj/item/weapon/reagent_containers/food/snacks/pizza/meat(src)
boxtag = "Meatlover's Supreme"
update_icon()
\ No newline at end of file
diff --git a/code/modules/food&drinks/food/snacks_salad.dm b/code/modules/food&drinks/food/snacks_salad.dm
index 0e9cb68f107..d98273c4fb3 100644
--- a/code/modules/food&drinks/food/snacks_salad.dm
+++ b/code/modules/food&drinks/food/snacks_salad.dm
@@ -1,9 +1,11 @@
//this category is very little but I think that it has great potential to grow
////////////////////////////////////////////SALAD////////////////////////////////////////////
/obj/item/weapon/reagent_containers/food/snacks/salad
+ icon = 'icons/obj/food/soupsalad.dmi'
trash = /obj/item/weapon/reagent_containers/glass/bowl
bitesize = 3
w_class = 3
+ list_reagents = list("nutriment" = 7, "vitamin" = 2)
/obj/item/weapon/reagent_containers/food/snacks/salad/New()
..()
@@ -29,3 +31,62 @@
icon_state = "validsalad"
bonus_reagents = list("doctorsdelight" = 5, "vitamin" = 4)
list_reagents = list("nutriment" = 8, "doctorsdelight" = 5, "vitamin" = 2)
+
+/obj/item/weapon/reagent_containers/food/snacks/salad/oatmeal
+ name = "oatmeal"
+ desc = "A nice bowl of oatmeal."
+ icon_state = "oatmeal"
+ bonus_reagents = list("nutriment" = 4, "vitamin" = 4)
+ list_reagents = list("nutriment" = 7, "milk" = 10, "vitamin" = 2)
+
+/obj/item/weapon/reagent_containers/food/snacks/salad/fruit
+ name = "fruit salad"
+ desc = "Your standard fruit salad."
+ icon_state = "fruitsalad"
+ bonus_reagents = list("nutriment" = 2, "vitamin" = 4)
+
+/obj/item/weapon/reagent_containers/food/snacks/salad/jungle
+ name = "jungle salad"
+ desc = "Exotic fruits in a bowl."
+ icon_state = "junglesalad"
+ bonus_reagents = list("nutriment" = 4, "vitamin" = 4)
+ list_reagents = list("nutriment" = 7, "banana" = 5, "vitamin" = 4)
+
+/obj/item/weapon/reagent_containers/food/snacks/salad/citrusdelight
+ name = "citrus delight"
+ desc = "Citrus overload!"
+ icon_state = "citrusdelight"
+ bonus_reagents = list("nutriment" = 4, "vitamin" = 4)
+ list_reagents = list("nutriment" = 7, "vitamin" = 5)
+
+/obj/item/weapon/reagent_containers/food/snacks/salad/ricebowl
+ name = "ricebowl"
+ desc = "A bowl of raw rice."
+ icon_state = "ricebowl"
+ cooked_type = /obj/item/weapon/reagent_containers/food/snacks/salad/boiledrice
+ list_reagents = list("nutriment" = 4)
+
+/obj/item/weapon/reagent_containers/food/snacks/salad/boiledrice
+ name = "boiled rice"
+ desc = "A warm bowl of rice."
+ icon_state = "boiledrice"
+ bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
+ list_reagents = list("nutriment" = 5, "vitamin" = 1)
+
+/obj/item/weapon/reagent_containers/food/snacks/salad/ricepudding
+ name = "rice pudding"
+ desc = "Everybody loves rice pudding!"
+ icon_state = "ricepudding"
+ bonus_reagents = list("nutriment" = 4, "vitamin" = 2)
+
+/obj/item/weapon/reagent_containers/food/snacks/salad/ricepork
+ name = "rice and pork"
+ desc = "Well, it looks like pork..."
+ icon_state = "riceporkbowl"
+ bonus_reagents = list("nutriment" = 4, "vitamin" = 4)
+
+/obj/item/weapon/reagent_containers/food/snacks/salad/eggbowl
+ name = "egg bowl"
+ desc = "A bowl of rice with a fried egg."
+ icon_state = "eggbowl"
+ bonus_reagents = list("nutriment" = 4, "vitamin" = 4)
diff --git a/code/modules/food&drinks/food/snacks_sandwichtoast.dm b/code/modules/food&drinks/food/snacks_sandwichtoast.dm
index b1196ce7ff5..cef39b6836b 100644
--- a/code/modules/food&drinks/food/snacks_sandwichtoast.dm
+++ b/code/modules/food&drinks/food/snacks_sandwichtoast.dm
@@ -2,6 +2,7 @@
/obj/item/weapon/reagent_containers/food/snacks/sandwich
name = "sandwich"
desc = "A grand creation of meat, cheese, bread, and several leaves of lettuce! Arthur Dent would be proud."
+ icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "sandwich"
trash = /obj/item/trash/plate
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
@@ -11,6 +12,7 @@
/obj/item/weapon/reagent_containers/food/snacks/toastedsandwich
name = "toasted sandwich"
desc = "Now if you only had a pepper bar."
+ icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "toastedsandwich"
trash = /obj/item/trash/plate
bonus_reagents = list("nutriment" = 1, "carbon" = 2)
@@ -19,6 +21,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grilledcheese
name = "grilled cheese sandwich"
desc = "Goes great with Tomato soup!"
+ icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "toastedsandwich"
trash = /obj/item/trash/plate
bonus_reagents = list("nutriment" = 1, "vitamin" = 1)
@@ -27,6 +30,7 @@
/obj/item/weapon/reagent_containers/food/snacks/jellysandwich
name = "jelly sandwich"
desc = "You wish you had some peanut butter to go with this..."
+ icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "jellysandwich"
trash = /obj/item/trash/plate
bitesize = 3
@@ -42,6 +46,7 @@
/obj/item/weapon/reagent_containers/food/snacks/icecreamsandwich
name = "icecream sandwich"
desc = "Portable Ice-cream in it's own packaging."
+ icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "icecreamsandwich"
bonus_reagents = list("nutriment" = 1, "ice" = 2)
list_reagents = list("nutriment" = 2, "ice" = 2)
@@ -49,6 +54,7 @@
/obj/item/weapon/reagent_containers/food/snacks/notasandwich
name = "not-a-sandwich"
desc = "Something seems to be wrong with this, you can't quite figure what. Maybe it's his moustache."
+ icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "notasandwich"
trash = /obj/item/trash/plate
bonus_reagents = list("vitamin" = 6)
@@ -57,6 +63,7 @@
/obj/item/weapon/reagent_containers/food/snacks/jelliedtoast
name = "jellied toast"
desc = "A slice of bread covered with delicious jam."
+ icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "jellytoast"
trash = /obj/item/trash/plate
bitesize = 3
@@ -72,6 +79,7 @@
/obj/item/weapon/reagent_containers/food/snacks/twobread
name = "two bread"
desc = "This seems awfully bitter."
+ icon = 'icons/obj/food/burgerbread.dmi'
icon_state = "twobread"
bonus_reagents = list("nutriment" = 1, "vitamin" = 2)
list_reagents = list("nutriment" = 2, "vitamin" = 2)
diff --git a/code/modules/food&drinks/food/snacks_soup.dm b/code/modules/food&drinks/food/snacks_soup.dm
index 3df14169642..238d279674d 100644
--- a/code/modules/food&drinks/food/snacks_soup.dm
+++ b/code/modules/food&drinks/food/snacks_soup.dm
@@ -1,7 +1,9 @@
/obj/item/weapon/reagent_containers/food/snacks/soup
w_class = 3
+ icon = 'icons/obj/food/soupsalad.dmi'
trash = /obj/item/weapon/reagent_containers/glass/bowl
bitesize = 5
+ volume = 80
list_reagents = list("nutriment" = 8, "water" = 5, "vitamin" = 4)
/obj/item/weapon/reagent_containers/food/snacks/soup/New()
@@ -120,7 +122,6 @@
desc = "Wait, how do you spell it again..?"
icon_state = "beetsoup"
bonus_reagents = list("nutriment" = 1, "vitamin" = 5)
- list_reagents = list("nutriment" = 8, "vitamin" = 4)
/obj/item/weapon/reagent_containers/food/snacks/soup/beet/New()
..()
@@ -150,3 +151,18 @@
bonus_reagents = list("nutriment" = 1, "tomatojuice" = 5, "vitamin" = 5)
list_reagents = list("nutriment" = 10, "oculine" = 5, "tomatojuice" = 5, "vitamin" = 5)
bitesize = 7
+ volume = 100
+
+/obj/item/weapon/reagent_containers/food/snacks/soup/sweetpotato
+ name = "sweet potato soup"
+ desc = "Delicious sweet potato in soup form."
+ icon_state = "sweetpotatosoup"
+ bonus_reagents = list("nutriment" = 4, "vitamin" = 5)
+
+/obj/item/weapon/reagent_containers/food/snacks/soup/beet/red
+ name = "red beet soup"
+ desc = "Quite a delicacy."
+ icon_state = "redbeetsoup"
+ bonus_reagents = list("nutriment" = 4, "vitamin" = 6)
+
+
diff --git a/code/modules/food&drinks/food/snacks_spaghetti.dm b/code/modules/food&drinks/food/snacks_spaghetti.dm
index 1545ae518fc..251217a54ed 100644
--- a/code/modules/food&drinks/food/snacks_spaghetti.dm
+++ b/code/modules/food&drinks/food/snacks_spaghetti.dm
@@ -2,6 +2,7 @@
/obj/item/weapon/reagent_containers/food/snacks/spaghetti
name = "spaghetti"
desc = "Now that's a nic'e pasta!"
+ icon = 'icons/obj/food/pizzaspaghetti.dmi'
icon_state = "spaghetti"
list_reagents = list("nutriment" = 1, "vitamin" = 1)
cooked_type = /obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti
@@ -10,6 +11,7 @@
/obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti
name = "boiled spaghetti"
desc = "A plain dish of noodles, this needs more ingredients."
+ icon = 'icons/obj/food/pizzaspaghetti.dmi'
icon_state = "spaghettiboiled"
trash = /obj/item/trash/plate
bonus_reagents = list("nutriment" = 2)
@@ -20,6 +22,7 @@
/obj/item/weapon/reagent_containers/food/snacks/pastatomato
name = "spaghetti"
desc = "Spaghetti and crushed tomatoes. Just like your abusive father used to make!"
+ icon = 'icons/obj/food/pizzaspaghetti.dmi'
icon_state = "pastatomato"
trash = /obj/item/trash/plate
bitesize = 4
@@ -30,6 +33,7 @@
/obj/item/weapon/reagent_containers/food/snacks/copypasta
name = "copypasta"
desc = "You probably shouldn't try this, you always hear people talking about how bad it is..."
+ icon = 'icons/obj/food/pizzaspaghetti.dmi'
icon_state = "copypasta"
trash = /obj/item/trash/plate
bitesize = 4
@@ -40,6 +44,7 @@
/obj/item/weapon/reagent_containers/food/snacks/meatballspaghetti
name = "spaghetti and meatballs"
desc = "Now that's a nic'e meatball!"
+ icon = 'icons/obj/food/pizzaspaghetti.dmi'
icon_state = "meatballspaghetti"
trash = /obj/item/trash/plate
bonus_reagents = list("nutriment" = 1, "vitamin" = 4)
@@ -49,8 +54,26 @@
/obj/item/weapon/reagent_containers/food/snacks/spesslaw
name = "spesslaw"
desc = "A lawyers favourite."
+ icon = 'icons/obj/food/pizzaspaghetti.dmi'
icon_state = "spesslaw"
trash = /obj/item/trash/plate
bonus_reagents = list("nutriment" = 1, "vitamin" = 6)
list_reagents = list("nutriment" = 8, "vitamin" = 6)
filling_color = "#F0E68C"
+
+/obj/item/weapon/reagent_containers/food/snacks/chowmein
+ name = "chow mein"
+ desc = "A nice mix of noodles and fried vegetables."
+ icon = 'icons/obj/food/pizzaspaghetti.dmi'
+ icon_state = "chowmein"
+ trash = /obj/item/trash/plate
+ bonus_reagents = list("nutriment" = 3, "vitamin" = 4)
+ list_reagents = list("nutriment" = 7, "vitamin" = 6)
+
+/obj/item/weapon/reagent_containers/food/snacks/beefnoodle
+ name = "beef noodle"
+ desc = "Nutritious, beefy and noodly."
+ icon = 'icons/obj/food/pizzaspaghetti.dmi'
+ icon_state = "beefnoodle"
+ trash = /obj/item/weapon/reagent_containers/glass/bowl
+ bonus_reagents = list("nutriment" = 5, "vitamin" = 6)
\ No newline at end of file
diff --git a/code/modules/food&drinks/kitchen machinery/gibber.dm b/code/modules/food&drinks/kitchen machinery/gibber.dm
index 640e9d9024a..36862c68452 100644
--- a/code/modules/food&drinks/kitchen machinery/gibber.dm
+++ b/code/modules/food&drinks/kitchen machinery/gibber.dm
@@ -136,16 +136,16 @@
var/sourcetotalreagents = src.occupant.reagents.total_volume
var/totalslabs = 3
- var/obj/item/weapon/reagent_containers/food/snacks/meat/human/allmeat[totalslabs]
+ var/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/allmeat[totalslabs]
if(ishuman(occupant))
var/mob/living/carbon/human/gibee = occupant
if(gibee.dna && gibee.dna.species)
typeofmeat = gibee.dna.species.meat
else
- typeofmeat = /obj/item/weapon/reagent_containers/food/snacks/meat/human
+ typeofmeat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human
for (var/i=1 to totalslabs)
- var/obj/item/weapon/reagent_containers/food/snacks/meat/human/newmeat = new typeofmeat
+ var/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/newmeat = new typeofmeat
newmeat.name = sourcename + newmeat.name
newmeat.subjectname = sourcename
newmeat.subjectjob = sourcejob
diff --git a/code/modules/food&drinks/kitchen machinery/juicer.dm b/code/modules/food&drinks/kitchen machinery/juicer.dm
index 3cf4bc60a2a..712dc0c970d 100644
--- a/code/modules/food&drinks/kitchen machinery/juicer.dm
+++ b/code/modules/food&drinks/kitchen machinery/juicer.dm
@@ -23,6 +23,8 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon = "watermelonjuice",
/obj/item/weapon/reagent_containers/food/snacks/watermelonslice = "watermelonjuice",
/obj/item/weapon/reagent_containers/food/snacks/grown/berries/poison = "poisonberryjuice",
+ /obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin = "pumpkinjuice",
+ /obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin = "blumpkinjuice",
)
/obj/machinery/juicer/New()
diff --git a/code/modules/food&drinks/kitchen machinery/processor.dm b/code/modules/food&drinks/kitchen machinery/processor.dm
index f34053de43c..32753bfb10a 100644
--- a/code/modules/food&drinks/kitchen machinery/processor.dm
+++ b/code/modules/food&drinks/kitchen machinery/processor.dm
@@ -19,15 +19,15 @@
var/input
var/output
var/time = 40
- proc/process(loc, what)
- if (src.output && loc)
- new src.output(loc)
- if (what)
- qdel(what) // Note to self: Make this safer
+/datum/food_processor_process/proc/process_food(loc, what)
+ if (src.output && loc)
+ new src.output(loc)
+ if (what)
+ qdel(what) // Note to self: Make this safer
/* objs */
/datum/food_processor_process/meat
- input = /obj/item/weapon/reagent_containers/food/snacks/meat
+ input = /obj/item/weapon/reagent_containers/food/snacks/meat/slab
output = /obj/item/weapon/reagent_containers/food/snacks/faggot
/datum/food_processor_process/potato
@@ -46,13 +46,25 @@
input = /obj/item/weapon/reagent_containers/food/snacks/doughslice
output = /obj/item/weapon/reagent_containers/food/snacks/spaghetti
+/datum/food_processor_process/corn
+ input = /obj/item/weapon/reagent_containers/food/snacks/grown/corn
+ output = /obj/item/weapon/reagent_containers/food/snacks/tortilla
+
+/datum/food_processor_process/parsnip
+ input = /obj/item/weapon/reagent_containers/food/snacks/grown/parsnip
+ output = /obj/item/weapon/reagent_containers/food/snacks/roastparsnip
+
+/datum/food_processor_process/sweetpotato
+ input = /obj/item/weapon/reagent_containers/food/snacks/grown/sweetpotato
+ output = /obj/item/weapon/reagent_containers/food/snacks/yakiimo
+
/* mobs */
-/datum/food_processor_process/mob/process(loc, what)
+/datum/food_processor_process/mob/process_food(loc, what)
..()
-/datum/food_processor_process/mob/slime/process(loc, what)
+/datum/food_processor_process/mob/slime/process_food(loc, what)
var/mob/living/simple_animal/slime/S = what
var/C = S.cores
if(S.stat != DEAD)
@@ -67,7 +79,7 @@
/datum/food_processor_process/mob/slime/input = /mob/living/simple_animal/slime
/datum/food_processor_process/mob/slime/output = null
-/datum/food_processor_process/mob/monkey/process(loc, what)
+/datum/food_processor_process/mob/monkey/process_food(loc, what)
var/mob/living/carbon/monkey/O = what
if (O.client) //grief-proof
O.loc = loc
@@ -154,7 +166,7 @@
playsound(src.loc, 'sound/machines/blender.ogg', 50, 1)
use_power(500)
sleep(P.time)
- P.process(src.loc, O)
+ P.process_food(src.loc, O)
src.processing = 0
src.visible_message("\the [src] finished processing.")
diff --git a/code/modules/food&drinks/recipes/drinks_recipes.dm b/code/modules/food&drinks/recipes/drinks_recipes.dm
index 2f23ceee03f..31baf3caefc 100644
--- a/code/modules/food&drinks/recipes/drinks_recipes.dm
+++ b/code/modules/food&drinks/recipes/drinks_recipes.dm
@@ -506,3 +506,52 @@
result = "thirteenloko"
required_reagents = list("vodka" = 1, "coffee" = 1, "limejuice" = 1)
result_amount = 3
+
+/datum/chemical_reaction/chocolatepudding
+ name = "Chocolate Pudding"
+ id = "chocolatepudding"
+ result = "chocolatepudding"
+ required_reagents = list("cocoa" = 5, "milk" = 5, "eggyolk" = 5)
+ result_amount = 20
+
+/datum/chemical_reaction/vanillapudding
+ name = "Vanilla Pudding"
+ id = "vanillapudding"
+ result = "vanillapudding"
+ required_reagents = list("vanilla" = 5, "milk" = 5, "eggyolk" = 5)
+ result_amount = 20
+
+/datum/chemical_reaction/cherryshake
+ name = "Cherry Shake"
+ id = "cherryshake"
+ result = "cherryshake"
+ required_reagents = list("cherryjelly" = 1, "ice" = 1, "cream" = 1)
+ result_amount = 3
+
+/datum/chemical_reaction/bluecherryshake
+ name = "Blue Cherry Shake"
+ id = "bluecherryshake"
+ result = "bluecherryshake"
+ required_reagents = list("bluecherryjelly" = 1, "ice" = 1, "cream" = 1)
+ result_amount = 3
+
+/datum/chemical_reaction/drunkenblumpkin
+ name = "Drunken Blumpkin"
+ id = "drunkenblumpkin"
+ result = "drunkenblumpkin"
+ required_reagents = list("blumpkinjuice" = 1, "irishcream" = 2, "ice" = 1)
+ result_amount = 4
+
+/datum/chemical_reaction/pumpkin_latte
+ name = "Pumpkin latte"
+ id = "pumpkin_latte"
+ result = "pumpkin_latte"
+ required_reagents = list("pumpkinjuice" = 5, "coffee" = 5, "cream" = 5)
+ result_amount = 15
+
+/datum/chemical_reaction/gibbfloats
+ name = "Gibb Floats"
+ id = "gibbfloats"
+ result = "gibbfloats"
+ required_reagents = list("dr_gibb" = 5, "ice" = 5, "cream" = 5)
+ result_amount = 15
\ No newline at end of file
diff --git a/code/modules/food&drinks/recipes/food_mixtures.dm b/code/modules/food&drinks/recipes/food_mixtures.dm
index 593dce5b8db..081049325e2 100644
--- a/code/modules/food&drinks/recipes/food_mixtures.dm
+++ b/code/modules/food&drinks/recipes/food_mixtures.dm
@@ -81,7 +81,7 @@
/datum/chemical_reaction/cheesewheel/on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
- new /obj/item/weapon/reagent_containers/food/snacks/cheesewheel(location)
+ new /obj/item/weapon/reagent_containers/food/snacks/store/cheesewheel(location)
return
/datum/chemical_reaction/synthmeat
@@ -94,7 +94,7 @@
/datum/chemical_reaction/synthmeat/on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
- new /obj/item/weapon/reagent_containers/food/snacks/meat/synthmeat(location)
+ new /obj/item/weapon/reagent_containers/food/snacks/meat/slab/synthmeat(location)
return
/datum/chemical_reaction/hot_ramen
@@ -157,3 +157,17 @@
id = "vegancakebatter"
required_reagents = list("soymilk" = 15, "flour" = 15, "sugar" = 5)
+/datum/chemical_reaction/ricebowl
+ name = "Rice Bowl"
+ id = "ricebowl"
+ result = null
+ required_reagents = list("rice" = 10, "water" = 10)
+ result_amount = 1
+ required_container = /obj/item/weapon/reagent_containers/glass/bowl
+ mix_message = "The rice absorbs the water."
+
+/datum/chemical_reaction/ricebowl/on_reaction(var/datum/reagents/holder)
+ var/obj/item/weapon/reagent_containers/food/snacks/S = new /obj/item/weapon/reagent_containers/food/snacks/salad/ricebowl
+ S.loc = get_turf(holder.my_atom)
+ if(holder && holder.my_atom)
+ qdel(holder.my_atom)
diff --git a/code/modules/food&drinks/recipes/tablecraft/recipes_bread.dm b/code/modules/food&drinks/recipes/tablecraft/recipes_bread.dm
index 9e820b3791c..8dd5494537d 100644
--- a/code/modules/food&drinks/recipes/tablecraft/recipes_bread.dm
+++ b/code/modules/food&drinks/recipes/tablecraft/recipes_bread.dm
@@ -7,7 +7,7 @@
name = "Meat bread"
reqs = list(
/obj/item/weapon/reagent_containers/food/snacks/store/bread/plain = 1,
- /obj/item/weapon/reagent_containers/food/snacks/cutlet/plain = 3,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/plain = 3,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 3
)
result = /obj/item/weapon/reagent_containers/food/snacks/store/bread/meat
@@ -16,7 +16,7 @@
name = "Xenomeat bread"
reqs = list(
/obj/item/weapon/reagent_containers/food/snacks/store/bread/plain = 1,
- /obj/item/weapon/reagent_containers/food/snacks/cutlet/xeno = 3,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/xeno = 3,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 3
)
result = /obj/item/weapon/reagent_containers/food/snacks/store/bread/xenomeat
@@ -25,7 +25,7 @@
name = "Spidermeat bread"
reqs = list(
/obj/item/weapon/reagent_containers/food/snacks/store/bread/plain = 1,
- /obj/item/weapon/reagent_containers/food/snacks/cutlet/spider = 3,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/spider = 3,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 3
)
result = /obj/item/weapon/reagent_containers/food/snacks/store/bread/spidermeat
@@ -58,3 +58,12 @@
)
result = /obj/item/weapon/reagent_containers/food/snacks/store/bread/creamcheese
+/datum/table_recipe/mimanabread
+ name = "Mimana bread"
+ reqs = list(
+ /datum/reagent/consumable/soymilk = 5,
+ /obj/item/weapon/reagent_containers/food/snacks/store/bread/plain = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/tofu = 3,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/mimana = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/store/bread/mimana
diff --git a/code/modules/food&drinks/recipes/tablecraft/recipes_burger.dm b/code/modules/food&drinks/recipes/tablecraft/recipes_burger.dm
index 53fea3217ec..feafb78594e 100644
--- a/code/modules/food&drinks/recipes/tablecraft/recipes_burger.dm
+++ b/code/modules/food&drinks/recipes/tablecraft/recipes_burger.dm
@@ -8,14 +8,14 @@
name = "Human burger"
reqs = list(
/obj/item/weapon/reagent_containers/food/snacks/bun = 1,
- /obj/item/weapon/reagent_containers/food/snacks/meatsteak/plain/human = 1
+ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain/human = 1
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/human
/datum/table_recipe/burger
name = "Burger"
reqs = list(
- /obj/item/weapon/reagent_containers/food/snacks/meatsteak/plain = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 1,
/obj/item/weapon/reagent_containers/food/snacks/bun = 1
)
@@ -40,7 +40,7 @@
/datum/table_recipe/xenoburger
name = "Xeno burger"
reqs = list(
- /obj/item/weapon/reagent_containers/food/snacks/meatsteak/xeno = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/xeno = 1,
/obj/item/weapon/reagent_containers/food/snacks/bun = 1
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/xeno
@@ -48,7 +48,7 @@
datum/table_recipe/bearger
name = "Bearger"
reqs = list(
- /obj/item/weapon/reagent_containers/food/snacks/meatsteak/bear = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/bear = 1,
/obj/item/weapon/reagent_containers/food/snacks/bun = 1
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/bearger
@@ -96,7 +96,7 @@ datum/table_recipe/bearger
/datum/table_recipe/redburger
name = "Red burger"
reqs = list(
- /obj/item/weapon/reagent_containers/food/snacks/meatsteak/plain = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 1,
/obj/item/toy/crayon/red = 1,
/obj/item/weapon/reagent_containers/food/snacks/bun = 1
)
@@ -105,7 +105,7 @@ datum/table_recipe/bearger
/datum/table_recipe/orangeburger
name = "Orange burger"
reqs = list(
- /obj/item/weapon/reagent_containers/food/snacks/meatsteak/plain = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 1,
/obj/item/toy/crayon/orange = 1,
/obj/item/weapon/reagent_containers/food/snacks/bun = 1
)
@@ -114,7 +114,7 @@ datum/table_recipe/bearger
/datum/table_recipe/yellowburger
name = "Yellow burger"
reqs = list(
- /obj/item/weapon/reagent_containers/food/snacks/meatsteak/plain = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 1,
/obj/item/toy/crayon/yellow = 1,
/obj/item/weapon/reagent_containers/food/snacks/bun = 1
)
@@ -123,7 +123,7 @@ datum/table_recipe/bearger
/datum/table_recipe/greenburger
name = "Green burger"
reqs = list(
- /obj/item/weapon/reagent_containers/food/snacks/meatsteak/plain = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 1,
/obj/item/toy/crayon/green = 1,
/obj/item/weapon/reagent_containers/food/snacks/bun = 1
)
@@ -132,7 +132,7 @@ datum/table_recipe/bearger
/datum/table_recipe/blueburger
name = "Blue burger"
reqs = list(
- /obj/item/weapon/reagent_containers/food/snacks/meatsteak/plain = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 1,
/obj/item/toy/crayon/blue = 1,
/obj/item/weapon/reagent_containers/food/snacks/bun = 1
)
@@ -141,7 +141,7 @@ datum/table_recipe/bearger
/datum/table_recipe/purpleburger
name = "Purple burger"
reqs = list(
- /obj/item/weapon/reagent_containers/food/snacks/meatsteak/plain = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 1,
/obj/item/toy/crayon/purple = 1,
/obj/item/weapon/reagent_containers/food/snacks/bun = 1
)
@@ -165,7 +165,7 @@ datum/table_recipe/bearger
/datum/table_recipe/bigbiteburger
name = "Big bite burger"
reqs = list(
- /obj/item/weapon/reagent_containers/food/snacks/meatsteak/plain = 3,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 3,
/obj/item/weapon/reagent_containers/food/snacks/bun = 1
)
result = /obj/item/weapon/reagent_containers/food/snacks/burger/bigbite
@@ -175,7 +175,7 @@ datum/table_recipe/bearger
reqs = list(
/datum/reagent/consumable/sodiumchloride = 5,
/datum/reagent/consumable/blackpepper = 5,
- /obj/item/weapon/reagent_containers/food/snacks/meatsteak/plain = 5,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 5,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 4,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 3,
/obj/item/weapon/reagent_containers/food/snacks/boiledegg = 2,
@@ -198,4 +198,20 @@ datum/table_recipe/bearger
/datum/reagent/consumable/cherryjelly = 5,
/obj/item/weapon/reagent_containers/food/snacks/bun = 1
)
- result = /obj/item/weapon/reagent_containers/food/snacks/burger/jelly/cherry
\ No newline at end of file
+ result = /obj/item/weapon/reagent_containers/food/snacks/burger/jelly/cherry
+
+/datum/table_recipe/fivealarmburger
+ name = "Five alarm burger"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili = 2,
+ /obj/item/weapon/reagent_containers/food/snacks/bun = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/burger/fivealarm
+
+/datum/table_recipe/ratburger
+ name = "Rat burger"
+ reqs = list(
+ /obj/item/trash/deadmouse = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/bun = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/burger/rat
\ No newline at end of file
diff --git a/code/modules/food&drinks/recipes/tablecraft/recipes_cake.dm b/code/modules/food&drinks/recipes/tablecraft/recipes_cake.dm
index e9fbbdacc7a..c5615809633 100644
--- a/code/modules/food&drinks/recipes/tablecraft/recipes_cake.dm
+++ b/code/modules/food&drinks/recipes/tablecraft/recipes_cake.dm
@@ -81,4 +81,12 @@
/obj/item/slime_extract = 1,
/obj/item/weapon/reagent_containers/food/snacks/store/cake/plain = 1
)
- result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/slimecake
\ No newline at end of file
+ result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/slimecake
+
+/datum/table_recipe/pumpkinspicecake
+ name = "Pumpkin spice cake"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/food/snacks/store/cake/plain = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin = 2
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/store/cake/pumpkinspice
\ No newline at end of file
diff --git a/code/modules/food&drinks/recipes/tablecraft/recipes_egg.dm b/code/modules/food&drinks/recipes/tablecraft/recipes_egg.dm
index 98dee93aed5..4a0dbc40a07 100644
--- a/code/modules/food&drinks/recipes/tablecraft/recipes_egg.dm
+++ b/code/modules/food&drinks/recipes/tablecraft/recipes_egg.dm
@@ -32,7 +32,7 @@
name = "Eggs benedict"
reqs = list(
/obj/item/weapon/reagent_containers/food/snacks/friedegg = 1,
- /obj/item/weapon/reagent_containers/food/snacks/meatsteak = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/steak = 1,
/obj/item/weapon/reagent_containers/food/snacks/breadslice/plain = 1,
)
result = /obj/item/weapon/reagent_containers/food/snacks/benedict
diff --git a/code/modules/food&drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food&drinks/recipes/tablecraft/recipes_meat.dm
index d0855fabe69..9bebc4b54d8 100644
--- a/code/modules/food&drinks/recipes/tablecraft/recipes_meat.dm
+++ b/code/modules/food&drinks/recipes/tablecraft/recipes_meat.dm
@@ -6,7 +6,7 @@
name = "Human kebab"
reqs = list(
/obj/item/stack/rods = 1,
- /obj/item/weapon/reagent_containers/food/snacks/meatsteak/plain/human = 2
+ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain/human = 2
)
result = /obj/item/weapon/reagent_containers/food/snacks/kebab/human
@@ -14,7 +14,7 @@
name = "Kebab"
reqs = list(
/obj/item/stack/rods = 1,
- /obj/item/weapon/reagent_containers/food/snacks/meatsteak = 2
+ /obj/item/weapon/reagent_containers/food/snacks/meat/steak = 2
)
result = /obj/item/weapon/reagent_containers/food/snacks/kebab/monkey
@@ -72,7 +72,7 @@
reqs = list(
/datum/reagent/consumable/sodiumchloride = 1,
/obj/item/weapon/reagent_containers/food/snacks/spidereggs = 1,
- /obj/item/weapon/reagent_containers/food/snacks/cutlet/spider = 2
+ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/spider = 2
)
result = /obj/item/weapon/reagent_containers/food/snacks/spidereggsham
@@ -82,7 +82,7 @@
name = "Corned beef"
reqs = list(
/datum/reagent/consumable/sodiumchloride = 5,
- /obj/item/weapon/reagent_containers/food/snacks/meatsteak = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/steak = 1,
/obj/item/weapon/reagent_containers/food/snacks/grown/cabbage = 2
)
result = /obj/item/weapon/reagent_containers/food/snacks/cornedbeef
@@ -91,25 +91,25 @@
name = "Filet migrawr"
reqs = list(
/datum/reagent/consumable/ethanol/manly_dorf = 5,
- /obj/item/weapon/reagent_containers/food/snacks/meatsteak/bear = 1,
- /obj/item/weapon/lighter/grayscale
+ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/bear = 1,
)
+ tools = list(/obj/item/weapon/lighter)
result = /obj/item/weapon/reagent_containers/food/snacks/bearsteak
/datum/table_recipe/wingfangchu
name = "Wingfangchu"
reqs = list(
/datum/reagent/consumable/soysauce = 5,
- /obj/item/weapon/reagent_containers/food/snacks/cutlet/xeno = 2
+ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/xeno = 2
)
result = /obj/item/weapon/reagent_containers/food/snacks/wingfangchu
/datum/table_recipe/enchiladas
name = "Enchiladas"
reqs = list(
- /obj/item/weapon/reagent_containers/food/snacks/cutlet = 2,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 2,
/obj/item/weapon/reagent_containers/food/snacks/grown/chili = 2,
- /obj/item/weapon/reagent_containers/food/snacks/grown/corn = 1
+ /obj/item/weapon/reagent_containers/food/snacks/tortilla = 2
)
result = /obj/item/weapon/reagent_containers/food/snacks/enchiladas
@@ -126,6 +126,6 @@
name = "Sausage"
reqs = list(
/obj/item/weapon/reagent_containers/food/snacks/faggot = 1,
- /obj/item/weapon/reagent_containers/food/snacks/cutlet = 2
+ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 2
)
result = /obj/item/weapon/reagent_containers/food/snacks/sausage
diff --git a/code/modules/food&drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food&drinks/recipes/tablecraft/recipes_misc.dm
index f185b8e5cba..77389e00239 100644
--- a/code/modules/food&drinks/recipes/tablecraft/recipes_misc.dm
+++ b/code/modules/food&drinks/recipes/tablecraft/recipes_misc.dm
@@ -50,7 +50,7 @@
/obj/item/weapon/reagent_containers/food/snacks/friedegg = 1,
/obj/item/weapon/reagent_containers/food/snacks/grown/cabbage = 1,
)
- result = /obj/item/weapon/reagent_containers/food/snacks/wrap
+ result = /obj/item/weapon/reagent_containers/food/snacks/eggwrap
/datum/table_recipe/beans
name = "Beans"
@@ -103,3 +103,115 @@
)
result = /obj/item/weapon/reagent_containers/food/snacks/twobread
+/datum/table_recipe/burrito
+ name ="Burrito"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/food/snacks/tortilla = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = 2
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/burrito
+
+/datum/table_recipe/cheesyburrito
+ name ="Cheesy burrito"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/food/snacks/tortilla = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 2,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/cheesyburrito
+
+/datum/table_recipe/carneburrito
+ name ="Carne de asada burrito"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/food/snacks/tortilla = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 2,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/carneburrito
+
+/datum/table_recipe/fuegoburrito
+ name ="Fuego plasma burrito"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/food/snacks/tortilla = 1,,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chili = 2,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/fuegoburrito
+
+/datum/table_recipe/melonfruitbowl
+ name ="Melon fruit bowl"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/food/snacks/grown/watermelon = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/apple = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lemon = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/melonfruitbowl
+
+/datum/table_recipe/spacefreezy
+ name ="Space freezy"
+ reqs = list(
+ /datum/reagent/consumable/bluecherryjelly = 5,
+ /datum/reagent/consumable/spacemountainwind = 15,
+ /obj/item/weapon/reagent_containers/food/snacks/icecream = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/spacefreezy
+
+/datum/table_recipe/sundae
+ name ="Sundae"
+ reqs = list(
+ /datum/reagent/consumable/cream = 5,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/cherries = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/icecream = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sundae
+
+/datum/table_recipe/honkdae
+ name ="Honkdae"
+ reqs = list(
+ /datum/reagent/consumable/cream = 5,
+ /obj/item/clothing/mask/gas/clown_hat = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/cherries = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/banana = 2,
+ /obj/item/weapon/reagent_containers/food/snacks/icecream = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/honkdae
+
+/datum/table_recipe/nachos
+ name ="Nachos"
+ reqs = list(
+ /datum/reagent/consumable/sodiumchloride = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/tortilla = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/nachos
+
+/datum/table_recipe/cheesynachos
+ name ="Cheesy nachos"
+ reqs = list(
+ /datum/reagent/consumable/sodiumchloride = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/tortilla = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/cheesynachos
+
+/datum/table_recipe/cubannachos
+ name ="Cuban nachos"
+ reqs = list(
+ /datum/reagent/consumable/ketchup = 5,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/chili = 2,
+ /obj/item/weapon/reagent_containers/food/snacks/tortilla = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/cubannachos
+
+/datum/table_recipe/melonkeg
+ name ="Melon keg"
+ reqs = list(
+ /datum/reagent/consumable/ethanol/vodka = 25,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/holymelon = 1,
+ /obj/item/weapon/reagent_containers/food/drinks/bottle/vodka = 1
+ )
+ parts = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka = 1)
+ result = /obj/item/weapon/reagent_containers/food/snacks/melonkeg
\ No newline at end of file
diff --git a/code/modules/food&drinks/recipes/tablecraft/recipes_pastry.dm b/code/modules/food&drinks/recipes/tablecraft/recipes_pastry.dm
index aba37404d2f..7742687f49c 100644
--- a/code/modules/food&drinks/recipes/tablecraft/recipes_pastry.dm
+++ b/code/modules/food&drinks/recipes/tablecraft/recipes_pastry.dm
@@ -68,7 +68,7 @@
name = "Soylent green"
reqs = list(
/obj/item/weapon/reagent_containers/food/snacks/pastrybase = 2,
- /obj/item/weapon/reagent_containers/food/snacks/meat/human = 2
+ /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human = 2
)
result = /obj/item/weapon/reagent_containers/food/snacks/soylentgreen
@@ -210,3 +210,36 @@
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar = 1
)
result = /obj/item/weapon/reagent_containers/food/snacks/chococornet
+
+/datum/table_recipe/oatmealcookie
+ name = "Oatmeal cookie"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/oat = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/oatmealcookie
+
+/datum/table_recipe/raisincookie
+ name = "Raisin cookie"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/food/snacks/no_raisin = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/oat = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/raisincookie
+
+/datum/table_recipe/cherrycupcake
+ name = "Cherry cupcake"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/cherries = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/cherrycupcake
+
+/datum/table_recipe/bluecherrycupcake
+ name = "Blue cherry cupcake"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/food/snacks/pastrybase = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/bluecherries = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/bluecherrycupcake
\ No newline at end of file
diff --git a/code/modules/food&drinks/recipes/tablecraft/recipes_pie.dm b/code/modules/food&drinks/recipes/tablecraft/recipes_pie.dm
index 56bd20f6b4b..ea19ac642bc 100644
--- a/code/modules/food&drinks/recipes/tablecraft/recipes_pie.dm
+++ b/code/modules/food&drinks/recipes/tablecraft/recipes_pie.dm
@@ -18,7 +18,7 @@
/datum/reagent/consumable/blackpepper = 1,
/datum/reagent/consumable/sodiumchloride = 1,
/obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1,
- /obj/item/weapon/reagent_containers/food/snacks/meatsteak/plain = 1
+ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain = 1
)
result = /obj/item/weapon/reagent_containers/food/snacks/pie/meatpie
@@ -34,7 +34,7 @@
name = "Xeno pie"
reqs = list(
/obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1,
- /obj/item/weapon/reagent_containers/food/snacks/cutlet/xeno = 1
+ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/xeno = 1
)
result = /obj/item/weapon/reagent_containers/food/snacks/pie/xemeatpie
@@ -59,7 +59,7 @@
reqs = list(
/obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1,
/obj/item/weapon/reagent_containers/food/snacks/grown/berries = 1,
- /obj/item/weapon/reagent_containers/food/snacks/meatsteak/bear = 1
+ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/bear = 1
)
result = /obj/item/weapon/reagent_containers/food/snacks/pie/bearypie
@@ -95,7 +95,7 @@
/obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1,
/obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin = 1
)
- result = /obj/item/weapon/reagent_containers/food/snacks/pumpkinpie
+ result = /obj/item/weapon/reagent_containers/food/snacks/pie/pumpkinpie
/datum/table_recipe/goldenappletart
name = "Golden apple tart"
@@ -107,3 +107,29 @@
)
result = /obj/item/weapon/reagent_containers/food/snacks/pie/appletart
+/datum/table_recipe/blumpkinpie
+ name = "Blumpkin pie"
+ reqs = list(
+ /datum/reagent/consumable/milk = 5,
+ /datum/reagent/consumable/sugar = 5,
+ /obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/pie/blumpkinpie
+
+/datum/table_recipe/dulcedebatata
+ name = "Dulce de batata"
+ reqs = list(
+ /datum/reagent/consumable/vanilla = 5,
+ /datum/reagent/water = 5,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/sweetpotato = 2
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/pie/dulcedebatata
+
+/datum/table_recipe/frostypie
+ name = "Frosty pie"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/food/snacks/pie/plain = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/bluecherries = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/pie/frostypie
\ No newline at end of file
diff --git a/code/modules/food&drinks/recipes/tablecraft/recipes_pizza.dm b/code/modules/food&drinks/recipes/tablecraft/recipes_pizza.dm
index ea7273b4514..66702272f7b 100644
--- a/code/modules/food&drinks/recipes/tablecraft/recipes_pizza.dm
+++ b/code/modules/food&drinks/recipes/tablecraft/recipes_pizza.dm
@@ -16,11 +16,11 @@
name = "Meat pizza"
reqs = list(
/obj/item/weapon/reagent_containers/food/snacks/pizzabread = 1,
- /obj/item/weapon/reagent_containers/food/snacks/cutlet = 4,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 4,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1
)
- result = /obj/item/weapon/reagent_containers/food/snacks/pizza/meatpizza
+ result = /obj/item/weapon/reagent_containers/food/snacks/pizza/meat
/datum/table_recipe/mushroompizza
name = "Mushroom pizza"
@@ -28,7 +28,7 @@
/obj/item/weapon/reagent_containers/food/snacks/pizzabread = 1,
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom = 5
)
- result = /obj/item/weapon/reagent_containers/food/snacks/pizza/mushroompizza
+ result = /obj/item/weapon/reagent_containers/food/snacks/pizza/mushroom
/datum/table_recipe/vegetablepizza
name = "Vegetable pizza"
@@ -39,6 +39,34 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/corn = 1,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1
)
- result = /obj/item/weapon/reagent_containers/food/snacks/pizza/vegetablepizza
+ result = /obj/item/weapon/reagent_containers/food/snacks/pizza/vegetable
+/datum/table_recipe/donpocketpizza
+ name = "Donkpocket pizza"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/food/snacks/pizzabread = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/donkpocket/warm = 3,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/pizza/donkpocket
+/datum/table_recipe/dankpizza
+ name = "Dank pizza"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/food/snacks/pizzabread = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris = 3,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/pizza/dank
+
+/datum/table_recipe/sassysagepizza
+ name = "Sassysage pizza"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/food/snacks/pizzabread = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/faggot = 3,
+ /obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/pizza/sassysage
\ No newline at end of file
diff --git a/code/modules/food&drinks/recipes/tablecraft/recipes_salad.dm b/code/modules/food&drinks/recipes/tablecraft/recipes_salad.dm
index 3121f865b81..900b636be07 100644
--- a/code/modules/food&drinks/recipes/tablecraft/recipes_salad.dm
+++ b/code/modules/food&drinks/recipes/tablecraft/recipes_salad.dm
@@ -42,3 +42,74 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1
)
result = /obj/item/weapon/reagent_containers/food/snacks/soup/monkeysdelight
+
+/datum/table_recipe/oatmeal
+ name = "Oatmeal"
+ reqs = list(
+ /datum/reagent/consumable/milk = 10,
+ /obj/item/weapon/reagent_containers/glass/bowl = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/oat = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/salad/oatmeal
+
+/datum/table_recipe/fruitsalad
+ name = "Fruit salad"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/glass/bowl = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/apple = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/grapes = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/watermelonslice = 2
+
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/salad/fruit
+
+/datum/table_recipe/junglesalad
+ name = "Jungle salad"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/glass/bowl = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/apple = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/grapes = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/banana = 2,
+ /obj/item/weapon/reagent_containers/food/snacks/watermelonslice = 2
+
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/salad/jungle
+
+/datum/table_recipe/citrusdelight
+ name = "Citrus delight"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/glass/bowl = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lime = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/lemon = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange = 1
+
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/salad/citrusdelight
+
+/datum/table_recipe/ricepork
+ name = "Rice and pork"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/food/snacks/salad/boiledrice = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 2
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/salad/ricepork
+
+/datum/table_recipe/eggbowl
+ name = "Egg bowl"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/food/snacks/salad/boiledrice = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/boiledegg = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/carrot = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/corn = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/salad/eggbowl
+
+/datum/table_recipe/ricepudding
+ name = "Rice pudding"
+ reqs = list(
+ /datum/reagent/consumable/milk = 5,
+ /datum/reagent/consumable/sugar = 5,
+ /obj/item/weapon/reagent_containers/food/snacks/salad/boiledrice = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/salad/ricepudding
diff --git a/code/modules/food&drinks/recipes/tablecraft/recipes_sandwich.dm b/code/modules/food&drinks/recipes/tablecraft/recipes_sandwich.dm
index 57e1a1f6614..e95748af722 100644
--- a/code/modules/food&drinks/recipes/tablecraft/recipes_sandwich.dm
+++ b/code/modules/food&drinks/recipes/tablecraft/recipes_sandwich.dm
@@ -10,7 +10,7 @@
name = "Sandwich"
reqs = list(
/obj/item/weapon/reagent_containers/food/snacks/breadslice/plain = 2,
- /obj/item/weapon/reagent_containers/food/snacks/meatsteak = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/steak = 1,
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge = 1
)
result = /obj/item/weapon/reagent_containers/food/snacks/sandwich
diff --git a/code/modules/food&drinks/recipes/tablecraft/recipes_soup.dm b/code/modules/food&drinks/recipes/tablecraft/recipes_soup.dm
index dbbb2233035..06721fd3430 100644
--- a/code/modules/food&drinks/recipes/tablecraft/recipes_soup.dm
+++ b/code/modules/food&drinks/recipes/tablecraft/recipes_soup.dm
@@ -49,7 +49,7 @@
name = "Hot chili"
reqs = list(
/obj/item/weapon/reagent_containers/glass/bowl = 1,
- /obj/item/weapon/reagent_containers/food/snacks/cutlet = 2,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 2,
/obj/item/weapon/reagent_containers/food/snacks/grown/chili = 1,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1
)
@@ -59,7 +59,7 @@
name = "Cold chili"
reqs = list(
/obj/item/weapon/reagent_containers/glass/bowl = 1,
- /obj/item/weapon/reagent_containers/food/snacks/cutlet = 2,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 2,
/obj/item/weapon/reagent_containers/food/snacks/grown/icepepper = 1,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1
)
@@ -150,7 +150,7 @@
/datum/reagent/water = 10,
/obj/item/weapon/reagent_containers/glass/bowl = 1,
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato = 1,
- /obj/item/weapon/reagent_containers/food/snacks/cutlet = 3,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 3,
/obj/item/weapon/reagent_containers/food/snacks/grown/potato = 1,
/obj/item/weapon/reagent_containers/food/snacks/grown/carrot = 1,
/obj/item/weapon/reagent_containers/food/snacks/grown/eggplant = 1,
@@ -176,5 +176,22 @@
)
result = /obj/item/weapon/reagent_containers/food/snacks/soup/amanitajelly
+/datum/table_recipe/sweetpotatosoup
+ name = "Sweet potato soup"
+ reqs = list(
+ /datum/reagent/water = 10,
+ /datum/reagent/consumable/sugar = 5,
+ /obj/item/weapon/reagent_containers/glass/bowl = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/sweetpotato = 2
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/soup/sweetpotato
-
+/datum/table_recipe/redbeetsoup
+ name = "Red beet soup"
+ reqs = list(
+ /datum/reagent/water = 10,
+ /obj/item/weapon/reagent_containers/glass/bowl = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/redbeet = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/soup/beet/red
diff --git a/code/modules/food&drinks/recipes/tablecraft/recipes_spaghetti.dm b/code/modules/food&drinks/recipes/tablecraft/recipes_spaghetti.dm
index c33b2cd7a5b..a23c2b09c2d 100644
--- a/code/modules/food&drinks/recipes/tablecraft/recipes_spaghetti.dm
+++ b/code/modules/food&drinks/recipes/tablecraft/recipes_spaghetti.dm
@@ -34,4 +34,22 @@
)
result = /obj/item/weapon/reagent_containers/food/snacks/spesslaw
+/datum/table_recipe/beefnoodle
+ name = "Beef noodle"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/glass/bowl = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 2,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/beefnoodle
+/datum/table_recipe/chowmein
+ name = "Chowmein"
+ reqs = list(
+ /obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet = 1,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage = 2,
+ /obj/item/weapon/reagent_containers/food/snacks/grown/carrot = 1
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/chowmein
\ No newline at end of file
diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm
index 50190ce4e67..4aa5c710d8f 100644
--- a/code/modules/holiday/holidays.dm
+++ b/code/modules/holiday/holidays.dm
@@ -71,6 +71,15 @@
begin_month = FEBRUARY
end_day = 15 //1 day extra
+
+/datum/holiday/birthday
+ name = "Birthday of Space Station 13"
+ begin_day = 16
+ begin_month = FEBRUARY
+
+/datum/holiday/birthday/greet()
+ return "Say 'Happy Birthday' to Space Station 13, first publicly playable on February 16th, 2003!"
+
/datum/holiday/random_kindness
name = "Random Acts of Kindness Day"
begin_day = 17
@@ -93,7 +102,7 @@
name = APRIL_FOOLS
begin_day = 1
begin_month = APRIL
- end_day = 8 //7 days extra so everyone can enjoy the festivities
+ end_day = 2 //1 day extra only because this shit just gets annoying fast
/datum/holiday/fourtwenty
name = "Four-Twenty"
diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm
index 51a9e433c6f..200846f6c52 100644
--- a/code/modules/hydroponics/grown.dm
+++ b/code/modules/hydroponics/grown.dm
@@ -466,6 +466,8 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/holymelon/add_juice()
if(..())
+ reagents.add_reagent("nutriment", 1 + round((potency / 15), 1))
+ reagents.add_reagent("vitamin", 1 + round((potency / 25), 1))
reagents.add_reagent("holywater", 1 + round((potency / 6), 1))
bitesize = 1 + round(reagents.total_volume / 2, 1)
@@ -493,7 +495,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin
seed = /obj/item/seeds/blumpkinseed
name = "blumpkin"
- desc = "When you're making a mess this blumpkin's there to clean you up."
+ desc = "The pumpkin's toxic sibling."
icon_state = "blumpkin"
filling_color = "#87CEFA"
diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm
index 283110de387..843d2178793 100644
--- a/code/modules/mining/equipment_locker.dm
+++ b/code/modules/mining/equipment_locker.dm
@@ -244,7 +244,6 @@
new /datum/data/mining_equipment("GAR mesons", /obj/item/clothing/glasses/meson/gar, 500),
new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/weapon/gun/energy/kinetic_accelerator, 750),
new /datum/data/mining_equipment("Resonator", /obj/item/weapon/resonator, 800),
- new /datum/data/mining_equipment("Plasma Cutter", /obj/item/weapon/gun/energy/plasmacutter/charged, 950),
new /datum/data/mining_equipment("Lazarus Injector", /obj/item/weapon/lazarus_injector, 1000),
new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/weapon/pickaxe/diamond, 1200),
new /datum/data/mining_equipment("Jetpack", /obj/item/weapon/tank/jetpack/carbondioxide/mining, 1500),
@@ -345,7 +344,7 @@
..()
/obj/machinery/mineral/equipment_vendor/proc/RedeemVoucher(obj/item/weapon/mining_voucher/voucher, mob/redeemer)
- var/selection = input(redeemer, "Pick your equipment", "Mining Voucher Redemption") as null|anything in list("Mining Drill", "Kinetic Accelerator", "Plasma Cutter", "Resonator", "Mining Drone", "Advanced Scanner")
+ var/selection = input(redeemer, "Pick your equipment", "Mining Voucher Redemption") as null|anything in list("Mining Drill", "Kinetic Accelerator", "Resonator", "Mining Drone", "Advanced Scanner")
if(!selection || !Adjacent(redeemer) || voucher.gc_destroyed || voucher.loc != redeemer)
return
switch(selection)
@@ -354,12 +353,8 @@
new /obj/item/weapon/stock_parts/cell/high(src.loc)
if("Kinetic Accelerator")
new /obj/item/weapon/gun/energy/kinetic_accelerator(src.loc)
- new /obj/item/weapon/screwdriver(src.loc)
- if("Plasma Cutter")
- new /obj/item/weapon/gun/energy/plasmacutter/charged(src.loc)
if("Resonator")
new /obj/item/weapon/resonator(src.loc)
- new /obj/item/weapon/screwdriver(src.loc)
if("Mining Drone")
new /mob/living/simple_animal/hostile/mining_drone(src.loc)
new /obj/item/weapon/weldingtool/hugetank(src.loc)
@@ -486,36 +481,23 @@
var/fieldlimit = 3
/obj/item/weapon/resonator/proc/CreateResonance(var/target, var/creator)
+ var/turf/T = get_turf(target)
+ if(locate(/obj/effect/resonance) in T)
+ return
if(fieldsactive < fieldlimit)
playsound(src,'sound/weapons/resonator_fire.ogg',50,1)
- new /obj/effect/resonance(get_turf(target), creator, burst_time)
+ new /obj/effect/resonance(T, creator, burst_time)
fieldsactive++
- spawn(50)
+ spawn(burst_time)
fieldsactive--
/obj/item/weapon/resonator/attack_self(mob/user as mob)
- CreateResonance(src, user)
- ..()
-
-/obj/item/weapon/resonator/attackby(obj/item/weapon/W as obj, mob/user as mob)
- if(istype(W, /obj/item/weapon/screwdriver))
- if(burst_time == 50)
- burst_time = 30
- user << "You set the resonator's fields to detonate after 3 seconds."
- else
- burst_time = 50
- user << "You set the resonator's fields to detonate after 5 seconds."
-
- else if(istype(W, /obj/item/stack))
- var/obj/item/stack/S = W
-
- if(istype(S, /obj/item/stack/sheet/mineral/diamond))
- if(fieldlimit < 8)
- fieldlimit++
- user << "You upgrade [src]'s field generator with diamonds."
- S.use(1)
- else
- user << "The [src.name]'s field generator is at the limit."
+ if(burst_time == 50)
+ burst_time = 30
+ user << "You set the resonator's fields to detonate after 3 seconds."
+ else
+ burst_time = 50
+ user << "You set the resonator's fields to detonate after 5 seconds."
/obj/item/weapon/resonator/afterattack(atom/target, mob/user, proximity_flag)
if(proximity_flag)
@@ -574,7 +556,7 @@
/**********************Mining drone**********************/
-/mob/living/simple_animal/hostile/mining_drone/
+/mob/living/simple_animal/hostile/mining_drone
name = "nanotrasen minebot"
desc = "The instructions printed on the side read: This is a small robot used to support miners, can be set to search and collect loose ore, or to help fend off wildlife. A mining scanner can instruct it to drop loose ore. Field repairs can be done with a welder."
icon = 'icons/obj/aibots.dmi'
diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm
index e8cd9098353..184a299b0d8 100644
--- a/code/modules/mining/mine_items.dm
+++ b/code/modules/mining/mine_items.dm
@@ -11,12 +11,7 @@
/obj/structure/closet/secure_closet/miner
name = "miner's equipment"
- icon_state = "miningsec1"
- icon_closed = "miningsec"
- icon_locked = "miningsec1"
- icon_opened = "miningsecopen"
- icon_broken = "miningsecbroken"
- icon_off = "miningsecoff"
+ icon_state = "mining"
req_access = list(access_mining)
/obj/structure/closet/secure_closet/miner/New()
@@ -84,7 +79,7 @@
hitsound = 'sound/weapons/drill.ogg'
origin_tech = "materials=2;powerstorage=3;engineering=2"
desc = "An electric mining drill for the especially scrawny."
- var/drillcost = 50 //80 mineral walls by default
+ var/drillcost = 15 //666 mineral walls by default
var/obj/item/weapon/stock_parts/cell/high/bcell = null
/obj/item/weapon/pickaxe/drill/New() //this one starts with a cell pre-installed.
@@ -110,16 +105,18 @@
bcell = W
user << "You install a cell in [src]."
update_icon()
- else if(istype(W, /obj/item/weapon/screwdriver))
- if(bcell)
- bcell.updateicon()
- bcell.loc = get_turf(src.loc)
- bcell = null
- user << "You remove the cell from [src]."
- update_icon()
- return
+ else
..()
- return
+
+/obj/item/weapon/pickaxe/drill/attack_self(mob/user)
+ if(bcell)
+ bcell.updateicon()
+ bcell.loc = get_turf(src.loc)
+ bcell = null
+ user << "You remove the cell from [src]."
+ update_icon()
+ else
+ user << "There is no cell in [src]."
/obj/item/weapon/pickaxe/drill/examine(mob/user)
..()
@@ -147,21 +144,21 @@
/obj/item/weapon/pickaxe/drill/diamonddrill
name = "diamond-tipped mining drill"
icon_state = "diamonddrill"
- digspeed = 8 //it's a fast drill with a relatively low power cost. what more could you ask for?
+ digspeed = 10 //it's a fast drill with a relatively low power cost. what more could you ask for?
origin_tech = "materials=6;powerstorage=4;engineering=5"
desc = "Yours is the drill that will pierce the heavens!"
- drillcost = 75 //66 mineral walls by default, but very quickly
+ drillcost = 25 //400 mineral walls by default, but very quickly
/obj/item/weapon/pickaxe/drill/jackhammer
name = "sonic jackhammer"
icon_state = "jackhammer"
item_state = "jackhammer"
- digspeed = 4 //the epitome of powertools. high power consumption, extremely fast mining, laughs at puny walls
+ digspeed = 5 //the epitome of powertools. high power consumption, extremely fast mining, laughs at puny walls
origin_tech = "materials=3;powerstorage=2;engineering=2"
digsound = list('sound/weapons/sonic_jackhammer.ogg')
hitsound = 'sound/weapons/sonic_jackhammer.ogg'
desc = "Cracks rocks with sonic blasts, and doubles as a demolition power tool for smashing walls."
- drillcost = 100
+ drillcost = 30 //333 mineral walls by default, but very quickly
/*****************************Shovel********************************/
@@ -195,8 +192,4 @@
/obj/structure/closet/crate/miningcar
desc = "A mining car. This one doesn't work on rails, but has to be dragged."
name = "Mining car (not for rails)"
- icon = 'icons/obj/storage.dmi'
- icon_state = "miningcar"
- density = 1
- icon_opened = "miningcaropen"
- icon_closed = "miningcar"
+ icon_crate = "miningcar"
diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm
index da83251d5ce..86cd8abf179 100644
--- a/code/modules/mob/living/carbon/alien/alien.dm
+++ b/code/modules/mob/living/carbon/alien/alien.dm
@@ -12,6 +12,7 @@
ventcrawler = 2
languages = ALIEN
verb_say = "hisses"
+ lying_pixel_offset = 0
var/nightvision = 1
var/storedPlasma = 250
var/max_plasma = 500
@@ -27,12 +28,13 @@
var/heat_protection = 0.5
var/leaping = 0
+ var/list/obj/effect/proc_holder/alien/abilities = list()
/mob/living/carbon/alien/New()
verbs += /mob/living/proc/mob_sleep
verbs += /mob/living/proc/lay_down
internal_organs += new /obj/item/organ/brain/alien
-
+ AddAbility(new/obj/effect/proc_holder/alien/nightvisiontoggle(null))
..()
/mob/living/carbon/alien/adjustToxLoss(amount)
@@ -147,6 +149,16 @@
stat(null, "Move Mode: [m_intent]")
stat(null, "Plasma Stored: [getPlasma()]/[max_plasma]")
+ add_abilities_to_panel()
+
+/mob/living/carbon/alien/proc/AddAbility(var/obj/effect/proc_holder/alien/A)
+ abilities.Add(A)
+ A.on_gain(src)
+
+/mob/living/carbon/alien/proc/add_abilities_to_panel()
+ for(var/obj/effect/proc_holder/alien/A in abilities)
+ statpanel("[A.panel]",A.plasma_cost > 0?"([A.plasma_cost])":"",A)
+
/mob/living/carbon/alien/Stun(amount)
if(status_flags & CANSTUN)
stunned = max(max(stunned,amount),0) //can't go below 0, getting a low amount of stun doesn't lower your current stun
@@ -158,25 +170,6 @@
/mob/living/carbon/alien/getTrail()
return "xltrails"
-/mob/living/carbon/alien/cuff_break(obj/item/I, mob/living/carbon/C)
- playsound(C, 'sound/voice/hiss5.ogg', 40, 1, 1) //Alien roars when breaking free.
- ..()
-
-/mob/living/carbon/alien/verb/nightvisiontoggle()
- set name = "Toggle Night Vision"
- set category = "Alien"
-
- if(!nightvision)
- see_in_dark = 8
- see_invisible = SEE_INVISIBLE_MINIMUM
- nightvision = 1
- hud_used.nightvisionicon.icon_state = "nightvision1"
- else if(nightvision == 1)
- see_in_dark = 4
- see_invisible = 45
- nightvision = 0
- hud_used.nightvisionicon.icon_state = "nightvision0"
-
/*----------------------------------------
Proc: AddInfectionImages()
Des: Gives the client of the alien an image on each infected mob.
diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
index c758e3e4f7a..43314e72e60 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
@@ -4,172 +4,235 @@ These are general powers. Specific powers are stored under the appropriate alien
/*Alien spit now works like a taser shot. It won't home in on the target but will act the same once it does hit.
Doesn't work on other aliens/AI.*/
+/obj/effect/proc_holder/alien
+ name = "Alien Power"
+ panel = "Alien"
+ var/plasma_cost = 0
+ var/check_turf = 0
+/obj/effect/proc_holder/alien/Click()
+ if(!istype(usr,/mob/living/carbon/alien))
+ return 1
+ var/mob/living/carbon/alien/user = usr
+ if(cost_check(check_turf,user))
+ if(fire(user))
+ user.adjustToxLoss(-plasma_cost)
+ return 1
-/mob/living/carbon/alien/proc/powerc(X, Y)//Y is optional, checks for weed planting. X can be null.
- if(stat)
- src << "You must be conscious to do this."
+/obj/effect/proc_holder/alien/proc/on_gain(var/mob/living/carbon/alien/user)
+ return
+
+/obj/effect/proc_holder/alien/proc/fire(var/mob/living/carbon/alien/user)
+ return 1
+
+/obj/effect/proc_holder/alien/proc/cost_check(check_turf=0,var/mob/living/carbon/alien/user)
+ if(user.stat)
+ user << "You must be conscious to do this."
return 0
- else if(X && getPlasma() < X)
- src << "Not enough plasma stored."
+ if(user.getPlasma() < plasma_cost)
+ user << "Not enough plasma stored."
return 0
- else if(Y && (!isturf(src.loc) || istype(src.loc, /turf/space)))
- src << "Bad place for a garden!"
+ if(check_turf && (!isturf(user.loc) || istype(user.loc, /turf/space)))
+ user << "Bad place for a garden!"
return 0
- else return 1
+ return 1
-/mob/living/carbon/alien/humanoid/verb/plant()
- set name = "Plant Weeds (50)"
- set desc = "Plants some alien weeds"
- set category = "Alien"
+/obj/effect/proc_holder/alien/plant
+ name = "Plant Weeds"
+ desc = "Plants some alien weeds"
+ plasma_cost = 50
+ check_turf = 1
- if(locate(/obj/structure/alien/weeds/node) in get_turf(src))
+/obj/effect/proc_holder/alien/plant/fire(var/mob/living/carbon/alien/user)
+ if(locate(/obj/structure/alien/weeds/node) in get_turf(user))
src << "There's already a weed node here."
- return
+ return 0
+ for(var/mob/O in viewers(user, null))
+ O.show_message(text("[user] has planted some alien weeds!"), 1)
+ new/obj/structure/alien/weeds/node(user.loc)
+ return 1
- if(powerc(50,1))
- adjustToxLoss(-50)
- for(var/mob/O in viewers(src, null))
- O.show_message(text("[src] has planted some alien weeds!"), 1)
- new /obj/structure/alien/weeds/node(loc)
- return
+/obj/effect/proc_holder/alien/whisper
+ name = "Whisper"
+ desc = "Whisper to someone"
+ plasma_cost = 10
-/*
-/mob/living/carbon/alien/humanoid/verb/ActivateHuggers()
- set name = "Activate facehuggers (5)"
- set desc = "Makes all nearby facehuggers activate"
- set category = "Alien"
+/obj/effect/proc_holder/alien/whisper/fire(var/mob/living/carbon/alien/user)
+ var/mob/M = input("Select who to whisper to:","Whisper to?",null) as mob in oview(user)
+ if(!M)
+ return 0
+ var/msg = sanitize(input("Message:", "Alien Whisper") as text|null)
+ if(msg)
+ log_say("AlienWhisper: [key_name(user)]->[M.key] : [msg]")
+ M << "You hear a strange, alien voice in your head...[msg]"
+ user << {"You said: "[msg]" to [M]"}
+ else
+ return 0
+ return 1
- if(powerc(5))
- adjustToxLoss(-5)
- for(var/obj/item/clothing/mask/facehugger/F in range(8,src))
- F.GoActive()
- emote("roar")
- return
-*/
-/mob/living/carbon/alien/humanoid/verb/whisp(mob/M as mob in oview())
- set name = "Whisper (10)"
- set desc = "Whisper to someone"
- set category = "Alien"
-
- if(powerc(10))
- adjustToxLoss(-10)
- var/msg = sanitize(input("Message:", "Alien Whisper") as text|null)
- if(msg)
- log_say("AlienWhisper: [key_name(src)]->[M.key] : [msg]")
- M << "You hear a strange, alien voice in your head...[msg]"
- src << {"You said: "[msg]" to [M]"}
- return
-
-/mob/living/carbon/alien/humanoid/verb/transfer_plasma(mob/living/carbon/alien/M as mob in oview())
- set name = "Transfer Plasma"
- set desc = "Transfer Plasma to another alien"
- set category = "Alien"
+/obj/effect/proc_holder/alien/transfer
+ name = "Transfer Plasma"
+ desc = "Transfer Plasma to another alien"
+ plasma_cost = 0
+/obj/effect/proc_holder/alien/transfer/fire(var/mob/living/carbon/alien/user)
+ var/list/mob/living/carbon/alien/aliens_around = list()
+ for(var/mob/living/carbon/alien/A in oview(user))
+ aliens_around.Add(A)
+ var/mob/living/carbon/alien/M = input("Select who to transfer to:","Transfer plasma to?",null) as mob in aliens_around
+ if(!M)
+ return 0
if(isalien(M))
var/amount = input("Amount:", "Transfer Plasma to [M]") as num
if (amount)
amount = abs(round(amount))
- if(powerc(amount))
- if (get_dist(src,M) <= 1)
+ if(user.getPlasma() > amount)
+ if (get_dist(user,M) <= 1)
M.adjustToxLoss(amount)
- adjustToxLoss(-amount)
- M << "[src] has transfered [amount] plasma to you."
- src << {"You have trasferred [amount] plasma to [M]"}
+ user.adjustToxLoss(-amount)
+ M << "[user] has transfered [amount] plasma to you."
+ user << {"You have trasferred [amount] plasma to [M]"}
else
- src << "You need to be closer."
+ user << "You need to be closer."
return
+/obj/effect/proc_holder/alien/acid
+ name = "Corrossive Acid"
+ desc = "Drench an object in acid, destroying it over time."
+ plasma_cost = 200
-/mob/living/carbon/alien/humanoid/proc/corrosive_acid(O as obj|turf in oview(1)) //If they right click to corrode, an error will flash if its an invalid target./N
- set name = "Corrossive Acid (200)"
- set desc = "Drench an object in acid, destroying it over time."
- set category = "Alien"
+/obj/effect/proc_holder/alien/acid/on_gain(var/mob/living/carbon/alien/user)
+ user.verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid)
- if(powerc(200))
- if(O in oview(1))
- // OBJ CHECK
- if(isobj(O))
- var/obj/I = O
- if(I.unacidable) //So the aliens don't destroy energy fields/singularies/other aliens/etc with their acid.
- src << "You cannot dissolve this object."
- return
- // TURF CHECK
- else if(istype(O, /turf/simulated))
- var/turf/T = O
- // R WALL
- if(istype(T, /turf/simulated/wall/r_wall))
- src << "You cannot dissolve this object."
- return
- // R FLOOR
- if(istype(T, /turf/simulated/floor/engine))
- src << "You cannot dissolve this object."
- return
- else// Not a type we can acid.
- return
-
- adjustToxLoss(-200)
- new /obj/effect/acid(get_turf(O), O)
- visible_message("[src] vomits globs of vile stuff all over [O]. It begins to sizzle and melt under the bubbling mess of acid!")
- else
- src << "Target is too far away."
- return
+/obj/effect/proc_holder/alien/acid/proc/corrode(var/target,var/mob/living/carbon/alien/user = usr)
+ if(target in oview(1,user))
+ // OBJ CHECK
+ if(isobj(target))
+ var/obj/I = target
+ if(I.unacidable) //So the aliens don't destroy energy fields/singularies/other aliens/etc with their acid.
+ user << "You cannot dissolve this object."
+ return 0
+ // TURF CHECK
+ else if(istype(target, /turf/simulated))
+ var/turf/T = target
+ // R WALL
+ if(istype(T, /turf/simulated/wall/r_wall))
+ user << "You cannot dissolve this object."
+ return 0
+ // R FLOOR
+ if(istype(T, /turf/simulated/floor/engine))
+ user << "You cannot dissolve this object."
+ return 0
+ else// Not a type we can acid.
+ return 0
+ new /obj/effect/acid(get_turf(target), target)
+ user.visible_message("[user] vomits globs of vile stuff all over [target]. It begins to sizzle and melt under the bubbling mess of acid!")
+ return 1
+ else
+ src << "Target is too far away."
+ return 0
-/mob/living/carbon/alien/humanoid/proc/neurotoxin() // ok
- set name = "Spit Neurotoxin (50)"
- set desc = "Spits neurotoxin at someone, paralyzing them for a short time."
- set category = "Alien"
+/obj/effect/proc_holder/alien/acid/fire(var/mob/living/carbon/alien/user)
+ var/O = input("Select what to dissolve:","Dissolve",null) as obj|turf in oview(1,user)
+ if(!O)
+ return 0
+ return corrode(O,user)
- if(powerc(50))
- adjustToxLoss(-50)
- src.visible_message("[src] spits neurotoxin!", "You spit neurotoxin.")
+/mob/living/carbon/alien/humanoid/proc/corrosive_acid(O as obj|turf in oview(1)) // right click menu verb ugh
+ set name = "Corrossive Acid"
- var/turf/T = loc
- var/turf/U = get_step(src, dir) // Get the tile infront of the move, based on their direction
- if(!isturf(U) || !isturf(T))
- return
+ if(!isalien(usr))
+ return
+ var/mob/living/carbon/alien/humanoid/user = usr
+ var/obj/effect/proc_holder/alien/acid/A = locate() in user.abilities
+ if(!A)
+ return
+ if(user.getPlasma() > A.plasma_cost && A.corrode(O))
+ user.adjustToxLoss(-A.plasma_cost)
- var/obj/item/projectile/bullet/neurotoxin/A = new /obj/item/projectile/bullet/neurotoxin(usr.loc)
- A.current = U
- A.yo = U.y - T.y
- A.xo = U.x - T.x
- A.fire()
- return
-/mob/living/carbon/alien/humanoid/proc/resin()
- set name = "Secrete Resin (55)"
- set desc = "Secrete tough malleable resin."
- set category = "Alien"
+/obj/effect/proc_holder/alien/neurotoxin
+ name = "Spit Neurotoxin"
+ desc = "Spits neurotoxin at someone, paralyzing them for a short time."
+ plasma_cost = 50
- if(powerc(55,1))
- if(locate(/obj/structure/alien/resin) in loc.contents)
- src << "There is already a resin structure there."
- return
- var/choice = input("Choose what you wish to shape.","Resin building") as null|anything in list("resin wall","resin membrane","resin nest") //would do it through typesof but then the player choice would have the type path and we don't want the internal workings to be exposed ICly - Urist
- if(!choice || !powerc(55)) return
- adjustToxLoss(-55)
- src << "You shape a [choice]."
- visible_message("[src] vomits up a thick purple substance and begins to shape it.")
- switch(choice)
- if("resin wall")
- new /obj/structure/alien/resin/wall(loc)
- if("resin membrane")
- new /obj/structure/alien/resin/membrane(loc)
- if("resin nest")
- new /obj/structure/stool/bed/nest(loc)
- return
+/obj/effect/proc_holder/alien/neurotoxin/fire(var/mob/living/carbon/alien/user)
+ user.visible_message("[user] spits neurotoxin!", "You spit neurotoxin.")
-/mob/living/carbon/alien/humanoid/verb/regurgitate()
- set name = "Regurgitate"
- set desc = "Empties the contents of your stomach"
- set category = "Alien"
+ var/turf/T = user.loc
+ var/turf/U = get_step(user, user.dir) // Get the tile infront of the move, based on their direction
+ if(!isturf(U) || !isturf(T))
+ return 0
- if(powerc() && stomach_contents.len)
- for(var/atom/movable/A in stomach_contents)
- if(A in stomach_contents)
- stomach_contents.Remove(A)
- A.loc = loc
+ var/obj/item/projectile/bullet/neurotoxin/A = new /obj/item/projectile/bullet/neurotoxin(user.loc)
+ A.current = U
+ A.yo = U.y - T.y
+ A.xo = U.x - T.x
+ A.fire()
+
+ return 1
+
+
+/obj/effect/proc_holder/alien/resin
+ name = "Secrete Resin"
+ desc = "Secrete tough malleable resin."
+ plasma_cost = 55
+ check_turf = 1
+
+/obj/effect/proc_holder/alien/resin/fire(var/mob/living/carbon/alien/user)
+ if(locate(/obj/structure/alien/resin) in user.loc.contents)
+ user << "There is already a resin structure there."
+ return 0
+ var/choice = input("Choose what you wish to shape.","Resin building") as null|anything in list("resin wall","resin membrane","resin nest") //would do it through typesof but then the player choice would have the type path and we don't want the internal workings to be exposed ICly - Urist
+
+ if(!choice)
+ return 0
+
+ user << "You shape a [choice]."
+ user.visible_message("[user] vomits up a thick purple substance and begins to shape it.")
+
+ switch(choice)
+ if("resin wall")
+ new /obj/structure/alien/resin/wall(user.loc)
+ if("resin membrane")
+ new /obj/structure/alien/resin/membrane(user.loc)
+ if("resin nest")
+ new /obj/structure/stool/bed/nest(user.loc)
+ return 1
+
+/obj/effect/proc_holder/alien/regurgitate
+ name = "Regurgitate"
+ desc = "Empties the contents of your stomach"
+ plasma_cost = 0
+
+/obj/effect/proc_holder/alien/regurgitate/fire(var/mob/living/carbon/alien/user)
+ if(user.stomach_contents.len)
+ for(var/atom/movable/A in user.stomach_contents)
+ if(A in user.stomach_contents)
+ user.stomach_contents.Remove(A)
+ A.loc = user.loc
//Paralyse(10)
- src.visible_message("[src] hurls out the contents of their stomach!")
+ user.visible_message("[user] hurls out the contents of their stomach!")
return
+
+/obj/effect/proc_holder/alien/nightvisiontoggle
+ name = "Toggle Night Vision"
+ desc = "Toggles Night Vision"
+ plasma_cost = 0
+
+/obj/effect/proc_holder/alien/nightvisiontoggle/fire(var/mob/living/carbon/alien/user)
+
+ if(!user.nightvision)
+ user.see_in_dark = 8
+ user.see_invisible = SEE_INVISIBLE_MINIMUM
+ user.nightvision = 1
+ user.hud_used.nightvisionicon.icon_state = "nightvision1"
+ else if(user.nightvision == 1)
+ user.see_in_dark = 4
+ user.see_invisible = 45
+ user.nightvision = 0
+ user.hud_used.nightvisionicon.icon_state = "nightvision0"
+
+ return 1
+
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
index bae52d99d01..a572cd2d80e 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
@@ -12,7 +12,11 @@
if(src.name == "alien drone")
src.name = text("alien drone ([rand(1, 1000)])")
src.real_name = src.name
- verbs.Add(/mob/living/carbon/alien/humanoid/proc/resin,/mob/living/carbon/alien/humanoid/proc/corrosive_acid)
+
+ AddAbility(new/obj/effect/proc_holder/alien/resin(null))
+ AddAbility(new/obj/effect/proc_holder/alien/acid(null))
+ AddAbility(new/obj/effect/proc_holder/alien/evolve(null))
+
..()
//Drones use the same base as generic humanoids.
@@ -20,29 +24,24 @@
. = ..()
. += 1
+/obj/effect/proc_holder/alien/evolve
+ name = "Evolve"
+ desc = "Produce an interal egg sac capable of spawning children. Only one queen can exist at a time."
+ plasma_cost = 500
-//Drone verbs
-/mob/living/carbon/alien/humanoid/drone/verb/evolve()
- set name = "Evolve (500)"
- set desc = "Produce an interal egg sac capable of spawning children. Only one queen can exist at a time."
- set category = "Alien"
-
- if(powerc(500))
- // Queen check
- var/no_queen = 1
- for(var/mob/living/carbon/alien/humanoid/queen/Q in living_mob_list)
- if(!Q.key || !Q.getorgan(/obj/item/organ/brain))
- continue
- no_queen = 0
-
- if(no_queen)
- adjustToxLoss(-500)
- src << "You begin to evolve!"
- for(var/mob/O in viewers(src, null))
- O.show_message(text("[src] begins to twist and contort!"), 1)
- var/mob/living/carbon/alien/humanoid/queen/new_xeno = new (loc)
- mind.transfer_to(new_xeno)
- qdel(src)
- else
- src << "We already have an alive queen."
- return
\ No newline at end of file
+/obj/effect/proc_holder/alien/evolve/fire(var/mob/living/carbon/alien/user)
+ var/no_queen = 1
+ for(var/mob/living/carbon/alien/humanoid/queen/Q in living_mob_list)
+ if(!Q.key || !Q.getorgan(/obj/item/organ/brain))
+ continue
+ no_queen = 0
+ if(no_queen)
+ user << "You begin to evolve!"
+ user.visible_message("[user] begins to twist and contort!")
+ var/mob/living/carbon/alien/humanoid/queen/new_xeno = new (user.loc)
+ user.mind.transfer_to(new_xeno)
+ qdel(user)
+ return 1
+ else
+ user << "We already have an alive queen."
+ return 0
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
index 98067011363..4ace45627ab 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm
@@ -54,6 +54,7 @@
/mob/living/carbon/alien/humanoid/hunter/proc/toggle_leap(var/message = 1)
leap_on_click = !leap_on_click
leap_icon.icon_state = "leap_[leap_on_click ? "on":"off"]"
+ update_icons()
if(message)
src << "You will now [leap_on_click ? "leap at":"slash at"] enemies!"
else
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm
index c277695df7c..ecd8a193a33 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm
@@ -14,7 +14,10 @@
if(name == "alien sentinel")
name = text("alien sentinel ([rand(1, 1000)])")
real_name = name
- verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/neurotoxin)
+
+ AddAbility(new/obj/effect/proc_holder/alien/acid(null))
+ AddAbility(new/obj/effect/proc_holder/alien/neurotoxin(null))
+
..()
/mob/living/carbon/alien/humanoid/sentinel/handle_hud_icons_health()
diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
index 337f05ebbff..1e993e79363 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
@@ -4,6 +4,7 @@
var/obj/item/r_store = null
var/obj/item/l_store = null
var/caste = ""
+ var/alt_icon = 'icons/mob/alienleap.dmi' //used to switch between the two alien icon files.
var/leap_on_click = 0
var/pounce_cooldown = 0
var/pounce_cooldown_time = 30
@@ -14,6 +15,12 @@
if(name == "alien")
name = text("alien ([rand(1, 1000)])")
real_name = name
+
+ AddAbility(new/obj/effect/proc_holder/alien/plant(null))
+ AddAbility(new/obj/effect/proc_holder/alien/whisper(null))
+ AddAbility(new/obj/effect/proc_holder/alien/transfer(null))
+ AddAbility(new/obj/effect/proc_holder/alien/regurgitate(null))
+
..()
/mob/living/carbon/alien/humanoid/movement_delay()
@@ -116,4 +123,8 @@
unEquip(l_store)
/mob/living/carbon/alien/humanoid/reagent_check(var/datum/reagent/R)
- return 0
\ No newline at end of file
+ return 0
+
+/mob/living/carbon/alien/humanoid/cuff_resist(obj/item/I)
+ playsound(src, 'sound/voice/hiss5.ogg', 40, 1, 1) //Alien roars when starting to break free
+ ..(I, cuff_break = 1)
diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm
index e1aae3cc6e2..3919492a553 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm
@@ -22,7 +22,12 @@
break
real_name = src.name
- verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/neurotoxin,/mob/living/carbon/alien/humanoid/proc/resin)
+
+ AddAbility(new/obj/effect/proc_holder/alien/acid(null))
+ AddAbility(new/obj/effect/proc_holder/alien/neurotoxin(null))
+ AddAbility(new/obj/effect/proc_holder/alien/resin(null))
+ AddAbility(new/obj/effect/proc_holder/alien/lay_egg(null))
+
..()
/mob/living/carbon/alien/humanoid/queen/handle_hud_icons_health()
@@ -52,23 +57,19 @@
//Queen verbs
-/mob/living/carbon/alien/humanoid/queen/verb/lay_egg()
-
- set name = "Lay Egg (75)"
- set desc = "Lay an egg to produce huggers to impregnate prey with."
- set category = "Alien"
-
- if(locate(/obj/structure/alien/egg) in get_turf(src))
- src << "There's already an egg here."
- return
-
- if(powerc(75,1))//Can't plant eggs on spess tiles. That's silly.
- adjustToxLoss(-75)
- for(var/mob/O in viewers(src, null))
- O.show_message(text("[src] has laid an egg!"), 1)
- new /obj/structure/alien/egg(loc)
- return
+/obj/effect/proc_holder/alien/lay_egg
+ name = "Lay Egg"
+ desc = "Lay an egg to produce huggers to impregnate prey with."
+ plasma_cost = 75
+ check_turf = 1
+/obj/effect/proc_holder/alien/lay_egg/fire(var/mob/living/carbon/alien/user)
+ if(locate(/obj/structure/alien/egg) in get_turf(user))
+ user << "There's already an egg here."
+ return 0
+ user.visible_message("[user] has laid an egg!")
+ new /obj/structure/alien/egg(user.loc)
+ return 1
/mob/living/carbon/alien/humanoid/queen/large
icon = 'icons/mob/alienqueen.dmi'
diff --git a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm
index 7f0418c5faa..2ccc95f56cf 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm
@@ -19,18 +19,15 @@
//If we mostly took damage from fire
if(fireloss > 125)
icon_state = "alien[caste]_husked"
- pixel_y = 0
else
icon_state = "alien[caste]_dead"
- pixel_y = 0
- else if(stat == UNCONSCIOUS || weakened)
+ else if((stat == UNCONSCIOUS && !sleeping) || weakened)
icon_state = "alien[caste]_unconscious"
- pixel_y = 0
else if(leap_on_click)
icon_state = "alien[caste]_pounce"
- else if(lying || resting)
+ else if(lying || resting || sleeping)
icon_state = "alien[caste]_sleep"
else if(m_intent == "run")
icon_state = "alien[caste]_running"
@@ -38,17 +35,21 @@
icon_state = "alien[caste]_s"
if(leaping)
- icon = 'icons/mob/alienleap.dmi'
+ var/old_icon = icon
+ icon = alt_icon
+ alt_icon = old_icon
icon_state = "alien[caste]_leap"
pixel_x = -32
pixel_y = -32
else
- icon = initial(icon)
+ if(alt_icon != initial(alt_icon))
+ var/old_icon = icon
+ icon = alt_icon
+ alt_icon = old_icon
pixel_x = initial(pixel_x)
pixel_y = initial(pixel_y)
-
/mob/living/carbon/alien/humanoid/regenerate_icons()
..()
if (notransform) return
@@ -63,8 +64,9 @@
/mob/living/carbon/alien/humanoid/update_transform() //The old method of updating lying/standing was update_icons(). Aliens still expect that.
if(lying > 0)
lying = 90 //Anything else looks retarded
- update_icons()
..()
+ update_icons()
+
/mob/living/carbon/alien/humanoid/update_hud()
diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm
index c560c3d7f3e..edae69928ef 100644
--- a/code/modules/mob/living/carbon/alien/larva/larva.dm
+++ b/code/modules/mob/living/carbon/alien/larva/larva.dm
@@ -21,6 +21,8 @@
name = "alien larva ([rand(1, 1000)])"
real_name = name
regenerate_icons()
+ AddAbility(new/obj/effect/proc_holder/alien/hide(null))
+ AddAbility(new/obj/effect/proc_holder/alien/larva_evolve(null))
..()
//This needs to be fixed
diff --git a/code/modules/mob/living/carbon/alien/larva/login.dm b/code/modules/mob/living/carbon/alien/larva/login.dm
deleted file mode 100644
index 33808a4d966..00000000000
--- a/code/modules/mob/living/carbon/alien/larva/login.dm
+++ /dev/null
@@ -1,3 +0,0 @@
-/mob/living/carbon/alien/larva/Login()
- return ..()
-
diff --git a/code/modules/mob/living/carbon/alien/larva/powers.dm b/code/modules/mob/living/carbon/alien/larva/powers.dm
index efbdcdafe9b..8a4cbfea95a 100644
--- a/code/modules/mob/living/carbon/alien/larva/powers.dm
+++ b/code/modules/mob/living/carbon/alien/larva/powers.dm
@@ -1,51 +1,57 @@
+/obj/effect/proc_holder/alien/hide
+ name = "Hide"
+ desc = "Allows to hide beneath tables or certain items. Toggled on or off."
+ plasma_cost = 0
-/mob/living/carbon/alien/larva/verb/hide()
- set name = "Hide"
- set desc = "Allows to hide beneath tables or certain items. Toggled on or off."
- set category = "Alien"
-
- if(stat != CONSCIOUS)
+/obj/effect/proc_holder/alien/hide/fire(var/mob/living/carbon/alien/user)
+ if(user.stat != CONSCIOUS)
return
- if (layer != TURF_LAYER+0.2)
- layer = TURF_LAYER+0.2
- visible_message("[src] scurries to the ground!", \
+ if (user.layer != TURF_LAYER+0.2)
+ user.layer = TURF_LAYER+0.2
+ user.visible_message("[user] scurries to the ground!", \
"You are now hiding.")
else
- layer = MOB_LAYER
- visible_message("[src] slowly peaks up from the ground...", \
+ user.layer = MOB_LAYER
+ user.visible_message("[user.] slowly peaks up from the ground...", \
"You have stopped hiding.")
+ return 1
-/mob/living/carbon/alien/larva/verb/evolve()
- set name = "Evolve"
- set desc = "Evolve into a fully grown Alien."
- set category = "Alien"
- if(stat != CONSCIOUS)
+/obj/effect/proc_holder/alien/larva_evolve
+ name = "Evolve"
+ desc = "Evolve into a fully grown Alien."
+ plasma_cost = 0
+
+/obj/effect/proc_holder/alien/larva_evolve/fire(var/mob/living/carbon/alien/user)
+ if(!islarva(user))
return
+ var/mob/living/carbon/alien/larva/L = user
- if(handcuffed || legcuffed)
- src << "You cannot evolve when you are cuffed."
+ if(L.stat != CONSCIOUS)
+ return
+ if(L.handcuffed || L.legcuffed) // Cuffing larvas ? Eh ?
+ user << "You cannot evolve when you are cuffed."
- if(amount_grown >= max_grown) //TODO ~Carn
- src << "You are growing into a beautiful alien! It is time to choose a caste."
- src << "There are three to choose from:"
- src << "Hunters are strong and agile, able to hunt away from the hive and rapidly move through ventilation shafts. Hunters generate plasma slowly and have low reserves."
- src << "Sentinels are tasked with protecting the hive and are deadly up close and at a range. They are not as physically imposing nor fast as the hunters."
- src << "Drones are the working class, offering the largest plasma storage and generation. They are the only caste which may evolve again, turning into the dreaded alien queen."
- var/alien_caste = alert(src, "Please choose which alien caste you shall belong to.",,"Hunter","Sentinel","Drone")
+ if(L.amount_grown >= L.max_grown) //TODO ~Carn
+ L << "You are growing into a beautiful alien! It is time to choose a caste."
+ L << "There are three to choose from:"
+ L << "Hunters are strong and agile, able to hunt away from the hive and rapidly move through ventilation shafts. Hunters generate plasma slowly and have low reserves."
+ L << "Sentinels are tasked with protecting the hive and are deadly up close and at a range. They are not as physically imposing nor fast as the hunters."
+ L << "Drones are the working class, offering the largest plasma storage and generation. They are the only caste which may evolve again, turning into the dreaded alien queen."
+ var/alien_caste = alert(L, "Please choose which alien caste you shall belong to.",,"Hunter","Sentinel","Drone")
var/mob/living/carbon/alien/humanoid/new_xeno
switch(alien_caste)
if("Hunter")
- new_xeno = new /mob/living/carbon/alien/humanoid/hunter(loc)
+ new_xeno = new /mob/living/carbon/alien/humanoid/hunter(L.loc)
if("Sentinel")
- new_xeno = new /mob/living/carbon/alien/humanoid/sentinel(loc)
+ new_xeno = new /mob/living/carbon/alien/humanoid/sentinel(L.loc)
if("Drone")
- new_xeno = new /mob/living/carbon/alien/humanoid/drone(loc)
- if(mind) mind.transfer_to(new_xeno)
- qdel(src)
- return
+ new_xeno = new /mob/living/carbon/alien/humanoid/drone(L.loc)
+ if(L.mind) L.mind.transfer_to(new_xeno)
+ qdel(L)
+ return 0
else
- src << "You are not fully grown."
- return
+ user << "You are not fully grown."
+ return 0
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/alien/life.dm b/code/modules/mob/living/carbon/alien/life.dm
index 4df5469296f..acdbfd4d055 100644
--- a/code/modules/mob/living/carbon/alien/life.dm
+++ b/code/modules/mob/living/carbon/alien/life.dm
@@ -62,4 +62,4 @@
handle_hud_icons_health()
- return 1
+ return 1
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/brain/brain.dm b/code/modules/mob/living/carbon/brain/brain.dm
index 3600cdc4de9..2197876bc1c 100644
--- a/code/modules/mob/living/carbon/brain/brain.dm
+++ b/code/modules/mob/living/carbon/brain/brain.dm
@@ -6,6 +6,7 @@
var/timeofhostdeath = 0
var/emp_damage = 0//Handles a type of MMI damage
var/alert = null
+ has_limbs = 0
/mob/living/carbon/brain/New()
create_reagents(1000)
@@ -28,11 +29,11 @@
/mob/living/carbon/brain/ex_act() //you cant blow up brainmobs because it makes transfer_to() freak out when borgs blow up.
return
-
+
/mob/living/carbon/brain/blob_act()
return
-
-/mob/living/carbon/brain/on_forcemove(var/atom/newloc)
+
+/mob/living/carbon/brain/on_forcemove(var/atom/newloc)
if(container)
container.loc = newloc
else //something went very wrong.
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 22a879adae3..dca6c42554c 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -382,3 +382,111 @@ var/const/GALOSHES_DONT_HELP = 8
else
show_message("The blob attacks!")
adjustBruteLoss(10)
+
+/mob/living/carbon/proc/spin(spintime, speed)
+ spawn()
+ var/D = dir
+ while(spintime >= speed)
+ sleep(speed)
+ switch(D)
+ if(NORTH)
+ D = EAST
+ if(SOUTH)
+ D = WEST
+ if(EAST)
+ D = SOUTH
+ if(WEST)
+ D = NORTH
+ dir = D
+ spintime -= speed
+ return
+
+/mob/living/carbon/resist_buckle()
+ if(handcuffed)
+ changeNext_move(CLICK_CD_BREAKOUT)
+ last_special = world.time + CLICK_CD_BREAKOUT
+ visible_message("[src] attempts to unbuckle themself!", \
+ "You attempt to unbuckle yourself. (This will take around one minute and you need to stay still.)")
+ if(do_after(src, 600, needhand = 0))
+ if(!buckled)
+ return
+ buckled.user_unbuckle_mob(src,src)
+ else
+ if(src && buckled)
+ src << "You fail to unbuckle yourself!"
+ else
+ buckled.user_unbuckle_mob(src,src)
+
+/mob/living/carbon/resist_fire()
+ fire_stacks -= 5
+ Weaken(3,1)
+ spin(32,2)
+ visible_message("[src] rolls on the floor, trying to put themselves out!", \
+ "You stop, drop, and roll!")
+ sleep(30)
+ if(fire_stacks <= 0)
+ visible_message("[src] has successfully extinguished themselves!", \
+ "You extinguish yourself.")
+ ExtinguishMob()
+ return
+
+/mob/living/carbon/resist_restraints()
+ var/obj/item/I = null
+ if(handcuffed)
+ I = handcuffed
+ else if(legcuffed)
+ I = legcuffed
+ if(I)
+ changeNext_move(CLICK_CD_BREAKOUT)
+ last_special = world.time + CLICK_CD_BREAKOUT
+ cuff_resist(I)
+
+
+/mob/living/carbon/proc/cuff_resist(obj/item/I, var/breakouttime = 600, cuff_break = 0)
+ if(istype(I, /obj/item/weapon/restraints))
+ var/obj/item/weapon/restraints/R = I
+ breakouttime = R.breakouttime
+ var/displaytime = breakouttime / 600
+ if(!cuff_break)
+ visible_message("[src] attempts to remove [I]!")
+ src << "You attempt to remove [I]. (This will take around [displaytime] minutes and you need to stand still.)"
+ if(do_after(src, breakouttime, 10, 0))
+ if(I.loc != src || buckled)
+ return
+ visible_message("[src] manages to remove [I]!")
+ src << "You successfully remove [I]."
+
+ if(handcuffed)
+ handcuffed.loc = loc
+ handcuffed = null
+ if(buckled && buckled.buckle_requires_restraints)
+ buckled.unbuckle_mob()
+ update_inv_handcuffed(0)
+ return
+ if(legcuffed)
+ legcuffed.loc = loc
+ legcuffed = null
+ update_inv_legcuffed(0)
+ else
+ src << "You fail to remove [I]!"
+
+ else
+ breakouttime = 50
+ visible_message("[src] is trying to break [I]!")
+ src << "You attempt to break [I]. (This will take around 5 seconds and you need to stand still.)"
+ if(do_after(src, breakouttime, needhand = 0))
+ if(!I.loc || buckled)
+ return
+ visible_message("[src] manages to break [I]!")
+ src << "You successfully break [I]."
+ qdel(I)
+
+ if(handcuffed)
+ handcuffed = null
+ update_inv_handcuffed(0)
+ return
+ else
+ legcuffed = null
+ update_inv_legcuffed(0)
+ else
+ src << "You fail to break [I]!"
diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm
index 1f96e677eaf..b694d7c2ca5 100644
--- a/code/modules/mob/living/carbon/carbon_defines.dm
+++ b/code/modules/mob/living/carbon/carbon_defines.dm
@@ -22,3 +22,5 @@
var/co2overloadtime = null
var/temperature_resistance = T0C+75
+ lying_pixel_offset = -6 //offset for pixel_y when lying down.
+ has_limbs = 1
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 64cc1863834..a8683a1f49c 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -74,11 +74,35 @@
stat("Chemical Storage", "[mind.changeling.chem_charges]/[mind.changeling.chem_storage]")
stat("Absorbed DNA", mind.changeling.absorbedcount)
- //NINJACODE
- if(istype(wear_suit, /obj/item/clothing/suit/space/space_ninja))
- var/obj/item/clothing/suit/space/space_ninja/SN = wear_suit
+
+ //NINJACODE
+ if(istype(wear_suit, /obj/item/clothing/suit/space/space_ninja)) //Only display if actually a ninja.
+ var/obj/item/clothing/suit/space/space_ninja/SN = wear_suit
+ if(statpanel("SpiderOS"))
+ stat("SpiderOS Status:","[SN.s_initialized ? "Initialized" : "Disabled"]")
+ stat("Current Time:", "[worldtime2text()]")
if(SN.s_initialized)
- stat("Energy Charge", round(SN.cell.charge/100))
+ //Suit gear
+ stat("Energy Charge:", "[round(SN.cell.charge/100)]%")
+ stat("Smoke Bombs:", "\Roman [SN.s_bombs]")
+ //Ninja status
+ if(dna)
+ stat("Fingerprints:", "[md5(dna.uni_identity)]")
+ stat("Unique Identity:", "[dna.unique_enzymes]")
+ stat("Overall Status:", "[stat > 1 ? "dead" : "[health]% healthy"]")
+ stat("Nutrition Status:", "[nutrition]")
+ stat("Oxygen Loss:", "[getOxyLoss()]")
+ stat("Toxin Levels:", "[getToxLoss()]")
+ stat("Burn Severity:", "[getFireLoss()]")
+ stat("Brute Trauma:", "[getBruteLoss()]")
+ stat("Radiation Levels:","[radiation] rad")
+ stat("Body Temperature:","[bodytemperature-T0C] degrees C ([bodytemperature*1.8-459.67] degrees F)")
+
+ //Virsuses
+ if(viruses.len)
+ stat("Viruses:", null)
+ for(var/datum/disease/D in viruses)
+ stat("*", "[D.name], Type: [D.spread_text], Stage: [D.stage]/[D.max_stages], Possible Cure: [D.cure_text]")
/mob/living/carbon/human/ex_act(severity, ex_target)
@@ -719,4 +743,9 @@
staticOverlay.override = 1
staticOverlays["letter"] = staticOverlay
-
+/mob/living/carbon/human/cuff_resist(obj/item/I)
+ if(dna && dna.check_mutation(HULK))
+ say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
+ ..(I, cuff_break = 1)
+ else
+ ..()
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index df617e2c68e..d37e3f89502 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -15,6 +15,7 @@
var/skin_tone = "caucasian1" //Skin tone
var/lip_style = null //no lipstick by default- arguably misleading, as it could be used for general makeup
+ var/lip_color = "white"
var/age = 30 //Player's age (pure fluff)
var/blood_type = "A+" //Player's bloodtype
@@ -39,11 +40,11 @@
var/icon/base_icon_state = "caucasian1_m"
- var/list/organs = list() //Gets filled up in the constructor (human.dm, New() proc, line 24. I'm sick and tired of missing comments. -Agouri
-
var/special_voice = "" // For changing our voice. Used by a symptom.
var/gender_ambiguous = 0 //if something goes wrong during gender reassignment this generates a line in examine
var/blood_max = 0 //how much are we bleeding
- var/bleedsuppress = 0 //for stopping bloodloss, eventually this will be limb-based like bleeding
\ No newline at end of file
+ var/bleedsuppress = 0 //for stopping bloodloss, eventually this will be limb-based like bleeding
+
+ var/list/organs = list() //Gets filled up in the constructor (human.dm, New() proc.
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index d66d73d0e1c..67545dc5681 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -41,7 +41,7 @@
var/hair_alpha = 255 // the alpha used by the hair. 255 is completely solid, 0 is transparent.
var/use_skintones = 0 // does it use skintones or not? (spoiler alert this is only used by humans)
var/exotic_blood = null // If your race wants to bleed something other than bog standard blood, change this.
- var/meat = /obj/item/weapon/reagent_containers/food/snacks/meat/human //What the species drops on gibbing
+ var/meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human //What the species drops on gibbing
var/list/no_equip = list() // slots the race can't equip stuff to
var/nojumpsuit = 0 // this is sorta... weird. it basically lets you equip stuff that usually needs jumpsuits without one, like belts and pockets and ids
@@ -92,9 +92,6 @@
var/g = (H.gender == FEMALE) ? "f" : "m"
- if(!config.mutant_colors)
- H.dna.mutant_color = default_color
-
if(MUTCOLORS in specflags)
var/image/spec_base
var/icon_state_string = "[id]_"
@@ -128,10 +125,7 @@
if(hair_color)
if(hair_color == "mutcolor")
- if(!config.mutant_colors)
- img_facial_s.color = "#" + default_color
- else
- img_facial_s.color = "#" + H.dna.mutant_color
+ img_facial_s.color = "#" + H.dna.mutant_color
else
img_facial_s.color = "#" + hair_color
else
@@ -159,10 +153,7 @@
if(hair_color)
if(hair_color == "mutcolor")
- if(!config.mutant_colors)
- img_hair_s.color = "#" + default_color
- else
- img_hair_s.color = "#" + H.dna.mutant_color
+ img_hair_s.color = "#" + H.dna.mutant_color
else
img_hair_s.color = "#" + hair_color
else
@@ -186,7 +177,9 @@
// lipstick
if(H.lip_style && LIPS in specflags)
- standing += image("icon"='icons/mob/human_face.dmi', "icon_state"="lips_[H.lip_style]_s", "layer" = -BODY_LAYER)
+ var/image/lips = image("icon"='icons/mob/human_face.dmi', "icon_state"="lips_[H.lip_style]_s", "layer" = -BODY_LAYER)
+ lips.color = H.lip_color
+ standing += lips
// eyes
if(EYECOLOR in specflags)
@@ -252,9 +245,6 @@
else
icon_state_string += "_s"
- if(!config.mutant_colors)
- H.dna.mutant_color = default_color
-
for(var/layer in relevent_layers)
for(var/bodypart in bodyparts_to_add)
I = image("icon" = 'icons/mob/mutant_bodyparts.dmi', "icon_state" = "[icon_state_string]_[bodypart]_[layer]", "layer" =- layer)
@@ -695,8 +685,8 @@
if((H.disabilities & FAT))
mspeed += 1.5
- if(H.bodytemperature < 283.222)
- mspeed += (283.222 - H.bodytemperature) / 10 * (grav+0.5)
+ if(H.bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT)
+ mspeed += (BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR
mspeed += speedmod
diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm
index 74248154ddf..b0ecbb39986 100644
--- a/code/modules/mob/living/carbon/human/species_types.dm
+++ b/code/modules/mob/living/carbon/human/species_types.dm
@@ -34,7 +34,7 @@
attack_verb = "slash"
attack_sound = 'sound/weapons/slash.ogg'
miss_sound = 'sound/weapons/slashmiss.ogg'
- meat = /obj/item/weapon/reagent_containers/food/snacks/meat/human/mutant/lizard
+ meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard
/datum/species/lizard/handle_speech(message)
// jesus christ why
@@ -58,7 +58,7 @@
miss_sound = 'sound/weapons/slashmiss.ogg'
burnmod = 1.25
heatmod = 1.5
- meat = /obj/item/weapon/reagent_containers/food/snacks/meat/human/mutant/plant
+ meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/plant
/datum/species/plant/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
if(chem.id == "plantbgone")
@@ -127,7 +127,7 @@
darksight = 8
sexes = 0
ignored_by = list(/mob/living/simple_animal/hostile/faithless)
- meat = /obj/item/weapon/reagent_containers/food/snacks/meat/human/mutant/shadow
+ meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/shadow
specflags = list(NOBREATH,NOBLOOD,RADIMMUNE)
/datum/species/shadow/spec_life(mob/living/carbon/human/H)
@@ -158,7 +158,7 @@
hair_color = "mutcolor"
hair_alpha = 150
ignored_by = list(/mob/living/simple_animal/slime)
- meat = /obj/item/weapon/reagent_containers/food/snacks/meat/human/mutant/slime
+ meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime
exotic_blood = /datum/reagent/toxin/slimejelly
var/recently_changed = 1
@@ -198,7 +198,7 @@
say_mod = "chirps"
eyes = "jelleyes"
specflags = list(MUTCOLORS,EYECOLOR,NOBLOOD)
- meat = /obj/item/weapon/reagent_containers/food/snacks/meat/human/mutant/slime
+ meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime
exotic_blood = /datum/reagent/toxin/slimejelly
var/recently_changed = 1
@@ -239,7 +239,7 @@
punchmod = 5
no_equip = list(slot_wear_mask, slot_wear_suit, slot_gloves, slot_shoes, slot_head, slot_w_uniform)
nojumpsuit = 1
- meat = /obj/item/weapon/reagent_containers/food/snacks/meat/human/mutant/golem
+ meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem
/*
@@ -249,7 +249,7 @@
/datum/species/golem/adamantine
name = "Adamantine Golem"
id = "adamantine"
- meat = /obj/item/weapon/reagent_containers/food/snacks/meat/human/mutant/golem/adamantine
+ meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine
/*
FLIES
@@ -260,7 +260,7 @@
name = "Human?"
id = "fly"
say_mod = "buzzes"
- meat = /obj/item/weapon/reagent_containers/food/snacks/meat/human/mutant/fly
+ meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/fly
/datum/species/fly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
if(chem.id == "pestkiller")
@@ -281,7 +281,7 @@
id = "skeleton"
say_mod = "rattles"
sexes = 0
- meat = /obj/item/weapon/reagent_containers/food/snacks/meat/human/mutant/skeleton
+ meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton
specflags = list(NOBREATH,HEATRES,COLDRES,NOBLOOD,RADIMMUNE)
/*
ZOMBIES
@@ -293,7 +293,7 @@
id = "zombie"
say_mod = "moans"
sexes = 0
- meat = /obj/item/weapon/reagent_containers/food/snacks/meat/human/mutant/zombie
+ meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/zombie
specflags = list(NOBREATH,HEATRES,COLDRES,NOBLOOD,RADIMMUNE)
/datum/species/zombie/handle_speech(message)
@@ -316,4 +316,4 @@
name = "Human"
id = "zombie"
sexes = 0
- meat = /obj/item/weapon/reagent_containers/food/snacks/meat/human/mutant/zombie
+ meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/zombie
diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm
index 12cac68350c..77a3961653e 100644
--- a/code/modules/mob/living/carbon/monkey/life.dm
+++ b/code/modules/mob/living/carbon/monkey/life.dm
@@ -107,7 +107,7 @@
/mob/living/carbon/monkey/handle_changeling()
- if(mind)
+ if(mind && hud_used)
if(mind.changeling)
mind.changeling.regenerate()
hud_used.lingchemdisplay.invisibility = 0
diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm
index 77947b7b4ff..1136f3533bb 100644
--- a/code/modules/mob/living/carbon/update_icons.dm
+++ b/code/modules/mob/living/carbon/update_icons.dm
@@ -7,7 +7,6 @@
var/final_pixel_y = pixel_y
var/final_dir = dir
var/changed = 0
-
if(lying != lying_prev)
changed++
ntransform.TurnTo(lying_prev,lying)
@@ -16,7 +15,7 @@
else //if(lying != 0)
if(lying_prev == 0) //Standing to lying
pixel_y = initial(pixel_y)
- final_pixel_y -= 6
+ final_pixel_y = lying_pixel_offset
if(dir & (EAST|WEST)) //Facing east or west
final_dir = pick(NORTH, SOUTH) //So you fall on your side rather than your face or ass
diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm
index 598054d0c1d..e2f440bcfb5 100644
--- a/code/modules/mob/living/life.dm
+++ b/code/modules/mob/living/life.dm
@@ -38,6 +38,8 @@
update_gravity(mob_has_gravity())
+ update_pulling()
+
for(var/obj/item/weapon/grab/G in src)
G.process()
@@ -75,6 +77,11 @@
/mob/living/proc/handle_stomach()
return
+/mob/living/proc/update_pulling()
+ if(pulling)
+ if(incapacitated())
+ stop_pulling()
+
//This updates the health and status of the mob (conscious, unconscious, dead)
/mob/living/proc/handle_regular_status_updates()
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index be727c966ac..4e13acf2437 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -161,7 +161,7 @@ Sorry Giacom. Please don't be mad :(
return 0
if(!..())
return 0
- usr.visible_message("[src] points to [A]")
+ visible_message("[src] points to [A]")
return 1
/mob/living/verb/succumb(var/whispered as null)
@@ -320,12 +320,13 @@ Sorry Giacom. Please don't be mad :(
set name = "Sleep"
set category = "IC"
- if(usr.sleeping)
- usr << "You are already sleeping."
+ if(sleeping)
+ src << "You are already sleeping."
return
else
if(alert(src, "You sure you want to sleep for a while?", "Sleep", "Yes", "No") == "Yes")
- usr.sleeping = 20 //Short nap
+ sleeping = 20 //Short nap
+ update_canmove()
/mob/proc/get_contents()
@@ -335,6 +336,7 @@ Sorry Giacom. Please don't be mad :(
resting = !resting
src << "You are now [resting ? "resting" : "getting up"]."
+ update_canmove()
//Recursive function to find everything a mob is holding.
/mob/living/get_contents(var/obj/item/weapon/storage/Storage = null)
@@ -469,11 +471,11 @@ Sorry Giacom. Please don't be mad :(
if(config.allow_Metadata)
if(client)
- usr << "[src]'s Metainfo:
[client.prefs.metadata]"
+ src << "[src]'s Metainfo:
[client.prefs.metadata]"
else
- usr << "[src] does not have any stored infomation!"
+ src << "[src] does not have any stored infomation!"
else
- usr << "OOC Metadata is not supported by this server!"
+ src << "OOC Metadata is not supported by this server!"
return
@@ -488,12 +490,12 @@ Sorry Giacom. Please don't be mad :(
stop_pulling()
- var/t7 = 1
+ var/cuff_dragged = 0
if (restrained())
for(var/mob/living/M in range(src, 1))
- if ((M.pulling == src && M.stat == 0 && !( M.restrained() )))
- t7 = null
- if (t7 && pulling && (get_dist(src, pulling) <= 1 || pulling.loc == loc))
+ if (M.pulling == src && !M.incapacitated())
+ cuff_dragged = 1
+ if (!cuff_dragged && pulling && !throwing && (get_dist(src, pulling) <= 1 || pulling.loc == loc))
var/turf/T = loc
. = ..()
@@ -549,9 +551,8 @@ Sorry Giacom. Please don't be mad :(
if ((s_active && !( s_active in contents ) ))
s_active.close(src)
- if(update_slimes)
- for(var/mob/living/simple_animal/slime/M in view(1,src))
- M.UpdateFeed(src)
+ for(var/mob/living/simple_animal/slime/M in oview(1,src))
+ M.UpdateFeed(src)
/mob/living/proc/makeTrail(var/turf/T, var/mob/living/M)
if(ishuman(M))
@@ -585,172 +586,62 @@ Sorry Giacom. Please don't be mad :(
/mob/living/proc/getTrail() //silicon and simple_animals don't get blood trails
return null
-/mob/living/proc/cuff_break(obj/item/weapon/restraints/I, mob/living/carbon/C)
-
- if(C.dna.check_mutation(HULK))
- C.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
-
- C.visible_message("[C] manages to break [I]!")
- C << "You successfully break [I]."
- qdel(I)
-
- if(C.handcuffed)
- C.handcuffed = null
- C.update_inv_handcuffed(0)
- return
- else
- C.legcuffed = null
- C.update_inv_legcuffed(0)
-
-
-/mob/living/proc/cuff_resist(obj/item/weapon/restraints/I, mob/living/carbon/C)
- var/breakouttime = 600
- var/displaytime = 1
- if(istype(I, /obj/item/weapon/restraints/handcuffs))
- var/obj/item/weapon/restraints/handcuffs/HC = C.handcuffed
- breakouttime = HC.breakouttime
- else if(istype(I, /obj/item/weapon/restraints/legcuffs))
- var/obj/item/weapon/restraints/legcuffs/LC = C.legcuffed
- breakouttime = LC.breakouttime
- displaytime = breakouttime / 600
-
- if(isalienadult(C) || C.dna.check_mutation(HULK))
- C.visible_message("[C] is trying to break [I]!")
- C << "You attempt to break [I]. (This will take around 5 seconds and you need to stand still.)"
- spawn(0)
- if(do_after(C, 50))
- if(!I || C.buckled)
- return
- cuff_break(I, C)
- else
- C << "You fail to break [I]!"
- else
-
- C.visible_message("[C] attempts to remove [I]!")
- C << "You attempt to remove [I]. (This will take around [displaytime] minutes and you need to stand still.)"
- spawn(0)
- if(do_after(C, breakouttime, 10))
- if(!I || C.buckled)
- return
- C.visible_message("[C] manages to remove [I]!")
- C << "You successfully remove [I]."
-
- if(C.handcuffed)
- C.handcuffed.loc = C.loc
- C.handcuffed = null
- if(C.buckled && C.buckled.buckle_requires_restraints)
- C.buckled.unbuckle_mob()
- C.update_inv_handcuffed(0)
- return
- if(C.legcuffed)
- C.legcuffed.loc = C.loc
- C.legcuffed = null
- C.update_inv_legcuffed(0)
- else
- C << "You fail to remove [I]!"
-
/mob/living/verb/resist()
set name = "Resist"
set category = "IC"
- if(!isliving(usr) || usr.next_move > world.time)
+ if(!isliving(src) || next_move > world.time)
return
- usr.changeNext_move(CLICK_CD_RESIST)
-
- var/mob/living/L = usr
+ changeNext_move(CLICK_CD_RESIST)
//resisting grabs (as if it helps anyone...)
- if(!L.stat && L.canmove && !L.restrained())
+ if(!stat && canmove && !restrained())
var/resisting = 0
- for(var/obj/O in L.requests)
+ for(var/obj/O in requests)
qdel(O)
resisting++
- for(var/obj/item/weapon/grab/G in usr.grabbed_by)
+ for(var/obj/item/weapon/grab/G in grabbed_by)
resisting++
if(G.state == GRAB_PASSIVE)
qdel(G)
else
if(G.state == GRAB_AGGRESSIVE)
if(prob(25))
- L.visible_message("[L] has broken free of [G.assailant]'s grip!")
+ visible_message("[src] has broken free of [G.assailant]'s grip!")
qdel(G)
else
if(G.state == GRAB_NECK)
if(prob(5))
- L.visible_message("[L] has broken free of [G.assailant]'s headlock!")
+ visible_message("[src] has broken free of [G.assailant]'s headlock!")
qdel(G)
if(resisting)
- L.visible_message("[L] resists!")
+ visible_message("[src] resists!")
return
//unbuckling yourself
- if(L.buckled && L.last_special <= world.time)
- if(iscarbon(L))
- var/mob/living/carbon/C = L
- if(C.handcuffed)
- C.changeNext_move(CLICK_CD_BREAKOUT)
- C.last_special = world.time + CLICK_CD_BREAKOUT
- C.visible_message("[C] attempts to unbuckle themself!", \
- "You attempt to unbuckle yourself. (This will take around one minute and you need to stay still.)")
- spawn(0)
- if(do_after(usr, 600))
- if(!C.buckled)
- return
- C.buckled.user_unbuckle_mob(C,C)
- else
- if(C && C.buckled)
- C << "You fail to unbuckle yourself!"
- else
- C.buckled.user_unbuckle_mob(C,C)
- else
- L.buckled.user_unbuckle_mob(L,L)
+ if(buckled && last_special <= world.time)
+ resist_buckle()
//Breaking out of a container (Locker, sleeper, cryo...)
else if(loc && istype(loc, /obj) && !isturf(loc))
- if(L.stat == CONSCIOUS && !L.stunned && !L.weakened && !L.paralysis)
+ if(stat == CONSCIOUS && !stunned && !weakened && !paralysis)
var/obj/C = loc
- C.container_resist(L)
+ C.container_resist(src)
- //Stop drop and roll & Handcuffs
- else if(iscarbon(L))
- var/mob/living/carbon/CM = L
- if(CM.on_fire && CM.canmove)
- CM.fire_stacks -= 5
- CM.Weaken(3,1)
- CM.spin(32,2)
- CM.visible_message("[CM] rolls on the floor, trying to put themselves out!", \
- "You stop, drop, and roll!")
- sleep(30)
- if(fire_stacks <= 0)
- CM.visible_message("[CM] has successfully extinguished themselves!", \
- "You extinguish yourself.")
- ExtinguishMob()
- return
- if(CM.canmove && (CM.last_special <= world.time))
- if(CM.handcuffed || CM.legcuffed)
- CM.changeNext_move(CLICK_CD_BREAKOUT)
- CM.last_special = world.time + CLICK_CD_BREAKOUT
- if(CM.handcuffed)
- cuff_resist(CM.handcuffed, CM)
- else
- cuff_resist(CM.legcuffed, CM)
+ else if(canmove)
+ if(on_fire)
+ resist_fire() //stop, drop, and roll
+ else if(last_special <= world.time)
+ resist_restraints() //trying to remove cuffs.
-/mob/living/carbon/proc/spin(spintime, speed)
- spawn()
- var/D = dir
- while(spintime >= speed)
- sleep(speed)
- switch(D)
- if(NORTH)
- D = EAST
- if(SOUTH)
- D = WEST
- if(EAST)
- D = SOUTH
- if(WEST)
- D = NORTH
- dir = D
- spintime -= speed
+
+/mob/living/proc/resist_buckle()
+ buckled.user_unbuckle_mob(src,src)
+
+/mob/living/proc/resist_fire()
+ return
+
+/mob/living/proc/resist_restraints()
return
/mob/living/proc/get_visible_name()
@@ -779,7 +670,10 @@ Sorry Giacom. Please don't be mad :(
animate(src, pixel_y = pixel_y + 2, time = 10, loop = -1)
floating = 1
else if(!on && floating)
- animate(src, pixel_y = initial(pixel_y), time = 10)
+ var/final_pixel_y = initial(pixel_y)
+ if(lying && !buckled)
+ final_pixel_y = lying_pixel_offset
+ animate(src, pixel_y = final_pixel_y, time = 10)
floating = 0
//called when the mob receives a bright flash
@@ -842,9 +736,12 @@ Sorry Giacom. Please don't be mad :(
return
-/atom/movable/proc/do_attack_animation(atom/A)
+/atom/movable/proc/do_attack_animation(atom/A, end_pixel_y)
var/pixel_x_diff = 0
var/pixel_y_diff = 0
+ var/final_pixel_y = initial(pixel_y)
+ if(end_pixel_y)
+ final_pixel_y = end_pixel_y
var/direction = get_dir(src, A)
switch(direction)
if(NORTH)
@@ -867,20 +764,27 @@ Sorry Giacom. Please don't be mad :(
if(SOUTHWEST)
pixel_x_diff = -8
pixel_y_diff = -8
+
animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff, time = 2)
- animate(pixel_x = initial(pixel_x), pixel_y = initial(pixel_y), time = 2)
+ animate(pixel_x = initial(pixel_x), pixel_y = final_pixel_y, time = 2)
/mob/living/do_attack_animation(atom/A)
- ..()
+ var/final_pixel_y = initial(pixel_y)
+ if(lying && !buckled)
+ final_pixel_y = lying_pixel_offset
+ ..(A, final_pixel_y)
floating = 0 // If we were without gravity, the bouncing animation got stopped, so we make sure to restart it in next life().
/mob/living/proc/do_jitter_animation(jitteriness)
var/amplitude = min(4, (jitteriness/100) + 1)
var/pixel_x_diff = rand(-amplitude, amplitude)
var/pixel_y_diff = rand(-amplitude/3, amplitude/3)
+ var/final_pixel_y = initial(pixel_y)
+ if(lying && !buckled)
+ final_pixel_y = lying_pixel_offset
animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff , time = 2, loop = 6)
- animate(pixel_x = initial(pixel_x) , pixel_y = initial(pixel_y) , time = 2)
+ animate(pixel_x = initial(pixel_x) , pixel_y = final_pixel_y , time = 2)
floating = 0 // If we were without gravity, the bouncing animation got stopped, so we make sure to restart it in next life().
/mob/living/proc/get_temperature(var/datum/gas_mixture/environment)
diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm
index f949030014d..e90a20e97d0 100644
--- a/code/modules/mob/living/living_defines.dm
+++ b/code/modules/mob/living/living_defines.dm
@@ -32,7 +32,6 @@
var/cameraFollow = null
var/tod = null // Time of death
- var/update_slimes = 1
var/on_fire = 0 //The "Are we on fire?" var
var/fire_stacks = 0 //Tracks how many stacks of fire we have on, max is usually 20
@@ -41,5 +40,6 @@
var/floating = 0
var/mob_size = MOB_SIZE_HUMAN
var/metabolism_efficiency = 1 //more or less efficiency to metabolize helpful/harmful reagents and regulate body temperature..
-
- var/list/image/staticOverlays = list()
\ No newline at end of file
+ var/list/image/staticOverlays = list()
+ var/lying_pixel_offset = 0 //offset for pixel_y when the mob is lying down.
+ var/has_limbs = 0 //does the mob have distinct limbs?(arms,legs, chest,head)
diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm
index 8e0c98192a7..c2062b46546 100644
--- a/code/modules/mob/living/silicon/pai/pai.dm
+++ b/code/modules/mob/living/silicon/pai/pai.dm
@@ -3,7 +3,7 @@
icon = 'icons/obj/status_display.dmi' //invisibility!
mouse_opacity = 0
density = 0
- mob_size = MOB_SIZE_SMALL
+ mob_size = MOB_SIZE_TINY
var/network = "SS13"
var/obj/machinery/camera/current = null
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 6fcf7c2c9d1..15b7d70d17c 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -8,6 +8,7 @@
var/sight_mode = 0
var/custom_name = ""
designation = "Default" //used for displaying the prefix & getting the current module of cyborg
+ has_limbs = 1
//Hud stuff
diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm
index 4005451ecc9..62e5211dd77 100644
--- a/code/modules/mob/living/simple_animal/constructs.dm
+++ b/code/modules/mob/living/simple_animal/constructs.dm
@@ -16,6 +16,7 @@
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
faction = list("cult")
+ flying = 1
var/list/construct_spells = list()
var/playstyle_string = "You are a generic construct! Your job is to not exist."
@@ -86,7 +87,7 @@
environment_smash = 2
attack_sound = 'sound/weapons/punch3.ogg'
status_flags = 0
- mob_size = MOB_SIZE_SMALL
+ mob_size = MOB_SIZE_LARGE
force_threshold = 11
construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/lesserforcewall)
playstyle_string = "You are a Juggernaut. Though slow, your shell can withstand extreme punishment, \
diff --git a/code/modules/mob/living/simple_animal/friendly/butterfly.dm b/code/modules/mob/living/simple_animal/friendly/butterfly.dm
index e4f9e562e37..91595c5c13e 100644
--- a/code/modules/mob/living/simple_animal/friendly/butterfly.dm
+++ b/code/modules/mob/living/simple_animal/friendly/butterfly.dm
@@ -14,9 +14,10 @@
health = 2
harm_intent_damage = 1
friendly = "nudges"
- pass_flags = PASSTABLE
+ density = 0
+ pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
ventcrawler = 2
- mob_size = MOB_SIZE_SMALL
+ mob_size = MOB_SIZE_TINY
/mob/living/simple_animal/butterfly/New()
..()
diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm
index 16d35c5a486..84edb2f4371 100644
--- a/code/modules/mob/living/simple_animal/friendly/cat.dm
+++ b/code/modules/mob/living/simple_animal/friendly/cat.dm
@@ -79,4 +79,6 @@
icon_living = "kitten"
icon_dead = "kitten_dead"
gender = NEUTER
+ density = 0
+ pass_flags = PASSMOB
mob_size = MOB_SIZE_SMALL
diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm
index 25ec1dcb6fe..8537ded348a 100644
--- a/code/modules/mob/living/simple_animal/friendly/corgi.dm
+++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm
@@ -1,6 +1,7 @@
//Corgi
/mob/living/simple_animal/pet
icon = 'icons/mob/pets.dmi'
+ mob_size = MOB_SIZE_SMALL
var/obj/item/clothing/tie/petcollar/pcollar = null
var/image/collar = null
var/image/pettag = null
@@ -53,7 +54,7 @@
emote_see = list("shakes its head.", "shivers.")
speak_chance = 1
turns_per_move = 10
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/corgi
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi
meat_amount = 3
response_help = "pets"
response_disarm = "bops"
@@ -524,6 +525,8 @@
icon_living = "puppy"
icon_dead = "puppy_dead"
shaved = 0
+ density = 0
+ pass_flags = PASSMOB
mob_size = MOB_SIZE_SMALL
//puppies cannot wear anything.
diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
index 6b7f731e675..713710173f4 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm
@@ -23,6 +23,7 @@
wander = 0
speed = 0
ventcrawler = 2
+ density = 0
pass_flags = PASSTABLE | PASSMOB
sight = (SEE_TURFS | SEE_OBJS)
status_flags = (CANPUSH | CANSTUN | CANWEAKEN)
diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
index 8ade1262914..ed1a7115041 100644
--- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
+++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm
@@ -25,6 +25,7 @@
melee_damage_lower = 1
melee_damage_upper = 2
environment_smash = 0
+ stop_automated_movement_when_pulled = 1
var/datum/reagents/udder = null
/mob/living/simple_animal/hostile/retaliate/goat/New()
@@ -44,9 +45,9 @@
LoseTarget()
src.visible_message("[src] calms down.")
- if(stat == CONSCIOUS)
- if(udder && prob(5))
- udder.add_reagent("milk", rand(5, 10))
+ if(stat == CONSCIOUS)
+ if(udder && prob(5))
+ udder.add_reagent("milk", rand(5, 10))
if(locate(/obj/effect/spacevine) in loc)
var/obj/effect/spacevine/SV = locate(/obj/effect/spacevine) in loc
@@ -103,6 +104,7 @@
response_disarm = "gently pushes aside"
response_harm = "kicks"
attacktext = "kicks"
+ attack_sound = 'sound/weapons/punch1.ogg'
health = 50
var/datum/reagents/udder = null
@@ -156,6 +158,7 @@
speak_emote = list("cheeps")
emote_hear = list("cheeps")
emote_see = list("pecks at the ground","flaps its tiny wings")
+ density = 0
speak_chance = 2
turns_per_move = 2
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
@@ -167,8 +170,8 @@
health = 1
ventcrawler = 2
var/amount_grown = 0
- pass_flags = PASSTABLE | PASSGRILLE
- mob_size = MOB_SIZE_SMALL
+ pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
+ mob_size = MOB_SIZE_TINY
/mob/living/simple_animal/chick/New()
..()
@@ -198,6 +201,7 @@ var/global/chicken_count = 0
speak_emote = list("clucks","croons")
emote_hear = list("clucks")
emote_see = list("pecks at the ground","flaps its wings viciously")
+ density = 0
speak_chance = 2
turns_per_move = 3
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
@@ -214,7 +218,8 @@ var/global/chicken_count = 0
var/eggsFertile = TRUE
var/body_color
var/icon_prefix = "chicken"
- pass_flags = PASSTABLE
+ pass_flags = PASSTABLE | PASSMOB
+ mob_size = MOB_SIZE_SMALL
var/list/feedMessages = list("It clucks happily.","It clucks happily.")
var/list/layMessage = list("lays an egg.","squats down and croons.","begins making a huge racket.","begins clucking raucously.")
var/list/validColors = list("brown","black","white")
diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm
index 3e97c6d41e9..b03101df7f1 100644
--- a/code/modules/mob/living/simple_animal/friendly/lizard.dm
+++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm
@@ -15,4 +15,6 @@
response_disarm = "shoos"
response_harm = "stomps on"
ventcrawler = 2
- mob_size = MOB_SIZE_SMALL
\ No newline at end of file
+ density = 0
+ pass_flags = PASSTABLE | PASSMOB
+ mob_size = MOB_SIZE_SMALL
diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm
index 38e9f399ae1..e7d717ea97b 100644
--- a/code/modules/mob/living/simple_animal/friendly/mouse.dm
+++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm
@@ -20,8 +20,8 @@
response_harm = "splats"
density = 0
ventcrawler = 2
- pass_flags = PASSTABLE | PASSGRILLE
- mob_size = MOB_SIZE_SMALL
+ pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
+ mob_size = MOB_SIZE_TINY
var/body_color //brown, gray and white, leave blank for random
/mob/living/simple_animal/mouse/New()
diff --git a/code/modules/mob/living/simple_animal/friendly/pug.dm b/code/modules/mob/living/simple_animal/friendly/pug.dm
index 5d0359f7478..c25834a4479 100644
--- a/code/modules/mob/living/simple_animal/friendly/pug.dm
+++ b/code/modules/mob/living/simple_animal/friendly/pug.dm
@@ -12,7 +12,7 @@
emote_see = list("shakes its head.", "chases its tail.","shivers.")
speak_chance = 1
turns_per_move = 10
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/pug
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/pug
meat_amount = 3
response_help = "pets"
response_disarm = "bops"
diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm
index 0af9b62a638..e623032b340 100644
--- a/code/modules/mob/living/simple_animal/hostile/alien.dm
+++ b/code/modules/mob/living/simple_animal/hostile/alien.dm
@@ -10,7 +10,7 @@
response_disarm = "shoves"
response_harm = "hits"
speed = 0
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/xeno
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno
skin_type = /obj/item/stack/sheet/animalhide/xeno
meat_amount = 3
maxHealth = 100
diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm
index 5a05889ccd9..47e4f317b8d 100644
--- a/code/modules/mob/living/simple_animal/hostile/bear.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bear.dm
@@ -13,18 +13,18 @@
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/bear
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear
meat_amount = 3
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "hits"
- stop_automated_movement_when_pulled = 0
maxHealth = 60
health = 60
melee_damage_lower = 20
melee_damage_upper = 30
attacktext = "claws"
+ attack_sound = 'sound/weapons/bladeslice.ogg'
friendly = "bear hugs"
//Space bears aren't affected by cold.
@@ -54,7 +54,6 @@
. = ..()
if(.)
emote("me", 1, "stares alertly at [.]")
- stance = HOSTILE_STANCE_ATTACK
/mob/living/simple_animal/hostile/bear/LoseTarget()
..(5)
diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm
index 31316587039..a1a0cd68c9f 100644
--- a/code/modules/mob/living/simple_animal/hostile/bees.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bees.dm
@@ -12,14 +12,15 @@
response_help = "shoos"
response_disarm = "swats away"
response_harm = "squashes"
- stop_automated_movement_when_pulled = 0
maxHealth = 10
health = 10
faction = list("hostile")
move_to_delay = 0
environment_smash = 0
mouse_opacity = 2
- pass_flags = PASSTABLE
+ pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
+ mob_size = MOB_SIZE_SMALL
+ flying = 1
//Spaceborn beings don't get hurt by space
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm
index 618df114515..27a71e7d037 100644
--- a/code/modules/mob/living/simple_animal/hostile/carp.dm
+++ b/code/modules/mob/living/simple_animal/hostile/carp.dm
@@ -28,6 +28,7 @@
maxbodytemp = 1500
faction = list("carp")
+ flying = 1
/mob/living/simple_animal/hostile/carp/Process_Spacemove(var/movement_dir = 0)
return 1 //No drifting in space for space carp! //original comments do not steal
diff --git a/code/modules/mob/living/simple_animal/hostile/eyeballs.dm b/code/modules/mob/living/simple_animal/hostile/eyeballs.dm
index 313798c6b22..84886c63dae 100644
--- a/code/modules/mob/living/simple_animal/hostile/eyeballs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/eyeballs.dm
@@ -19,6 +19,7 @@
melee_damage_upper = 25
attacktext = "blinks at"
attack_sound = 'sound/weapons/pierce.ogg'
+ flying = 1
faction = list("spooky")
diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
index c0219aac81b..5c7db3c30ce 100644
--- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
+++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm
@@ -33,12 +33,11 @@
speak_chance = 5
turns_per_move = 5
see_in_dark = 10
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/spider
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/spider
meat_amount = 2
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "hits"
- stop_automated_movement_when_pulled = 0
maxHealth = 200
health = 200
melee_damage_lower = 15
@@ -48,6 +47,8 @@
pass_flags = PASSTABLE
move_to_delay = 6
ventcrawler = 2
+ attacktext = "bites"
+ attack_sound = 'sound/weapons/bite.ogg'
//nursemaids - these create webs and eggs
/mob/living/simple_animal/hostile/poison/giant_spider/nurse
diff --git a/code/modules/mob/living/simple_animal/hostile/headcrab.dm b/code/modules/mob/living/simple_animal/hostile/headcrab.dm
index 4065fcfe198..227aa9af285 100644
--- a/code/modules/mob/living/simple_animal/hostile/headcrab.dm
+++ b/code/modules/mob/living/simple_animal/hostile/headcrab.dm
@@ -20,7 +20,10 @@
/mob/living/simple_animal/hostile/headcrab/proc/Infect(var/mob/living/carbon/human/victim)
var/obj/item/body_egg/changeling_egg/egg = new(victim)
- egg.owner = origin
+ if(origin)
+ egg.owner = origin
+ else if(mind) // Let's make this a feature
+ egg.owner = mind
victim.internal_organs += egg
visible_message("[src] lays an egg in a [victim]!")
@@ -41,6 +44,7 @@
desc = "Twitching and disgusting"
var/datum/mind/owner
var/time
+ var/used
/obj/item/body_egg/changeling_egg/egg_process()
//Changeling eggs grow in dead people
@@ -49,11 +53,17 @@
Pop()
obj/item/body_egg/changeling_egg/proc/Pop()
- var/mob/living/carbon/monkey/M = new(affected_mob.loc)
- owner.transfer_to(M)
- owner.changeling.purchasedpowers += new /obj/effect/proc_holder/changeling/humanform(null)
- M.key = owner.key
- affected_mob.gib()
+ if(!used)
+ var/mob/living/carbon/monkey/M = new(affected_mob.loc)
+ if(owner)
+ owner.transfer_to(M)
+ owner.changeling.purchasedpowers += new /obj/effect/proc_holder/changeling/humanform(null)
+ M.key = owner.key
+ if(ishuman(affected_mob))
+ var/mob/living/carbon/human/H = affected_mob
+ H.internal_organs.Remove(src)
+ affected_mob.gib()
+ used = 1
qdel(src)
#undef EGG_INCUBATION_TIME
diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm
index b79fecee6ef..1d19f738c5e 100644
--- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm
@@ -14,6 +14,7 @@
melee_damage_lower = 2
melee_damage_upper = 3
attacktext = "claws"
+ attack_sound = 'sound/weapons/bladeslice.ogg'
projectilesound = 'sound/weapons/Gunshot.ogg'
projectiletype = /obj/item/projectile/hivebotbullet
faction = list("hivebot")
diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm
index 91a67fcb380..19e31dc5056 100644
--- a/code/modules/mob/living/simple_animal/hostile/hostile.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm
@@ -35,8 +35,8 @@
/mob/living/simple_animal/hostile/Life()
. = ..()
- if(!.)
- walk(src, 0)
+ if(!.) //dead
+ walk(src, 0) //stops walking
return 0
if(ranged)
ranged_cooldown--
@@ -49,8 +49,7 @@
if(HOSTILE_STANCE_IDLE)
if(environment_smash)
EscapeConfinement()
- var/new_target = FindTarget()
- GiveTarget(new_target)
+ FindTarget()
if(HOSTILE_STANCE_ATTACK)
MoveToTarget()
@@ -93,6 +92,7 @@
Targets += A
continue
Target = PickTarget(Targets)
+ GiveTarget(Target)
return Target //We now have a target
/mob/living/simple_animal/hostile/proc/Found(var/atom/A)//This is here as a potential override to pick a specific target if available
@@ -193,12 +193,10 @@
target = null
if(stance == HOSTILE_STANCE_IDLE)//If we took damage while idle, immediately attempt to find the source of it so we find a living target
Aggro()
- var/new_target = FindTarget()
- GiveTarget(new_target)
+ FindTarget()
if(stance == HOSTILE_STANCE_ATTACK)//No more pulling a mob forever and having a second player attack it, it can switch targets now if it finds a more suitable one
if(target != null && prob(40))
- var/new_target = FindTarget()
- GiveTarget(new_target)
+ FindTarget()
/mob/living/simple_animal/hostile/proc/AttackTarget()
@@ -349,4 +347,4 @@
//Convenience
/mob/living/simple_animal/hostile/proc/AIShouldSleep()
- . = !(AIShouldWake())
+ . = !(AIShouldWake())
diff --git a/code/modules/mob/living/simple_animal/hostile/killertomato.dm b/code/modules/mob/living/simple_animal/hostile/killertomato.dm
index efddba87b34..cea4a9d31bd 100644
--- a/code/modules/mob/living/simple_animal/hostile/killertomato.dm
+++ b/code/modules/mob/living/simple_animal/hostile/killertomato.dm
@@ -9,7 +9,7 @@
maxHealth = 30
health = 30
see_in_dark = 3
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/killertomato
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/killertomato
meat_amount = 1
response_help = "prods"
response_disarm = "pushes aside"
@@ -17,6 +17,7 @@
melee_damage_lower = 8
melee_damage_upper = 12
attacktext = "slams"
+ attack_sound = 'sound/weapons/punch1.ogg'
ventcrawler = 2
faction = list("plants")
diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm
index 85089cae53c..d9759e6c39d 100644
--- a/code/modules/mob/living/simple_animal/hostile/mimic.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm
@@ -20,7 +20,7 @@
melee_damage_lower = 8
melee_damage_upper = 12
attacktext = "attacks"
- attack_sound = 'sound/weapons/bite.ogg'
+ attack_sound = 'sound/weapons/punch1.ogg'
var/Attackemote = "growls at"
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
index 70ec5f7a488..0a19bf4e19d 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
@@ -129,6 +129,7 @@
melee_damage_lower = 0
melee_damage_upper = 0
attacktext = "barrels into"
+ attack_sound = 'sound/weapons/punch1.ogg'
a_intent = "help"
throw_message = "sinks in slowly, before being pushed out of "
status_flags = CANPUSH
@@ -229,6 +230,7 @@
melee_damage_lower = 0
melee_damage_upper = 0
attacktext = "lashes out at"
+ attack_sound = 'sound/weapons/pierce.ogg'
throw_message = "falls right through the strange body of the"
ranged_cooldown = 0
ranged_cooldown_cap = 0
@@ -255,7 +257,7 @@
/obj/item/asteroid/hivelord_core
name = "hivelord remains"
desc = "All that remains of a hivelord, it seems to be what allows it to break pieces of itself off without being hurt... its healing properties will soon become inert if not used quickly. Try not to think about what you're eating."
- icon = 'icons/obj/food.dmi'
+ icon = 'icons/obj/food/food.dmi'
icon_state = "boiledrorocore"
var/inert = 0
@@ -303,6 +305,7 @@
melee_damage_lower = 2
melee_damage_upper = 2
attacktext = "slashes"
+ attack_sound = 'sound/weapons/pierce.ogg'
throw_message = "falls right through the strange body of the"
environment_smash = 0
pass_flags = PASSTABLE
@@ -339,6 +342,7 @@
melee_damage_lower = 25
melee_damage_upper = 25
attacktext = "pulverizes"
+ attack_sound = 'sound/weapons/punch1.ogg'
throw_message = "does nothing to the rocky hide of the"
aggro_vision_range = 9
idle_vision_range = 5
diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm
index aacc4da57f3..fcfb32ecf65 100644
--- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm
@@ -18,6 +18,7 @@
melee_damage_upper = 1
attack_same = 2
attacktext = "chomps"
+ attack_sound = 'sound/weapons/bite.ogg'
faction = list("mushroom")
environment_smash = 0
stat_attack = 2
diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/pirate.dm
index 2bd4ffb6341..f707265c255 100644
--- a/code/modules/mob/living/simple_animal/hostile/pirate.dm
+++ b/code/modules/mob/living/simple_animal/hostile/pirate.dm
@@ -10,7 +10,6 @@
response_disarm = "shoves"
response_harm = "hits"
speed = 0
- stop_automated_movement_when_pulled = 0
maxHealth = 100
health = 100
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm
index bf79c041a63..ab47c8992bc 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm
@@ -10,7 +10,6 @@
response_disarm = "flails at"
response_harm = "hits"
speak_chance = 0
- stop_automated_movement_when_pulled = 0
maxHealth = 15
health = 15
see_in_dark = 10
@@ -23,7 +22,8 @@
attack_sound = 'sound/weapons/bite.ogg'
environment_smash = 0
ventcrawler = 2
- mob_size = MOB_SIZE_SMALL
+ mob_size = MOB_SIZE_TINY
+ flying = 1
var/max_co2 = 0 //to be removed once metastation map no longer use those for Sgt Araneus
var/min_oxy = 0
var/max_tox = 0
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
index 3fca1ad51b4..b086e555ad0 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/clown.dm
@@ -14,7 +14,6 @@
emote_see = list("honks")
speak_chance = 1
a_intent = "harm"
- stop_automated_movement_when_pulled = 0
maxHealth = 75
health = 75
speed = 0
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm
index 9e895f0d7e2..6c76a1520cd 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/retaliate.dm
@@ -5,14 +5,12 @@
if(isliving(A))
var/mob/living/L = A
if(!L.stat)
- stance = HOSTILE_STANCE_ATTACK
return L
else
enemies -= L
else if(istype(A, /obj/mecha))
var/obj/mecha/M = A
if(M.occupant)
- stance = HOSTILE_STANCE_ATTACK
return A
/mob/living/simple_animal/hostile/retaliate/ListTargets()
@@ -23,7 +21,6 @@
return see
/mob/living/simple_animal/hostile/retaliate/proc/Retaliate()
- ..()
var/list/around = view(src, vision_range)
for(var/atom/movable/A in around)
diff --git a/code/modules/mob/living/simple_animal/hostile/russian.dm b/code/modules/mob/living/simple_animal/hostile/russian.dm
index 1f96f9533a4..c9ef9685534 100644
--- a/code/modules/mob/living/simple_animal/hostile/russian.dm
+++ b/code/modules/mob/living/simple_animal/hostile/russian.dm
@@ -11,13 +11,13 @@
response_disarm = "shoves"
response_harm = "hits"
speed = 0
- stop_automated_movement_when_pulled = 0
maxHealth = 100
health = 100
harm_intent_damage = 5
melee_damage_lower = 15
melee_damage_upper = 15
attacktext = "punches"
+ attack_sound = 'sound/weapons/punch1.ogg'
a_intent = "harm"
var/corpse = /obj/effect/landmark/mobcorpse/russian
var/weapon1 = /obj/item/weapon/kitchenknife
diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm
index bfd39fc4f7c..66fc43acd76 100644
--- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm
+++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm
@@ -11,13 +11,13 @@
response_disarm = "shoves"
response_harm = "hits"
speed = 0
- stop_automated_movement_when_pulled = 0
maxHealth = 100
health = 100
harm_intent_damage = 5
melee_damage_lower = 10
melee_damage_upper = 10
attacktext = "punches"
+ attack_sound = 'sound/weapons/punch1.ogg'
a_intent = "harm"
var/corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier
var/weapon1
@@ -48,6 +48,7 @@
weapon1 = /obj/item/weapon/melee/energy/sword/saber/red
weapon2 = /obj/item/weapon/shield/energy
attacktext = "slashes"
+ attack_sound = 'sound/weapons/bladeslice.ogg'
status_flags = 0
/mob/living/simple_animal/hostile/syndicate/melee/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
@@ -130,7 +131,8 @@
faction = list("syndicate")
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 0
- mob_size = MOB_SIZE_SMALL
+ mob_size = MOB_SIZE_TINY
+ flying
/mob/living/simple_animal/hostile/viscerator/death(gibbed)
..(gibbed)
diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm
index bc1e35d3b6a..98393b7eafa 100644
--- a/code/modules/mob/living/simple_animal/parrot.dm
+++ b/code/modules/mob/living/simple_animal/parrot.dm
@@ -33,7 +33,8 @@
icon_state = "parrot_fly"
icon_living = "parrot_fly"
icon_dead = "parrot_dead"
- pass_flags = PASSTABLE
+ density = 0
+ pass_flags = PASSTABLE | PASSMOB
speak = list("Hi!","Hello!","Cracker?","BAWWWWK george mellons griffing me!")
speak_emote = list("squawks","says","yells")
@@ -55,6 +56,7 @@
attacktext = "chomps"
friendly = "grooms"
mob_size = MOB_SIZE_SMALL
+ flying = 1
var/parrot_damage_upper = 10
var/parrot_state = PARROT_WANDER //Hunt for a perch when created
diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm
index a1982d4d0bd..c88c07f4570 100644
--- a/code/modules/mob/living/simple_animal/shade.dm
+++ b/code/modules/mob/living/simple_animal/shade.dm
@@ -23,6 +23,7 @@
status_flags = 0
faction = list("cult")
status_flags = CANPUSH
+ flying = 1
/mob/living/simple_animal/shade/death()
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index 8a957080878..1864c0d1f84 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -57,7 +57,7 @@
//simple_animal access
var/obj/item/weapon/card/id/access_card = null //innate access uses an internal ID card
-
+ var/flying = 0 //whether it's flying or touching the ground.
/mob/living/simple_animal/New()
..()
@@ -387,7 +387,6 @@
icon_state = icon_dead
stat = DEAD
density = 0
- lying = 1
if(!gibbed)
visible_message("\the [src] stops moving...")
..()
@@ -432,8 +431,7 @@
/mob/living/simple_animal/revive()
health = maxHealth
icon_state = icon_living
- lying = 0
- density = 1
+ density = initial(density)
update_canmove()
..()
@@ -484,3 +482,12 @@
return
else
..()
+
+/mob/living/simple_animal/update_canmove()
+ if(paralysis || stunned || weakened || stat || resting || buckled)
+ drop_r_hand()
+ drop_l_hand()
+ canmove = 0
+ else
+ canmove = 1
+ return canmove
diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm
index d9a0b893187..cde4d29cadc 100644
--- a/code/modules/mob/living/simple_animal/slime/slime.dm
+++ b/code/modules/mob/living/simple_animal/slime/slime.dm
@@ -29,7 +29,6 @@
nutrition = 700
see_in_dark = 8
- update_slimes = 0
verb_say = "telepathically chirps"
verb_ask = "telepathically asks"
diff --git a/code/modules/mob/living/simple_animal/slime/update_icons.dm b/code/modules/mob/living/simple_animal/slime/update_icons.dm
deleted file mode 100644
index 14525b1e8a0..00000000000
--- a/code/modules/mob/living/simple_animal/slime/update_icons.dm
+++ /dev/null
@@ -1,4 +0,0 @@
-//no special icon processing
-
-/mob/living/simple_animal/slime/update_transform() //They're slimes, they don't lie down.
- return
\ No newline at end of file
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 8762927332f..3a4af5d847c 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -771,7 +771,7 @@ var/list/slot_equipment_priority = list( \
//Updates canmove, lying and icons. Could perhaps do with a rename but I can't think of anything to describe it.
-//Robots and brains have their own version so don't worry about them
+//Robots, animals and brains have their own version so don't worry about them
/mob/proc/update_canmove()
var/ko = weakened || paralysis || stat || (status_flags & FAKEDEATH)
var/buckle_lying = !(buckled && !buckled.buckle_lying)
diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm
index 1d34da24490..791082d872e 100644
--- a/code/modules/mob/mob_movement.dm
+++ b/code/modules/mob/mob_movement.dm
@@ -3,6 +3,8 @@
if(istype(mover) && mover.checkpass(PASSMOB))
return 1
+ if(istype(mover, /obj/item/projectile))
+ return (!density || lying)
if(ismob(mover))
var/mob/moving_mob = mover
if ((other_mobs && moving_mob.other_mobs))
diff --git a/code/modules/nano/nanoui.dm b/code/modules/nano/nanoui.dm
index c38714a1a63..6b67a64ac3f 100644
--- a/code/modules/nano/nanoui.dm
+++ b/code/modules/nano/nanoui.dm
@@ -402,7 +402,7 @@ nanoui is used to open and update nano browser uis
*
* @return nothing
*/
-/datum/nanoui/proc/process(update = 0)
+/datum/nanoui/process(update = 0)
if (!src_object || !user)
close()
return
diff --git a/code/modules/ninja/__ninjaDefines.dm b/code/modules/ninja/__ninjaDefines.dm
index a8dc65f9f13..352087f4e83 100644
--- a/code/modules/ninja/__ninjaDefines.dm
+++ b/code/modules/ninja/__ninjaDefines.dm
@@ -10,4 +10,15 @@ Contents:
//ninjacost() specificCheck defines
#define N_STEALTH_CANCEL 1
#define N_SMOKE_BOMB 2
-#define N_ADRENALINE 3
\ No newline at end of file
+#define N_ADRENALINE 3
+
+//ninjaDrainAct() defines for non numerical returns
+//While not strictly needed, it's nicer than them just returning "twat"
+//Which was my original intention.
+
+#define INVALID_DRAIN "INVALID" //This one is if the drain proc needs to cancel, eg missing variables, etc, it's important.
+
+#define DRAIN_RD_HACKED "RDHACK"
+#define DRAIN_RD_HACK_FAILED "RDHACKFAIL"
+#define DRAIN_MOB_SHOCK "MOBSHOCK"
+#define DRAIN_MOB_SHOCK_FAILED "MOBSHOCKFAIL"
\ No newline at end of file
diff --git a/code/modules/ninja/energy_katana.dm b/code/modules/ninja/energy_katana.dm
index 513e5963de6..5950d5c0f0c 100644
--- a/code/modules/ninja/energy_katana.dm
+++ b/code/modules/ninja/energy_katana.dm
@@ -1,5 +1,4 @@
-
/obj/item/weapon/katana/energy
name = "energy katana"
desc = "A katana infused with strong energy."
@@ -7,14 +6,75 @@
item_state = "energy_katana"
force = 40
throwforce = 20
+ var/datum/effect/effect/system/spark_spread/spark_system
/obj/item/weapon/katana/energy/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
if(!user || !target)
return
if(proximity_flag)
- target.emag_act()
- user.visible_message("[user] masterfully slices [target]!", "You masterfully slice [target]!")
- playsound(user, "sparks", 50, 1)
- playsound(user, 'sound/weapons/blade1.ogg', 50, 1)
+ if(isobj(target) || issilicon(target))
+ spark_system.start()
+ playsound(user, "sparks", 50, 1)
+ playsound(user, 'sound/weapons/blade1.ogg', 50, 1)
+ target.emag_act(user)
+
+//If we hit the Ninja who owns this Katana, they catch it.
+//Works for if the Ninja throws it or it throws itself or someone tries
+//To throw it at the ninja
+/obj/item/weapon/katana/energy/throw_impact(atom/hit_atom)
+ if(ishuman(hit_atom))
+ var/mob/living/carbon/human/H = hit_atom
+ if(istype(H.wear_suit, /obj/item/clothing/suit/space/space_ninja))
+ var/obj/item/clothing/suit/space/space_ninja/SN = H.wear_suit
+ if(SN.energyKatana == src)
+ returnToOwner(H, 0, 1)
+ return
+
+ ..()
+
+/obj/item/weapon/katana/energy/proc/returnToOwner(var/mob/living/carbon/human/user, var/doSpark = 1, var/caught = 0)
+ if(!istype(user))
+ return
+ loc = get_turf(src)
+
+ if(doSpark)
+ spark_system.start()
+ playsound(get_turf(src), "sparks", 50, 1)
+
+ var/msg = ""
+
+ if(user.put_in_hands(src))
+ msg = "Your Energy Katana teleports into your hand!"
+ else if(user.equip_to_slot_if_possible(src, slot_belt, 0, 1, 1))
+ msg = "Your Energy Katana teleports back to you, sheathing itself as it does so!"
+ else
+ loc = get_turf(user)
+ msg = "Your Energy Katana teleports to your location!"
+
+ if(caught)
+ if(loc == user)
+ msg = "You catch your Energy Katana!"
+ else
+ msg = "Your Energy Katana lands at your feet!"
+
+ if(msg)
+ user << "[msg]"
+
+/obj/item/weapon/katana/energy/New()
+ ..()
+ spark_system = new /datum/effect/effect/system/spark_spread()
+ spark_system.set_up(5, 0, src)
+ spark_system.attach(src)
+
+
+/obj/item/weapon/katana/energy/Del()
+ qdel(spark_system)
+ spark_system = null
+ ..()
+
+/obj/item/weapon/katana/energy/Destroy()
+ qdel(spark_system)
+ spark_system = null
+ return ..()
\ No newline at end of file
diff --git a/code/modules/ninja/ninja_event.dm b/code/modules/ninja/ninja_event.dm
index 47251f6f556..c2f42a9bd39 100644
--- a/code/modules/ninja/ninja_event.dm
+++ b/code/modules/ninja/ninja_event.dm
@@ -193,15 +193,19 @@ proc/create_ninja_mind(key)
qdel(gloves)
var/obj/item/device/radio/R = new /obj/item/device/radio/headset(src)
+ var/obj/item/clothing/suit/space/space_ninja/theSuit = new(src)
+ var/obj/item/weapon/katana/energy/EK = new(src)
+ theSuit.energyKatana = EK
+
equip_to_slot_or_del(R, slot_ears)
equip_to_slot_or_del(new /obj/item/clothing/under/color/black(src), slot_w_uniform)
equip_to_slot_or_del(new /obj/item/clothing/shoes/space_ninja(src), slot_shoes)
- equip_to_slot_or_del(new /obj/item/clothing/suit/space/space_ninja(src), slot_wear_suit)
+ equip_to_slot_or_del(theSuit, slot_wear_suit)
equip_to_slot_or_del(new /obj/item/clothing/gloves/space_ninja(src), slot_gloves)
equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/space_ninja(src), slot_head)
equip_to_slot_or_del(new /obj/item/clothing/mask/gas/voice/space_ninja(src), slot_wear_mask)
equip_to_slot_or_del(new /obj/item/clothing/glasses/night(src), slot_glasses)
- equip_to_slot_or_del(new /obj/item/weapon/katana/energy(src), slot_belt)
+ equip_to_slot_or_del(EK, slot_belt)
equip_to_slot_or_del(new /obj/item/device/flashlight(src), slot_r_store)
equip_to_slot_or_del(new /obj/item/weapon/c4(src), slot_l_store)
equip_to_slot_or_del(new /obj/item/weapon/tank/internals/emergency_oxygen(src), slot_s_store)
diff --git a/code/modules/ninja/suit/SpiderOS.dm b/code/modules/ninja/suit/SpiderOS.dm
deleted file mode 100644
index f73a6cbc3d0..00000000000
--- a/code/modules/ninja/suit/SpiderOS.dm
+++ /dev/null
@@ -1,277 +0,0 @@
-
-
-//HERE BE A VERY LARGE DRAGON
-
-/obj/item/clothing/suit/space/space_ninja/proc/spideros()
- set name = "Display SpiderOS"
- set desc = "Utilize built-in computer system."
- set category = "Ninja Equip"
-
- if(!s_busy)
- display_spideros()
- else
- affecting << "The interface is locked!"
-
-
-/obj/item/clothing/suit/space/space_ninja/proc/display_spideros()
- if(!affecting) return//If no mob is wearing the suit. I almost forgot about this variable.
- var/mob/living/carbon/human/U = affecting
- var/display_to = U//Who do we want to display certain messages to?
-
- var/dat = "SpiderOS"
- dat += "
Refresh"
- if(spideros)
- dat += " |
Return"
- dat += " |
Close"
- dat += "
"
- dat += "SpiderOS v.1.337
"
- dat += "Welcome, [U.real_name].
"
- dat += "
"
- dat += "
Current Time: [worldtime2text()]
"
- dat += "
Battery Life: [round(cell.charge/100)]%
"
- dat += "
Smoke Bombs: \Roman [s_bombs]
"
- dat += "
"
-
- switch(spideros)
- if(0)
- dat += "
Available Functions:
"
- dat += ""
- if(3)
- dat += "
Medical Report:
"
- if(U.dna)
- dat += "Fingerprints: [md5(U.dna.uni_identity)]
"
- dat += "Unique identity: [U.dna.unique_enzymes]
"
- dat += "Overall Status: [U.stat > 1 ? "dead" : "[U.health]% healthy"]
"
- dat += "Nutrition Status: [U.nutrition]
"
- dat += "Oxygen loss: [U.getOxyLoss()]"
- dat += " | Toxin levels: [U.getToxLoss()]
"
- dat += "Burn severity: [U.getFireLoss()]"
- dat += " | Brute trauma: [U.getBruteLoss()]
"
- dat += "Radiation Level: [U.radiation] rad
"
- dat += "Body Temperature: [U.bodytemperature-T0C]°C ([U.bodytemperature*1.8-459.67]°F)
"
-
- for(var/datum/disease/D in U.viruses)
- dat += "Warning: Virus Detected. Name: [D.name].Type: [D.spread_text]. Stage: [D.stage]/[D.max_stages]. Possible Cure: [D.cure_text].
"
- dat += ""
- if(1)
- dat += "
Atmospheric Scan:
"//Headers don't need breaks. They are automatically placed.
- var/turf/T = get_turf(U.loc)
- if (isnull(T))
- dat += "Unable to obtain a reading."
- else
- var/datum/gas_mixture/environment = T.return_air()
-
- var/pressure = environment.return_pressure()
- var/total_moles = environment.total_moles()
-
- dat += "Air Pressure: [round(pressure,0.1)] kPa"
-
- if (total_moles)
- var/o2_level = environment.oxygen/total_moles
- var/n2_level = environment.nitrogen/total_moles
- var/co2_level = environment.carbon_dioxide/total_moles
- var/plasma_level = environment.toxins/total_moles
- var/unknown_level = 1-(o2_level+n2_level+co2_level+plasma_level)
- dat += ""
- dat += "- Nitrogen: [round(n2_level*100)]%
"
- dat += "- Oxygen: [round(o2_level*100)]%
"
- dat += "- Carbon Dioxide: [round(co2_level*100)]%
"
- dat += "- Plasma: [round(plasma_level*100)]%
"
- dat += "
"
- if(unknown_level > 0.01)
- dat += "OTHER: [round(unknown_level)]%
"
-
- dat += "Temperature: [round(environment.temperature-T0C)]°C"
- if(2)
- dat += "
Anonymous Messenger:
"//Anonymous because the receiver will not know the sender's identity.
- dat += "
Detected PDAs:
"
- dat += ""
- var/count = 0
- for (var/obj/item/device/pda/P in get_viewable_pdas())
- dat += "- [P]"
- dat += "
"
- count++
- dat += "
"
- if (count == 0)
- dat += "None detected.
"
- if(4)
- dat += {"
-
Ninja Manual:
- Who they are:
- Space ninjas are a special type of ninja, specifically one of the space-faring type. The vast majority of space ninjas belong to the Spider Clan, a cult-like sect, which has existed for several hundred years. The Spider Clan practice a sort of augmentation of human flesh in order to achieve a more perfect state of being and follow Postmodern Space Bushido. They also kill people for money. Their leaders are chosen from the oldest of the grand-masters, people that have lived a lot longer than any mortal man should.
Being a sect of technology-loving fanatics, the Spider Clan have the very best to choose from in terms of hardware--cybernetic implants, exoskeleton rigs, hyper-capacity batteries, and you get the idea. Some believe that much of the Spider Clan equipment is based on reverse-engineered alien technology while others doubt such claims.
Whatever the case, their technology is absolutely superb.
- How they relate to other SS13 organizations:
-
- - *Nanotrasen and the Syndicate are two sides of the same coin and that coin is valuable.
- - *The Space Wizard Federation is a problem, mainly because they are an extremely dangerous group of unpredictable individuals--not to mention the wizards hate technology and are in direct opposition of the Spider Clan. Best avoided or left well-enough alone. How to battle: wizards possess several powerful abilities to steer clear off. Blind in particular is a nasty spell--jaunt away if you are blinded and never approach a wizard in melee. Stealth may also work if the wizard is not wearing thermal scanners--don't count on this. Run away if you feel threatened and await a better opportunity.
- - *Changeling Hivemind: extremely dangerous and to be killed on sight. How to battle: they will likely try to absorb you. Adrenaline boost, then phase shift into them. If you get stung, use SpiderOS to inject counter-agents. Stealth may also work but detecting a changeling is the real battle.
- - *Xeno Hivemind: their skulls make interesting kitchen decorations and are challenging to best, especially in larger nests. How to battle: they can see through your stealth guise and energy stars will not work on them. Best killed with a Phase Shift or at range. If you happen on a projectile stun weapon, use it and then close in to melee.
-
- The reason they (you) are here:
- Space ninjas are renowned throughout the known controlled space as fearless spies, infiltrators, and assassins. They are sent on missions of varying nature by Nanotrasen, the Syndicate, and other shady organizations and people. To hire a space ninja means serious business.
- Their playstyle:
- A mix of traitor, changeling, and wizard. Ninjas rely on energy, or electricity to be precise, to keep their suits running (when out of energy, a suit hibernates). Suits gain energy from objects or creatures that contain electrical charge. APCs, cell batteries, rechargers, SMES batteries, cyborgs, mechs, and exposed wires are currently supported. Through energy ninjas gain access to special powers--while all powers are tied to the ninja suit, the most useful of them are verb activated--to help them in their mission.
It is a constant struggle for a ninja to remain hidden long enough to recharge the suit and accomplish their objective; despite their arsenal of abilities, ninjas can die like any other. Unlike wizards, ninjas do not possess good crowd control and are typically forced to play more subdued in order to achieve their goals. Some of their abilities are specifically designed to confuse and disorient others.
With that said, it should be perfectly possible to completely flip the fuck out and rampage as a ninja.
- Their powers:
- There are two primary types: Equipment and Abilties. Passive effect are always on. Active effect must be turned on and remain active only when there is energy to do so. Ability costs are listed next to them.
- Equipment: cannot be tracked by AI (passive), faster speed (passive), stealth (active), vision switch (passive if toggled), voice masking (passive), SpiderOS (passive if toggled), energy drain (passive if toggled).
-
- - Voice masking generates a random name the ninja can use over the radio and in-person. Although, the former use is recommended.
- - Toggling vision cycles to one of the following: thermal, meson, or darkness vision. The starting mode allows one to scout the identity of those in view, revealing their role. Traitors, revolutionaries, wizards, and other such people will be made known to you.
- - Stealth, when activated, drains more battery charge and works similarly to a syndicate cloak. The cloak will deactivate when most Abilities are utilized.
- - On-board AI: The suit is able to download an AI much like an intellicard. Check with SpiderOS for details once downloaded.
- - SpiderOS is a specialized, PDA-like screen that allows for a small variety of functions, such as injecting healing chemicals directly from the suit. You are using it now, if that was not already obvious. You may also download AI modules directly to the OS.
-
- Abilities:
-
- - *Phase Shift (2000E) and Phase Jaunt (1000E) are unique powers in that they can both be used for defense and offense. Jaunt launches the ninja forward facing up to 9 squares, somewhat randomly selecting the final destination. Shift can only be used on turf in view but is precise (cannot be used on walls). Any living mob in the area teleported to is instantly gibbed (mechs are damaged, huggers and other similar critters are killed). It is possible to teleport with a target, provided you grab them before teleporting.
- - *Energy Blade (500E) is a highly effective weapon. It is summoned directly to the ninja's hand and can also function as an EMAG for certain objects (doors/lockers/etc). You may also use it to cut through walls and disabled doors. Experiment! The blade will crit humans in two hits. This item cannot be placed in containers and when dropped or thrown disappears. Having an energy blade drains more power from the battery each tick.
- - *EM Pulse (2500E) is a highly useful ability that will create an electromagnetic shockwave around the ninja, disabling technology whenever possible. If used properly it can render a security force effectively useless. Of course, getting beat up with a toolbox is not accounted for.
- - *Energy Star (500E) is a ninja star made of green energy AND coated in poison. It works by picking a random living target within range and can be spammed to great effect in incapacitating foes. Just remember that the poison used is also used by the Xeno Hivemind (and will have no effect on them).
- - *Energy Net (2000E) is a non-lethal solution to incapacitating humanoids. The net is made of non-harmful phase energy and will halt movement as long as it remains in effect--it can be destroyed. If the net is not destroyed, after a certain time it will teleport the target to a holding facility for the Spider Clan and then vanish. You will be notified if the net fails or succeeds in capturing a target in this manner. Combine with energy stars or stripping to ensure success. Abduction never looked this leet.
- - *Adrenaline Boost (1 E. Boost/3) recovers the user from stun, weakness, and paralysis. Also injects 20 units of radium into the bloodstream.
- - *Smoke Bomb (1 Sm.Bomb/10) is a weak but potentially useful ability. It creates harmful smoke and can be used in tandem with other powers to confuse enemies.
- - *???: unleash the True Ultimate Power!
- IMPORTANT:
-
- - *Make sure to toggle Special Interaction from the Ninja Equipment menu to interact differently with certain objects.
- - *Your starting power cell can be replaced if you find one with higher maximum energy capacity by clicking on your suit with the higher capacity cell.
- - *Conserve your energy. Without it, you are very vulnerable.
-
- That is all you will need to know. The rest will come with practice and talent. Good luck!
- Master /N
- "}
- if(6)
- dat += {"
-
Activate Abilities:
-
- "}
- if(7)
- dat += "
Research Stored:
"
- if(t_disk)
- dat += "Eject Disk
"
- dat += ""
- if(istype(stored_research,/list))//If there is stored research. Should be but just in case.
- for(var/datum/tech/current_data in stored_research)
- dat += "- "
- dat += "[current_data.name]: [current_data.level]"
- if(t_disk)//If there is a disk inserted. We can either write or overwrite.
- dat += " *Copy to Disk
"
- dat += " "
- dat += "
"
- dat += ""
-
- //Setting the can>resize etc to 0 remove them from the drag bar but still allows the window to be draggable.
- display_to << browse(dat,"window=spideros;size=400x444;border=1;can_resize=1;can_close=0;can_minimize=0")
-
-//=======//SPIDEROS TOPIC PROC//=======//
-
-/obj/item/clothing/suit/space/space_ninja/Topic(href, href_list)
- ..()
- var/mob/living/carbon/human/U = affecting
- var/display_to = U
-
-
- if(!affecting||U.stat||!s_initialized)//Check to make sure the guy is wearing the suit after clicking and it's on.
- U << "Your suit must be worn and active to use this function."
- U << browse(null, "window=spideros")//Closes the window.
- return
-
- switch(href_list["choice"])
- if("Close")
- display_to << browse(null, "window=spideros")
- return
- if("Refresh")//Refresh, goes to the end of the proc.
- if("Return")//Return
- if(spideros<=9)
- spideros=0
- else
- spideros = round(spideros/10)//Best way to do this, flooring to nearest integer.
-
- if("Message")
- var/obj/item/device/pda/P = locate(href_list["target"])
- var/t = input(U, "Please enter untraceable message.") as text
- t = copytext(sanitize(t), 1, MAX_MESSAGE_LEN)
- if(!t||U.stat||U.wear_suit!=src||!s_initialized)//Wow, another one of these. Man...
- display_to << browse(null, "window=spideros")
- return
- if(isnull(P)||P.toff)//So it doesn't freak out if the object no-longer exists.
- display_to << "Error: unable to deliver message."
- display_spideros()
- return
- P.tnote += "← From an unknown source:
[t]
"
- if (!P.silent)
- playsound(P.loc, 'sound/machines/twobeep.ogg', 50, 1)
- P.audible_message("\icon[P] *[P.ttone]*", null, 3)
- P.overlays.Cut()
- P.overlays += image('icons/obj/pda.dmi', "pda-r")
-
- if("Inject")
- if( (href_list["tag"]=="radium"? (reagents.get_reagent_amount("radium"))<=(a_boost*a_transfer) : !reagents.get_reagent_amount(href_list["tag"])) )//Special case for radium. If there are only a_boost*a_transfer radium units left.
- display_to << "Error: the suit cannot perform this function. Out of [href_list["name"]]."
- else
- reagents.reaction(U, 2)
- reagents.trans_id_to(U, href_list["tag"], href_list["tag"]=="nutriment"?5:a_transfer)//Nutriment is a special case since it's very potent. Shouldn't influence actual refill amounts or anything.
- display_to << "Injecting..."
- U << "You feel a tiny prick and a sudden rush of substance in to your veins."
-
- if("Trigger Ability")
- var/ability_name = href_list["name"]+href_list["cost"]//Adds the name and cost to create the full proc name.
- var/proc_arguments//What arguments to later pass to the proc, if any.
- var/list/targets = list()//To later check for.
- var/safety = 0//To later make sure we're triggering the proc when needed.
- switch(href_list["name"])//Special case.
- if("Phase Shift")
- safety = 1
- for(var/turf/T in oview(5,loc))
- targets.Add(T)
- if("Energy Net")
- safety = 1
- for(var/mob/living/carbon/M in oview(5,loc))
- targets.Add(M)
- if(targets.len)//Let's create an argument for the proc if needed.
- proc_arguments = pick(targets)
- safety = 0
- if(!safety)
- U << "[href_list["name"]] suddenly triggered!"
- call(src,ability_name)(proc_arguments)
-
- if("Eject Disk")
- var/turf/T = get_turf(loc)
- if(!U.get_active_hand())
- U.put_in_hands(t_disk)
- t_disk.add_fingerprint(U)
- t_disk = null
- else
- if(T)
- t_disk.loc = T
- t_disk = null
- else
- U << "ERROR: Could not eject disk."
-
- if("Copy to Disk")
- var/datum/tech/current_data = locate(href_list["target"])
- U << "[current_data.name] successfully [(!t_disk.stored) ? "copied" : "overwritten"] to disk."
- t_disk.stored = current_data
-
-
- display_spideros()//Refreshes the screen by calling it again (which replaces current screen with new screen).
- return
diff --git a/code/modules/ninja/suit/gloves.dm b/code/modules/ninja/suit/gloves.dm
index 3f23ac333e2..13d52efec9a 100644
--- a/code/modules/ninja/suit/gloves.dm
+++ b/code/modules/ninja/suit/gloves.dm
@@ -10,8 +10,16 @@
...
I guess you're a little cool.
-Sayu
+
+
+ see ninjaDrainAct.dm for ninjadrain_act()
+ Touch() simply calls this on it's target now
+ Ninja's electricuting people when?
+ -Remie
+
*/
+
/obj/item/clothing/gloves/space_ninja
desc = "These nano-enhanced gloves insulate from electricity and provide fire resistance."
name = "ninja gloves"
@@ -28,303 +36,39 @@
var/mindrain = 200
var/maxdrain = 400
-/*
- This runs the gamut of what ninja gloves can do
- The other option would be a dedicated ninja touch bullshit proc on everything
- which would probably more efficient, but ninjas are pretty rare.
- This was mostly introduced to keep ninja code from contaminating other code;
- with this in place it would be easier to untangle the rest of it.
- For the drain proc, see events/ninja.dm
-*/
/obj/item/clothing/gloves/space_ninja/Touch(var/atom/A,var/proximity)
if(!candrain || draining)
return 0
+ if(!istype(loc, /mob/living/carbon/human))
+ return 0 //Only works while worn
+
var/mob/living/carbon/human/H = loc
- if(!istype(H))
- return 0 // what
+
var/obj/item/clothing/suit/space/space_ninja/suit = H.wear_suit
if(!istype(suit))
return 0
if(isturf(A))
return 0
- if(!proximity) // todo: you could add ninja stars or computer hacking here
+ if(!proximity)
return 0
A.add_fingerprint(H)
- // steal energy from powered things
- if(istype(A,/mob/living/silicon/robot))
- drain("CYBORG",A,suit)
- return 1
+ draining = 1
+ var/drained = A.ninjadrain_act(suit,H,src)
+ draining = 0
- if(istype(A, /obj/item/weapon/stock_parts/cell))
- drain("CELL", A,suit)
- return 1
+ if(isnum(drained)) //Numerical values of drained handle their feedback here, Alpha values handle it themselves (Research hacking)
+ if(drained)
+ H << "Gained [drained] energy from \the [A]."
+ else
+ H << "\The [A] has run dry of power, you must find another source!"
+ else
+ drained = 0 //as to not cancel attack_hand()
- if(istype(A,/obj/machinery/power/apc))
- drain("APC",A,suit)
- return 1
-
- if(istype(A,/obj/structure/cable))
- drain("WIRE",A,suit)
- return 1
-
- if(istype(A,/obj/structure/grille))
- var/obj/structure/cable/C = locate() in A.loc
- if(C)
- drain("WIRE",C,suit)
- return 1
-
- if(istype(A,/obj/machinery/power/smes))
- drain("SMES",A,suit)
- return 1
-
- if(istype(A,/obj/mecha))
- drain("MECHA",A,suit)
- return 1
-
- if(istype(A,/obj/machinery/computer/rdconsole)) // download research
- drain("RESEARCH",A,suit)
- return 1
-
- if(istype(A,/obj/machinery/r_n_d/server))
- A.add_fingerprint(H)
- var/obj/machinery/r_n_d/server/S = A
- if(S.disabled)
- return 1
- if(S.shocked)
- S.shock(H,50)
- return 1
- drain("RESEARCH",A,suit)
- return 1
-
-
-/obj/item/clothing/gloves/space_ninja/proc/drain(target_type as text, target, obj/suit)
- //Var Initialize
- var/obj/item/clothing/suit/space/space_ninja/S = suit
- var/mob/living/carbon/human/U = S.affecting
- var/obj/item/clothing/gloves/space_ninja/G = S.n_gloves
-
- var/drain = 0//To drain from battery.
- var/maxcapacity = 0//Safety check for full battery.
- var/totaldrain = 0//Total energy drained.
-
- G.draining = 1
-
- if(target_type!="RESEARCH")//I lumped research downloading here for ease of use.
- U << "Now charging battery..."
-
- switch(target_type)
-
- if("APC")
- var/obj/machinery/power/apc/A = target
- if(A.cell&&A.cell.charge)
- var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
- spark_system.set_up(5, 0, A.loc)
- while(G.candrain&&A.cell.charge>0&&!maxcapacity)
- drain = rand(G.mindrain,G.maxdrain)
- if(A.cell.chargeS.cell.maxcharge)
- drain = S.cell.maxcharge-S.cell.charge
- maxcapacity = 1//Reached maximum battery capacity.
- if (do_after(U,10))
- spark_system.start()
- playsound(A.loc, "sparks", 50, 1)
- A.cell.charge-=drain
- S.cell.charge+=drain
- totaldrain+=drain
- else break
- U << "Gained [totaldrain] energy from the APC."
- if(!A.emagged)
- flick("apc-spark", src)
- A.emagged = 1
- A.locked = 0
- A.update_icon()
- else
- U << "This APC has run dry of power. You must find another source."
-
- if("SMES")
- var/obj/machinery/power/smes/A = target
- if(A.charge)
- var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
- spark_system.set_up(5, 0, A.loc)
- while(G.candrain&&A.charge>0&&!maxcapacity)
- drain = rand(G.mindrain,G.maxdrain)
- if(A.chargeS.cell.maxcharge)
- drain = S.cell.maxcharge-S.cell.charge
- maxcapacity = 1
- if (do_after(U,10))
- spark_system.start()
- playsound(A.loc, "sparks", 50, 1)
- A.charge-=drain
- S.cell.charge+=drain
- totaldrain+=drain
- else break
- U << "Gained [totaldrain] energy from the SMES cell."
- else
- U << "This SMES cell has run dry of power. You must find another source."
-
- if("CELL")
- var/obj/item/weapon/stock_parts/cell/A = target
- if(A.charge)
- if (G.candrain&&do_after(U,30))
- U << "Gained [A.charge] energy from the cell."
- if(S.cell.charge+A.charge>S.cell.maxcharge)
- S.cell.charge=S.cell.maxcharge
- else
- S.cell.charge+=A.charge
- A.charge = 0
- G.draining = 0
- A.corrupt()
- A.updateicon()
- else
- U << "Procedure interrupted. Protocol terminated."
- else
- U << "This cell is empty and of no use."
-
- if("MACHINERY")//Can be applied to generically to all powered machinery. I'm leaving this alone for now.
- var/obj/machinery/A = target
- if(A.powered())//If powered.
-
- var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
- spark_system.set_up(5, 0, A.loc)
-
- var/area/A_Area = get_area(A)
- var/obj/machinery/power/apc/B = A_Area.get_apc() //find APC
- if(B)//If APC exists. Might not if the area is unpowered like Centcom.
- var/datum/powernet/PN = B.terminal.powernet
- while(G.candrain&&!maxcapacity&&!isnull(A))//And start a proc similar to drain from wire.
- drain = rand(G.mindrain,G.maxdrain)
- var/drained = 0
- if(PN&&do_after(U,10))
- drained = min(drain, PN.avail)
- PN.load += drained
- if(drained < drain)//if no power on net, drain apcs
- for(var/obj/machinery/power/terminal/T in PN.nodes)
- if(istype(T.master, /obj/machinery/power/apc))
- var/obj/machinery/power/apc/AP = T.master
- if(AP.operating && AP.cell && AP.cell.charge>0)
- AP.cell.charge = max(0, AP.cell.charge - 5)
- drained += 5
- else break
- S.cell.charge += drained
- if(S.cell.charge>S.cell.maxcharge)
- totaldrain += (drained-(S.cell.charge-S.cell.maxcharge))
- S.cell.charge = S.cell.maxcharge
- maxcapacity = 1
- else
- totaldrain += drained
- spark_system.start()
- if(drained==0) break
- U << "Gained [totaldrain] energy from the power network."
- else
- U << "Power network could not be found. Aborting."
- else
- U << "This recharger is not providing energy. You must find another source."
-
- if("RESEARCH")
- var/obj/machinery/A = target
- U << "Hacking \the [A]..."
- spawn(0)
- var/turf/location = get_turf(U)
- for(var/mob/living/silicon/ai/AI in player_list)
- AI << "Network Alert: Hacking attempt detected[location?" in [location]":". Unable to pinpoint location"]."
- if(A:files&&A:files.known_tech.len)
- for(var/datum/tech/current_data in S.stored_research)
- U << "Checking \the [current_data.name] database."
- if(do_after(U, S.s_delay)&&G.candrain&&!isnull(A))
- for(var/datum/tech/analyzing_data in A:files.known_tech)
- if(current_data.id==analyzing_data.id)
- if(analyzing_data.level>current_data.level)
- U << "Database: UPDATED."
- current_data.level = analyzing_data.level
- break//Move on to next.
- else break//Otherwise, quit processing.
- U << "Data analyzed. Process finished."
-
- if("WIRE")
- var/obj/structure/cable/A = target
- var/datum/powernet/PN = A.powernet
- while(G.candrain&&!maxcapacity&&!isnull(A))
- drain = (round((rand(G.mindrain,G.maxdrain))/2))
- var/drained = 0
- if(PN&&do_after(U,10))
- drained = min(drain, PN.avail)
- PN.load += drained
- if(drained < drain)//if no power on net, drain apcs
- for(var/obj/machinery/power/terminal/T in PN.nodes)
- if(istype(T.master, /obj/machinery/power/apc))
- var/obj/machinery/power/apc/AP = T.master
- if(AP.operating && AP.cell && AP.cell.charge>0)
- AP.cell.charge = max(0, AP.cell.charge - 5)
- drained += 5
- else break
- S.cell.charge += drained
- if(S.cell.charge>S.cell.maxcharge)
- totaldrain += (drained-(S.cell.charge-S.cell.maxcharge))
- S.cell.charge = S.cell.maxcharge
- maxcapacity = 1
- else
- totaldrain += drained
- S.spark_system.start()
- if(drained==0) break
- U << "Gained [totaldrain] energy from the power network."
-
- if("MECHA")
- var/obj/mecha/A = target
- A.occupant_message("Warning: Unauthorized access through sub-route 4, block H, detected.")
- if(A.get_charge())
- while(G.candrain&&A.cell.charge>0&&!maxcapacity)
- drain = rand(G.mindrain,G.maxdrain)
- if(A.cell.chargeS.cell.maxcharge)
- drain = S.cell.maxcharge-S.cell.charge
- maxcapacity = 1
- if (do_after(U,10))
- A.spark_system.start()
- playsound(A.loc, "sparks", 50, 1)
- A.cell.use(drain)
- S.cell.charge+=drain
- totaldrain+=drain
- else break
- U << "Gained [totaldrain] energy from [src]."
- else
- U << "The exosuit's battery has run dry. You must find another source of power."
-
- if("CYBORG")
- var/mob/living/silicon/robot/A = target
- A << "Warning: Unauthorized access through sub-route 12, block C, detected."
- G.draining = 1
- if(A.cell&&A.cell.charge)
- while(G.candrain&&A.cell.charge>0&&!maxcapacity)
- drain = rand(G.mindrain,G.maxdrain)
- if(A.cell.chargeS.cell.maxcharge)
- drain = S.cell.maxcharge-S.cell.charge
- maxcapacity = 1
- if (do_after(U,10))
- A.spark_system.start()
- playsound(A.loc, "sparks", 50, 1)
- A.cell.charge-=drain
- S.cell.charge+=drain
- totaldrain+=drain
- else break
- U << "Gained [totaldrain] energy from [A]."
- else
- U << "Their battery has run dry of power. You must find another source."
-
- else//Else nothing :<
-
- G.draining = 0
-
- return
+ return drained
/obj/item/clothing/gloves/space_ninja/proc/toggled()
diff --git a/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm b/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm
index 86d1cc128f8..ed6c7236267 100644
--- a/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm
+++ b/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm
@@ -39,6 +39,9 @@ It is possible to destroy the net by the occupant or someone else.
var/check = 30//30 seconds before teleportation. Could be extended I guess.
var/mob_name = affecting.name//Since they will report as null if terminated before teleport.
//The person can still try and attack the net when inside.
+
+ M.notransform = 1 //No moving for you!
+
while(!isnull(M)&&!isnull(src)&&check>0)//While M and net exist, and 30 seconds have not passed.
check--
sleep(10)
@@ -47,6 +50,7 @@ It is possible to destroy the net by the occupant or someone else.
if(!isnull(master))//As long as they still exist.
master << "ERROR: unable to locate \the [mob_name]. Procedure terminated."
qdel(src)//Get rid of the net.
+ M.notransform = 0
return
if(!isnull(src))//As long as both net and person exist.
@@ -82,11 +86,11 @@ It is possible to destroy the net by the occupant or someone else.
if(!isnull(master))//As long as they still exist.
master << "SUCCESS: transport procedure of \the [affecting] complete."
-
- M.anchored = 0//Important.
+ M.notransform = 0
else//And they are free.
M << "You are free of the net!"
+ M.notransform = 0
return
diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_net.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_net.dm
index 0a28094ca91..428f417ca44 100644
--- a/code/modules/ninja/suit/n_suit_verbs/ninja_net.dm
+++ b/code/modules/ninja/suit/n_suit_verbs/ninja_net.dm
@@ -16,7 +16,6 @@
return
spawn(0)
H.Beam(C,"n_beam",,15)
- C.anchored = 1//Anchors them so they can't move.
H.say("Get over here!")
var/obj/effect/energy_net/E = new /obj/effect/energy_net(C.loc)
E.layer = C.layer+1//To have it appear one layer above the mob.
diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_stars.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_stars.dm
index 9196ed92be7..1fa003fa76a 100644
--- a/code/modules/ninja/suit/n_suit_verbs/ninja_stars.dm
+++ b/code/modules/ninja/suit/n_suit_verbs/ninja_stars.dm
@@ -1,33 +1,23 @@
-//Shoots ninja stars at a random target
+//Creates a throwing star
/obj/item/clothing/suit/space/space_ninja/proc/ninjastar()
- set name = "Energy Star (5E)"
- set desc = "Launches an energy star at a random living target."
+ set name = "Create Throwing Stars (1E)"
+ set desc = "Creates some throwing stars"
set category = "Ninja Ability"
set popup_menu = 0
- if(!ninjacost(50))
+ if(!ninjacost(10))
var/mob/living/carbon/human/H = affecting
- var/list/targets = list()
- for(var/mob/living/M in oview(loc))
- if(M.stat) continue//Doesn't target corpses or paralyzed persons.
- targets.Add(M)
- if(targets.len)
- var/mob/living/target=pick(targets)//The point here is to pick a random, living mob in oview to shoot stuff at.
+ var/slot = H.hand ? slot_l_hand : slot_r_hand
- var/turf/curloc = get_turf(H)
- var/turf/targloc = get_turf(target)
- if (!targloc || !curloc)
- return
- if (targloc == curloc)
- return
- var/obj/item/projectile/energy/dart/A = new /obj/item/projectile/energy/dart(curloc)
- A.current = curloc
- A.yo = targloc.y - curloc.y
- A.xo = targloc.x - curloc.x
+ if(H.equip_to_slot_or_del(new /obj/item/weapon/throwing_star/ninja(H), slot))
+ H << "A throwing star has been created in your hand!"
- A.fire()
- else
- H << "There are no targets in view."
- return
+ H.throw_mode_on() //So they can quickly throw it.
+
+
+/obj/item/weapon/throwing_star/ninja
+ name = "ninja throwing star"
+ throwforce = 30
+ embedded_pain_multiplier = 6
diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_sword_recall.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_sword_recall.dm
new file mode 100644
index 00000000000..c117cd40d8e
--- /dev/null
+++ b/code/modules/ninja/suit/n_suit_verbs/ninja_sword_recall.dm
@@ -0,0 +1,48 @@
+
+/obj/item/clothing/suit/space/space_ninja/proc/ninja_sword_recall()
+ set name = "Recall Energy Katana (Variable Cost)"
+ set desc = "Teleports the Energy Katana linked to this suit to it's wearer, cost based on distance."
+ set category = "Ninja Ability"
+ set popup_menu = 0
+
+ var/mob/living/carbon/human/H = affecting
+
+ var/cost = 0
+ var/inview = 1
+
+ if(!energyKatana)
+ H << "Could not locate Energy Katana!"
+ return
+
+ if(energyKatana in H)
+ return
+
+ var/distance = get_dist(H,energyKatana)
+
+ if(!(energyKatana in view(H)))
+ cost = distance //Actual cost is cost x 10, so 5 turfs is 50 cost.
+ inview = 0
+
+ if(!ninjacost(cost))
+ if(istype(energyKatana.loc, /mob/living/carbon))
+ var/mob/living/carbon/C = energyKatana.loc
+ C.unEquip(energyKatana)
+
+ //Somebody swollowed my sword, probably the clown doing a circus act.
+ if(energyKatana in C.stomach_contents)
+ C.stomach_contents -= energyKatana
+
+ if(energyKatana in C.internal_organs)
+ C.internal_organs -= energyKatana
+
+ energyKatana.loc = get_turf(energyKatana)
+
+ if(inview) //If we can see the katana, throw it towards ourselves, damaging people as we go.
+ energyKatana.spark_system.start()
+ playsound(H, "sparks", 50, 1)
+ H.visible_message("\the [energyKatana] flies towards [H]!","You hold out your hand and \the [energyKatana] flies towards you!")
+ energyKatana.throw_at(H, distance+1, energyKatana.throw_speed)
+
+ else //Else just TP it to us.
+ energyKatana.returnToOwner(H,1)
+
diff --git a/code/modules/ninja/suit/ninjaDrainAct.dm b/code/modules/ninja/suit/ninjaDrainAct.dm
new file mode 100644
index 00000000000..71f729da249
--- /dev/null
+++ b/code/modules/ninja/suit/ninjaDrainAct.dm
@@ -0,0 +1,285 @@
+
+/*
+
+Contents:
+- Assorted ninjadrain_act() procs
+- What is Object Oriented Programming
+
+They *could* go in their appropriate files, but this is supposed to be modular
+
+*/
+
+
+//Needs to return the amount drained from the atom, if no drain on a power object, return 0, otherwise, return a define.
+/atom/proc/ninjadrain_act()
+ return INVALID_DRAIN
+
+
+
+
+//APC//
+/obj/machinery/power/apc/ninjadrain_act(var/obj/item/clothing/suit/space/space_ninja/S, var/mob/living/carbon/human/H, var/obj/item/clothing/gloves/space_ninja/G)
+ if(!S || !H || !G)
+ return INVALID_DRAIN
+
+ var/maxcapacity = 0 //Safety check for batteries
+ var/drain = 0 //Drain amount from batteries
+
+ . = 0
+
+ if(cell && cell.charge)
+ var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
+ spark_system.set_up(5, 0, loc)
+
+ while(G.candrain && cell.charge> 0 && !maxcapacity)
+ drain = rand(G.mindrain, G.maxdrain)
+
+ if(cell.charge < drain)
+ drain = cell.charge
+
+ if(S.cell.charge + drain > S.cell.maxcharge)
+ drain = S.cell.maxcharge - S.cell.charge
+ maxcapacity = 1//Reached maximum battery capacity.
+
+ if (do_after(H,10))
+ spark_system.start()
+ playsound(loc, "sparks", 50, 1)
+ cell.charge -= drain
+ S.cell.charge += drain
+ . += drain
+ else
+ break
+
+ if(!emagged)
+ flick("apc-spark", G)
+ emagged = 1
+ locked = 0
+ update_icon()
+
+
+
+
+
+//SMES//
+/obj/machinery/power/smes/ninjadrain_act(var/obj/item/clothing/suit/space/space_ninja/S, var/mob/living/carbon/human/H, var/obj/item/clothing/gloves/space_ninja/G)
+ if(!S || !H || !G)
+ return INVALID_DRAIN
+
+ var/maxcapacity = 0 //Safety check for batteries
+ var/drain = 0 //Drain amount from batteries
+
+ . = 0
+
+ if(charge)
+ var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
+ spark_system.set_up(5, 0, loc)
+
+ while(G.candrain && charge > 0 && !maxcapacity)
+ drain = rand(G.mindrain, G.maxdrain)
+
+ if(charge < drain)
+ drain = charge
+
+ if(S.cell.charge + drain > S.cell.maxcharge)
+ drain = S.cell.maxcharge - S.cell.charge
+ maxcapacity = 1
+
+ if (do_after(H,10))
+ spark_system.start()
+ playsound(loc, "sparks", 50, 1)
+ charge -= drain
+ S.cell.charge += drain
+ . += drain
+
+ else
+ break
+
+
+//CELL//
+/obj/item/weapon/stock_parts/cell/ninjadrain_act(var/obj/item/clothing/suit/space/space_ninja/S, var/mob/living/carbon/human/H, var/obj/item/clothing/gloves/space_ninja/G)
+ if(!S || !H || !G)
+ return INVALID_DRAIN
+
+ . = 0
+
+ if(charge)
+ if(G.candrain && do_after(H,30))
+ . = charge
+ if(S.cell.charge + charge > S.cell.maxcharge)
+ S.cell.charge = S.cell.maxcharge
+ else
+ S.cell.charge += charge
+ charge = 0
+ corrupt()
+ updateicon()
+
+
+//RDCONSOLE//
+/obj/machinery/computer/rdconsole/ninjadrain_act(var/obj/item/clothing/suit/space/space_ninja/S, var/mob/living/carbon/human/H, var/obj/item/clothing/gloves/space_ninja/G)
+ if(!S || !H || !G)
+ return INVALID_DRAIN
+
+ . = DRAIN_RD_HACK_FAILED
+
+ H << "Hacking \the [src]..."
+ spawn(0)
+ var/turf/location = get_turf(H)
+ for(var/mob/living/silicon/ai/AI in player_list)
+ AI << "Network Alert: Hacking attempt detected[location?" in [location]":". Unable to pinpoint location"]."
+
+ if(files && files.known_tech.len)
+ for(var/datum/tech/current_data in S.stored_research)
+ H << "Checking \the [current_data.name] database."
+ if(do_after(H, S.s_delay) && G.candrain && src)
+ for(var/datum/tech/analyzing_data in files.known_tech)
+ if(current_data.id == analyzing_data.id)
+ if(analyzing_data.level > current_data.level)
+ H << "Database: UPDATED."
+ current_data.level = analyzing_data.level
+ . = DRAIN_RD_HACKED
+ break//Move on to next.
+ else
+ break//Otherwise, quit processing.
+
+ H << "Data analyzed. Process finished."
+
+
+//RD SERVER//
+//Shamelessly copypasted from above, since these two used to be the same proc, but with MANY colon operators
+/obj/machinery/r_n_d/server/ninjadrain_act(var/obj/item/clothing/suit/space/space_ninja/S, var/mob/living/carbon/human/H, var/obj/item/clothing/gloves/space_ninja/G)
+ if(!S || !H || !G)
+ return INVALID_DRAIN
+
+ . = DRAIN_RD_HACK_FAILED
+
+ H << "Hacking \the [src]..."
+ spawn(0)
+ var/turf/location = get_turf(H)
+ for(var/mob/living/silicon/ai/AI in player_list)
+ AI << "Network Alert: Hacking attempt detected[location?" in [location]":". Unable to pinpoint location"]."
+
+ if(files && files.known_tech.len)
+ for(var/datum/tech/current_data in S.stored_research)
+ H << "Checking \the [current_data.name] database."
+ if(do_after(H, S.s_delay) && G.candrain && src)
+ for(var/datum/tech/analyzing_data in files.known_tech)
+ if(current_data.id == analyzing_data.id)
+ if(analyzing_data.level > current_data.level)
+ H << "Database: UPDATED."
+ current_data.level = analyzing_data.level
+ . = DRAIN_RD_HACKED
+ break//Move on to next.
+ else
+ break//Otherwise, quit processing.
+
+ H << "Data analyzed. Process finished."
+
+
+//WIRE//
+/obj/structure/cable/ninjadrain_act(var/obj/item/clothing/suit/space/space_ninja/S, var/mob/living/carbon/human/H, var/obj/item/clothing/gloves/space_ninja/G)
+ if(!S || !H || !G)
+ return INVALID_DRAIN
+
+ var/maxcapacity = 0 //Safety check
+ var/drain = 0 //Drain amount
+
+ . = 0
+
+ var/datum/powernet/PN = powernet
+ while(G.candrain && !maxcapacity && src)
+ drain = (round((rand(G.mindrain, G.maxdrain))/2))
+ var/drained = 0
+ if(PN && do_after(H,10))
+ drained = min(drain, PN.avail)
+ PN.load += drained
+ if(drained < drain)//if no power on net, drain apcs
+ for(var/obj/machinery/power/terminal/T in PN.nodes)
+ if(istype(T.master, /obj/machinery/power/apc))
+ var/obj/machinery/power/apc/AP = T.master
+ if(AP.operating && AP.cell && AP.cell.charge > 0)
+ AP.cell.charge = max(0, AP.cell.charge - 5)
+ drained += 5
+ else
+ break
+
+ S.cell.charge += drained
+ if(S.cell.charge > S.cell.maxcharge)
+ . += (drained-(S.cell.charge - S.cell.maxcharge))
+ S.cell.charge = S.cell.maxcharge
+ maxcapacity = 1
+ else
+ . += drained
+ S.spark_system.start()
+
+//MECH//
+/obj/mecha/ninjadrain_act(var/obj/item/clothing/suit/space/space_ninja/S, var/mob/living/carbon/human/H, var/obj/item/clothing/gloves/space_ninja/G)
+ if(!S || !H || !G)
+ return INVALID_DRAIN
+
+ var/maxcapacity = 0 //Safety check
+ var/drain = 0 //Drain amount
+ . = 0
+
+ occupant_message("Warning: Unauthorized access through sub-route 4, block H, detected.")
+ if(get_charge())
+ while(G.candrain && cell.charge > 0 && !maxcapacity)
+ drain = rand(G.mindrain,G.maxdrain)
+ if(cell.charge < drain)
+ drain = cell.charge
+ if(S.cell.charge + drain > S.cell.maxcharge)
+ drain = S.cell.maxcharge - S.cell.charge
+ maxcapacity = 1
+ if (do_after(H,10))
+ spark_system.start()
+ playsound(loc, "sparks", 50, 1)
+ cell.use(drain)
+ S.cell.charge += drain
+ . += drain
+ else
+ break
+
+//BORG//
+/mob/living/silicon/robot/ninjadrain_act(var/obj/item/clothing/suit/space/space_ninja/S, var/mob/living/carbon/human/H, var/obj/item/clothing/gloves/space_ninja/G)
+ if(!S || !H || !G)
+ return INVALID_DRAIN
+
+ var/maxcapacity = 0 //Safety check
+ var/drain = 0 //Drain amount
+ . = 0
+
+ src << "Warning: Unauthorized access through sub-route 12, block C, detected."
+
+ if(cell && cell.charge)
+ while(G.candrain && cell.charge > 0 && !maxcapacity)
+ drain = rand(G.mindrain,G.maxdrain)
+ if(cell.charge < drain)
+ drain = cell.charge
+ if(S.cell.charge+drain > S.cell.maxcharge)
+ drain = S.cell.maxcharge - S.cell.charge
+ maxcapacity = 1
+ if (do_after(H,10))
+ spark_system.start()
+ playsound(loc, "sparks", 50, 1)
+ cell.charge -= drain
+ S.cell.charge += drain
+ . += drain
+ else
+ break
+
+
+//CARBON MOBS//
+/mob/living/carbon/ninjadrain_act(var/obj/item/clothing/suit/space/space_ninja/S, var/mob/living/carbon/human/H, var/obj/item/clothing/gloves/space_ninja/G)
+ if(!S || !H || !G)
+ return INVALID_DRAIN
+
+ . = DRAIN_MOB_SHOCK_FAILED
+
+ //Default cell = 10,000 charge, 10,000/1000 = 10 uses without charging/upgrading
+ if(S.cell && S.cell.charge && S.cell.use(1000))
+ . = DRAIN_MOB_SHOCK
+ //Got that electric touch
+ var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
+ spark_system.set_up(5, 0, loc)
+ playsound(src, "sparks", 50, 1)
+ visible_message("[H] electrocutes [src] with their touch!", "[H] electrocutes you with their touch!")
+ electrocute_act(25, H)
diff --git a/code/modules/ninja/suit/suit.dm b/code/modules/ninja/suit/suit.dm
index cfe6dc3c807..a1273f10498 100644
--- a/code/modules/ninja/suit/suit.dm
+++ b/code/modules/ninja/suit/suit.dm
@@ -29,6 +29,7 @@ Contents:
var/list/reagent_list = list("omnizine","salbutamol","spaceacillin","charcoal","nutriment","radium","potass_iodide")//The reagents ids which are added to the suit at New().
var/list/stored_research = list()//For stealing station research.
var/obj/item/weapon/disk/tech_disk/t_disk//To copy design onto disk.
+ var/obj/item/weapon/katana/energy/energyKatana //For teleporting the katana back to the ninja (It's an ability)
//Other articles of ninja gear worn together, used to easily reference them after initializing.
var/obj/item/clothing/head/helmet/space/space_ninja/n_hood
diff --git a/code/modules/ninja/suit/suit_attackby.dm b/code/modules/ninja/suit/suit_attackby.dm
index e7098179d6a..a2683d39d8c 100644
--- a/code/modules/ninja/suit/suit_attackby.dm
+++ b/code/modules/ninja/suit/suit_attackby.dm
@@ -20,7 +20,7 @@
return
else if(istype(I, /obj/item/weapon/stock_parts/cell))
- var/obj/item/weapon/stock_parts/cell/CELL
+ var/obj/item/weapon/stock_parts/cell/CELL = I
if(CELL.maxcharge > cell.maxcharge && n_gloves && n_gloves.candrain)
U << "Higher maximum capacity detected.\nUpgrading..."
if (n_gloves && n_gloves.candrain && do_after(U,s_delay))
diff --git a/code/modules/ninja/suit/suit_verbs_handlers.dm b/code/modules/ninja/suit/suit_verbs_handlers.dm
index 17ba1ca3910..24797a272b0 100644
--- a/code/modules/ninja/suit/suit_verbs_handlers.dm
+++ b/code/modules/ninja/suit/suit_verbs_handlers.dm
@@ -11,7 +11,6 @@ Contents:
/obj/item/clothing/suit/space/space_ninja/proc/grant_equip_verbs()
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/init
verbs += /obj/item/clothing/suit/space/space_ninja/proc/deinit
- verbs += /obj/item/clothing/suit/space/space_ninja/proc/spideros
verbs += /obj/item/clothing/suit/space/space_ninja/proc/stealth
n_gloves.verbs += /obj/item/clothing/gloves/space_ninja/proc/toggled
@@ -21,7 +20,6 @@ Contents:
/obj/item/clothing/suit/space/space_ninja/proc/remove_equip_verbs()
verbs += /obj/item/clothing/suit/space/space_ninja/proc/init
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/deinit
- verbs -= /obj/item/clothing/suit/space/space_ninja/proc/spideros
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/stealth
if(n_gloves)
n_gloves.verbs -= /obj/item/clothing/gloves/space_ninja/proc/toggled
@@ -37,6 +35,7 @@ Contents:
verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse
verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjastar
verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjanet
+ verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninja_sword_recall
s_initialized=1
slowdown=0
@@ -50,3 +49,4 @@ Contents:
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjastar
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjanet
+ verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninja_sword_recall
diff --git a/code/modules/projectiles/ammunition/energy.dm b/code/modules/projectiles/ammunition/energy.dm
index aa1e1efa356..d170962a7ae 100644
--- a/code/modules/projectiles/ammunition/energy.dm
+++ b/code/modules/projectiles/ammunition/energy.dm
@@ -125,10 +125,14 @@
/obj/item/ammo_casing/energy/plasma
projectile_type = /obj/item/projectile/plasma
select_name = "plasma burst"
- fire_sound = 'sound/weapons/pulse.ogg'
+ fire_sound = 'sound/weapons/Laser.ogg'
+ delay = 10
+ e_cost = 25
/obj/item/ammo_casing/energy/plasma/adv
projectile_type = /obj/item/projectile/plasma/adv
+ delay = 8
+ e_cost = 10
/obj/item/ammo_casing/energy/wormhole
projectile_type = /obj/item/projectile/beam/wormhole
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 9fb83e560f7..58baa81e928 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -125,51 +125,17 @@
cell_type = "/obj/item/weapon/stock_parts/cell/emproof"
needs_permit = 0 // Aparently these are safe to carry? I'm sure Golliaths would disagree.
var/overheat = 0
+ var/overheat_time = 16
var/recent_reload = 1
- var/range_add = 0
- var/overheat_time = 20
- upgrades = list("diamond" = 0, "screwdriver" = 0, "plasma" = 0)
unique_rename = 1
-/obj/item/weapon/gun/energy/kinetic_accelerator/newshot()
- ..()
- if(chambered && chambered.BB)
- var/obj/item/projectile/kinetic/charge = chambered.BB
- charge.range += range_add
-
-
-/obj/item/weapon/gun/energy/kinetic_accelerator/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
- if(istype(W, /obj/item/weapon/screwdriver) && upgrades["screwdriver"] < 3)
- upgrades["screwdriver"]++
- overheat_time -= 1
- user << "You tweak [src]'s thermal exchanger."
-
-
- else if(istype(W, /obj/item/stack))
- var/obj/item/stack/S = W
-
- if(istype(S, /obj/item/stack/sheet/mineral/diamond) && upgrades["diamond"] < 3)
- upgrades["diamond"]++
- overheat_time -= 3
- user << "You upgrade [src]'s thermal exchanger with diamonds."
- S.use(1)
-
- if(istype(S, /obj/item/stack/sheet/mineral/plasma) && upgrades["plasma"] < 2)
- upgrades["plasma"]++
- range_add++
- user << "You upgrade [src]'s accelerating chamber with plasma."
- if(prob(5 * (range_add + 1) * (range_add + 1)) && power_supply)
- power_supply.rigged = 1 // This is dangerous!
- S.use(1)
-
- ..()
-
/obj/item/weapon/gun/energy/kinetic_accelerator/shoot_live_shot()
overheat = 1
spawn(overheat_time)
overheat = 0
recent_reload = 0
..()
+
/obj/item/weapon/gun/energy/kinetic_accelerator/emp_act(severity)
return
@@ -196,6 +162,7 @@
suppressed = 1
ammo_type = list(/obj/item/ammo_casing/energy/bolt)
unique_rename = 0
+ overheat_time = 20
/obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/large
name = "energy crossbow"
@@ -213,65 +180,36 @@
desc = "A mining tool capable of expelling concentrated plasma bursts. You could use it to cut limbs off of xenos! Or, you know, mine stuff."
icon_state = "plasmacutter"
item_state = "plasmacutter"
- force = 15
- damtype = "fire"
modifystate = -1
origin_tech = "combat=1;materials=3;magnets=2;plasmatech=2;engineering=1"
ammo_type = list(/obj/item/ammo_casing/energy/plasma)
flags = CONDUCT | OPENCONTAINER
attack_verb = list("attacked", "slashed", "cut", "sliced")
can_charge = 0
- var/volume = 15
-/obj/item/weapon/gun/energy/plasmacutter/New()
+/obj/item/weapon/gun/energy/plasmacutter/examine(mob/user)
..()
- create_reagents(volume)
-
-/obj/item/weapon/gun/energy/plasmacutter/newshot()
- if (!ammo_type || !reagents) return
- var/obj/item/ammo_casing/energy/shot = ammo_type[select]
-
- var/amount = shot.e_cost / 100
-
- if(!reagents.get_reagent_amount("plasma") >= amount)
- return
-
- reagents.remove_reagent("plasma", amount)
- chambered = shot
- chambered.newshot()
- return
-
-/obj/item/weapon/gun/energy/plasmacutter/examine()
- ..()
- usr << "Has [reagents.get_reagent_amount("plasma")] unit\s of plasma left."
- return
+ if(power_supply)
+ user <<"[src] is [round(power_supply.percent())]% charged."
/obj/item/weapon/gun/energy/plasmacutter/attackby(var/obj/item/A, var/mob/user)
- if(reagents.maximum_volume > reagents.total_volume)
- if(istype(A, /obj/item/stack/sheet/mineral/plasma))
- var/obj/item/stack/sheet/S = A
- S.use(1)
- reagents.add_reagent("plasma", 20)
- user << "You refill [src] with [S]. [reagents.get_reagent_amount("plasma")] units of plasma left."
- if(istype(A, /obj/item/weapon/ore/plasma))
- qdel(A)
- reagents.add_reagent("plasma", 10)
- user << "You refill [src] with [A]. [reagents.get_reagent_amount("plasma")] units of plasma left."
- if(istype(A, /obj/item/weapon/storage/bag/ore))
- if(locate(/obj/item/weapon/ore/plasma) in A)
- attackby(locate(/obj/item/weapon/ore/plasma) in A, user)
- ..()
-
-/obj/item/weapon/gun/energy/plasmacutter/charged/New()
- ..()
- reagents.add_reagent("plasma", volume)
+ if(istype(A, /obj/item/stack/sheet/mineral/plasma))
+ var/obj/item/stack/sheet/S = A
+ S.use(1)
+ power_supply.give(1000)
+ user << "You insert [A] in [src], recharging it."
+ else if(istype(A, /obj/item/weapon/ore/plasma))
+ qdel(A)
+ power_supply.give(500)
+ user << "You insert [A] in [src], recharging it."
+ else
+ ..()
/obj/item/weapon/gun/energy/plasmacutter/adv
name = "advanced plasma cutter"
icon_state = "adv_plasmacutter"
origin_tech = "combat=3;materials=4;magnets=3;plasmatech=3;engineering=2"
ammo_type = list(/obj/item/ammo_casing/energy/plasma/adv)
- volume = 25
/obj/item/weapon/gun/energy/disabler
name = "disabler"
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index 8745de421ff..4a7438fe954 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -2,12 +2,11 @@
name = "projectile"
icon = 'icons/obj/projectiles.dmi'
icon_state = "bullet"
- density = 1
+ density = 0
unacidable = 1
pass_flags = PASSTABLE
mouse_opacity = 0
hitsound = 'sound/weapons/pierce.ogg'
- var/bumped = 0 //Prevents it from hitting more than one guy at once
var/def_zone = "" //Aiming at
var/mob/firer = null//Who shot it
var/suppressed = 0 //Attack message
@@ -41,7 +40,6 @@
var/forcedodge = 0
// 1 to pass solid objects, 2 to pass solid turfs (results in bugs, bugs and tons of bugs)
var/range = 0
- var/proj_hit = 0
/obj/item/projectile/proc/Range()
if(range)
@@ -52,13 +50,34 @@
return
/obj/item/projectile/proc/on_range() //if we want there to be effects when they reach the end of their range
- proj_hit = 1
qdel(src)
/obj/item/projectile/proc/on_hit(atom/target, blocked = 0, hit_zone)
- if(!isliving(target)) return 0
- if(isanimal(target)) return 0
+ if(!isliving(target))
+ return 0
var/mob/living/L = target
+
+ var/organ_hit_text = ""
+ if(L.has_limbs)
+ organ_hit_text = " in \the [parse_zone(def_zone)]"
+ if(suppressed)
+ playsound(loc, hitsound, 5, 1, -1)
+ L << "You've been shot by \a [src][organ_hit_text]!"
+ else
+ if(hitsound)
+ var/volume = vol_by_damage()
+ playsound(loc, hitsound, volume, 1, -1)
+ L.visible_message("[L] is hit by \a [src][organ_hit_text]!", \
+ "[L] is hit by \a [src][organ_hit_text]!") //X has fired Y is now given by the guns so you cant tell who shot you if you could not see the shooter
+
+ var/reagent_note
+ if(reagents && reagents.reagent_list)
+ reagent_note = " REAGENTS:"
+ for(var/datum/reagent/R in reagents.reagent_list)
+ reagent_note += R.id + " ("
+ reagent_note += num2text(R.volume) + ") "
+ add_logs(firer, L, "shot", object="[src]", addition=reagent_note)
+
L.on_hit(type)
return L.apply_effects(stun, weaken, paralyze, irradiate, stutter, slur, eyeblur, drowsy, blocked, stamina, jitter)
@@ -68,52 +87,34 @@
else
return 50 //if the projectile doesn't do damage, play its hitsound at 50% volume
-/obj/item/projectile/Bump(atom/A)
+/obj/item/projectile/Bump(atom/A, yes)
+ if(!yes) //prevents multi bumps.
+ return
if(A == firer || A == src)
loc = A.loc
return 0 //cannot shoot yourself
- if(bumped)//Stops multihit projectiles
- return 1
- bumped = 1
- if(isliving(A))
- var/mob/living/M = A
- var/reagent_note
- if(reagents && reagents.reagent_list)
- reagent_note = " REAGENTS:"
- for(var/datum/reagent/R in reagents.reagent_list)
- reagent_note += R.id + " ("
- reagent_note += num2text(R.volume) + ") "
- var/distance = get_dist(get_turf(A), starting) // Get the distance between the turf shot from and the mob we hit and use that for the calculations.
- def_zone = ran_zone(def_zone, max(100-(7*distance), 5)) //Lower accurancy/longer range tradeoff. 7 is a balanced number to use.
- if(suppressed)
- playsound(loc, hitsound, 5, 1, -1)
- M << "You've been shot by \a [src] in \the [parse_zone(def_zone)]!"
- else
- if(hitsound)
- var/volume = vol_by_damage()
- playsound(loc, hitsound, volume, 1, -1)
- M.visible_message("[M] is hit by \a [src] in the [parse_zone(def_zone)]!", \
- "[M] is hit by \a [src] in the [parse_zone(def_zone)]!") //X has fired Y is now given by the guns so you cant tell who shot you if you could not see the shooter
- add_logs(firer, M, "shot", object="[src]", addition=reagent_note)
+ var/distance = get_dist(get_turf(A), starting) // Get the distance between the turf shot from and the mob we hit and use that for the calculations.
+ def_zone = ran_zone(def_zone, max(100-(7*distance), 5)) //Lower accurancy/longer range tradeoff. 7 is a balanced number to use.
+
+ var/turf/target_turf = get_turf(A)
- var/turf/new_loc = get_turf(A)
var/permutation = A.bullet_act(src, def_zone) // searches for return value, could be deleted after run so check A isn't null
if(permutation == -1 || forcedodge)// the bullet passes through a dense object!
- bumped = 0 // reset bumped variable!
- loc = new_loc
- permutated.Add(A)
+ loc = target_turf
+ if(A)
+ permutated.Add(A)
Range()
return 0
- qdel(src)
-
-/obj/item/projectile/CanPass(atom/movable/mover, turf/target, height=0)
- if(height==0) return 1
-
- if(istype(mover, /obj/item/projectile))
- return prob(95)
else
- return 1
+ if(A && A.density && !ismob(A) && !(A.flags & ON_BORDER)) //if we hit a dense non-border obj or dense turf then we also hit one of the mobs on that tile.
+ var/list/mobs_list = list()
+ for(var/mob/living/L in target_turf)
+ mobs_list += L
+ if(mobs_list.len)
+ var/mob/living/picked_mob = pick(mobs_list)
+ picked_mob.bullet_act(src, def_zone)
+ qdel(src)
/obj/item/projectile/Process_Spacemove(var/movement_dir = 0)
return 1 //Bullets don't drift in space
@@ -129,9 +130,14 @@
if((!( current ) || loc == current))
current = locate(Clamp(x+xo,1,world.maxx),Clamp(y+yo,1,world.maxy),z)
step_towards(src, current)
- if(!bumped && ((original && original.layer>=2.75) || ismob(original)))
+ if((original && original.layer>=2.75) || ismob(original))
if(loc == get_turf(original))
if(!(original in permutated))
- Bump(original)
+ Bump(original, 1)
Range()
sleep(1)
+
+/obj/item/projectile/Crossed(atom/movable/AM as mob) //A mob moving on a tile with a projectile is hit by it.
+ ..()
+ if(isliving(AM) && AM.density && !checkpass(PASSMOB))
+ Bump(AM, 1)
\ No newline at end of file
diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm
index 785709398ea..88bacc76790 100644
--- a/code/modules/projectiles/projectile/beams.dm
+++ b/code/modules/projectiles/projectile/beams.dm
@@ -47,9 +47,9 @@
damage = 50
/obj/item/projectile/beam/pulse/on_hit(var/atom/target, var/blocked = 0)
+ . = ..()
if(istype(target,/turf/)||istype(target,/obj/structure/))
target.ex_act(2)
- ..()
/obj/item/projectile/beam/pulse/shot
damage = 40
@@ -77,12 +77,13 @@ obj/item/projectile/beam/emitter/Destroy()
var/suit_types = list(/obj/item/clothing/suit/redtag, /obj/item/clothing/suit/bluetag)
/obj/item/projectile/lasertag/on_hit(var/atom/target, var/blocked = 0)
- if(istype(target, /mob/living/carbon/human))
+ . = ..()
+ if(ishuman(target))
var/mob/living/carbon/human/M = target
if(istype(M.wear_suit))
if(M.wear_suit.type in suit_types)
M.adjustStaminaLoss(34)
- return 1
+
/obj/item/projectile/lasertag/redtag
icon_state = "laser"
diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm
index 78f8f83bfcf..09cae327199 100644
--- a/code/modules/projectiles/projectile/bullets.dm
+++ b/code/modules/projectiles/projectile/bullets.dm
@@ -57,8 +57,8 @@
color = "#FFFF00"
/obj/item/projectile/bullet/incendiary/on_hit(var/atom/target, var/blocked = 0)
- ..()
- if(istype(target, /mob/living/carbon))
+ . = ..()
+ if(iscarbon(target))
var/mob/living/carbon/M = target
M.adjust_fire_stacks(1)
M.IgniteMob()
@@ -90,7 +90,7 @@
hitsound = 'sound/effects/meteorimpact.ogg'
/obj/item/projectile/bullet/meteorshot/on_hit(var/atom/target, var/blocked = 0)
- ..()
+ . = ..()
if(istype(target, /atom/movable))
var/atom/movable/M = target
var/atom/throw_target = get_edge_target_turf(M, get_dir(src, get_step_away(M, src)))
@@ -105,7 +105,8 @@
damage = 20
/obj/item/projectile/bullet/mime/on_hit(var/atom/target, var/blocked = 0)
- if(istype(target, /mob/living/carbon))
+ . = ..()
+ if(iscarbon(target))
var/mob/living/carbon/M = target
M.silent = max(M.silent, 10)
@@ -115,23 +116,28 @@
icon_state = "cbbolt"
damage = 6
- New()
- ..()
- flags |= NOREACT
- create_reagents(50)
+/obj/item/projectile/bullet/dart/New()
+ ..()
+ flags |= NOREACT
+ create_reagents(50)
- on_hit(var/atom/target, var/blocked = 0, var/hit_zone)
- if(istype(target, /mob/living/carbon))
- var/mob/living/carbon/M = target
- if(M.can_inject(null,0,hit_zone)) // Pass the hit zone to see if it can inject by whether it hit the head or the body.
- reagents.trans_to(M, reagents.total_volume)
- return 1
- else
- target.visible_message("The [name] was deflected!", \
- "You were protected against the [name]!")
- flags &= ~NOREACT
- reagents.handle_reactions()
- return 1
+/obj/item/projectile/bullet/dart/on_hit(var/atom/target, var/blocked = 0, var/hit_zone)
+ var/deflect = 0
+ if(iscarbon(target))
+ var/mob/living/carbon/M = target
+ if(M.can_inject(null,0,hit_zone)) // Pass the hit zone to see if it can inject by whether it hit the head or the body.
+ ..()
+ reagents.trans_to(M, reagents.total_volume)
+ return 1
+ else
+ deflect = 1
+ target.visible_message("The [name] was deflected!", \
+ "You were protected against the [name]!")
+ if(!deflect)
+ ..()
+ flags &= ~NOREACT
+ reagents.handle_reactions()
+ return 1
/obj/item/projectile/bullet/dart/metalfoam
New()
@@ -155,5 +161,6 @@
/obj/item/projectile/bullet/neurotoxin/on_hit(var/atom/target, var/blocked = 0)
if(isalien(target))
- return 0
- ..() // Execute the rest of the code.
+ weaken = 0
+ nodamage = 1
+ . = ..() // Execute the rest of the code.
diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm
index 4f4edc5dcd7..ea3b048e13e 100644
--- a/code/modules/projectiles/projectile/energy.dm
+++ b/code/modules/projectiles/projectile/energy.dm
@@ -19,27 +19,23 @@
range = 7
/obj/item/projectile/energy/electrode/on_hit(var/atom/target, var/blocked = 0)
- if(!proj_hit)
- if(!ismob(target) || blocked >= 2) //Fully blocked by mob or collided with dense object - burst into sparks!
- var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread
- sparks.set_up(1, 1, src)
- sparks.start()
- proj_hit = 1
- else if(iscarbon(target))
- var/mob/living/carbon/C = target
- if(C.dna && C.dna.check_mutation(HULK))
- C.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
- else if(C.status_flags & CANWEAKEN)
- spawn(5)
- C.do_jitter_animation(jitter)
- ..()
-
-/obj/item/projectile/energy/electrode/on_range() //to ensure the bolt sparks when it reaches the end of its range if it didn't hit a target yet
- if(!proj_hit)
+ . = ..()
+ if(!ismob(target) || blocked >= 2) //Fully blocked by mob or collided with dense object - burst into sparks!
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread
sparks.set_up(1, 1, src)
sparks.start()
- proj_hit = 1
+ else if(iscarbon(target))
+ var/mob/living/carbon/C = target
+ if(C.dna && C.dna.check_mutation(HULK))
+ C.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
+ else if(C.status_flags & CANWEAKEN)
+ spawn(5)
+ C.do_jitter_animation(jitter)
+
+/obj/item/projectile/energy/electrode/on_range() //to ensure the bolt sparks when it reaches the end of its range if it didn't hit a target yet
+ var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread
+ sparks.set_up(1, 1, src)
+ sparks.start()
..()
/obj/item/projectile/energy/declone
diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm
index d485784109c..1dd1129f74f 100644
--- a/code/modules/projectiles/projectile/magic.dm
+++ b/code/modules/projectiles/projectile/magic.dm
@@ -11,6 +11,7 @@
icon_state = "pulse1_bl"
/obj/item/projectile/magic/death/on_hit(var/target)
+ . = ..()
if(ismob(target))
var/mob/M = target
M.death(0)
@@ -31,6 +32,7 @@
..()
/obj/item/projectile/magic/fireball/on_hit(var/target)
+ . = ..()
var/turf/T = get_turf(target)
explosion(T, -1, 0, 2, 3, 0, flame_range = 2)
if(ismob(target)) //multiple flavors of pain
@@ -46,8 +48,8 @@
flag = "magic"
/obj/item/projectile/magic/resurrection/on_hit(var/mob/living/carbon/target)
-
- if(istype(target,/mob))
+ . = ..()
+ if(ismob(target))
var/old_stat = target.stat
target.revive()
target.suiciding = 0
@@ -72,6 +74,7 @@
var/outer_tele_radius = 6
/obj/item/projectile/magic/teleport/on_hit(var/mob/target)
+ . = ..()
var/teleammount = 0
var/teleloc = target
if(!isturf(target))
@@ -93,6 +96,7 @@
flag = "magic"
/obj/item/projectile/magic/door/on_hit(var/atom/target)
+ . = ..()
var/atom/T = target.loc
if(isturf(target) && target.density)
CreateDoor(target)
@@ -116,6 +120,7 @@
flag = "magic"
/obj/item/projectile/magic/change/on_hit(var/atom/change)
+ . = ..()
wabbajack(change)
proc/wabbajack(mob/living/M)
diff --git a/code/modules/projectiles/projectile/reusable.dm b/code/modules/projectiles/projectile/reusable.dm
index 0e9d010d3fe..414be55b31a 100644
--- a/code/modules/projectiles/projectile/reusable.dm
+++ b/code/modules/projectiles/projectile/reusable.dm
@@ -4,25 +4,22 @@
var/obj/item/ammo_casing/caseless/ammo_type = /obj/item/ammo_casing/caseless/
/obj/item/projectile/bullet/reusable/on_hit(var/atom/target, var/blocked = 0)
- if(!proj_hit)
- proj_hit = 1
- if (src.contents.len)
- var/obj/content
- for(content in src.contents)
- content.loc = src.loc
- else
- new ammo_type(src.loc)
- ..()
+ . = ..()
+ if (src.contents.len)
+ var/obj/content
+ for(content in src.contents)
+ content.loc = src.loc
+ else
+ new ammo_type(src.loc)
/obj/item/projectile/bullet/reusable/on_range()
- if(!proj_hit)
- if (src.contents.len)
- var/obj/content
- for(content in src.contents)
- content.loc = src.loc
- else
- new ammo_type(src.loc)
- ..()
+ if (src.contents.len)
+ var/obj/content
+ for(content in src.contents)
+ content.loc = src.loc
+ else
+ new ammo_type(src.loc)
+ ..()
/obj/item/projectile/bullet/reusable/magspear
name = "magnetic spear"
diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm
index 689fc678d63..5714b2f7b12 100644
--- a/code/modules/projectiles/projectile/special.dm
+++ b/code/modules/projectiles/projectile/special.dm
@@ -8,6 +8,7 @@
/obj/item/projectile/ion/on_hit(atom/target, blocked = 0)
+ ..()
empulse(target, 1, 1)
return 1
@@ -15,6 +16,7 @@
/obj/item/projectile/ion/weak
/obj/item/projectile/ion/weak/on_hit(atom/target, blocked = 0)
+ ..()
empulse(target, 0, 0)
return 1
@@ -26,6 +28,7 @@
flag = "bullet"
/obj/item/projectile/bullet/gyro/on_hit(atom/target, blocked = 0)
+ ..()
explosion(target, -1, 0, 2)
return 1
@@ -37,6 +40,7 @@
flag = "bullet"
/obj/item/projectile/bullet/a40mm/on_hit(atom/target, blocked = 0)
+ ..()
explosion(target, -1, 0, 2, 1, 0, flame_range = 3)
return 1
@@ -51,7 +55,8 @@
/obj/item/projectile/temp/on_hit(atom/target, blocked = 0)//These two could likely check temp protection on the mob
- if(istype(target, /mob/living))
+ ..()
+ if(isliving(target))
var/mob/M = target
M.bodytemperature = temperature
return 1
@@ -69,7 +74,9 @@
nodamage = 1
flag = "bullet"
-/obj/item/projectile/meteor/Bump(atom/A)
+/obj/item/projectile/meteor/Bump(atom/A, yes)
+ if(!yes) //prevents multi bumps.
+ return
if(A == firer)
loc = A.loc
return
@@ -100,6 +107,7 @@
name = "flayer ray"
/obj/item/projectile/beam/mindflayer/on_hit(atom/target, blocked = 0)
+ . = ..()
if(ishuman(target))
var/mob/living/carbon/human/M = target
M.adjustBrainLoss(20)
@@ -108,7 +116,7 @@
/obj/item/projectile/kinetic
name = "kinetic force"
icon_state = null
- damage = 15
+ damage = 10
damage_type = BRUTE
flag = "bomb"
range = 3
@@ -121,31 +129,24 @@ obj/item/projectile/kinetic/New()
var/pressure = environment.return_pressure()
if(pressure < 50)
name = "full strength kinetic force"
- damage *= 2
+ damage *= 4
..()
/obj/item/projectile/kinetic/Range()
range--
if(range <= 0)
new /obj/item/effect/kinetic_blast(src.loc)
- for(var/turf/T in range(1, src.loc))
- if(istype(T, /turf/simulated/mineral))
- var/turf/simulated/mineral/M = T
- M.gets_drilled(firer)
qdel(src)
/obj/item/projectile/kinetic/on_hit(atom/target)
+ . = ..()
var/turf/target_turf= get_turf(target)
if(istype(target_turf, /turf/simulated/mineral))
var/turf/simulated/mineral/M = target_turf
M.gets_drilled(firer)
new /obj/item/effect/kinetic_blast(target_turf)
- if(isturf(target))
- for(var/turf/T in range(1, target_turf))
- if(istype(T, /turf/simulated/mineral))
- var/turf/simulated/mineral/M = T
- M.gets_drilled(firer)
- ..()
+
+
/obj/item/effect/kinetic_blast
name = "kinetic explosion"
@@ -178,14 +179,14 @@ obj/item/projectile/kinetic/New()
/obj/item/projectile/beam/wormhole/on_hit(var/atom/target)
if(ismob(target))
- ..()
- return
+ return ..()
if(!gun)
qdel(src)
gun.create_portal(src)
/obj/item/projectile/bullet/gyro/on_hit(atom/target, blocked = 0)
+ ..()
explosion(target, -1, 0, 2)
return 1
@@ -196,40 +197,38 @@ obj/item/projectile/kinetic/New()
weaken = 5
/obj/item/projectile/bullet/frag12/on_hit(atom/target, blocked = 0)
+ ..()
explosion(target, -1, 0, 1)
return 1
/obj/item/projectile/plasma
name = "plasma blast"
icon_state = "plasmacutter"
- damage_type = BURN
- damage = 10
- range = 6
- var/power = 9
+ damage_type = BRUTE
+ damage = 5
+ range = 1
+
+obj/item/projectile/plasma/New()
+ var/turf/proj_turf = get_turf(src)
+ if(!istype(proj_turf, /turf))
+ return
+ var/datum/gas_mixture/environment = proj_turf.return_air()
+ var/pressure = environment.return_pressure()
+ if(pressure < 30)
+ name = "full strength plasma blast"
+ damage *= 3
+ range += 3
+ ..()
/obj/item/projectile/plasma/on_hit(var/atom/target)
if(istype(target, /turf/simulated/mineral))
- while(target && target.density && range > 0 && power > 0)
- power -= 1
- var/turf/simulated/mineral/M = target
- M.gets_drilled()
- if(range > 0 && power > 0)
- return -1
+ var/turf/simulated/mineral/M = target
+ M.gets_drilled(firer)
return ..()
/obj/item/projectile/plasma/adv
- range = 9
- power = 12
- damage = 15
-
-/obj/item/projectile/plasma/adv/on_hit(var/atom/target)
- if(!ismob(target) && !istype(target, /turf/simulated/mineral))
- target.ex_act(3)
- power -= 10
- if(range > 0 && power > 0 && (!target || !target.density))
- return -1
- return ..()
+ range = 2
/obj/item/projectile/plasma/adv/mech
- range = 12
- power = 18
\ No newline at end of file
+ damage = 10
+ range = 3
diff --git a/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm b/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm
index 59ce545d9bc..53bb47c6f9e 100644
--- a/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm
+++ b/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm
@@ -176,6 +176,14 @@
/datum/chemical_reaction/blackpowder_explosion/on_reaction(var/datum/reagents/holder, var/created_volume)
sleep(rand(50,100))
+ blackpowder_detonate(holder, created_volume)
+ return
+
+/datum/reagent/blackpowder/on_ex_act()
+ blackpowder_detonate(holder, volume)
+ return
+
+/proc/blackpowder_detonate(var/datum/reagents/holder, var/created_volume)
var/turf/simulated/T = get_turf(holder.my_atom)
var/ex_severe = round(created_volume / 100)
var/ex_heavy = round(created_volume / 42)
@@ -183,7 +191,6 @@
var/ex_flash = round(created_volume / 8)
explosion(T,ex_severe,ex_heavy,ex_light,ex_flash, 1)
return
-
/datum/reagent/flash_powder
name = "Flash Powder"
id = "flash_powder"
@@ -428,10 +435,19 @@ datum/reagent/cryostylane
datum/reagent/cryostylane/on_mob_life(var/mob/living/M as mob) //TODO: code freezing into an ice cube
if(M.reagents.has_reagent("oxygen"))
M.reagents.remove_reagent("oxygen", 1)
- M.bodytemperature -= 30 * TEMPERATURE_DAMAGE_COEFFICIENT
+ M.bodytemperature -= 30
..()
return
+datum/reagent/cryostylane/on_tick()
+ if(holder.has_reagent("oxygen"))
+ holder.remove_reagent("oxygen", 1)
+ holder.chem_temp -= 10
+ holder.handle_reactions()
+ ..()
+ return
+
+
datum/reagent/cryostylane/reaction_turf(var/turf/simulated/T, var/volume)
if(volume >= 5)
for(var/mob/living/simple_animal/slime/M in T)
@@ -457,6 +473,14 @@ datum/reagent/pyrosium
datum/reagent/pyrosium/on_mob_life(var/mob/living/M as mob)
if(M.reagents.has_reagent("oxygen"))
M.reagents.remove_reagent("oxygen", 1)
- M.bodytemperature += 30 * TEMPERATURE_DAMAGE_COEFFICIENT
+ M.bodytemperature += 30
+ ..()
+ return
+
+datum/reagent/pyrosium/on_tick()
+ if(holder.has_reagent("oxygen"))
+ holder.remove_reagent("oxygen", 1)
+ holder.chem_temp += 10
+ holder.handle_reactions()
..()
return
diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm
index 48ddea37276..98496d254fe 100644
--- a/code/modules/reagents/Chemistry-Holder.dm
+++ b/code/modules/reagents/Chemistry-Holder.dm
@@ -17,7 +17,7 @@ datum/reagents
datum/reagents/New(maximum=100)
maximum_volume = maximum
-
+ SSobj.processing |= src
//I dislike having these here but map-objects are initialised before world/New() is called. >_>
if(!chemical_reagents_list)
//Chemical Reagents - Initialises all /datum/reagent into a list indexed by reagent id
@@ -53,6 +53,7 @@ datum/reagents/New(maximum=100)
datum/reagents/Destroy()
..()
+ SSobj.processing.Remove(src)
for(var/datum/reagent/R in reagent_list)
qdel(R)
reagent_list.Cut()
@@ -260,6 +261,11 @@ datum/reagents/proc/metabolize(var/mob/M)
last_tick++
update_total()
+datum/reagents/process()
+ for(var/datum/reagent/R in reagent_list)
+ R.on_tick()
+ return
+
datum/reagents/proc/conditional_update_move(var/atom/A, var/Running = 0)
for(var/datum/reagent/R in reagent_list)
R.on_move (A, Running)
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index 68118cdbcf4..0a8f3b2d1c7 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -580,7 +580,7 @@
/obj/machinery/chem_master/constructable
name = "ChemMaster 2999"
desc = "Used to seperate chemicals and distribute them in a variety of forms."
-
+
/obj/machinery/chem_master/constructable/New()
..()
component_parts = list()
@@ -589,7 +589,7 @@
component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(null)
component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(null)
-
+
/obj/machinery/chem_master/constructable/attackby(var/obj/item/B as obj, var/mob/user as mob, params)
if(default_deconstruction_screwdriver(user, "mixer0_nopower", "mixer0_", B))
@@ -601,10 +601,10 @@
loaded_pill_bottle.loc = src.loc
loaded_pill_bottle = null
return
-
+
if(exchange_parts(user, B))
return
-
+
if(panel_open)
if(istype(B, /obj/item/weapon/crowbar))
default_deconstruction_crowbar(B)
@@ -983,6 +983,7 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime)
/obj/item/weapon/reagent_containers/food/snacks/grown/wheat = list("flour" = -5),
/obj/item/weapon/reagent_containers/food/snacks/grown/oat = list("flour" = -5),
/obj/item/weapon/reagent_containers/food/snacks/grown/cherries = list("cherryjelly" = 0),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/bluecherries = list("bluecherryjelly" = 0),
/obj/item/weapon/reagent_containers/food/snacks/egg = list("eggyolk" = -5),
//Grinder stuff, but only if dry
@@ -1013,6 +1014,8 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime)
/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon = list("watermelonjuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/watermelonslice = list("watermelonjuice" = 0),
/obj/item/weapon/reagent_containers/food/snacks/grown/berries/poison = list("poisonberryjuice" = 0),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin = list("pumpkinjuice" = 0),
+ /obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin = list("blumpkinjuice" = 0),
)
var/list/dried_items = list(
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm
index 84f50874a33..cd20ab43708 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm
@@ -102,6 +102,14 @@ datum/reagent/proc/on_merge(var/data)
datum/reagent/proc/on_update(var/atom/A)
return
+// Called every time reagent containers process.
+datum/reagent/proc/on_tick(var/data)
+ return
+
+// Called when the reagent container is hit by an explosion
+datum/reagent/proc/on_ex_act(var/severity)
+ return
+
// Called if the reagent has passed the overdose threshold and is set to be triggering overdose effects
datum/reagent/proc/overdose_process(var/mob/living/M as mob)
return
@@ -576,8 +584,8 @@ datum/reagent/radium/reaction_turf(var/turf/T, var/volume)
src = null
if(volume >= 3)
if(!istype(T, /turf/space))
- new /obj/effect/decal/cleanable/greenglow(T)
- return
+ var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/greenglow(T)
+ reagentdecal.reagents.add_reagent("uranium", volume)
datum/reagent/thermite
name = "Thermite"
@@ -647,7 +655,8 @@ datum/reagent/uranium/reaction_turf(var/turf/T, var/volume)
src = null
if(volume >= 3)
if(!istype(T, /turf/space))
- new /obj/effect/decal/cleanable/greenglow(T)
+ var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/greenglow(T)
+ reagentdecal.reagents.add_reagent("uranium", volume)
datum/reagent/aluminium
name = "Aluminium"
diff --git a/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Alcohols.dm b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Alcohols.dm
index f494d01b409..aab02ce26d0 100644
--- a/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Alcohols.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Alcohols.dm
@@ -617,3 +617,10 @@ datum/reagent/consumable/ethanol/silencer/on_mob_life(var/mob/living/M as mob)
M.heal_organ_damage(1,1)
..()
return
+
+datum/reagent/consumable/ethanol/drunkenblumpkin
+ name = "Drunken Blumpkin"
+ id = "drunkenblumpkin"
+ description = "A weird mix of whiskey and blumpkin juice."
+ color = "#1EA0FF" // rgb: 102, 67, 0
+ boozepwr = 35
\ No newline at end of file
diff --git a/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Drinks.dm
index 87496ff1a82..f7201bb2b71 100644
--- a/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Drinks.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Drink-Reagents/Drinks.dm
@@ -400,6 +400,60 @@ datum/reagent/consumable/doctor_delight
description = "A gulp a day keeps the MediBot away. That's probably for the best."
color = "#FF8CFF" // rgb: 255, 140, 255
+datum/reagent/consumable/chocolatepudding
+ name = "Chocolate Pudding"
+ id = "chocolatepudding"
+ description = "A great dessert for chocolate lovers."
+ color = "#800000"
+ nutriment_factor = 4 * REAGENTS_METABOLISM
+
+datum/reagent/consumable/vanillapudding
+ name = "Vanilla Pudding"
+ id = "vanillapudding"
+ description = "A great dessert for vanilla lovers."
+ color = "#FAFAD2"
+ nutriment_factor = 4 * REAGENTS_METABOLISM
+
+datum/reagent/consumable/cherryshake
+ name = "Cherry Shake"
+ id = "cherryshake"
+ description = "A cherry flavored milkshake."
+ color = "#FFB6C1"
+ nutriment_factor = 4 * REAGENTS_METABOLISM
+
+datum/reagent/consumable/bluecherryshake
+ name = "Blue Cherry Shake"
+ id = "bluecherryshake"
+ description = "An exotic milkshake."
+ color = "#00F1FF"
+ nutriment_factor = 4 * REAGENTS_METABOLISM
+
+datum/reagent/consumable/pumpkin_latte
+ name = "Pumpkin Latte"
+ id = "pumpkin_latte"
+ description = "A mix of pumpkin juice and coffee."
+ color = "#F4A460"
+ nutriment_factor = 3 * REAGENTS_METABOLISM
+
+datum/reagent/consumable/gibbfloats
+ name = "Gibb Floats"
+ id = "gibbfloats"
+ description = "Icecream on top of a Dr. Gibb glass."
+ color = "#B22222"
+ nutriment_factor = 3 * REAGENTS_METABOLISM
+
+datum/reagent/consumable/pumpkinjuice
+ name = "Pumpkin Juice"
+ id = "pumpkinjuice"
+ description = "Juiced from real pumpkin."
+ color = "#FFA500"
+
+datum/reagent/consumable/blumpkinjuice
+ name = "Blumpkin Juice"
+ id = "blumpkinjuice"
+ description = "Juiced from real blumpkin."
+ color = "#00BFFF"
+
//////////////////////////////////////////////The ten friggen million reagents that get you drunk//////////////////////////////////////////////
diff --git a/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Food-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Food-Reagents.dm
index 504f23c54c7..3dd2fdc7fa4 100644
--- a/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Food-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Food-Reagents.dm
@@ -374,7 +374,8 @@ datum/reagent/consumable/flour
datum/reagent/consumable/flour/reaction_turf(var/turf/T, var/volume)
src = null
if(!istype(T, /turf/space))
- new /obj/effect/decal/cleanable/flour(T)
+ var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/flour(T)
+ reagentdecal.reagents.add_reagent("flour", volume)
datum/reagent/consumable/cherryjelly
name = "Cherry Jelly"
@@ -382,6 +383,12 @@ datum/reagent/consumable/cherryjelly
description = "Totally the best. Only to be spread on foods with excellent lateral symmetry."
color = "#801E28" // rgb: 128, 30, 40
+datum/reagent/consumable/bluecherryjelly
+ name = "Blue Cherry Jelly"
+ id = "bluecherryjelly"
+ description = "Blue and tastier kind of cherry jelly."
+ color = "#00F0FF"
+
datum/reagent/consumable/rice
name = "Rice"
id = "rice"
diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm
index 4803a311e33..ab4fd76f5ac 100644
--- a/code/modules/reagents/reagent_containers.dm
+++ b/code/modules/reagents/reagent_containers.dm
@@ -77,3 +77,14 @@
return 0
return 1
+
+/obj/item/weapon/reagent_containers/ex_act()
+ if(reagents)
+ for(var/datum/reagent/R in reagents.reagent_list)
+ R.on_ex_act()
+ ..()
+
+/obj/item/weapon/reagent_containers/fire_act()
+ reagents.chem_temp += 30
+ reagents.handle_reactions()
+ ..()
\ No newline at end of file
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 365ce4e9b70..aa31cb5e0a1 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -84,10 +84,18 @@
else if(istype(target, /obj/item/clothing/suit/space/space_ninja))
return
+ else if(istype(target, /obj/effect/decal/cleanable)) //stops splashing while scooping up fluids
+ return
+
else if(reagents.total_volume)
user << "You splash the solution onto [target]."
reagents.reaction(target, TOUCH)
- reagents.clear_reagents()
+ if(istype(target, /turf/simulated/floor))
+ var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/chem_pile(target)
+ reagents.trans_to(reagentdecal, volume)
+ reagentdecal.color = mix_color_from_reagents(reagentdecal.reagents.reagent_list)
+ else
+ reagents.clear_reagents()
/obj/item/weapon/reagent_containers/glass/attackby(var/obj/item/I, mob/user as mob, params)
if(istype(I, /obj/item/clothing/mask/cigarette)) //ciggies are weird
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index 520c48354e8..c408fa5687b 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -153,7 +153,7 @@ datum/design/proc/CalcReliability(var/list/temp_techs)
id = "plasmacutter"
req_tech = list("materials" = 2, "plasmatech" = 2, "engineering" = 2, "combat" = 1, "magnets" = 2)
build_type = PROTOLATHE
- materials = list("$metal" = 1500, "$glass" = 500, "$plasma" = 200)
+ materials = list("$metal" = 1500, "$glass" = 500, "$plasma" = 400)
reliability = 79
build_path = /obj/item/weapon/gun/energy/plasmacutter
category = list("Mining Designs")
@@ -164,7 +164,7 @@ datum/design/proc/CalcReliability(var/list/temp_techs)
id = "plasmacutter_adv"
req_tech = list("materials" = 4, "plasmatech" = 3, "engineering" = 3, "combat" = 3, "magnets" = 3)
build_type = PROTOLATHE
- materials = list("$metal" = 3000, "$glass" = 1000, "$plasma" = 1000, "$silver" = 500, "$gold" = 100)
+ materials = list("$metal" = 3000, "$glass" = 1000, "$plasma" = 2000, "$gold" = 500)
reliability = 79
build_path = /obj/item/weapon/gun/energy/plasmacutter/adv
category = list("Mining Designs")
diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm
index ff9be3891c2..14f20655f4b 100644
--- a/code/modules/research/designs/medical_designs.dm
+++ b/code/modules/research/designs/medical_designs.dm
@@ -158,7 +158,7 @@ datum/design/bluespacebodybag
build_path = /obj/item/cybernetic_implant/brain/anti_stun
category = list("Medical Designs")
-/datum/design/cyberimp_nutriment
+/*/datum/design/cyberimp_nutriment
name = "Nutriment pump implant"
desc = "This implant with synthesize and pump into your bloodstream a small amount of nutriment when you are starving."
id = "ci-nutriment"
@@ -174,13 +174,4 @@ datum/design/bluespacebodybag
req_tech = list("materials" = 6, "programming" = 4, "biotech" = 6)
build_type = PROTOLATHE | MECHFAB
materials = list("$metal" = 200, "$glass" = 200, "$gold" = 500, "$uranium" = 750)
- category = list("Medical Designs")
-
-/datum/design/cyberimp_reviver
- name = "Reviver implant"
- desc = "This implant will automatically deliver a therapeutic dose of electrical energy to your heart if it ever stops beating, and inject you with nanites. A second chance!"
- id = "ci-reviver"
- req_tech = list("materials" = 6, "programming" = 4, "biotech" = 6)
- build_type = PROTOLATHE | MECHFAB
- materials = list("$metal" = 500, "$gold" = 1000, "$uranium" = 1000, "$diamond" = 2000)
- category = list("Medical Designs")
\ No newline at end of file
+ category = list("Medical Designs")*/
\ No newline at end of file
diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm
index 5dc00bd72e0..bcf7bd9a33f 100644
--- a/code/modules/research/experimentor.dm
+++ b/code/modules/research/experimentor.dm
@@ -296,7 +296,8 @@
for(var/turf/T in oview(1, src))
if(!T.density)
if(prob(EFFECT_PROB_VERYHIGH))
- new /obj/effect/decal/cleanable/greenglow(T)
+ var/obj/effect/decal/cleanable/reagentdecal = new/obj/effect/decal/cleanable/greenglow(T)
+ reagentdecal.reagents.add_reagent("radium", 7)
if(prob(EFFECT_PROB_MEDIUM-badThingCoeff))
var/savedName = "[exp_on]"
ejectItem(TRUE)
diff --git a/code/modules/surgery/cybernetic_implants.dm b/code/modules/surgery/cybernetic_implants.dm
index 66792e9c61b..0e4312f7263 100644
--- a/code/modules/surgery/cybernetic_implants.dm
+++ b/code/modules/surgery/cybernetic_implants.dm
@@ -63,10 +63,6 @@
if(full < MAX_CHEST_IMPLANT)
full = 0
- if(istype(implant,/obj/item/cybernetic_implant/chest/heart))
- if(locate(/obj/item/cybernetic_implant/chest/heart) in target.internal_organs)
- full = 1
-
insert(user,target,implant,target_zone,full)
return 1
diff --git a/code/modules/surgery/lipoplasty.dm b/code/modules/surgery/lipoplasty.dm
index ae8b5147e91..2f3645a5df3 100644
--- a/code/modules/surgery/lipoplasty.dm
+++ b/code/modules/surgery/lipoplasty.dm
@@ -33,7 +33,7 @@
var/removednutriment = target.nutrition
target.nutrition = NUTRITION_LEVEL_WELL_FED
removednutriment -= 450 //whatever was removed goes into the meat
- var/obj/item/weapon/reagent_containers/food/snacks/meat/human/newmeat = new
+ var/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/newmeat = new
newmeat.name = "fatty meat"
newmeat.desc = "Extremely fatty tissue taken from a patient."
newmeat.reagents.add_reagent ("nutriment", (removednutriment / 15)) //To balance with nutriment_factor of nutriment
diff --git a/code/modules/surgery/organs/cybernetic_implants.dm b/code/modules/surgery/organs/cybernetic_implants.dm
index acc621aa7a7..5a6d84c3019 100644
--- a/code/modules/surgery/organs/cybernetic_implants.dm
+++ b/code/modules/surgery/organs/cybernetic_implants.dm
@@ -266,7 +266,7 @@
name = "Nutriment pump implant"
desc = "This implant with synthesize and pump into your bloodstream a small amount of nutriment when you are starving."
icon_state = "chest_implant"
- implant_color = "#F968B5"
+ implant_color = "#00AA00"
var/hunger_threshold = NUTRITION_LEVEL_STARVING
var/synthesizing = 0
var/nutriment_amount = 30
@@ -297,7 +297,7 @@
name = "Nutriment pump implant PLUS"
desc = "This implant with synthesize and pump into your bloodstream a small amount of nutriment when you are hungry."
icon_state = "chest_implant"
- implant_color = "#FF0044"
+ implant_color = "#006607"
hunger_threshold = NUTRITION_LEVEL_HUNGRY
nutriment_amount = 50
poison_amount = 10
@@ -308,66 +308,3 @@
return
owner.reagents.add_reagent("????",poison_amount / severity) //food poisoning
owner << "You feel like your insides are burning."
-
-/obj/item/cybernetic_implant/chest/heart/reviver
- name = "Reviver implant"
- desc = "This implant will automatically deliver a therapeutic dose of electrical energy to your heart if it ever stops beating, and inject nanites into your bloodstream. A second chance!"
- icon_state = "chest_implant"
- implant_color = "#FF8000"
- var/defibrillating = 0
- var/recharge_time = 0
- origin_tech = "materials=7;programming=3;biotech=4"
-
-/obj/item/cybernetic_implant/chest/heart/reviver/function()
- if(istype(owner,/mob/living/carbon/human))
- recharge_time = world.time + 2000
- SSobj.processing |= src
-
-/obj/item/cybernetic_implant/chest/heart/reviver/process()
- if(defibrillating)
- return
- if(!owner)
- SSobj.processing.Remove(src)
- qdel(src)
- return
- if(world.time < recharge_time)
- return
- if(owner.stat != DEAD)
- return
-
- defibrillating = 1
- spawn(600)
- if(owner.stat == DEAD)
- owner.visible_message("[owner]'s body convulses by itself.")
- playsound(owner, "bodyfall", 50, 1)
- playsound(owner, 'sound/machines/defib_zap.ogg', 50, 1, -1)
- dead_mob_list -= owner
- living_mob_list |= list(owner)
- owner.stat = UNCONSCIOUS
- owner.reagents.add_reagent("nanites",10)
- var/mob/living/carbon/human/H = owner
- var/amount = BLOOD_VOLUME_OKAY - H.vessel.total_volume
- H.vessel.add_reagent("blood", amount)
- H.vessel.update_total()
- owner.heart_attack = 0
- owner.emote("gasp")
- add_logs(owner, owner, "revived", object="defibrillator implant")
- recharge_time = world.time + 20000
- defibrillating = 0
-
-/obj/item/cybernetic_implant/chest/heart/reviver/emp_act(severity)
- if(!owner)
- return
- if(recharge_time < world.time)
- recharge_time = world.time + (2000 / severity)
- else
- recharge_time += 2000 / severity
-
- if(prob(60/severity))
- playsound(owner, 'sound/machines/defib_saftyOff.ogg', 50, 1, -1)
- spawn(30)
- playsound(owner, 'sound/machines/defib_zap.ogg', 50, 1, -1)
- owner.heart_attack = 1
- if(owner.stat == CONSCIOUS)
- owner.Weaken(5)
- owner.visible_message("[owner] clutches at their chest as if their heart stopped!")
\ No newline at end of file
diff --git a/config/game_options.txt b/config/game_options.txt
index 683ec17b46b..bb2fe449677 100644
--- a/config/game_options.txt
+++ b/config/game_options.txt
@@ -96,14 +96,24 @@ PROBABILITY EXTENDED 0
## You probably want to keep sandbox off by default for secret and random.
PROBABILITY SANDBOX 0
-## Uncomment to make rounds which end instantly (Rev, Wizard, Malf) continue until
-## the shuttle is called or the station is nuked.
-## Malf and Rev will let the shuttle be called when the antags/protags are dead.
-#CONTINUOUS_ROUND_REV
-#CONTINUOUS_ROUND_GANG
-#CONTINUOUS_ROUND_WIZ
-#CONTINUOUS_ROUND_MALF
-#CONTINUOUS_ROUND_BLOB
+
+## Toggles for continuous modes.
+## Modes that aren't continuous will end the instant all antagonists are dead.
+## Unlisted modes are not currently supported for noncontinous play
+
+#CONTINUOUS REVOLUTION
+#CONTINUOUS GANG
+CONTINUOUS WIZARD
+CONTINUOUS MALFUNCTION
+CONTINUOUS BLOB
+
+## Toggles for allowing midround antagonists (aka mulligan antagonists).
+## In modes that are continuous, if all antagonists should die then a new set of antagonists will be created.
+## Only the listed modes are currently supported for this system
+
+MIDROUND_ANTAG WIZARD
+MIDROUND_ANTAG MALFUNCTION
+MIDROUND_ANTAG BLOB
## The amount of time it takes for the emergency shuttle to be called, from round start.
SHUTTLE_REFUEL_DELAY 12000
@@ -216,9 +226,6 @@ SILICON_MAX_LAW_AMOUNT 12
## Uncoment to give players the choice of their species before they join the game
#JOIN_WITH_MUTANT_RACE
-## Uncomment to allow certain species to have custom colors
-#MUTANT_COLORS
-
## Assistant slot cap. Set to -1 for unlimited.
ASSISTANT_CAP -1
diff --git a/html/changelog.html b/html/changelog.html
index ae4ca94a7e4..7e4e972a070 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -55,6 +55,82 @@
-->
+
11 April 2015
+
Gun Hog updated:
+
+ - Nanotrasen has approved an access upgrade for Cargo Technicians! They are now authorized to release minerals from the ore redemption machine, to allow proper inventory management and shipping.
+
+
Iamgoofball updated:
+
+ - Blobbernauts no longer deal chemical damage, brute damage increased however.
+
+
Ikarrus updated:
+
+ - Getting converted by a rev or cultist will stun you for a few seconds.
+
+
Incoming5643 updated:
+
+ - Fixes some AI malf powers being usable when dead.
+
+
MrPerson updated:
+
+ - Reduces movement speed penalty from being cold.
+
+
Xhuis updated:
+
+ - Adds a pizza bomb traitor item for 4 telecrystals. It's a bomb, diguised as a pizza box. You can also attempt to defuse it by using wirecutters.
+
+
kingofkosmos updated:
+
+ - Activating internals with an adjusted breath mask will automatically push it up to normal state.
+ - Masks can now be adjusted when buckled to a chair.
+
+
optimumtact updated:
+
+ - Stun batons no longer lose charge over time when on.
+
+
phil235 updated:
+
+ - The AI holopads now use a popup window just like computers and other machines.
+ - Nerfs kinetic accelerator and plasma cutters. Plasma cutter is no longer in the mining vendor. Reduces the drilling cost of all drills.
+ - Adding 40+ new food and drink recipes, mostly using the newest plants. Notably rice recipes, burritos, nachos, salads, pizzas.
+ - Opening the tablecrafting window can now also be done by dragging the mouse from any food (that's on a table) onto you.
+ - The kitchen cabinet starts with one rice pack.
+ - Glasses with unknown reagent will no longer be always brown but will take the color of their reagents.
+
+
+
09 April 2015
+
Iamgoofball updated:
+
+ - Quite a lot of cleanables can now be scooped up with a beaker in order to acquire the contents.
+ - Light a piece of paper on fire with a lighter, and scoop up the ashes!
+ - Scoop up the flour the clown sprayed everywhere as a 'joke'!
+ - Scoop up the oil left behind by exploding robots for re-usage in chemistry!
+ - You can splash the contents of a beaker onto the floor to create a Chemical Pile! This pile can be heated or blown up and have the reagents take the effects. Make a string of black powder around a department in maint. and then heat it with a welder today!
+ - Reagents now can have processing effects when just sitting in a beaker.
+ - Pyrosium and Cryostylane now feed off of oxygen and heat/cool the beaker without having to be inside of a person!
+ - Reagents can now respond to explosions!
+ - Black Powder now instantly detonates if there is an explosion that effects it.
+ - Fire now heats up beakers and their contents!
+ - Activate some smoke powder in style by lighting the beaker on fire with a burning hot plasma fire!
+
+
RemieRichards updated:
+
+ - Ninja stars are summoned to your hand to be thrown rather than automatically targetting nearby mobs.
+ - Added Sword Recall: pulls your katana towards you, hitting mobs in the way. Free if within sight, cost scales with distance otherwise.
+ - Enemies can be electrocuted by a ninja as the cost of his energy, stunning and injuring them.
+ - Removed SpiderOS, functions moved to status panel.
+ - Fixed energy nets not anchoring target, katana emag spam and sound delay.
+
+
optimumtact updated:
+
+ - Mimes can't use megaphone without breaking their vow anymore.
+
+
phil235 updated:
+
+ - Flying animals no longer triggers mouse traps, bear traps or mines.
+
+
04 April 2015
ACCount updated:
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index 032ce58f6b0..94183ce73e0 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -2078,3 +2078,69 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- tweak: Cauterizing a surgery wound will now heal some of the damage done by the
bonesaw if it was used as part of the same surgery.
- tweak: Added ability for Medical HUDs to detect cybernetic implants in humans.
+2015-04-09:
+ Iamgoofball:
+ - rscadd: Quite a lot of cleanables can now be scooped up with a beaker in order
+ to acquire the contents.
+ - rscadd: Light a piece of paper on fire with a lighter, and scoop up the ashes!
+ - rscadd: Scoop up the flour the clown sprayed everywhere as a 'joke'!
+ - rscadd: Scoop up the oil left behind by exploding robots for re-usage in chemistry!
+ - rscadd: You can splash the contents of a beaker onto the floor to create a Chemical
+ Pile! This pile can be heated or blown up and have the reagents take the effects.
+ Make a string of black powder around a department in maint. and then heat it
+ with a welder today!
+ - rscadd: Reagents now can have processing effects when just sitting in a beaker.
+ - rscadd: Pyrosium and Cryostylane now feed off of oxygen and heat/cool the beaker
+ without having to be inside of a person!
+ - rscadd: Reagents can now respond to explosions!
+ - rscadd: Black Powder now instantly detonates if there is an explosion that effects
+ it.
+ - rscadd: Fire now heats up beakers and their contents!
+ - rscadd: Activate some smoke powder in style by lighting the beaker on fire with
+ a burning hot plasma fire!
+ RemieRichards:
+ - tweak: Ninja stars are summoned to your hand to be thrown rather than automatically
+ targetting nearby mobs.
+ - rscadd: 'Added Sword Recall: pulls your katana towards you, hitting mobs in the
+ way. Free if within sight, cost scales with distance otherwise.'
+ - rscadd: Enemies can be electrocuted by a ninja as the cost of his energy, stunning
+ and injuring them.
+ - rscdel: Removed SpiderOS, functions moved to status panel.
+ - bugfix: Fixed energy nets not anchoring target, katana emag spam and sound delay.
+ optimumtact:
+ - bugfix: Mimes can't use megaphone without breaking their vow anymore.
+ phil235:
+ - tweak: Flying animals no longer triggers mouse traps, bear traps or mines.
+2015-04-11:
+ Gun Hog:
+ - tweak: Nanotrasen has approved an access upgrade for Cargo Technicians! They are
+ now authorized to release minerals from the ore redemption machine, to allow
+ proper inventory management and shipping.
+ Iamgoofball:
+ - tweak: Blobbernauts no longer deal chemical damage, brute damage increased however.
+ Ikarrus:
+ - experiment: Getting converted by a rev or cultist will stun you for a few seconds.
+ Incoming5643:
+ - bugfix: Fixes some AI malf powers being usable when dead.
+ MrPerson:
+ - tweak: Reduces movement speed penalty from being cold.
+ Xhuis:
+ - rscadd: Adds a pizza bomb traitor item for 4 telecrystals. It's a bomb, diguised
+ as a pizza box. You can also attempt to defuse it by using wirecutters.
+ kingofkosmos:
+ - rscadd: Activating internals with an adjusted breath mask will automatically push
+ it up to normal state.
+ - tweak: Masks can now be adjusted when buckled to a chair.
+ optimumtact:
+ - tweak: Stun batons no longer lose charge over time when on.
+ phil235:
+ - tweak: The AI holopads now use a popup window just like computers and other machines.
+ - rscdel: Nerfs kinetic accelerator and plasma cutters. Plasma cutter is no longer
+ in the mining vendor. Reduces the drilling cost of all drills.
+ - rscadd: Adding 40+ new food and drink recipes, mostly using the newest plants.
+ Notably rice recipes, burritos, nachos, salads, pizzas.
+ - tweak: Opening the tablecrafting window can now also be done by dragging the mouse
+ from any food (that's on a table) onto you.
+ - rscadd: The kitchen cabinet starts with one rice pack.
+ - tweak: Glasses with unknown reagent will no longer be always brown but will take
+ the color of their reagents.
diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi
index a80ad0382f8..f7a5528eda3 100644
Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ
diff --git a/icons/obj/bodybag.dmi b/icons/obj/bodybag.dmi
index caa12c04ffa..0b33b0e3d88 100644
Binary files a/icons/obj/bodybag.dmi and b/icons/obj/bodybag.dmi differ
diff --git a/icons/obj/closet.dmi b/icons/obj/closet.dmi
index 18c6b4b60a1..b69cc7be2ea 100644
Binary files a/icons/obj/closet.dmi and b/icons/obj/closet.dmi differ
diff --git a/icons/obj/crates.dmi b/icons/obj/crates.dmi
new file mode 100644
index 00000000000..7a1714234b0
Binary files /dev/null and b/icons/obj/crates.dmi differ
diff --git a/icons/obj/doors/Door2x1glassfull.dmi b/icons/obj/doors/Door2x1glassfull.dmi
index 96653338e11..8f8c66bdb6c 100644
Binary files a/icons/obj/doors/Door2x1glassfull.dmi and b/icons/obj/doors/Door2x1glassfull.dmi differ
diff --git a/icons/obj/doors/DoorHazard.dmi b/icons/obj/doors/DoorHazard.dmi
index f828889ba26..b8fac7cac9b 100644
Binary files a/icons/obj/doors/DoorHazard.dmi and b/icons/obj/doors/DoorHazard.dmi differ
diff --git a/icons/obj/doors/Dooratmo.dmi b/icons/obj/doors/Dooratmo.dmi
index 7d5135705b4..b1ef018a370 100644
Binary files a/icons/obj/doors/Dooratmo.dmi and b/icons/obj/doors/Dooratmo.dmi differ
diff --git a/icons/obj/doors/Dooratmoglass.dmi b/icons/obj/doors/Dooratmoglass.dmi
index 4682abd2aa3..2bf21ec57c4 100644
Binary files a/icons/obj/doors/Dooratmoglass.dmi and b/icons/obj/doors/Dooratmoglass.dmi differ
diff --git a/icons/obj/doors/Doorbananium.dmi b/icons/obj/doors/Doorbananium.dmi
index 2da85afcd43..43e843b155d 100644
Binary files a/icons/obj/doors/Doorbananium.dmi and b/icons/obj/doors/Doorbananium.dmi differ
diff --git a/icons/obj/doors/Doorcom.dmi b/icons/obj/doors/Doorcom.dmi
index b0d28f6da1e..f5bfb3521a8 100644
Binary files a/icons/obj/doors/Doorcom.dmi and b/icons/obj/doors/Doorcom.dmi differ
diff --git a/icons/obj/doors/Doorcomglass.dmi b/icons/obj/doors/Doorcomglass.dmi
index 52ba75a9b58..e4a55d56038 100644
Binary files a/icons/obj/doors/Doorcomglass.dmi and b/icons/obj/doors/Doorcomglass.dmi differ
diff --git a/icons/obj/doors/Doordiamond.dmi b/icons/obj/doors/Doordiamond.dmi
index 1f40c79ba9a..fc4e237f9e4 100644
Binary files a/icons/obj/doors/Doordiamond.dmi and b/icons/obj/doors/Doordiamond.dmi differ
diff --git a/icons/obj/doors/Doorele.dmi b/icons/obj/doors/Doorele.dmi
index 44a84d4e0a3..dbd6b6bd8d9 100644
Binary files a/icons/obj/doors/Doorele.dmi and b/icons/obj/doors/Doorele.dmi differ
diff --git a/icons/obj/doors/Dooreng.dmi b/icons/obj/doors/Dooreng.dmi
index 912f7a13b5d..ee3ada9d687 100644
Binary files a/icons/obj/doors/Dooreng.dmi and b/icons/obj/doors/Dooreng.dmi differ
diff --git a/icons/obj/doors/Doorengglass.dmi b/icons/obj/doors/Doorengglass.dmi
index 7b7798285c8..11ea7e7f9ce 100644
Binary files a/icons/obj/doors/Doorengglass.dmi and b/icons/obj/doors/Doorengglass.dmi differ
diff --git a/icons/obj/doors/Doorext.dmi b/icons/obj/doors/Doorext.dmi
index 347e58603b6..46e054d06e4 100644
Binary files a/icons/obj/doors/Doorext.dmi and b/icons/obj/doors/Doorext.dmi differ
diff --git a/icons/obj/doors/Doorfire.dmi b/icons/obj/doors/Doorfire.dmi
index ae1c0e855d1..8c3644c22f4 100644
Binary files a/icons/obj/doors/Doorfire.dmi and b/icons/obj/doors/Doorfire.dmi differ
diff --git a/icons/obj/doors/Doorfireglass.dmi b/icons/obj/doors/Doorfireglass.dmi
index a05099b7b25..f00e6c2857e 100644
Binary files a/icons/obj/doors/Doorfireglass.dmi and b/icons/obj/doors/Doorfireglass.dmi differ
diff --git a/icons/obj/doors/Doorfreezer.dmi b/icons/obj/doors/Doorfreezer.dmi
index 294c7e7c418..9018eb0fb51 100644
Binary files a/icons/obj/doors/Doorfreezer.dmi and b/icons/obj/doors/Doorfreezer.dmi differ
diff --git a/icons/obj/doors/Doorglass.dmi b/icons/obj/doors/Doorglass.dmi
index 396ede20263..d79c451819d 100644
Binary files a/icons/obj/doors/Doorglass.dmi and b/icons/obj/doors/Doorglass.dmi differ
diff --git a/icons/obj/doors/Doorgold.dmi b/icons/obj/doors/Doorgold.dmi
index 26fc1fcd040..483deb2ba60 100644
Binary files a/icons/obj/doors/Doorgold.dmi and b/icons/obj/doors/Doorgold.dmi differ
diff --git a/icons/obj/doors/Doorhatchele.dmi b/icons/obj/doors/Doorhatchele.dmi
index 7b6d4d2bc84..b651b09ceba 100644
Binary files a/icons/obj/doors/Doorhatchele.dmi and b/icons/obj/doors/Doorhatchele.dmi differ
diff --git a/icons/obj/doors/Doorhatchmaint2.dmi b/icons/obj/doors/Doorhatchmaint2.dmi
index 8300f236811..5d61bea3cbf 100644
Binary files a/icons/obj/doors/Doorhatchmaint2.dmi and b/icons/obj/doors/Doorhatchmaint2.dmi differ
diff --git a/icons/obj/doors/Doormaint.dmi b/icons/obj/doors/Doormaint.dmi
index 0b9020e0877..f37541ca4bb 100644
Binary files a/icons/obj/doors/Doormaint.dmi and b/icons/obj/doors/Doormaint.dmi differ
diff --git a/icons/obj/doors/Doormining.dmi b/icons/obj/doors/Doormining.dmi
index 9e0e404e68b..a5f8d48731d 100644
Binary files a/icons/obj/doors/Doormining.dmi and b/icons/obj/doors/Doormining.dmi differ
diff --git a/icons/obj/doors/Doorminingglass.dmi b/icons/obj/doors/Doorminingglass.dmi
index 6a71d56206a..41095a9de7c 100644
Binary files a/icons/obj/doors/Doorminingglass.dmi and b/icons/obj/doors/Doorminingglass.dmi differ
diff --git a/icons/obj/doors/Doorplasma.dmi b/icons/obj/doors/Doorplasma.dmi
index cbd2e3621b2..4447c72f216 100644
Binary files a/icons/obj/doors/Doorplasma.dmi and b/icons/obj/doors/Doorplasma.dmi differ
diff --git a/icons/obj/doors/Doorsand.dmi b/icons/obj/doors/Doorsand.dmi
index 556524f4fe0..3c4856c980b 100644
Binary files a/icons/obj/doors/Doorsand.dmi and b/icons/obj/doors/Doorsand.dmi differ
diff --git a/icons/obj/doors/Doorsec.dmi b/icons/obj/doors/Doorsec.dmi
index 9e98f085c8a..b1507324716 100644
Binary files a/icons/obj/doors/Doorsec.dmi and b/icons/obj/doors/Doorsec.dmi differ
diff --git a/icons/obj/doors/Doorsecglass.dmi b/icons/obj/doors/Doorsecglass.dmi
index 399a262bfa9..95e7bc6cb1d 100644
Binary files a/icons/obj/doors/Doorsecglass.dmi and b/icons/obj/doors/Doorsecglass.dmi differ
diff --git a/icons/obj/doors/Doorsilver.dmi b/icons/obj/doors/Doorsilver.dmi
index adc7250c311..cf60747f58d 100644
Binary files a/icons/obj/doors/Doorsilver.dmi and b/icons/obj/doors/Doorsilver.dmi differ
diff --git a/icons/obj/doors/Dooruranium.dmi b/icons/obj/doors/Dooruranium.dmi
index 61a583b38b9..cf302103676 100644
Binary files a/icons/obj/doors/Dooruranium.dmi and b/icons/obj/doors/Dooruranium.dmi differ
diff --git a/icons/obj/doors/Doorwood.dmi b/icons/obj/doors/Doorwood.dmi
index 1ae0615deae..4ea621e3633 100644
Binary files a/icons/obj/doors/Doorwood.dmi and b/icons/obj/doors/Doorwood.dmi differ
diff --git a/icons/obj/doors/door_fire2.dmi b/icons/obj/doors/door_fire2.dmi
index 6c5943c7ed9..0640cce7bea 100644
Binary files a/icons/obj/doors/door_fire2.dmi and b/icons/obj/doors/door_fire2.dmi differ
diff --git a/icons/obj/doors/doorint.dmi b/icons/obj/doors/doorint.dmi
index 7ef0f35ce7a..e48b91da167 100644
Binary files a/icons/obj/doors/doorint.dmi and b/icons/obj/doors/doorint.dmi differ
diff --git a/icons/obj/doors/doormed.dmi b/icons/obj/doors/doormed.dmi
index da561d3f619..1da3bf4c119 100644
Binary files a/icons/obj/doors/doormed.dmi and b/icons/obj/doors/doormed.dmi differ
diff --git a/icons/obj/doors/doormedglass.dmi b/icons/obj/doors/doormedglass.dmi
index 42292469311..5158d1a5cfd 100644
Binary files a/icons/obj/doors/doormedglass.dmi and b/icons/obj/doors/doormedglass.dmi differ
diff --git a/icons/obj/doors/doorresearch.dmi b/icons/obj/doors/doorresearch.dmi
index 41db144b053..425c87afcc2 100644
Binary files a/icons/obj/doors/doorresearch.dmi and b/icons/obj/doors/doorresearch.dmi differ
diff --git a/icons/obj/doors/doorresearchglass.dmi b/icons/obj/doors/doorresearchglass.dmi
index 2b7af93e396..b699b8d9fa8 100644
Binary files a/icons/obj/doors/doorresearchglass.dmi and b/icons/obj/doors/doorresearchglass.dmi differ
diff --git a/icons/obj/doors/doorsci.dmi b/icons/obj/doors/doorsci.dmi
index 292fbb2753f..fabeb1f4029 100644
Binary files a/icons/obj/doors/doorsci.dmi and b/icons/obj/doors/doorsci.dmi differ
diff --git a/icons/obj/doors/doorsciglass.dmi b/icons/obj/doors/doorsciglass.dmi
index 4aa1d358965..2b022d82c43 100644
Binary files a/icons/obj/doors/doorsciglass.dmi and b/icons/obj/doors/doorsciglass.dmi differ
diff --git a/icons/obj/doors/doorshuttle.dmi b/icons/obj/doors/doorshuttle.dmi
index a32899e4221..aa971f3b0c2 100644
Binary files a/icons/obj/doors/doorshuttle.dmi and b/icons/obj/doors/doorshuttle.dmi differ
diff --git a/icons/obj/doors/doorviro.dmi b/icons/obj/doors/doorviro.dmi
index fbf35abdef5..993a4aaeecb 100644
Binary files a/icons/obj/doors/doorviro.dmi and b/icons/obj/doors/doorviro.dmi differ
diff --git a/icons/obj/doors/doorviroglass.dmi b/icons/obj/doors/doorviroglass.dmi
index 250a82be855..117cfb6de8a 100644
Binary files a/icons/obj/doors/doorviroglass.dmi and b/icons/obj/doors/doorviroglass.dmi differ
diff --git a/icons/obj/doors/edge_Doorfire.dmi b/icons/obj/doors/edge_Doorfire.dmi
index c0f815182a5..3aad0114d4b 100644
Binary files a/icons/obj/doors/edge_Doorfire.dmi and b/icons/obj/doors/edge_Doorfire.dmi differ
diff --git a/icons/obj/doors/hightechsecurity.dmi b/icons/obj/doors/hightechsecurity.dmi
index 9293dced77e..64bcc63e24c 100644
Binary files a/icons/obj/doors/hightechsecurity.dmi and b/icons/obj/doors/hightechsecurity.dmi differ
diff --git a/icons/obj/doors/vault.dmi b/icons/obj/doors/vault.dmi
index 5d1c25aa84a..cfdf48ac427 100644
Binary files a/icons/obj/doors/vault.dmi and b/icons/obj/doors/vault.dmi differ
diff --git a/icons/obj/doors/windoor.dmi b/icons/obj/doors/windoor.dmi
index 7a2f5ff0a9d..dbc687021c1 100644
Binary files a/icons/obj/doors/windoor.dmi and b/icons/obj/doors/windoor.dmi differ
diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi
index 36224612d34..f2e01a166fa 100644
Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ
diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi
deleted file mode 100644
index 89112e632d9..00000000000
Binary files a/icons/obj/food.dmi and /dev/null differ
diff --git a/icons/obj/food/burgerbread.dmi b/icons/obj/food/burgerbread.dmi
new file mode 100644
index 00000000000..b7e1165b674
Binary files /dev/null and b/icons/obj/food/burgerbread.dmi differ
diff --git a/icons/obj/food/containers.dmi b/icons/obj/food/containers.dmi
new file mode 100644
index 00000000000..89af09b0d20
Binary files /dev/null and b/icons/obj/food/containers.dmi differ
diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi
new file mode 100644
index 00000000000..7bab43843a2
Binary files /dev/null and b/icons/obj/food/food.dmi differ
diff --git a/icons/obj/food/food_ingredients.dmi b/icons/obj/food/food_ingredients.dmi
new file mode 100644
index 00000000000..b761943de00
Binary files /dev/null and b/icons/obj/food/food_ingredients.dmi differ
diff --git a/icons/obj/food/piecake.dmi b/icons/obj/food/piecake.dmi
new file mode 100644
index 00000000000..58cc44e5688
Binary files /dev/null and b/icons/obj/food/piecake.dmi differ
diff --git a/icons/obj/food/pizzaspaghetti.dmi b/icons/obj/food/pizzaspaghetti.dmi
new file mode 100644
index 00000000000..8fb643c03ca
Binary files /dev/null and b/icons/obj/food/pizzaspaghetti.dmi differ
diff --git a/icons/obj/food/soupsalad.dmi b/icons/obj/food/soupsalad.dmi
new file mode 100644
index 00000000000..fe4c07362af
Binary files /dev/null and b/icons/obj/food/soupsalad.dmi differ
diff --git a/icons/obj/food_ingredients.dmi b/icons/obj/food_ingredients.dmi
deleted file mode 100644
index b5504ea1546..00000000000
Binary files a/icons/obj/food_ingredients.dmi and /dev/null differ
diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi
index 4234dc72af5..b91bec2571b 100644
Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ
diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi
index 98aa12253ce..b4f2c21b223 100644
Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ
diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi
index aa5259be1aa..e3a0165745f 100644
Binary files a/icons/obj/surgery.dmi and b/icons/obj/surgery.dmi differ
diff --git a/icons/obj/wallmounts.dmi b/icons/obj/wallmounts.dmi
new file mode 100644
index 00000000000..edd89610bac
Binary files /dev/null and b/icons/obj/wallmounts.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index 18154c05068..bd612a48f11 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -561,6 +561,7 @@
#include "code\game\objects\items\devices\multitool.dm"
#include "code\game\objects\items\devices\paicard.dm"
#include "code\game\objects\items\devices\pipe_painter.dm"
+#include "code\game\objects\items\devices\pizza_bomb.dm"
#include "code\game\objects\items\devices\powersink.dm"
#include "code\game\objects\items\devices\recaller.dm"
#include "code\game\objects\items\devices\scanners.dm"
@@ -628,7 +629,6 @@
#include "code\game\objects\items\weapons\signs.dm"
#include "code\game\objects\items\weapons\singularityhammer.dm"
#include "code\game\objects\items\weapons\stunbaton.dm"
-#include "code\game\objects\items\weapons\table_rack_parts.dm"
#include "code\game\objects\items\weapons\teleportation.dm"
#include "code\game\objects\items\weapons\tools.dm"
#include "code\game\objects\items\weapons\twohanded.dm"
@@ -709,14 +709,12 @@
#include "code\game\objects\structures\crates_lockers\closets.dm"
#include "code\game\objects\structures\crates_lockers\crates.dm"
#include "code\game\objects\structures\crates_lockers\largecrate.dm"
-#include "code\game\objects\structures\crates_lockers\closets\coffin.dm"
#include "code\game\objects\structures\crates_lockers\closets\crittercrate.dm"
#include "code\game\objects\structures\crates_lockers\closets\fireaxe.dm"
#include "code\game\objects\structures\crates_lockers\closets\fitness.dm"
#include "code\game\objects\structures\crates_lockers\closets\gimmick.dm"
#include "code\game\objects\structures\crates_lockers\closets\job_closets.dm"
#include "code\game\objects\structures\crates_lockers\closets\l3closet.dm"
-#include "code\game\objects\structures\crates_lockers\closets\malfunction.dm"
#include "code\game\objects\structures\crates_lockers\closets\statue.dm"
#include "code\game\objects\structures\crates_lockers\closets\syndicate.dm"
#include "code\game\objects\structures\crates_lockers\closets\utility_closets.dm"
@@ -1221,7 +1219,6 @@
#include "code\modules\mob\living\simple_animal\slime\say.dm"
#include "code\modules\mob\living\simple_animal\slime\slime.dm"
#include "code\modules\mob\living\simple_animal\slime\subtypes.dm"
-#include "code\modules\mob\living\simple_animal\slime\update_icons.dm"
#include "code\modules\mob\new_player\login.dm"
#include "code\modules\mob\new_player\logout.dm"
#include "code\modules\mob\new_player\new_player.dm"
@@ -1242,8 +1239,8 @@
#include "code\modules\ninja\suit\gloves.dm"
#include "code\modules\ninja\suit\head.dm"
#include "code\modules\ninja\suit\mask.dm"
+#include "code\modules\ninja\suit\ninjaDrainAct.dm"
#include "code\modules\ninja\suit\shoes.dm"
-#include "code\modules\ninja\suit\SpiderOS.dm"
#include "code\modules\ninja\suit\suit.dm"
#include "code\modules\ninja\suit\suit_attackby.dm"
#include "code\modules\ninja\suit\suit_initialisation.dm"
@@ -1257,6 +1254,7 @@
#include "code\modules\ninja\suit\n_suit_verbs\ninja_smoke.dm"
#include "code\modules\ninja\suit\n_suit_verbs\ninja_stars.dm"
#include "code\modules\ninja\suit\n_suit_verbs\ninja_stealth.dm"
+#include "code\modules\ninja\suit\n_suit_verbs\ninja_sword_recall.dm"
#include "code\modules\ninja\suit\n_suit_verbs\ninja_teleporting.dm"
#include "code\modules\paperwork\clipboard.dm"
#include "code\modules\paperwork\filingcabinet.dm"