diff --git a/_maps/map_files/Efficiencystation/efficiency3.1.3a.dmm b/_maps/map_files/Efficiencystation/efficiency3.1.3a.dmm index c01c4c1b44b..638c08ac2d6 100644 --- a/_maps/map_files/Efficiencystation/efficiency3.1.3a.dmm +++ b/_maps/map_files/Efficiencystation/efficiency3.1.3a.dmm @@ -1121,7 +1121,7 @@ "avC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/fpmaint{name = "Medical Maintenance"}) "avD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/fpmaint{name = "Medical Maintenance"}) "avE" = (/obj/effect/decal/cleanable/robot_debris,/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/fpmaint{name = "Medical Maintenance"}) -"avF" = (/obj/structure/table/glass,/obj/item/device/flashlight/pen{pixel_x = 0},/obj/item/device/flashlight/pen{pixel_x = 4; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = -4; pixel_y = -3},/obj/item/weapon/reagent_containers/syringe/antitoxin,/turf/simulated/floor/plasteel{dir = 9; icon_state = "whiteblue"},/area/medical/genetics) +"avF" = (/obj/structure/table/glass,/obj/item/device/flashlight/pen{pixel_x = 0},/obj/item/device/flashlight/pen{pixel_x = 4; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -4; pixel_y = -3},/obj/item/weapon/reagent_containers/syringe/charcoal,/turf/simulated/floor/plasteel{dir = 9; icon_state = "whiteblue"},/area/medical/genetics) "avG" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/genetics) "avH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/machinery/camera{c_tag = "Genetics Research"; dir = 2; network = list("SS13","RD"); pixel_x = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/genetics) "avI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/genetics) @@ -1405,7 +1405,7 @@ "aBa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/maintenance{name = "Research Maintenance"; req_access_txt = "7"; req_one_access_txt = "0"},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) "aBb" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/security/checkpoint/science{name = "Security Post - Research Division"}) "aBc" = (/obj/structure/noticeboard{dir = 8; pixel_x = 27; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) -"aBd" = (/turf/simulated/wall/r_wall,/area/toxins/telesci) +"aBd" = (/turf/simulated/wall/r_wall,/area/toxins/explab) "aBe" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/folder,/obj/item/weapon/pen,/turf/simulated/floor/plating{broken = 1; icon_state = "platingdmg3"; tag = "icon-platingdmg3"},/area/maintenance/fore) "aBf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/maintenance/fore) "aBg" = (/turf/simulated/wall,/area/hallway/primary/starboard) @@ -1462,13 +1462,13 @@ "aCf" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (EAST)"; dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) "aCg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) "aCh" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"aCi" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/toxins/telesci) -"aCj" = (/obj/item/weapon/paper_bin{pixel_x = 0; pixel_y = 6},/obj/item/weapon/pen,/obj/structure/table,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitecorner"},/area/toxins/telesci) -"aCk" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/device/radio/off,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/toxins/telesci) -"aCl" = (/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/machinery/light{dir = 1},/obj/item/device/gps/science{gpstag = "SCI1"},/obj/item/device/gps/science{gpstag = "SCI2"},/obj/item/device/gps/science{gpstag = "SCI3"},/obj/item/device/gps/science{gpstag = "SCI4"},/obj/item/device/gps/science{gpstag = "SCI5"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/toxins/telesci) -"aCm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = 30},/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/toxins/telesci) -"aCn" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitecorner"},/area/toxins/telesci) -"aCo" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Telescience Maintenance"; req_access_txt = "7"},/turf/simulated/floor/plating,/area/toxins/telesci) +"aCi" = (/obj/item/weapon/paper_bin{pixel_x = 0; pixel_y = 6},/obj/item/weapon/pen,/obj/structure/table,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitecorner"},/area/toxins/explab) +"aCj" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/toxins/explab) +"aCk" = (/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/stack/packageWrap,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/toxins/explab) +"aCl" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/device/radio/off,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/toxins/explab) +"aCm" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitecorner"},/area/toxins/explab) +"aCn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = 30},/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/toxins/explab) +"aCo" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Experimentation Lab Maintenance"; req_access_txt = "7"},/turf/simulated/floor/plating,/area/toxins/explab) "aCp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/fore) "aCq" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (NORTH)"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/fore) "aCr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/fore) @@ -1527,12 +1527,12 @@ "aDs" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "Misc Research APC"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) "aDt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) "aDu" = (/obj/machinery/camera{c_tag = "Research Division East"; dir = 1; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) -"aDv" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Telescience Lab"; req_access_txt = "7"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"aDw" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"aDx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"aDy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"aDz" = (/obj/structure/closet/l3closet/scientist{pixel_x = -2},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"aDA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/toxins/telesci) +"aDv" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"aDw" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Experimentation Lab"; req_access_txt = "7"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"aDx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"aDy" = (/obj/structure/closet/l3closet/scientist{pixel_x = -2},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"aDz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"aDA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/toxins/explab) "aDB" = (/obj/structure/sign/securearea{pixel_x = -32},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fore) "aDC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{broken = 1; icon_state = "platingdmg2"; tag = "icon-platingdmg2"},/area/maintenance/fore) "aDD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/fore) @@ -1592,12 +1592,12 @@ "aEF" = (/turf/simulated/wall,/area/assembly/chargebay) "aEG" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/chargebay) "aEH" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=1"; freq = 1400; location = "Science"},/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/preopen{id = "Biohazard"; name = "biohazard containment door"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/medical/research{name = "Research Division"}) -"aEI" = (/turf/simulated/wall,/area/toxins/telesci) -"aEJ" = (/obj/machinery/light_switch{pixel_x = -20; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"aEK" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"aEL" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"aEM" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"aEN" = (/obj/structure/closet/emcloset{pixel_x = -2},/obj/structure/disposalpipe/segment,/obj/machinery/power/apc{dir = 4; name = "Telescience Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) +"aEI" = (/obj/machinery/light_switch{pixel_x = -20; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"aEJ" = (/turf/simulated/wall,/area/toxins/explab) +"aEK" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"aEL" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"aEM" = (/obj/structure/closet/emcloset{pixel_x = -2},/obj/structure/disposalpipe/segment,/obj/machinery/power/apc{dir = 4; name = "Telescience Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"aEN" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) "aEO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plating,/area/maintenance/fore) "aEP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/ai_monitored/nuke_storage) "aEQ" = (/turf/simulated/wall/r_wall,/area/ai_monitored/nuke_storage) @@ -1665,9 +1665,9 @@ "aGa" = (/turf/simulated/floor/plasteel,/area/assembly/chargebay) "aGb" = (/turf/simulated/wall/r_wall,/area/assembly/chargebay) "aGc" = (/obj/machinery/door/airlock/research{name = "Research Division Access"; req_access_txt = "47"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurplefull"},/area/medical/research{name = "Research Division"}) -"aGd" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"aGe" = (/obj/structure/stool/bed/chair/office/light,/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"aGf" = (/obj/structure/disposalpipe/segment,/obj/machinery/camera{c_tag = "Telescience Lab"; dir = 8; network = list("SS13","RD")},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 27; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) +"aGd" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"aGe" = (/obj/structure/stool/bed/chair/office/light,/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"aGf" = (/obj/structure/disposalpipe/segment,/obj/machinery/camera{c_tag = "Experimentation Lab"; dir = 8; network = list("SS13","RD")},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 27; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) "aGg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/turf/simulated/floor/plating{broken = 1; icon_state = "platingdmg3"; tag = "icon-platingdmg3"},/area/maintenance/fore) "aGh" = (/obj/structure/filingcabinet,/obj/item/weapon/folder/documents,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 4},/area/ai_monitored/nuke_storage) "aGi" = (/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 4},/area/ai_monitored/nuke_storage) @@ -1727,11 +1727,11 @@ "aHk" = (/obj/structure/closet/firecloset,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) "aHl" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurplefull"},/area/medical/research{name = "Research Division"}) "aHm" = (/obj/machinery/camera{c_tag = "Research Division Access"; dir = 2; network = list("SS13")},/obj/machinery/shower{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) -"aHn" = (/obj/machinery/door_control{id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = -25; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"},/area/toxins/telesci) -"aHo" = (/obj/item/weapon/book/manual/wiki/telescience{pixel_y = 8},/obj/structure/table,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitecorner"},/area/toxins/telesci) -"aHp" = (/obj/machinery/computer/telescience,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 1},/area/toxins/telesci) -"aHq" = (/obj/machinery/door_control{id = "telescipub"; name = "Public Shutters"; pixel_x = 0; pixel_y = 0},/obj/structure/table,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitecorner"},/area/toxins/telesci) -"aHr" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) +"aHn" = (/obj/machinery/door_control{id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = -25; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"},/area/toxins/explab) +"aHo" = (/obj/machinery/computer/rdconsole/experiment,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 1},/area/toxins/explab) +"aHp" = (/obj/structure/table,/obj/item/weapon/book/manual/research_and_development,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitecorner"},/area/toxins/explab) +"aHq" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"aHr" = (/obj/structure/table,/obj/machinery/door_control{id = "explab"; name = "Test Chamber Blast Doors"; pixel_x = 0; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitecorner"},/area/toxins/explab) "aHs" = (/obj/machinery/light_switch{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/ai_monitored/nuke_storage) "aHt" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/nuke_storage) "aHu" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/nuke_storage) @@ -1799,8 +1799,8 @@ "aIE" = (/obj/machinery/light/small{dir = 8},/obj/structure/closet/firecloset,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) "aIF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurplefull"},/area/medical/research{name = "Research Division"}) "aIG" = (/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) -"aIH" = (/obj/machinery/door/poddoor/preopen{id = "telelab"; name = "test chamber blast door"},/turf/simulated/floor/engine,/area/toxins/telesci) -"aII" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "telelab"; name = "test chamber blast door"},/turf/simulated/floor/plating,/area/toxins/telesci) +"aIH" = (/obj/machinery/door/poddoor/preopen{id = "explab"; name = "test chamber blast door"},/turf/simulated/floor/engine,/area/toxins/explab) +"aII" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "explab"; name = "test chamber blast door"},/turf/simulated/floor/plating,/area/toxins/explab) "aIJ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (WEST)"; dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating{burnt = 1; icon_state = "panelscorched"; tag = "icon-panelscorched"},/area/maintenance/fore) "aIK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/ai_monitored/nuke_storage) "aIL" = (/obj/machinery/power/apc{dir = 8; name = "Vault APC"; pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/camera/motion{c_tag = "Vault"; dir = 4; name = "motion-sensitive security camera"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/ai_monitored/nuke_storage) @@ -1876,7 +1876,7 @@ "aKd" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) "aKe" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurplefull"},/area/medical/research{name = "Research Division"}) "aKf" = (/obj/machinery/shower{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) -"aKg" = (/turf/simulated/floor/engine,/area/toxins/telesci) +"aKg" = (/turf/simulated/floor/engine,/area/toxins/explab) "aKh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/effect/decal/cleanable/dirt,/obj/effect/spawner/lootdrop{loot = list("/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/structure/grille","/obj/item/weapon/cigbutt","/obj/item/trash/cheesie","/obj/item/trash/candy","/obj/item/trash/chips","/obj/item/trash/deadmouse","/obj/item/trash/pistachios","/obj/item/trash/plate","/obj/item/trash/popcorn","/obj/item/trash/raisins","/obj/item/trash/sosjerky","/obj/item/trash/syndi_cakes"); name = "maint grille or trash spawner"},/turf/simulated/floor/plating,/area/maintenance/fore) "aKi" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/ai_monitored/nuke_storage) "aKj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/nuke_storage) @@ -1937,9 +1937,9 @@ "aLm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/assembly/chargebay) "aLn" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/assembly/chargebay) "aLo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/medical/research{name = "Research Division"}) -"aLp" = (/obj/item/device/radio/beacon,/turf/simulated/floor/engine,/area/toxins/telesci) -"aLq" = (/obj/machinery/telepad,/turf/simulated/floor/engine,/area/toxins/telesci) -"aLr" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/engine,/area/toxins/telesci) +"aLp" = (/obj/machinery/r_n_d/experimentor,/turf/simulated/floor/engine,/area/toxins/explab) +"aLq" = (/obj/item/device/radio/beacon,/turf/simulated/floor/engine,/area/toxins/explab) +"aLr" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/engine,/area/toxins/explab) "aLs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/item/weapon/newspaper,/turf/simulated/floor/plating,/area/maintenance/fore) "aLt" = (/obj/structure/closet/secure_closet/freezer/money,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 1},/area/ai_monitored/nuke_storage) "aLu" = (/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 1},/area/ai_monitored/nuke_storage) @@ -2036,8 +2036,8 @@ "aNh" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/camera{c_tag = "Chemistry"; dir = 4; network = list("SS13")},/obj/machinery/requests_console{department = "Chemistry"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/structure/closet/wardrobe/chemistry_white,/obj/item/weapon/storage/backpack/satchel_chem,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) "aNi" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) "aNj" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) -"aNk" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/mob/living/simple_animal/hostile/mimic/crate,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) -"aNl" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/storage/pill_bottle/inaprovaline{pixel_x = 5; pixel_y = -2},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteyellow"},/area/medical/chemistry) +"aNk" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) +"aNl" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/hallway/primary/starboard) "aNm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/toxins/lab) "aNn" = (/turf/simulated/floor/plasteel{tag = "icon-purple (NORTHWEST)"; icon_state = "purple"; dir = 9},/area/hallway/primary/central) "aNo" = (/turf/simulated/floor/plasteel{tag = "icon-purple (NORTH)"; icon_state = "purple"; dir = 1},/area/hallway/primary/central) @@ -2051,7 +2051,7 @@ "aNw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{tag = "icon-purplecorner (NORTH)"; icon_state = "purplecorner"; dir = 1},/area/hallway/primary/starboard) "aNx" = (/turf/simulated/floor/plasteel,/area/hallway/primary/starboard) "aNy" = (/turf/simulated/floor/plasteel{tag = "icon-purplecorner (EAST)"; icon_state = "purplecorner"; dir = 4},/area/hallway/primary/starboard) -"aNz" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{id = "telescipub"; name = "Telescience Shutters"},/turf/simulated/floor/engine,/area/toxins/telesci) +"aNz" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/storage/pill_bottle/epinephrine{pixel_x = 5; pixel_y = -2},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteyellow"},/area/medical/chemistry) "aNA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fore) "aNB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/decal/cleanable/robot_debris{tag = "icon-gib7"; icon_state = "gib7"},/obj/item/device/assembly/timer,/turf/simulated/floor/plating{broken = 1; icon_state = "platingdmg3"; tag = "icon-platingdmg3"},/area/maintenance/fore) "aNC" = (/obj/structure/sign/securearea{pixel_x = 0; pixel_y = -32},/obj/machinery/light/small,/obj/machinery/camera{c_tag = "EVA Maintenance"; dir = 1; network = list("SS13")},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/fore) @@ -2100,9 +2100,9 @@ "aOt" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/hallway/primary/starboard) "aOu" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/starboard) "aOv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor/plasteel,/area/hallway/primary/starboard) -"aOw" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 8},/area/hallway/primary/starboard) -"aOx" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/primary/starboard) -"aOy" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 4},/area/hallway/primary/starboard) +"aOw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 7; pixel_y = -3},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -4; pixel_y = -3},/obj/item/weapon/storage/pill_bottle/epinephrine{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/glass/bottle/morphine,/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 4; pixel_y = 2},/obj/item/weapon/storage/pill_bottle/epinephrine{pixel_x = 5; pixel_y = -2},/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) +"aOx" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = 4; pixel_y = 4},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = 4; pixel_y = 4},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/pill_bottle/epinephrine{pixel_x = 5; pixel_y = -2},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteyellow"},/area/medical/chemistry) +"aOy" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table/wood,/turf/simulated/floor/wood,/area/library) "aOz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/fore) "aOA" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/fore) "aOB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) @@ -2232,7 +2232,7 @@ "aQV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/maintenance/disposal) "aQW" = (/turf/simulated/floor/plating,/area/maintenance/fpmaint{name = "Medical Maintenance"}) "aQX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating{broken = 1; icon_state = "platingdmg3"; tag = "icon-platingdmg3"},/area/maintenance/fpmaint{name = "Medical Maintenance"}) -"aQY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline{pixel_x = 7; pixel_y = -3},/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = -4; pixel_y = -3},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 4; pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 5; pixel_y = -2},/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) +"aQY" = (/obj/structure/table/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/item/stack/medical/bruise_pack{pixel_x = -3; pixel_y = 2},/obj/item/weapon/reagent_containers/pill/patch/silver_sulf{pixel_x = -3; pixel_y = -8},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) "aQZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) "aRa" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "45"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) "aRb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) @@ -2244,7 +2244,7 @@ "aRh" = (/obj/machinery/mineral/stacking_machine{input_dir = 1; stack_amt = 10},/turf/simulated/floor/plating,/area/maintenance/disposal) "aRi" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) "aRj" = (/obj/machinery/chem_master,/turf/simulated/floor/plasteel{tag = "icon-whiteyellow (SOUTHWEST)"; icon_state = "whiteyellow"; dir = 10},/area/medical/chemistry) -"aRk" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = 4; pixel_y = 4},/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = 4; pixel_y = 4},/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/pill_bottle/inaprovaline{pixel_x = 5; pixel_y = -2},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteyellow"},/area/medical/chemistry) +"aRk" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/obj/structure/table/wood,/turf/simulated/floor/wood,/area/library) "aRl" = (/obj/machinery/chem_master,/turf/simulated/floor/plasteel{dir = 6; icon_state = "whiteyellow"},/area/medical/chemistry) "aRm" = (/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 10},/area/hallway/primary/central) "aRn" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/hallway/primary/central) @@ -2358,6 +2358,8 @@ "aTr" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=2-SECentral"; location = "1-Medbay1"},/turf/simulated/floor/plasteel,/area/hallway/primary/aft) "aTs" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=0-Escape"; location = "9-Medbay2"},/turf/simulated/floor/plasteel,/area/hallway/primary/aft) "aTt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fpmaint{name = "Medical Maintenance"}) +"aTu" = (/obj/structure/table,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/device/electropack,/obj/item/device/assembly/signaler,/obj/item/weapon/razor{pixel_x = -6},/obj/item/stack/medical/ointment{pixel_y = 4},/obj/item/stack/medical/bruise_pack{pixel_x = 10; pixel_y = 2},/obj/item/weapon/storage/pill_bottle/epinephrine{pixel_x = 5; pixel_y = -2},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitehall"},/area/security/prison) +"aTv" = (/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "aTw" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/plating,/area/space) "aTx" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/shuttle/plating,/area/space) "aTy" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor,/area/space) @@ -2390,6 +2392,7 @@ "aTZ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4; initialize_directions = 11},/turf/simulated/floor/plasteel{icon_state = "caution"; dir = 4},/area/atmos) "aUa" = (/obj/machinery/driver_button{id = "trash"; pixel_x = -26; pixel_y = -6},/obj/machinery/door_control{id = "Disposal Exit"; name = "Disposal Vent Control"; pixel_x = -25; pixel_y = 4; req_access_txt = "12"},/obj/structure/stool,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/disposal) "aUb" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "garbage"; name = "disposal coveyor"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/disposal) +"aUc" = (/obj/structure/table,/obj/item/clothing/glasses/sunglasses{pixel_x = 3; pixel_y = 3},/obj/item/clothing/glasses/sunglasses{pixel_x = 3; pixel_y = 3},/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden) "aUd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/medical/medbay{name = "Medbay Central"}) "aUe" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/medical/medbay{name = "Medbay Central"}) "aUf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "6;5"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue) @@ -2398,6 +2401,7 @@ "aUi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/medical/morgue) "aUj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/medical/morgue) "aUk" = (/obj/structure/sign/bluecross_2,/turf/simulated/wall,/area/medical/medbay{name = "Medbay Central"}) +"aUl" = (/obj/structure/rack,/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs{pixel_x = -2; pixel_y = -2},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden) "aUm" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "aUn" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/space) "aUo" = (/obj/machinery/computer/shuttle/mining,/turf/simulated/shuttle/floor,/area/space) @@ -2457,6 +2461,7 @@ "aVq" = (/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue) "aVr" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plasteel{dir = 9; icon_state = "blue"},/area/hallway/primary/aft) "aVs" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/hallway/primary/aft) +"aVt" = (/obj/structure/rack,/obj/item/weapon/storage/box/firingpins{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/firingpins,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden) "aVu" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/hallway/primary/aft) "aVv" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 25},/turf/simulated/floor/plasteel{dir = 1; icon_state = "bluecorner"},/area/hallway/primary/aft) "aVw" = (/obj/machinery/camera{c_tag = "Aft Port Primary Hallway North East"; dir = 2; network = list("SS13")},/turf/simulated/floor/plasteel,/area/hallway/primary/aft) @@ -3086,7 +3091,6 @@ "bhC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/wood,/area/library) "bhD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/wood,/area/library) "bhE" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/wood,/area/library) -"bhF" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/librarypubliccomp,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table/wood,/turf/simulated/floor/wood,/area/library) "bhG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/wall,/area/library) "bhH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/oil,/obj/item/trash/candy,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "bhI" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -28; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/hydroponics) @@ -3245,7 +3249,6 @@ "bkF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/engine/engineering) "bkG" = (/obj/machinery/camera{c_tag = "Engineering Access"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bkH" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/engine/chiefs_office) -"bkI" = (/obj/structure/table/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/item/stack/medical/bruise_pack{pixel_x = -3; pixel_y = 2},/obj/item/weapon/reagent_containers/pill/kelotane{pixel_x = -3; pixel_y = -8},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) "bkJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) "bkK" = (/obj/machinery/light,/obj/machinery/camera{c_tag = "Chief Engineer's Office"; dir = 1; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) "bkL" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/quartermaster/storage) @@ -3267,7 +3270,6 @@ "blb" = (/obj/machinery/door/window/northright{base_state = "left"; dir = 8; icon_state = "left"; name = "Library Desk Door"; req_access_txt = "37"},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/wood,/area/library) "blc" = (/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor/wood,/area/library) "bld" = (/obj/machinery/newscaster{pixel_y = -28},/obj/machinery/camera{c_tag = "Library South"; dir = 1; network = list("SS13")},/obj/machinery/light,/turf/simulated/floor/wood,/area/library) -"ble" = (/obj/machinery/librarycomp{pixel_y = 0},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/obj/structure/table/wood,/turf/simulated/floor/wood,/area/library) "blf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/stock_parts/manipulator,/turf/simulated/floor/plating{burnt = 1; icon_state = "panelscorched"; tag = "icon-panelscorched"},/area/maintenance/fsmaint2) "blg" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/simulated/floor/plating,/area/hydroponics) "blh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access_txt = "35"},/turf/simulated/floor/plasteel{icon_state = "hydrofloor"},/area/hydroponics) @@ -4346,11 +4348,9 @@ "bFO" = (/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/warden) "bFP" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/computer/crew,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden) "bFQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden) -"bFR" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden) "bFS" = (/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden) "bFT" = (/obj/machinery/light,/obj/machinery/light_switch{pixel_x = 0; pixel_y = -23},/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden) "bFU" = (/obj/structure/cable,/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/warden) -"bFV" = (/obj/structure/rack,/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs{pixel_x = -2; pixel_y = -2},/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/ears/earmuffs,/obj/item/clothing/ears/earmuffs,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden) "bFW" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden) "bFX" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/security/warden) "bFY" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/gun/advtaser,/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = 3; pixel_y = -3},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/security/warden) @@ -4969,7 +4969,6 @@ "bRN" = (/obj/structure/stool,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "chapel"},/area/chapel/main) "bRO" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/fancy/carpet,/area/chapel/main) "bRP" = (/obj/machinery/bot/secbot/beepsky{desc = "It's Officer Beepsky! Powered by a potato and a shot of whiskey, and with a sturdier reinforced chassis, too. "; health = 45; maxhealth = 45; name = "Officer Beepsky"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=1-Medbay1"; location = "0-Escape"},/turf/simulated/floor/plasteel,/area/hallway/primary/aft) -"bRQ" = (/obj/structure/table,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/device/electropack,/obj/item/device/assembly/signaler,/obj/item/weapon/razor{pixel_x = -6},/obj/item/stack/medical/ointment{pixel_y = 4},/obj/item/stack/medical/bruise_pack{pixel_x = 10; pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 5; pixel_y = -2},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitehall"},/area/security/prison) "bRR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/security/prison) "bRS" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (WEST)"; dir = 8},/obj/machinery/door_control{id = "permacell1"; name = "Cell 1 Lockdown"; pixel_x = -4; pixel_y = -25; req_access_txt = "2"},/obj/machinery/flasher_button{id = "PCell 1"; pixel_x = 6; pixel_y = -24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) "bRT" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; dir = 1; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = -30},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "red"},/area/security/prison) @@ -5291,7 +5290,6 @@ "bXX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "barber"},/area/security/prison) "bXY" = (/obj/machinery/shower{dir = 4},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison) "bXZ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor/plating,/area/security/prison) -"bYa" = (/obj/structure/table,/obj/machinery/librarycomp{pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "bYb" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "arrival"; dir = 8},/area/hallway/secondary/entry{name = "Arrivals"}) "bYc" = (/obj/structure/stool/bed/chair,/obj/effect/landmark{name = "JoinLate"},/turf/simulated/shuttle/floor,/area/space) "bYd" = (/obj/structure/table,/obj/item/device/analyzer/plant_analyzer,/turf/simulated/floor/plasteel,/area/security/prison) @@ -5618,22 +5616,22 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahJaaaajjarYajlaaaajjarYajlaaaajjarYajlaacajjarYajlaacaaAaacaacaacaccaccaccacUadpaseaseaseaseaseaxXaxYaxZayaaybavyavyawQaycaydayeayfasoaygavGavGavGayhayiavGayjasoatqaykaylaymaynayoaxfanYakxagTaypayqavZawaayraysawdaytayuayvayvayvaoLaywayxayyayzayAayBayCayDayEayFayGayHayIayJayKayLayMayNayOayNayPauyayQayRaySayTayUahEaaaayVayWayXayYayZaaaarUazaazbazcazdazeawCawDawDawDazfaxRazgaxQaxQaxRaxQaxQazhaqzaaaaqzaziazjaxWamEaacapoaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaaajjarYajlaacajjarYajlaacajjarYajlaaaajjarYajlaaaaaAaaaabDazkazlazmaznazoazpazqazrazsaztazuaztaztaztazvaseavyazwawQazxazyazzazAasoazBavGavGavGazCayiazCazDasoaspaykazEaymazFazGaxfanYakxagTagTagDazHagDagTagTaoLaoLaoLaacaacaacaoLazIazJawjazKazLazMazNazOaxwasNauRakxawnazPazQazRazSagXazTagXazUawuazVarUazWazXazYahEaaaazZaAaaAbaAcayZaaaarUaAdaAeaAfaAgaAhaAiaAjaAkaAlaAmaAmaAkaAkaAnaxRaAoaAlaApawCaAqaAraAsaxWaxWamEaaaaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaaajjaAtajlaacajjaAtajlaacajjaAtajlaaaajjaAtajlaaaaaAaaaaaaaacacGacIacIaeXaAuaAvaAwaAxaseaAyaAzaseaAAaAyaseaABavyawQaACaADaAEaAFasoaAGavGavGaAHaAIaAJaAKaALasoaAMaANaAOaAPaAQaARaxfaASakxagXaATaAUaAVaAWaATagXaAXaAYawuaAZaAZaAZawuaBaawuawjaxwaxwaBbaxwaxwaxwasNauRaBcaBdaBdaBdaBdaBdaBdaBdawuawuawuaBearUahEaBfahEaBgaBgaBhaBiaBjaBkaBlaBmarUatOatWaBnazgaBoaqzaBpaBqaBraBsaBtaBqaxQaBuaxRaBuaBvaBwaqzaaaamEamEamEamEamEaaaaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaaaaaaaaaacaacaaaaaaaaaaaaaaaaacaacaaaaaaaaaaacaaaahJaaaaacaacacUaBxacYaByaBzaBAaBBaBCaseaBDaBEaseaBFaBGaseavyavyawQaBHaBIaBJaBKasoaBLaBLaBMaBLaBLaBLaBLaBLasoaBNaBOaBPaBQaBQaBRaBSaBTaBUaBVaBVaBWaBXaBXaBXaBYaBXaBXaBZaBVaBVaCaaCbaCcaCdaCeaCeaCeaCfaCgaCgaCgaChauRakxaCiaCjaCkaClaCmaCnaCoaCpaCqaCraCsaCtaCuaCvamhaCwaCxaCyaCzaCAaCBaCCaBmaCDaCEaCFaCGaCHaCIaqzaCJaCKaCLaCMaCNaCOaCPaBuaCQaCRaxPaCSaveaxTaxUaCTaCUaCUamEaaaaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaAaaAahJaaAahJaaAaaAaaAaaAaaAaaAaaAaaAahJaaAaaAaaAaaAaaaaaaaaaacUaCVaseaseaCWasYasYasYaCXaCYaCZaseaDaaCYaseavyavyawQaDbaDbaDcaDbaDdaDeaDfavGaDgaBLaDhaDiaDjaseaspaykaylaDkaDlaDmaxfaDnaDoaDnaDnaDpaDnaDnaDnaDnaDoaDnaDpaDqaDnaDnaDnaDraDsaDnaDnaDnaDtaDuaDnaDoauRauRakxaDvaDwaDxaDwaDyaDzaDAaDBaDCaDDaDEaipaDFaDGaDHaDIaDJaDKaDLaDMaDNaDOaBmaDPaDQaDRaDSaxQaDTaqzaBpaDUaBraxQaBsaDVaDWaBuaxQaBuaDXaDYaqzaaaaqzaDZaEaaCUamEaacaaAaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaaaaacacUaifaseaEbaEcaEdaEeaEfaEgaEhaEiasYaEjaEhaseavyavyawQaEkaElaEmaEnaDdaEoaEpavGaEqaEraEsaEtaEuaEvaEwaExaylaDkaDlaDmaEyaEyaEyaEyaEzaEAaEzaEyaEyaEBaEBaECaEDaEEaEBaEBaEBaEBaEBaEFaEFaEFaEGaEFaEFaEFavRaEHavRaEIaEJaEKaELaEMaENaBdaEOaEPaEQaEQaEQaEQaEQaEQaERaESaBmaETaEUaEVaEWaBmaEXanSatWaEYaxQaDTaqzaEZaFaaCNaFbaCLaFcaFdaBuaAoaFeaFfaFgawCaAqaAraFhaCUaCUamEaaaaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacacUaFiaseaFjavyaFkaFlaFmaFnaFoaFpaFqavyavyaFravyavyawQaFsaFtaFuaFvaFwavGaFxaFyavIaFzaFAaFBaFCasYaFDaFEaylaDkaFFaDmaEyaFGaFHaFIaFJaFKaFLaFMaEyaFNaFOaFPaFQaFRaFSaFTaFUaFVaEBaFWaFXaFYaFZaGaaGaaGbawuaGcawuaBdaGdaDwaGeaDwaGfaBdaGgaEPaGhaGiaGjaGkaGlaEQaGmaGnaGoaGpaGqaEVaGraBmaGsaGtatWaqzaqzaGuaqzaGvaFaaGwaxQaCLaFcaGxaBuaBuaxQaxQaGyaqzaaaamEamEamEamEamEaaaaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacacUadpaseaGzaGAaGBaGCaGDaGEaEtaEtaGFaEtaEtaGGaGHaGIawQaGJaFvaFvaGKaDdaGLaAHaGMaGNaDdaGOaGPaGQaGRaGRaGRaGSaGSaGSaGSaGSaGTaGUaGVaFJaGWaGXaGYaEyaGZaHaaHbaHcaHdaHeaHeaHeaHeaHfaGaaHgaHhaHiaHhaHjaGbaHkaHlaHmaBdaHnaHoaHpaHqaHraBdaoNaEPaHsaHtaHuaHuaHvaHwaHxaHyaBmaHzaHAaEVaHBaBmaHCaHDatWaHEaHFaHGaHFaHHaFaaHIaxQaHJaFcaHKaBuaHLaAkaAkaHMaHNaHOaHPaHQaHRaHRamEaaaaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaaaaaaaaaacaacaaaaaaaaaaaaaaaaacaacaaaaaaaaaaacaaaahJaaaaacaacacUaBxacYaByaBzaBAaBBaBCaseaBDaBEaseaBFaBGaseavyavyawQaBHaBIaBJaBKasoaBLaBLaBMaBLaBLaBLaBLaBLasoaBNaBOaBPaBQaBQaBRaBSaBTaBUaBVaBVaBWaBXaBXaBXaBYaBXaBXaBZaBVaBVaCaaCbaCcaCdaCeaCeaCeaCfaCgaCgaCgaChauRakxaCjaCiaClaCkaCnaCmaCoaCpaCqaCraCsaCtaCuaCvamhaCwaCxaCyaCzaCAaCBaCCaBmaCDaCEaCFaCGaCHaCIaqzaCJaCKaCLaCMaCNaCOaCPaBuaCQaCRaxPaCSaveaxTaxUaCTaCUaCUamEaaaaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaAaaAahJaaAahJaaAaaAaaAaaAaaAaaAaaAaaAahJaaAaaAaaAaaAaaaaaaaaaacUaCVaseaseaCWasYasYasYaCXaCYaCZaseaDaaCYaseavyavyawQaDbaDbaDcaDbaDdaDeaDfavGaDgaBLaDhaDiaDjaseaspaykaylaDkaDlaDmaxfaDnaDoaDnaDnaDpaDnaDnaDnaDnaDoaDnaDpaDqaDnaDnaDnaDraDsaDnaDnaDnaDtaDuaDnaDoauRauRakxaDwaDvaDxaDvaDzaDyaDAaDBaDCaDDaDEaipaDFaDGaDHaDIaDJaDKaDLaDMaDNaDOaBmaDPaDQaDRaDSaxQaDTaqzaBpaDUaBraxQaBsaDVaDWaBuaxQaBuaDXaDYaqzaaaaqzaDZaEaaCUamEaacaaAaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaaaaacacUaifaseaEbaEcaEdaEeaEfaEgaEhaEiasYaEjaEhaseavyavyawQaEkaElaEmaEnaDdaEoaEpavGaEqaEraEsaEtaEuaEvaEwaExaylaDkaDlaDmaEyaEyaEyaEyaEzaEAaEzaEyaEyaEBaEBaECaEDaEEaEBaEBaEBaEBaEBaEFaEFaEFaEGaEFaEFaEFavRaEHavRaEJaEIaELaEKaENaEMaBdaEOaEPaEQaEQaEQaEQaEQaEQaERaESaBmaETaEUaEVaEWaBmaEXanSatWaEYaxQaDTaqzaEZaFaaCNaFbaCLaFcaFdaBuaAoaFeaFfaFgawCaAqaAraFhaCUaCUamEaaaaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacacUaFiaseaFjavyaFkaFlaFmaFnaFoaFpaFqavyavyaFravyavyawQaFsaFtaFuaFvaFwavGaFxaFyavIaFzaFAaFBaFCasYaFDaFEaylaDkaFFaDmaEyaFGaFHaFIaFJaFKaFLaFMaEyaFNaFOaFPaFQaFRaFSaFTaFUaFVaEBaFWaFXaFYaFZaGaaGaaGbawuaGcawuaBdaGdaDvaGeaDvaGfaBdaGgaEPaGhaGiaGjaGkaGlaEQaGmaGnaGoaGpaGqaEVaGraBmaGsaGtatWaqzaqzaGuaqzaGvaFaaGwaxQaCLaFcaGxaBuaBuaxQaxQaGyaqzaaaamEamEamEamEamEaaaaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacacUadpaseaGzaGAaGBaGCaGDaGEaEtaEtaGFaEtaEtaGGaGHaGIawQaGJaFvaFvaGKaDdaGLaAHaGMaGNaDdaGOaGPaGQaGRaGRaGRaGSaGSaGSaGSaGSaGTaGUaGVaFJaGWaGXaGYaEyaGZaHaaHbaHcaHdaHeaHeaHeaHeaHfaGaaHgaHhaHiaHhaHjaGbaHkaHlaHmaBdaHnaHpaHoaHraHqaBdaoNaEPaHsaHtaHuaHuaHvaHwaHxaHyaBmaHzaHAaEVaHBaBmaHCaHDatWaHEaHFaHGaHFaHHaFaaHIaxQaHJaFcaHKaBuaHLaAkaAkaHMaHNaHOaHPaHQaHRaHRamEaaaaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacUajWaseaHSavyaHTaHUaHVaHWaHWaHWaHWaHWaHWaHWaHXazwawQaHYaHZaHZaHYaDdaBLaBLaBLaBLaBLaIaaIbaIcaIdaIeaIgaIfaIiaIhaIjaIkaIlaImaIlaInaIoaIpaIqaEyaIraHbaHbaIsaItaIuaIuaIvaIwaIxaIyaHgaIzaIAaIBaICaIDaIEaIFaIGaBdaIHaIIaIIaIIaIIaBdaIJaIKaILaIMaINaIOaIPaIQaIRaISaBmaITaIUaEVaIVaBmaHCaIWatWaIXaxQaDTaxQaIYaIZaJaaxQaJbaJcaJdaBuaxQaxQaxQaJeaqzaaaaqzaJfaJgaHRamEaacaaAaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUadpaseaJhaJiaJjaJkaJlaHWadPaJnaJoaJpaJqaJravyavyaJsaJtavyavyaJuaJvaJwaJxaJxaJyaJxaJzaJAaJBaJCaJDaJEaJFaJHaJHaJGaJJaJKaJLaJMaJKaJNaJOaJPaJQaJRaJSaJSaJTaJUaJVaJVaJWaJXaIxaJYaHgaJZaKaaJZaKbaKcaKdaKeaKfaBdaKgaKgaKgaKgaKgaBdaKhaEPaKiaHuaHuaKjaHvaHwaKkaKlaBmaKmaEVaKnaKoaBmaKpaKqatWaKraxQaDTaxQaIYaxQaKsaKtaKuaKvaKwaKxaAkaAkaAkaKyaHNaHOaKzaKAaHRaHRamEaaaaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacUadpaseaseaseaKBaHWaHWaHWaKCaKDaKEaKFaKGaJravyavyaKHavyavyavyavyavyaFravyaKIaKJaKKaFlaKLaJmaKNaKOaKPaJIaKOaKOaKOaIkaKSaKTaKUaKVaKWaKXaKYaKZaLaaLbaLaaLcaLdaLeaLfaLgaLhaLiaLjaLjaLkaLlaLmaLnaGbaLoaGcagXaBdaKgaLpaLqaKgaLraBdaLsaEPaLtaLuaLvaLwaGiaEQaLxaLyaBhaBhaBhaBhaBhaBhaLzaLzatWatWatWaLAaxQaIYaxQaDTaxQaLBaLCaLDaBuaAoaLEaLFaCIaqzaaaamEamEamEamEamEaaaaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacUadpaseaseaseaKBaHWaHWaHWaKCaKDaKEaKFaKGaJravyavyaKHavyavyavyavyavyaFravyaKIaKJaKKaFlaKLaJmaKNaKOaKPaJIaKOaKOaKOaIkaKSaKTaKUaKVaKWaKXaKYaKZaLaaLbaLaaLcaLdaLeaLfaLgaLhaLiaLjaLjaLkaLlaLmaLnaGbaLoaGcagXaBdaKgaLqaLpaKgaLraBdaLsaEPaLtaLuaLvaLwaGiaEQaLxaLyaBhaBhaBhaBhaBhaBhaLzaLzatWatWatWaLAaxQaIYaxQaDTaxQaLBaLCaLDaBuaAoaLEaLFaCIaqzaaaamEamEamEamEamEaaaaaAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacUaLGaLHaLIaLJaLKaHWaLLaHWaLMaLNaLOaLPaLQaLRaLSaLSaLTaLUavyavyavyavyaLVavyaLWaLXaLWavyaLYaKQaMaaLZaMcaMbaMgaMgaMdaMiaMjaMkaMlaMmaMnaMoaMnaMpaIxaMqaIxaMraMsaMtaMuaMvaMwaEBaMxaMyaMzaGbaMAaMBaGbaMCaMDaMEaBdaKgaKgaKgaKgaKgaBdaMFaMGaMHaMHaMHaMIaEQaEQaHyaHyaMJaaaaacaaaaaaaacaaaaaaaacaaaatWaMKaxQaIYaxQaDTaAoaMLaAkaAkaFfaFfaLEaLFaMMatWaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafzacIacIacJadpaMNaHWaMOaMPaMQaMRaMSaMTaMUaJraMVaMWaMXaMYaMZaNaaNbaNcaseaNdaNeaNfaNgaMeaNiaseaGRaMfaKOaJIaKOaKOaMhaGSaMmaMmaNmaMmaNnaNoaNpaNqaNnaNoaNpaMraMraNraMraMraMraMraGbaGbaNsaGbaNtaNuaNvaNwaNxaNyaBdaBdaNzaNzaNzaBdaBdaNAaNBaNCaNDaNEaNFaNGaBgaNxaNxaMJaaaaNHaNHaNHaNHaNHaNHaNHaaaatWaNIaNJaNKaNJaNLaNMaNNaNOaNJaNJaNJaNJaNJaNPatWaacaaAaaAaaAaaAaaAaacatZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacUadpaNQaHWaHWaHWaHWaNRaHWaNSaHWaHWaseaseaNTaNUaNVaNWaNXaNWaNVaNYavyaNZaOaaIaaIbaOcaGRaNhaKOaNjaKOaNkaGRaGRaOgaOhaOiaOjaOkaOhaOlaOmaOkaOhaOlaOnaOoaOpaOkaOhaOhaOqaNxaNxaNxaOraNxaOsaNxaOtaOuaOuaOvaOwaOxaOxaOxaOyaOzaOAaOBaOCaODaOCaOEaOFaBgaNxaHyaMJaacaNHaOGaOHaOIaOJaOKaNHaacatWaOLaxQaOMaONaOOaOPaKwaOQaORaOSaOTaOUaOVaOWatWaacaacaaaaacaaaaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacacUaOXaOYacYaOZaPaaseaPbaPcaPdaPeaPfaPfaNeaPgaPhaNVaPiaPjaPkaNWaPlavyaPmaPnaIaaIbaKMaIkaPoaNlaKRaNlaPqaIkaPraPsaPtaPuaOhaOhaOhaOhaOhaOhaOhaOhaOhaOhaPvaOhaOhaOhaOqaNxaNxaNxaNxaPwaPxaNxaPyaPzaPzaPzaPzaPAaNxaPBaPCaOCaOCaOBaPDaPEaPFaOEaOCaOCaHyaNxaMJaaaaNHaPGaPHaPIaPJaPKaNHaaaatWaPLaPLaPMaPLaPLaPNaPOaPPaPLatWatWatWatWatWatWaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafzacIacIacJadpaMNaHWaMOaMPaMQaMRaMSaMTaMUaJraMVaMWaMXaMYaMZaNaaNbaNcaseaNdaNeaNfaNgaMeaNiaseaGRaMfaKOaJIaKOaKOaMhaGSaMmaMmaNmaMmaNnaNoaNpaNqaNnaNoaNpaMraMraNraMraMraMraMraGbaGbaNsaGbaNtaNuaNvaNwaNxaNyaBdaBdaBdaBdaBdaBdaBdaNAaNBaNCaNDaNEaNFaNGaBgaNxaNxaMJaaaaNHaNHaNHaNHaNHaNHaNHaaaatWaNIaNJaNKaNJaNLaNMaNNaNOaNJaNJaNJaNJaNJaNPatWaacaaAaaAaaAaaAaaAaacatZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacUadpaNQaHWaHWaHWaHWaNRaHWaNSaHWaHWaseaseaNTaNUaNVaNWaNXaNWaNVaNYavyaNZaOaaIaaIbaOcaGRaNhaKOaNjaKOaNkaGRaGRaOgaOhaOiaOjaOkaOhaOlaOmaOkaOhaOlaOnaOoaOpaOkaOhaOhaOqaNxaNxaNxaOraNxaOsaNxaOtaOuaOuaOvaOuaOuaOuaOuaNlaOzaOAaOBaOCaODaOCaOEaOFaBgaNxaHyaMJaacaNHaOGaOHaOIaOJaOKaNHaacatWaOLaxQaOMaONaOOaOPaKwaOQaORaOSaOTaOUaOVaOWatWaacaacaaaaacaaaaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacacUaOXaOYacYaOZaPaaseaPbaPcaPdaPeaPfaPfaNeaPgaPhaNVaPiaPjaPkaNWaPlavyaPmaPnaIaaIbaKMaIkaPoaNzaKRaNzaPqaIkaPraPsaPtaPuaOhaOhaOhaOhaOhaOhaOhaOhaOhaOhaPvaOhaOhaOhaOqaNxaNxaNxaNxaPwaPxaNxaPyaPzaPzaPzaPzaPAaNxaPBaPCaOCaOCaOBaPDaPEaPFaOEaOCaOCaHyaNxaMJaaaaNHaPGaPHaPIaPJaPKaNHaaaatWaPLaPLaPMaPLaPLaPNaPOaPPaPLatWatWatWatWatWatWaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaPQaPQaPQaPRaPSaPSaPTaPUaPVaseaPWavyaJjaGHavyavyaNeaPXaPhaNVaPYaPZaQaaNWaQbaQcaQdaQeaIaaIbaKMaQfaQgaKOaKRaKOaQhaQiaQjaOhaOhaQkaQlaQlaQlaQlaQlaQlaQlaQlaQlaQmaQnaOhaOhaOhaOqaNxaNxaQoaNxaNxaNxaNxaQpaNxaNxaNxaNxaQqaNxaQraNxaOCaQsaQtaQuaQvaQwaQxaQyaOCaQzaNxaMJaaaaNHaQAaQBaQCaQBaQDaNHaaaatWaQEaQEaQFaQGaQHaQIaQJaQKaQLaQMaQNaQOaQPatWaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafnaaaaPQaQQaQRaQSaQTaQUaQVaQWaQXaseaQYavyaQZaGAavyavyaRaaRbaPhaNVaRcaRdaReaNWaRfaRfaRgaRfaObaRiaKMaIkaRjaOdaKRaOdaRlaIkaRmaOgaOhaRnaRoaRoaRoaRoaRoaRoaRoaRoaRoaRpaOhaOhaOhaRqaRraRraRraRraRraRraRsaRtaRuaRvaRwaRraRraRraRxaRxaRxaOCaQsaRyaRzaRAaRzaRBaQyaOCaHyaHyaMJaaaaNHaRCaRDaREaRDaRFaNHaaaatWaRGaRHaRIaRJaRKaRLaRMaRNaROaRPaRQaRRaRSatWaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafnaaaaPQaQQaQRaQSaQTaQUaQVaQWaQXaseaOwavyaQZaGAavyavyaRaaRbaPhaNVaRcaRdaReaNWaRfaRfaRgaRfaObaRiaKMaIkaRjaOdaKRaOdaRlaIkaRmaOgaOhaRnaRoaRoaRoaRoaRoaRoaRoaRoaRoaRpaOhaOhaOhaRqaRraRraRraRraRraRraRsaRtaRuaRvaRwaRraRraRraRxaRxaRxaOCaQsaRyaRzaRAaRzaRBaQyaOCaHyaHyaMJaaaaNHaRCaRDaREaRDaRFaNHaaaatWaRGaRHaRIaRJaRKaRLaRMaRNaROaRPaRQaRRaRSatWaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaRTaRUaRVaRVaRVaRWaQVaebaRXaseaRYaRZaSaavyavyavyaNeaSbaPhaNVaScaSdaSeaNWavyavyaCYavyavyaSfaSgaGRaOeaKOaKRaKOaOfaGRaGRaPsaOhaRnaRoaSkaSlaSmaSnaSmaSoaSpaRoaSqaQlaSraOhaOhaRraSsaStaSuaSvaSwaSxaSxaSyaSzaSzaSAaSBaRraNxaNxaSCaOCaSDaSEaSFaSGaSHaSIaSJaOCaHyaHyaMJaacaNHaSKaSLaSMaSNaSOaNHaacatWaSPaSPaSQaxQaxQaBuaSRaSSaSTaSUaSVaSWaSXatWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaRTaSYaSZaPpaRVaRhaQVaebaTbaseaTcaTdaTeaTfaTgaThaNeaTiaTjaNVaTkaTlaTmaNWaTnaToaToaTpavyavyaTqaGRaRkaSiaShaTaaSjaGRaGRaOhaOhaRnaRoaTwaTxaTyaTyaTyaTzaTAaRoaRoaRoaRpaOhaOhaRraTBaSxaSxaSxaSxaTCaSxaSxaSxaSxaTDaTEaRraNxaNxaNxaOCaTFaTGaTHaTIaTHaTJaTKaOCaNxaNxaMJaaaaNHaTLaNHaTMaNHaTNaNHaaaatWaTOaTOaTPaTQaTRaTSaTTaTUaTVaTWaTXaTYaTZatWaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaRTaSYaSZaPpaRVaRhaQVaebaTbaseaTcaTdaTeaTfaTgaThaNeaTiaTjaNVaTkaTlaTmaNWaTnaToaToaTpavyavyaTqaGRaOxaSiaShaTaaSjaGRaGRaOhaOhaRnaRoaTwaTxaTyaTyaTyaTzaTAaRoaRoaRoaRpaOhaOhaRraTBaSxaSxaSxaSxaTCaSxaSxaSxaSxaTDaTEaRraNxaNxaNxaOCaTFaTGaTHaTIaTHaTJaTKaOCaNxaNxaMJaaaaNHaTLaNHaTMaNHaTNaNHaaaatWaTOaTOaTPaTQaTRaTSaTTaTUaTVaTWaTXaTYaTZatWaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafnaacaacaRTaRTaRTaSYaPQaUaaUbbclaQVaebadpaseaEgaseaUdaseaUeaseaseaUfaUgaUhaUiaUjaUhaUhaUkavxavxavxaFraFravxaGRaGRaGRaGRaGRaGRaGRaGRaUmaOhaRnaRoaUnaUoaTzaTzaTzaTzaUpaUqaUraUqaOhaOhaOhaRtaUsaUtaUuaSxaUvaUwaUxaSxaSxaSxaUyaUzaRraNxaNxaNxaOCaUAaQwaUBaUCaUDaQwaUEaOCaNxaHyaMJaaaaacaUFaUGaUHaUIaUJaacaaaatWatWatWaUKaqzaULaUMaUNaUOaUPatWaUQaURaUSatWaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUTaUUaUVaUWaUXaUYaUZaVaaVbaVcaVdaVeaVfacYaVgaVhaViaVjaVkaVlaVmaVnaVoaVpaVqaVjaVraVsaVsaVsaVsaVsaVsaVuaVvaVwaVxaVxaVxaVxaOqaOhaOhaRnaRoaTwaTxaVyaTzaTzaVzaVAaRoaRoaRoaRpaOhaVBaRraVCaVDaSxaSxaSxaVEaSxaVFaVGaSxaUyaVHaRraNxaNxaNxaOCaVIaVJaVKaVLaVKaVJaVMaOCaNxaNxaMJaMJaMJaVNaVOaVPaVOaVQaMJaMJaMJaVRaVSaNtaVTaVUaVVaVWaVXaVXatWaVYaVZaWaaWbaWbaWbaWbaWbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaPQaPQaPQaPQaPQaWcaWdaWeaPSaWfaWgaWhaWgaWgaWiaWjaWkaWlaWmaWnaWoaWpaWqaWraWsaWtaWuaTraVxaVxaVxaVxaVxaVxaVxaVxaVxaVxaVxaVxaOqaOhaOhaRnaRoaWyaSlaSmaSnaSmaSoaWzaRoaWAaWBaWCaWDaOhaRtaSxaWEaSxaSxaSxaWEaSxaSxaSxaSxaWFaSxaRtaNxaNxaNxaWGaWHaWHaWHaWHaWHaWHaWHaWIaPzaPzaWJaWKaWLaWMaWNaWOaWPaWQaWRaWRaWSaWTaNxaNxaNxaNxaNxaNxaNxaWUaWVaWWaWXaWYaWZaXaaXbaXcaWbabDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -5647,10 +5645,10 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaXdaXdaXdaXdaXdbcabehbeibcabcabejbekbelbembenbeobepaVxaYbaVxaYcbeqbeqbeqbeqaZjberbesbesbesbesaYcbetbbjbeubevbewbcpbcpbcpbcpbexbeybdGbdGbdHbezbdGbdGbeAbdGbbpbeBbeCbeDbeEbeFbeGaXCbeHbeIaXCaXCbeJaNxbamaZwbanbanbanbanbanaZwbaobeKaZzaZzaZzaZzaZzaZCaZzbeLbeMaZEbeNbeObePbeQbeRaZEbeSbeTbeUbaAaZIbeVbcUaYObcUbeWbeXbeXbeXbeXbeXbeXbeXbeXbeXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacbcabeYbeZbfabfbbfcbfdbfebcabffbfgbfhbfibembdobfjbfkaYbaVxaYcbflbdrbdrbdraZjbfmbdrbdrbdrbfnaYcbfobbjbfpbfqbfrbfsbfsbfsbcpbcpbftbdGbdGbfubfvbfwbfxbfybfzbbpbbpbfAbbpbfBbbpbbpaXCbfCbfDbfEaXCbfFaNxbamaZwbanbanbanbanbanaZwbaobfGbfHbfIbfJbfKbfLbfMbfNbfObfPaZEbfQbfRbdWbfSbfTaZEbfUbfVbfWbfXaZIaZIaZIbfYbfZaXObgabgbbgcbgdbgebgfbggbghbeXaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaabcabgibgjbgkbglbgmbgnbgobcabffbfgbgpbembgqbcabcabgrbgsbgtaYcbgubgubgubguaZjbfmbgvbgvbgvbgvaYcbgwbbjbgxbgybewbcpbcpbcpbgzbgAbbjbgBbdGbgCbfxbgDbgEbgFbgGbgHbgIbgJbgKbgLbgMbgNaXCbfCbgObgPaXCbgQaNxbambdPbanbanbanbanbanbdPbaobapbfHbgRbgSbgSbgTbgUbgSbgVbgWaZEbgXbgYbgZbhabdWaZEbhbbhcbhcbhdbhebhfbhgbhhbhibhjbhkbhlbhmbhnbgfbhobhpbhqbeXaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbcabhrbfabhsbhtbhubhvbhwbcabffbhxbfibfibembhybcabhzaYbbhAaYcbdrbdrbdrbdraZjbhBbhCbhDbhEbhFbhGbhHbbjbhIbhJbfrbfsbfsbfsbhKbfsbbjbhLbhMbhNbdGbezbdGbdGbdGbbpbhObhPbhQbhRbhSbhTaXCbhUbhVbhWaXCbgQaNxbhXaZwbanbanbanbanbanaZwbaobapbhYbgSbgSbhZbiabibbicbgVbidaZEbdWbdXbiebifbdWaZEbigbihbiibijbikbilaZIbimbinbiobipbiqbirbisbitbiubeXbeXbeXaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbcabhrbfabhsbhtbhubhvbhwbcabffbhxbfibfibembhybcabhzaYbbhAaYcbdrbdrbdrbdraZjbhBbhCbhDbhEaOybhGbhHbbjbhIbhJbfrbfsbfsbfsbhKbfsbbjbhLbhMbhNbdGbezbdGbdGbdGbbpbhObhPbhQbhRbhSbhTaXCbhUbhVbhWaXCbgQaNxbhXaZwbanbanbanbanbanaZwbaobapbhYbgSbgSbhZbiabibbicbgVbidaZEbdWbdXbiebifbdWaZEbigbihbiibijbikbilaZIbimbinbiobipbiqbirbisbitbiubeXbeXbeXaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafnaaaaaaaacaacbcabfabivbfabiwbixbiybfabcabizbiAbiBbiBbiBbiCbcabiDaYbbiEaYcbiFbdrbiGbiHbiIbiJbiKbiGbiLbiMbiNbiObbjbiPbiQbiRbcpbcpbcpbiSbfsbbjbiTbiUbiVbiWbiWbiWbiWbiWbiXbiYbiZbjabjbbjcbjdaXCbjebjfbjgaXCbjhaNxbjiaZwbanbanbanbanbanaZwbjjbjkbjlbjmbjnbjobjpbjqbjobjrbjsaZEaZEbjtaZEbjuaZEaZEbjvbjwbjxbjwbjwbjybjzbjAbjBbjCbeXbjDbjEbjFbgfbjGbeXaacaaaaaaaaaaaaaaaaacaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcabcabcabcabcabcabcabjHbehbcbbcabcabjIbjJbjKbdobdobcabcabepaYbbjLaYcbjMbdrbiJbdrbdrbjNbjObiJbjPbjQbiNbetbbjbjRbjSbfsbfsbfsbfsbjTbjUbbjbjVbjWbdGbjXbjYbjZbkabkbbbpbkcbkdbkebKLbkgbkhaXCbkibkjbkkaXCbklaNxbjiaZwbanbanbanbanbanaZwbaobkmbfHbknbkobicbkpbkqbkrbgVbksbktbkubkvbfHbkwbkxbkybkzbjwbkAbkBbkCbkDbjzbkEbkFbkGbkHbkIbhmbkJbkKbgfbeXaacaaaaaaaaaaaaaaaaacaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdobkLbkMbkNbkObkPbkQbkRbkSbkTbkUbkVbkWbiBbiBbkXbkYbcabkZbepaYbaVxaYcblabdrblbblcbdrbldblebiJbjPbjQbiNblfbbjblgblhblgbbjbbjbbjblibbjbbjbbpbbpbbpbbpbbpbbpbbpbbpbbpbljbfAblkbllblmbbpaXCbeHblnaXCaXCbloaNxbjiaZwaZwaZwaZwaZwaZwaZwbaoblpbfHblqblrblsbltblsblublvblwblxblyblzblAblBblCblDblEblEblFblGblEblHblIblJblKblLbipblMblNblObhpblPbeXaacaacaaaaaaaacaaaaacaaaaaaaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcabcabcabcabcabcabcabjHbehbcbbcabcabjIbjJbjKbdobdobcabcabepaYbbjLaYcbjMbdrbiJbdrbdrbjNbjObiJbjPbjQbiNbetbbjbjRbjSbfsbfsbfsbfsbjTbjUbbjbjVbjWbdGbjXbjYbjZbkabkbbbpbkcbkdbkebKLbkgbkhaXCbkibkjbkkaXCbklaNxbjiaZwbanbanbanbanbanaZwbaobkmbfHbknbkobicbkpbkqbkrbgVbksbktbkubkvbfHbkwbkxbkybkzbjwbkAbkBbkCbkDbjzbkEbkFbkGbkHaQYbhmbkJbkKbgfbeXaacaaaaaaaaaaaaaaaaacaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdobkLbkMbkNbkObkPbkQbkRbkSbkTbkUbkVbkWbiBbiBbkXbkYbcabkZbepaYbaVxaYcblabdrblbblcbdrbldaRkbiJbjPbjQbiNblfbbjblgblhblgbbjbbjbbjblibbjbbjbbpbbpbbpbbpbbpbbpbbpbbpbbpbljbfAblkbllblmbbpaXCbeHblnaXCaXCbloaNxbjiaZwaZwaZwaZwaZwaZwaZwbaoblpbfHblqblrblsbltblsblublvblwblxblyblzblAblBblCblDblEblEblFblGblEblHblIblJblKblLbipblMblNblObhpblPbeXaacaacaaaaaaaacaaaaacaaaaaaaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablQbdobdoblRbemblSblTbemblUblVblWblXblWblYblZbmabembmbbmcbcabmdbepaYbaVxaYcaYcaYcaYcaYcbmeaYcaYcaYcbmfaYcbiNbetbbjbmgbmhbmibmjbmkbmlbmmbmkbmnbmobmpbmqbmrbmsbmtbmubmvbmwbmxbmybmzbmAbmBbmCbmDbmEbmFbmGbmHbmIbmJbmKbmLbmMbmNbmObmPbmQaZwbaobmRbmSbmTbmUbmVbmWbmXbmYbmZbnabnbbncbndbmSbnebnfbngbnhbnibnjbnkbnlbnmbnnbnobnpbnqbnrbnsbntbnubeXbeXbeXbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnvbnwbnvbnxbnybnzbnAbembnBbnCbnDbcabnEbnFbembnGbdobdobdobcabcabepaYbaVxbnHbnIbnJbnKaYcbnLbnMaYcbnNbnObnPbnQbnRbbjbnSbnTbnUbnVbnWbnXbnYbnZbbjboabobbobbnPbobbocbodbckboeboebofbogbohboiboiboibojboiboiboibokaNxbambdPbolbapbombapbonbdPbaobapbooboobooboobooboobooboobooboobooboobooboobopboqbjwborbosbotbjwbjwbjzboubovbowbeXboxboybozbeXboAbjzboBboCboDboCboEbjzbjzbjzboBboCboEboFboFbjzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboGboHboGboIbembnzboJboKbelbnCboLbcaboMbnFbemboNbdoboObemboPboQbepaYbboRboSboTboUboVaYcboWboXboYboZbpabpbbpcbpdbpebpfbpgbpebpebpfbpebphbpibpebpjbpbbpkbplbpmbpbbpnbpobppbpqbprbpsbptbpubpvbpwbpxbpybpzbpAbpBbpCbpDbpEbpEbpEbpEbpEbpFaZwbaobapbpGbpHboobpIbpJbpKboobpLbpMbpKboobpNbpNboobpObpPbjwbpQbpRbpSbpTbpUbjzbpVbpWbpXbpYbpZbqabqbbqcbqdbqcbqebqfbqgbqfbqhboCbqiboCbqjbqfbqgbqfboFbjzbqkaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -5666,9 +5664,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaabxNbBPbBQbBQbBQbBRbBQbBSbBTbBUbBVbwCbBWbwCbwCbwCbBXbBYbBZbupbupbupbupbupbupbupbCabzxbCbbCcbCdbCebCfbCebCebCgbzDbAQbChbCibCjbCkbAUbzDbClbCmbCnbCobCpbsabCqbCrbCsbCtbCubCvbCwbCxbCybxhbxibCzbCAbwgbwgbxlbCBbzSbxpbCCbCDbwibCEbCFbCGbCHbCIbnhbCJbCKbnhbCLbCJbCJbyLbnhbnhbCMbjybjzbjzbjzbjzbjzbCNbCNbjzbCObCPbwvbjzbCQbCRbCSbCTbCTbCUbsSaacaaabCVaacaacaacaacaacaaaaaabCWaaaaaabjzbqkaacafnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbCXbCYbCZbDabDbbDcbDdbDebDfbDgbDhbDibDjbDkbDlbDmbDnbDobDpbDqbDrbDrbDqbDsbDtbDubDvbDwbDxbDybCebCebDzbCebDAbDBbCbbDCbDDbDEbDFbDGbDHbzDbDIbDJbDJbDKbDLbsabDMbDNbDObDPbuFbDQbDRbDSbDTbuCbDUbxjbDVbwgbwgbxlbDWbyBbDXbDYbDZbwibEabEbbjwbEcbjwbjwbEdbEebjwbfVbEfbjwbEgbEhbEibEjbEkbjzbElbElbElbEmbyYbyYbjzbEnbEobwvbowbjzbwwbjzbjzbsSbsSbsSaacaaaaaaaaaaacaaaaaaaaaaaaaaaaacaaaaaabjzbjzaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaAaaAaaAaaAahJaaAaaAaaAaaAaaAaaAaaAaaAaaAaaAahJaaAaaAaacaacaacaacaacaacaacaacaacbEpbEpbEqbErbEpbxNbEpbEsbEpbEtbEubEubEubEubEubEvbEubEwbExaVxbEybEzbEzbEAbwPbwPbEBbECbEDbEEbEFbEGbEGbEHbEIbEJbEIbEKbELbEMbENbEObEPbEQbzDbwVbwVbwVbERbESbsabETbBabDObEUbuFbuCbuCbEVbuCbuCbuFbuFbEWbwgbwgbyAbEXbEYbEZbFabFbbFcbFdbFebjwbfVbFfbjwbFgbHcbjwbFhbFibjwbFjbikbFkbFlbFmbjzbElbFnbFnbEmbyYbFobjzbFpbrwbFqbFrbFsbFtbFubsQbsRbsSbsSaacbvoaaaaaabvoaaaaaaaaaaaabvoaacaaaaaabjzbqkaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaaaaaaacaaaaaaaaaaacaacaaaaacaacaaaaaaaaaaaaaacaaaaaAaaaaaaaaaaacaacaaaaaaaaaaacbFvbFwbFxbFybEpbFzbFAbFBbFCbFDbEubFEbFFbFGbFHbFIbFJaVxaVxbFKbFLbykbykbFLbyibyjbyjbFMbFNbFObFPbCebCebFQbFRbFSbFTbFUbFVbFWbFXbFYbDGbFZbzDbGabGbbGcbGdbGebsabGfbBabGgbyvbyvbyvbGhbGibGjbGkbGlbGmbwfbwgbwgbxlbGnbGobGpbxpbGqbwibGrbGsbjwbGtbGubjwbjwbjwbjwbjwbjwbjwbjwbjwbjwbGvbGwbjzbFnbFnbFnbGxbyYbGybjzbGzbrwbrwbuabrwbGAbGBbsQbGCbsSaaaaacaacaacaacaacaacaacaacaacaacaacaaaaaabjzbqkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaaaaaaacaaaaaaaaaaacaacaaaaacaacaaaaaaaaaaaaaacaaaaaAaaaaaaaaaaacaacaaaaaaaaaaacbFvbFwbFxbFybEpbFzbFAbFBbFCbFDbEubFEbFFbFGbFHbFIbFJaVxaVxbFKbFLbykbykbFLbyibyjbyjbFMbFNbFObFPbCebCebFQaUcbFSbFTbFUaUlbFWbFXbFYbDGbFZbzDbGabGbbGcbGdbGebsabGfbBabGgbyvbyvbyvbGhbGibGjbGkbGlbGmbwfbwgbwgbxlbGnbGobGpbxpbGqbwibGrbGsbjwbGtbGubjwbjwbjwbjwbjwbjwbjwbjwbjwbjwbGvbGwbjzbFnbFnbFnbGxbyYbGybjzbGzbrwbrwbuabrwbGAbGBbsQbGCbsSaaaaacaacaacaacaacaacaacaacaacaacaacaaaaaabjzbqkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaabGDbGEbGFaaabGDbGEbGFaaabGDbGEbGFaaabGDbGEbGFaaaahJaacaaaaaaaacaaaaaaaaaaaaaacbFvbGGbEqbGHbEpbGIbGJbGKbGLbGMbEubGNbGObGPbFHbGQbFJaVxaVxbGRbGSbGTbGTbGTbGTbGTbGTbGUbGVbzDbGWbGXbzAbGYbzAbzCbzDbzDbzDbFWbGZbHabHbbMgbzDbHdbKPbGcbHfbHgbsabHhbHibHjbHkbHlbHmbHnbHobHpbHpbHqbHrbxkbHsbHtbwibwibwibwibwibwibwibHubHvbjwbjwbjwbjwbHwbsDbBDbHxbHybHzbHAbHBbHAbHCbHDbjzbjzbjzbjzbjzbjzbjzbjzbHEbrwbsLbHFbHGbqabsPbsQbsRbsSaaaaaaaacaaaaaaaaaaaabHHaaaaaaaacaaaaaabqfbjzbqkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaabGDbHIbGFaaabGDbHIbGFaaabGDbHIbGFaaabGDbHIbGFaaaaaAaacaacaaaaacaaaaaaaaaaaaaaabFvbHJbEqbEpbEpbxNbHKbHLbHMbHNbHObHPbHQbHRbHSbHTbEuaVxaVxbwGbGSbHUbHVbHWbHXbHYbHZbIabIbbIcbIdbIebIebIfbIgbIhbIibIjbIkbIlbImbInbFWbIobzDbIpbIqbIrbHfbIsbsabItbBabIubIvbIwbIxbHnbHobIybHpbIzbIAbIBbICbICbICbICbICbICbICblEbIDbIEbIFbIGbIHbIIbIJbIJbIKbfVbfVbjwbILbIMbIMbjwbwnbINbIObIPbIObIObIObIObIQbIRbISbITbIUbIVbIWbrwbrzbjzbjzbjzbIXaaabIYbqfbqfbqfbqfbqfbqfbqfbIYbqfbIZbjzbjzbqkaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaabGDbHIbGFaaabGDbHIbGFaaabGDbHIbGFaaabGDbHIbGFaaaaaAaacaacaaaaacaaaaaaaaaaaaaaabFvbHJbEqbEpbEpbxNbHKbHLbHMbHNbHObHPbHQbHRbHSbHTbEuaVxaVxbwGbGSbHUbHVbHWbHXbHYbHZbIabIbbIcbIdbIebIebIfbIgbIhbIibIjbIkbIlbImbInaVtbIobzDbIpbIqbIrbHfbIsbsabItbBabIubIvbIwbIxbHnbHobIybHpbIzbIAbIBbICbICbICbICbICbICbICblEbIDbIEbIFbIGbIHbIIbIJbIJbIKbfVbfVbjwbILbIMbIMbjwbwnbINbIObIPbIObIObIObIObIQbIRbISbITbIUbIVbIWbrwbrzbjzbjzbjzbIXaaabIYbqfbqfbqfbqfbqfbqfbqfbIYbqfbIZbjzbjzbqkaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaabGDbJabGFaaabGDbJabGFaacbGDbJabGFaacbGDbJabGFaaaaaAaaaaacaacaacaaaaaaaaaaaaaaabEpbEpbJbbEpbJcbJdbJebJfbJgbJhbEubJibJjbJkbJlbJmbJnbJobbabwGbGSbHUbJpbJqbJrbJsbGTbJtbJubJvbJwbJxbJybJzbJAbJBbJBbJCbzDbzDbJDbJEbzDbzDbzDbsabsabsabJFbsabsabHnbBabIubHmbJGbHmbHnbHobJHbHpbJIbJJbJKbJLbJMbJNbJObJNbJPbJQbJRbHAbJSbJTbJUbJVbJWbjwbjwbJXbjwbIMbjwbJYbJZbKabjwbKbbHAbHAbHAbKcbKdbKebKfbKgbnnbKhbKibKjbKkbKlbKmbqbbKnbKobKnbKpbqfbKqbqfboBboCbKrboCboEbqfbKqbqfboFbjzbqkaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaabGDbHIbGFaaabGDbHIbGFaaabGDbHIbGFaaabGDbHIbGFaacaaAaaaaaaaaaaacaacaacaaaaaaaaaaacbEpbKsbEpbKtbKubKvbKvbKvbKvbKvbKvbKwbKvbKvbKvbKvbKxaVxbwGbGSbHUbJpbKybJrbKzbKAbKBbKCbKDbKEbKFbKGbKHbJBbJBbKIbKJbKKbMebKMbKNbKObMibKKbKQbHnbKRbKSbKTbKUbKVbKWbKXbyvbyvbyvbKYbKZbLabLbbLcbGmbwfbLdbLebLebLebLebLfbwgbLgbLgbLgbLhbLgbLibLjbjwbLkbLlbLmbLnbLobLpbLqbLrbjwbLsbLtbLubLvbLwbLxbLybLzbLzbjzbjzbLAbLBbjzbjzbjzbjzbjzbLCbjzbqhboCbLDboCbqjbjzbjzbjzbqhboCbqjboFboFbjzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacbGDbJabGFaaabGDbJabGFaaabGDbJabGFaacbGDbJabGFafnaacaaaaaaaaaaaaaaaaacaacaacaaaaaabEpbLEbEpbLFbKubLGbLHbLIbLJbLKbLLbLMbLNbLNbLObLPbKxaVxbLQbGSbHUbLRbLSbLTbLUbLVbLWbLXbLYbJBbLZbMabMbbJBbJBbJBbMcbMdbNobMfbVWbMhbNrbKKbMjbHnbMkbMlbMmbMmbMmbMnbMobMpbMqbMrbMrbMrbMsbMrbMrbMrbwfbLdbMtbMubMvbMwbLfbwgbMxbMybMzbMAbMBbMCbMDbjwbMEbMFbMGbMHbMIbMJbMKbMLbjwbjwbjwbjwbMMbMMbMMbjwbLzaacaacbsSbMNbMObMPbsSaacaacbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzbjzaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -5676,7 +5674,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaAafnaaabGDbJabGFaaabGDbJabGFaacbGDbJabGFaaabGDbJabGFaacaacaacaacbNUbNVbNVbNVbNVbNWbNXbNYbNZbOabObbOcbMRbOdbMTbLIbLJbLIbOebOfbLNbLNbOgbLPbKxaVxbOhbGSbOibOjbOkbOlbOmbOnbKBbOobOpbOqbOrbOsbOtbOubOvbOwbOxbMdccebNpbOzbNpccfbOAbOBbHnbNtbOCbODbOEbOFbOGbOHbOIbOIbOJbOKbOLbOMbONbOObMrbOPbLdbOQbNHbNHbOQbLfbNJbORbOSbOTbOUbLgbOVbjybOWbNRbOXbOYbjwbOZbPabPbbPbbPcbMMaaaaaaaacaaaaacagkaaaaaaaacbPdbPebPfbPgbPhaacafnaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaabGDbJabGFaaabGDbJabGFaaabGDbJabGFaacbGDbJabGFaacaaabNUbNUbNUbPibPjbPkbPlbEqbPmbPnbPobMTbMTbPpbMRbPqbMTbMUbPrbPsbLNbLNbLNbLNbLNbPtbKxaVxbhAbGSbPubPvbPvbPvbPwbPxbPxbPybPzbPAbPxbPxbPxbPxbPxbPxbPxbKKccgbPCbPDbNpcchbKKbPFbPGbMkbPHbPIbPJbPIbPKbPLbPMbPNbPObPPbPQbPRbPSbPTbMrbwfbLdbNGbPUbPVbNIbLfbNJbMxbPWbNLbPXbLgbPYbjybPZbQabQbbiibjwbQcbQdbQebQfbNRbMMaacaaaaaaaaaaaaaaaaaaaaaaacbQgbQhbQiaekaelaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbQjbQkbQlbQmbQnbQlbQmbQmbQnbQlbQmbQmbQnbQlbQmbQmbQnbQlbQmbQobQpbQqbQpbQrbQsbQtbQubQvbMTbMTbMTbMTbQwbQxbQybQzbMTbLIbQAbLNbLNbLNbQBbQCbQCbQDbQEbQFbQGbGSbOibOibOibQHbQIbPxbQJbQKbQLbQMbQNbQObQObQPbQQbQRbQSbKKbKKbKKbKKbQTbQUbKKbQVbQWbHnbQXbHnbQYbHnbHnbQZbRabRbbMrbRcbRdbRebPSbPTbMrbwfbLdbNGbRfbRgbNIbLfbwgbMxbRhbRibRjbRkbRlbjybRmbRnbRobRnbRpbRqbRrbRrbRsbRtbMMaacaacaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacbGDbRwbGFaaabGDbRwbGFaacbGDbRwbGFaaabGDbRwbGFaacaaabNUbNUbNUbRxbRybRzbNVbRAbMTbRBbRCbRDbREbRFbRGbRHbRIbRJbRKbRLbRMbRNbRObLNbOgbLPbKxbRPbqxbGSbGSbGSbGSbGSbGTbPxbRQbRRbRSbRTbRUbRVbRWbRXbRYbRZbSabSbbScbSdbKKbSebSfbKKbSgbShbSibSjbSkbHnbSlbSmbSnbSobSpbMrbSqbSrbMrbMrbMrbMrbSsbStbSubSubSubSubSvbSwbLgbLgbSxbLgbLgbSybjybSzbSAbSBbSCbjwbSDbSEbSFbSGbSHbMMaacaaaaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacaacbGDbRwbGFaaabGDbRwbGFaacbGDbRwbGFaaabGDbRwbGFaacaaabNUbNUbNUbRxbRybRzbNVbRAbMTbRBbRCbRDbREbRFbRGbRHbRIbRJbRKbRLbRMbRNbRObLNbOgbLPbKxbRPbqxbGSbGSbGSbGSbGSbGTbPxaTubRRbRSbRTbRUbRVbRWbRXbRYbRZbSabSbbScbSdbKKbSebSfbKKbSgbShbSibSjbSkbHnbSlbSmbSnbSobSpbMrbSqbSrbMrbMrbMrbMrbSsbStbSubSubSubSubSvbSwbLgbLgbSxbLgbLgbSybjybSzbSAbSBbSCbjwbSDbSEbSFbSGbSHbMMaacaaaaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaAaacaaabGDbRwbGFaaabGDbRwbGFaaabGDbRwbGFaacbGDbRwbGFaacaacaacaacbNUbNVbNVbNVbNVbSIbMTbSJbSKbMTbSLbSMbSNbSObMTbSPbLJbSQbSRbSSbLNbLNbMYbLPbKxaVxbqxbSTaaaaacaaabSUbVZbPxbPxbSVbSWbPxbSXbSYbSWbSWbSXbSZbSWbSUbTabScbKKbKKbKKbKKbTbbTcbTdbTebTfbTgbThbTibTjbTkbTbbTlbTmbTnbTobTpbTobTqbwgbwgbTrbwgbwgbwgbwgbwgbTqbTobTsbjwbTtbTubTvblEblEblEblEblEbTwbjwbjwbMMbMMbMMaacaacaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacbGDbRwbGFaaabGDbRwbGFafnbGDbRwbGFaacbGDbRwbGFaaaaacaacaacaacaacaaaaacbEpbEqbMTbTxbTybMTbTzbTAbTBbTCbTDbTEbTFbTGbTHbTIbLNbLNbMYbLPbKxaVxbTJbSTaacaacaaabSUbPxbPxbTKbTLbTMbPxbTNbWObTPbSWbTQbTObTRbSUbScbScbScbTSbScbPxbTTbTUbTVbTWbTXbTYbTZbUabUbbUcbUdbTlbUebUfbwgbUgbwgbwgbwgbwgbUhbUibUibUibUjbUkbUkbUlbUmbUnbUobUpbUqbUrbUsbUtbijbfVbUubMMaacaacaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaabUvbRvaaaaacbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahJaaabGDbRwbGFaaabGDbRwbGFaacbGDbRwbGFaaabGDbRwbGFaacaacaaaafnaaaaaaaaaaaabEpbEqbMTbMTbUwbMTbMTbMTbUxbUxbMTbLIbUybUzbUAbUAbUBbUBbUAbUAbUCbUDbUEbUzbUzaacaacbSUbUFbPxbUGbUHbUIbPxbUGbTObUJbSWbXybTObUKbSUbULbUMbUNbSUbUObPxaaaaacaaabUPbUbbUcbUbbUdaacaaaaaabLebUebUfbUQbURbUSbUTbUUbUVbUWbUXbUYbUTbUZbUTbVabUfbVbbVcbVdbVebVfbVgbVhbVibVibVibVjbViaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -5684,7 +5682,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaabGDbRwbGFaaabGDbRwbGFaaabGDbRwbGFaacbGDbRwbGFaaaaaAaaaaaaaaaaaaaaaaacbEpbVPbVQbVRbVSbVTbVUbKvbMYbMYbVVbLIbUybUzbXzbVvbVvbVvbVvbVvbVubVvbVXbVYbUzaaaaaabSUbXYbWabWObUHbWbbTObTObTObTObWcbTObWObWdbSUaUnbWeaUnbSUabDbWfaaaaacafnaaaaaaaacaaaaaaaacaaaaaabLebWgbWhbWibVEaaabWjbWkbWlbWlbWlbWmbWnaaabVEbWobWpbWqbVibWrbWsbWtbWubWvbWwbWxbWybVNbViaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvbRvaaaaacbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaabGDbRwbGFaaabGDbRwbGFaaabGDbRwbGFaaabGDbRwbGFaaaaaAaaaaaaaaaaaaaaaaacbEpbEpbEpbWzbWAbWzbEpbKvbKvbWBbKvbWCbWDbWEbWFbWGbVvbVvbVvbVvbWHbWIbWJbWKbUzaaaaaabSUbWLbWMbTObUHbTObTObWNbTObTObXZbTObTObWPbSUaWybdaaWzaaaabDaacaaaaacaaaaaaaaaaaaaaaafnaaaaaaaacbLebWQbWRbWSbVEbVEbWTaSlbWUbWUbWUaSobWVbVEbVEbWSbWWbVGbWXbWYbWsbWZbXabXbbXcbXdbXebVNbViaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahJaaabGDbXfbGFaaabGDbXfbGFaacbGDbXfbGFaaabGDbXfbGFaaaaaAaacaaaaaaaacaacaacaacaacbEpbXgbXhbXgbEpaacbKvbXibXjbXkbXlbUzbXmbXnbXobXpbXqbXrbXsbXtbXubXvbUzaacaacbSUbSUbSUbXwbXxbTObTObYdbYLbXAbTObXBbTObXCbSUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacbVEbWQbUfbXDbXEbXDbXFaTzaTzaTzaTzaTzbXFbXDbXEbXDbUfbVGbWXbWsbXGbWsbWsbXHbXIbXJbXKbVNbViaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaaaacaacaaaaaaaaaaacaaaaaaaaaaaaaacaaaaaaaaaaacaaaaaAaacaacaacaacaaaaaaaaaaacbEpbEpbEpbEpbEpaaabKvbXLbXjbXjbXjbUzbXMbXNbXObXPbXQbXRbXSbXTbXUbXVbUzaaaaacbWfaacbSUbXWbXXbTObXAbYMbYObTObTObXAbYabSUbSUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVEbYbbWRbVEbVEbVEaVAaTzbYcbYcbYcaTzaVAbVEbVEbVEbWWbYebVibYfbYgbYhbYibYjbYkbYlbVNbVNbViaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaaaacaacaaaaaaaaaaacaaaaaaaaaaaaaacaaaaaaaaaaacaaaaaAaacaacaacaacaaaaaaaaaaacbEpbEpbEpbEpbEpaaabKvbXLbXjbXjbXjbUzbXMbXNbXObXPbXQbXRbXSbXTbXUbXVbUzaaaaacbWfaacbSUbXWbXXbTObXAbYMbYObTObTObXAaTvbSUbSUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVEbYbbWRbVEbVEbVEaVAaTzbYcbYcbYcaTzaVAbVEbVEbVEbWWbYebVibYfbYgbYhbYibYjbYkbYlbVNbVNbViaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRubRvaaaaacbRuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAaaAaaAaaAaaAaaAahJaaAaaAaaAaaAaaAaaAahJahJaaAaaAaaAahJaacaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaacaaaaacaaaaaabUzbXMbVvbVvbVvbVvbYmbVvbVvbVvbYnbUzaacagkaacaiabSUbYobYpbTObTObYqbTObTObTObWObYrbSUaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbVEbYsbYtbYubYvbVEaTAbYwaTzaTzaTzbYxaTAbVEbYybYubYzbYAbVibVibVibVibVibVibVibVibVibVibViaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYBbYCbYDbYEbYFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafnaaaaaaaaaaacaaaaaabUzbYGbVvbVvbVvbVvbVvbVvbVvbVvbYHbYIaaaaaaaacaiabSUbYJbYKbTObTObYPbZfbYNbZAbYPbSUbYQaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbVEbYsbUfbwgbYRbVEaSmbYSbYcbYcbYcaTzaSmbVEbYTbwgbUfbwgbUgbwgbYUbwgbYVbYWbTlaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYXbYYbYZbZabZbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafnaaabUzbZcbVvbZdbVvbZdbZebZdbZdbZdbYHbYIaacaacaacaaabSUbZBbZgbTObTObZhbZibScbScbZjbSUaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaacbLebZkbZlbwgbZmbVEaSmbZnaTzbZoaTzaTzaSmbVEbZpbwgbZlbwgbUgbUTbUTbwgbUTbZqbTlaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaAaaBaacbZrbZsbZtbZubZraacaaBaaAaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/Efficiencystation/z2.dmm b/_maps/map_files/Efficiencystation/z2.dmm index 6d7d0b4aaef..d72ccc4f0c0 100644 --- a/_maps/map_files/Efficiencystation/z2.dmm +++ b/_maps/map_files/Efficiencystation/z2.dmm @@ -500,9 +500,9 @@ "jF" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) "jG" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/wizard_station) "jH" = (/turf/unsimulated/wall/fakedoor{name = "Squad 3 Pod"},/area/wizard_station) -"jI" = (/obj/structure/closet/emcloset,/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry) +"jI" = (/turf/unsimulated/wall,/area/centcom/ferry{name = "ERT Ready Room"}) "jJ" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry) -"jK" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 4},/area/centcom/ferry) +"jK" = (/obj/structure/rack,/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot,/turf/unsimulated/floor{tag = "icon-warning"; icon_state = "warning"; dir = 2; heat_capacity = 1},/area/centcom/ferry{name = "ERT Ready Room"}) "jL" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) "jM" = (/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) "jN" = (/obj/structure/cult/pylon,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) @@ -512,7 +512,7 @@ "jR" = (/turf/unsimulated/floor{tag = "icon-cultdamage4"; icon_state = "cultdamage4"},/area/wizard_station) "jS" = (/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) "jT" = (/turf/unsimulated/floor{tag = "icon-warning (SOUTHWEST)"; icon_state = "warning"; dir = 10; heat_capacity = 1},/area/centcom/ferry) -"jU" = (/turf/unsimulated/floor{tag = "icon-warning (SOUTHEAST)"; icon_state = "warning"; dir = 6; heat_capacity = 1},/area/centcom/ferry) +"jU" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) "jV" = (/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) "jW" = (/turf/unsimulated/wall/normal{tag = "icon-uranium15"; icon_state = "uranium15"},/area/wizard_station) "jX" = (/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) @@ -521,7 +521,7 @@ "ka" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/obj/structure/window/reinforced/fulltile,/turf/simulated/shuttle/plating,/area/space) "kb" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/space) "kc" = (/obj/machinery/door/airlock/external{name = "Ferry Airlock"; req_access_txt = "0"},/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry) -"kd" = (/turf/unsimulated/floor{icon_state = "greencorner"},/area/centcom/ferry) +"kd" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry{name = "ERT Ready Room"}) "ke" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "green"},/area/centcom/control) "kf" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/control) "kg" = (/turf/unsimulated/floor{icon_state = "greencorner"},/area/centcom/control) @@ -751,7 +751,7 @@ "ow" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Escape Shuttle Infirmary"; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) "ox" = (/obj/machinery/status_display,/turf/simulated/shuttle/wall{icon_state = "swall2"; dir = 2},/area/space) "oy" = (/obj/structure/table,/obj/item/weapon/gun/syringe{pixel_x = 1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"oz" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/antitoxin,/obj/item/weapon/reagent_containers/syringe/antitoxin{pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/antitoxin{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"oz" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry{name = "ERT Ready Room"}) "oA" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "oB" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "oC" = (/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) @@ -761,12 +761,12 @@ "oG" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor,/area/space) "oH" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "oI" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"oJ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline{pixel_x = 6; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = -3},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 3; pixel_y = -2},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) +"oJ" = (/obj/structure/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry{name = "ERT Ready Room"}) "oK" = (/obj/machinery/computer/crew,/turf/simulated/shuttle/floor,/area/space) "oL" = (/obj/machinery/computer/atmos_alert,/turf/simulated/shuttle/floor,/area/space) "oM" = (/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) "oN" = (/obj/structure/closet/crate/internals,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"oO" = (/obj/structure/closet/crate/medical,/obj/item/weapon/surgicaldrill,/obj/item/weapon/scalpel,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"oO" = (/obj/structure/closet/crate/medical,/obj/item/weapon/surgicaldrill,/obj/item/weapon/scalpel,/obj/item/weapon/reagent_containers/glass/bottle/morphine,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "oP" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/space) "oQ" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "oR" = (/obj/machinery/teleport/hub/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) @@ -853,6 +853,91 @@ "qu" = (/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) "qv" = (/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) "qw" = (/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) +"qx" = (/obj/structure/rack,/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/teargas,/obj/item/weapon/storage/box/flashbangs,/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qy" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/ferry{name = "ERT Ready Room"}) +"qz" = (/obj/machinery/door/airlock/centcom{name = "Equipment Room"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qA" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qB" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/weapon/weldingtool/largetank,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qC" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/weapon/energy/taser,/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser,/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qD" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/rcd,/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qE" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp,/obj/item/mecha_parts/mecha_equipment/tool/cable_layer,/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qF" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/weapon/weldingtool/largetank,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qG" = (/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qH" = (/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qI" = (/obj/mecha/combat/gygax,/turf/unsimulated/floor{icon_state = "recharge_floor"; name = "mech bay recharge floor"; tag = "icon-recharge_floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qJ" = (/obj/machinery/mech_bay_recharge_port,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qK" = (/obj/mecha/working/ripley,/turf/unsimulated/floor{icon_state = "recharge_floor"; name = "mech bay recharge floor"; tag = "icon-recharge_floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qL" = (/obj/machinery/mech_bay_recharge_port{tag = "icon-recharge_port (WEST)"; icon_state = "recharge_port"; dir = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qM" = (/obj/structure/reagent_dispensers/fueltank,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qN" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/syringes,/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qO" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/weapon/weldingtool/largetank,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qP" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/sleeper,/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qQ" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry{name = "ERT Ready Room"}) +"qR" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/ferry{name = "ERT Ready Room"}) +"qS" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/ferry{name = "ERT Ready Room"}) +"qT" = (/obj/machinery/suit_storage_unit/ertMed,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qU" = (/obj/structure/rack,/obj/item/clothing/glasses/hud/health,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/fire{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/reagent_containers/hypospray/combat/nanites,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qV" = (/obj/structure/rack,/obj/item/weapon/storage/box/emps,/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qW" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qX" = (/obj/structure/mirror{pixel_y = 28},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qY" = (/obj/structure/rack,/obj/item/device/aicard,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"qZ" = (/obj/mecha/medical/odysseus,/turf/unsimulated/floor{icon_state = "recharge_floor"; name = "mech bay recharge floor"; tag = "icon-recharge_floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"ra" = (/obj/machinery/mech_bay_recharge_port{on = 1},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rb" = (/obj/machinery/door/poddoor{name = "Emergency Response Team Armoury"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rc" = (/obj/structure/closet/syndicate/ertEngi,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rd" = (/obj/structure/closet/syndicate/ertSec,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"re" = (/obj/structure/closet/syndicate/ertMed,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rf" = (/obj/structure/table/reinforced,/obj/item/device/paicard,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rg" = (/obj/structure/rack,/obj/item/weapon/storage/box/handcuffs,/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/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rh" = (/obj/structure/rack,/obj/item/weapon/extinguisher,/obj/item/weapon/extinguisher,/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/weapon/soap/nanotrasen,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"ri" = (/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/centcom/ferry) +"rj" = (/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry) +"rk" = (/obj/machinery/door/airlock/glass{name = "Medical Equipment"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rl" = (/obj/machinery/door/airlock/glass{name = "Misc. Equipment"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rm" = (/obj/structure/table/reinforced,/obj/item/device/aicard,/obj/item/clothing/glasses/hud/security/night,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rn" = (/obj/structure/table/reinforced,/obj/item/ammo_box/a357,/obj/item/ammo_box/a357,/obj/item/weapon/gun/projectile/revolver/mateba,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"ro" = (/obj/structure/rack,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/belt/security,/obj/item/device/flash/handheld,/obj/item/weapon/grenade/flashbang,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rp" = (/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rq" = (/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rr" = (/turf/unsimulated/floor{tag = "icon-blue (NORTH)"; icon_state = "blue"; dir = 1},/area/centcom/ferry{name = "ERT Ready Room"}) +"rs" = (/turf/unsimulated/floor{tag = "icon-bluecorner (EAST)"; icon_state = "bluecorner"; dir = 4},/area/centcom/ferry{name = "ERT Ready Room"}) +"rt" = (/turf/unsimulated/floor{tag = "icon-bluecorner (NORTH)"; icon_state = "bluecorner"; dir = 1},/area/centcom/ferry{name = "ERT Ready Room"}) +"ru" = (/turf/unsimulated/floor{tag = "icon-neutralcorner (EAST)"; icon_state = "neutralcorner"; dir = 4},/area/centcom/ferry{name = "ERT Ready Room"}) +"rv" = (/turf/unsimulated/floor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/centcom/ferry{name = "ERT Ready Room"}) +"rw" = (/turf/unsimulated/floor{tag = "icon-neutralcorner (NORTH)"; icon_state = "neutralcorner"; dir = 1},/area/centcom/ferry{name = "ERT Ready Room"}) +"rx" = (/obj/machinery/door/airlock/centcom{name = "Commander's Room"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"ry" = (/turf/unsimulated/floor,/area/centcom/ferry{name = "ERT Ready Room"}) +"rz" = (/obj/machinery/door/airlock/centcom{name = "ERT Ready Room"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rA" = (/obj/machinery/suit_storage_unit/ertCom,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rB" = (/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/centcom/ferry{name = "ERT Ready Room"}) +"rC" = (/turf/unsimulated/floor{tag = "icon-redcorner"; icon_state = "redcorner"; dir = 2},/area/centcom/ferry{name = "ERT Ready Room"}) +"rD" = (/turf/unsimulated/floor{tag = "icon-redcorner (WEST)"; icon_state = "redcorner"; dir = 8},/area/centcom/ferry{name = "ERT Ready Room"}) +"rE" = (/turf/unsimulated/floor{tag = "icon-yellowcorner"; icon_state = "yellowcorner"; dir = 2},/area/centcom/ferry{name = "ERT Ready Room"}) +"rF" = (/turf/unsimulated/floor{tag = "icon-yellow"; icon_state = "yellow"; dir = 2},/area/centcom/ferry{name = "ERT Ready Room"}) +"rG" = (/turf/unsimulated/floor{tag = "icon-yellowcorner (WEST)"; icon_state = "yellowcorner"; dir = 8},/area/centcom/ferry{name = "ERT Ready Room"}) +"rH" = (/obj/structure/closet/emcloset,/turf/unsimulated/floor{tag = "icon-warning (SOUTHEAST)"; icon_state = "warning"; dir = 6; heat_capacity = 1},/area/centcom/ferry) +"rI" = (/obj/machinery/door/airlock/glass{name = "Security Equipment"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rJ" = (/obj/machinery/door/airlock/glass{name = "Engineering Equipment"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rK" = (/obj/mecha/combat/marauder{operation_req_access = null},/turf/unsimulated/floor{icon_state = "recharge_floor"; name = "mech bay recharge floor"; tag = "icon-recharge_floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rL" = (/obj/machinery/door/poddoor{name = "Death Squad Equipment Room"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rM" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rN" = (/obj/machinery/suit_storage_unit/ertSec,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rO" = (/obj/structure/rack,/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/belt/security,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/shield/riot/tele,/obj/item/weapon/gun/energy/pulse_rifle/pulse_carbine,/obj/item/device/flash/handheld,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rP" = (/obj/machinery/suit_storage_unit/ertEngi,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rQ" = (/obj/structure/rack,/obj/item/weapon/storage/belt/utility/full,/obj/item/clothing/glasses/meson,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/device/multitool,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/rcd{matter = 200; name = "military rapid-construction-device (RCD)"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rR" = (/obj/structure/rack,/obj/item/weapon/storage/belt/utility/full,/obj/item/clothing/glasses/meson,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/device/multitool,/obj/item/weapon/rcd,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/rcd{matter = 90; name = "military rapid-construction-device (RCD)"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rS" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion,/obj/item/mecha_parts/mecha_equipment/weapon/energy/pulse,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rT" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster,/obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/weapon/weldingtool/largetank,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rU" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack,/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rV" = (/obj/structure/table/reinforced,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/hud/security/sunglasses,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rW" = (/obj/structure/table/reinforced,/obj/item/weapon/stock_parts/cell/high,/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/plasteel{amount = 50},/obj/item/clothing/shoes/magboots,/obj/item/weapon/storage/box,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rX" = (/obj/machinery/door/airlock/centcom{name = "Deathsquad Equipment Room"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rY" = (/obj/structure/rack,/obj/item/clothing/suit/space/deathsquad,/obj/item/weapon/gun/energy/pulse_rifle,/obj/item/clothing/mask/gas/sechailer/swat,/obj/item/clothing/head/helmet/space/deathsquad,/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry{name = "ERT Ready Room"}) +"rZ" = (/obj/structure/rack,/obj/item/clothing/suit/space/deathsquad,/obj/item/weapon/gun/energy/pulse_rifle,/obj/item/clothing/mask/gas/sechailer/swat,/obj/item/clothing/head/helmet/space/deathsquad,/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry{name = "ERT Ready Room"}) +"sa" = (/obj/structure/rack,/obj/item/weapon/c4,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/pinpointer,/obj/item/weapon/shield/energy,/obj/item/clothing/glasses/thermal,/obj/item/weapon/tank/emergency_oxygen,/obj/item/ammo_box/a357,/obj/item/weapon/gun/projectile/revolver/mateba,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/storage/backpack/security,/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry{name = "ERT Ready Room"}) +"sb" = (/obj/structure/rack,/obj/item/weapon/c4,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/pinpointer,/obj/item/weapon/shield/energy,/obj/item/clothing/glasses/thermal,/obj/item/weapon/tank/emergency_oxygen,/obj/item/ammo_box/a357,/obj/item/weapon/gun/projectile/revolver/mateba,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/storage/backpack/security,/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry{name = "ERT Ready Room"}) +"sc" = (/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/storage/pill_bottle/epinephrine{pixel_x = 3; pixel_y = -2},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) +"sd" = (/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) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababadaeaeaeaeaeafaeaeaeaeaeafaeaeaeaeaeafaeaeaeaeaeag @@ -974,82 +1059,82 @@ abababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababcucvcwabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababcxcyczcAcBcCababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababcDcEcFcGcHcIababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababcJcKcLcMcNcOcPcQabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababcRcSabcTcUcVcWcXcYcZababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababdaababdbdcdddeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababdfdgdhdidjdkdldmabababababababababababababababababababababababababababababababababababababababababababababdndndndndndndndndndndndndndndndndnabdododododododododoababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababdpdqdrdsdtdudvdwdxdydzababababababababababababababababababababababababababababababababababababababababababdndAdndAdndAdndAdndAdndAdndAdndAdnabdodBdCdCdCdCdCdDdododododododoababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababdEdFdGdHdIdJdKdLabdMdNababababababababababababababababababababababababababababababababababababababababababdndndndndndndndndndndndndndndndndnabdodOdPdPdPdPdPdOdodQdQdQdQdQdoababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababdRdSdTdUdVdWdXababababababababababababababababababababababababababababababababababababababababababababababdndAdndAdndAdndAdndAdndAdndAdndAdnabdodOdPdPdPdPdPdYdodZeaeaeaeadodoabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababebecedeeefegeheiejekelababababababababababababababababababababababababababababababababababababababababababdndndndndndndndndndndndndndndndndnabdodOdPdPdPdPdPemeneoepepepepeqdoabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababereseteuevewexeyabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdodOdPdPdPdPdPdOezeoepepepepeAdoabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababeBeCeDeEeFeGeHeIeJeKeLababababababababababababababababababababababababababeMeNeNeOababababababababababababababababababababababababababababababdodOdPdPdPdPePdOeQeoepeRepepeSdoabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababeTeUeVeWeXeYababababababababababababababababababababababababababababababeMeZfafbfcababababababababababababababababababababababababababababababdodOdPdPdPdPdPdOfdeoepepepepfedoabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababfffgfhfifjfkflfmfnfofpababababababababababababeMeNeNeNeNeNfqeNeNeNeNeNeNfrfafafbfsababababababababababababababababababababababababababababababdodOdPdPdPdPdPfteneoepepepepfudoabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababfvfwfxfyfzfAfBabababababababababababababababeMfCfDfDfDfDfDfEfFfGfHfIfJfJfKfafafbfLababababababababababababababababababababababababababababababdodOdPdPdPdPdPfMdofNfOfOfOfOdodoabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababfPfQfRfSfTababababababababababababababeMeNeNfUfCfJfJfJfJfJfEfVfVfWfXfJfJfYeNeNeNfZababababababababababababababababababababababababababababababdogagbdPdPdPgcgddogegegegegedoabababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababgfggghgigjababababababababababababababgkglgmgnfEgogpfJgpgqfEfVfVgrgsfJfJfEababababababababababababababababababababababababababababababababababdogtgugvgvgvgugwdododododododoabababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgkgxgygygzeNgAgBgCeNfrgDgEgFgEfJfJgGababababababababababababababababababababababababababababababababababdodogHgIgIgIgJdodoabababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababgKababgLabababababababababababababababgkgMgygygNgygygygygygygygygygygygygOgPababababababababababababababababababababababababababababababababababdododododododoababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgkgQgygygRgmfJgygSgSgSgygSgSgSgygTgRababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgkgUgngVfEgWfJgygXgXgXgygXgXgXgygYfEababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgZeNeNfqfChafJgygygygygygygygygyhbgzeNeNeNeOababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgZfChbfJgyfJfJfJgyfJfJfJgyfJfKfafafbfcababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgZeNgAgOhcgkhcgOhcgkhcgOgChdfafafbfsababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababheabababhfabababhgabhhhifafbfLababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhheNeNfZababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahjhkhlhmaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaahnaahohphqhrhsaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaahnhthuhvhqhwhxaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaahxhyhzhwhAhBhxaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaahrhshChDhChEhFaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaahnhnhFhGhHhIhraaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaahJhKhLhMhNhOhqhPhnaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaahQhRhShThUhNhqhVhWhXhnhnaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhYhYhYhYhYhZhZababababababababababababababababababababababababaaaaaaaaaaaaaaaaaahnaahLiaiaibhNhqichVhXaaidieaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhYifigihhYiihZababhZijhZabababababababababababababababababababaaaaaaaaaaaaaaaaaahPhnaaaahnikilhvimhvhPhnhnaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababininininininininininininininininininininininininininininininabababababababababababababababababababababababhYioipiphYhZhZhZhZhZiqhZhZhZhZhZhZababababababababababababababaaaaaaaaaaaaaahEirisitiuiviuiuiriwitiuiuiviuiuaahnaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixixixixixixixixixiyixixixiziAixixixizixixixixixixizixixinabababababababababababababababababiBiCiBababiDhYhYiEhYhYiFiFiFiGiHiHiHiGiFiFiFhZababababababababababababababaaaaaaaaaaaaaaiIiJhqhqiJiIiKiLhqhqhqiMiNiIiOiPhPiQhnhnaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixixixixiyixixixixixixixixixixixizixixixixixizixixixixixinabababababababababababababababababiRiSiRababiDiTiUiViWhYiXiYiZhZiHiHiHhZiXiYiZhZababababababababababababababaaaaaaaaaaaaaajajbhqhqjbjaiQiQhqhqhqhqjcjajdjeiaiajfaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixixixixixixixjgixixixixixiyixixiAizixixizixixiziAixizixinababababababababababababababababjhjiiCjjjkiDiDiRiUiViWhYjljljljmiHiHiHjnjljljlhZababababababababababababababaaaaaaaaaaaaaajojphqhVhqjqichVhqjrhqhqjsjojtjujvjwjxjyaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixixixixixixixixixixixixixixixixixixiyixixiziAixixizixiAinababababababababababababababababiRjziSjAjjjBjBjiiUiViWhYiHiHiHiHiHiHiHiHiHiHiHhZhZabababababababababababababaaaaaaaaaaaaaajCjbhqhvicjDhvhqhqjEhqhqhqjCjFjGjfjHhJaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixixixixixixixixixixixixixixixiyixixixixixiAixiziAixizixinababababababababababababababababiRjIiSiSjJiSiSjJiViVjKjLiHiHiHiHiHiHiHiHiHiHiHiqijabababababababababababababaaaaaaaaaaaaaahmjMhqhqjMhmjNhqhVhvhqhqjNhmjOjPjQjRaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixixixixixixjSjSjSjSjSjSjSixixixixixixixizixixjgiAixixixinababababababababababababababababiRjTiSjUjhjBjBjkiUiViVhYiHiHiHiHiHiHiHiHiHiHiHhZhZabababababababababababababaaaaaaaaaaaaaahrirjVitiujWiuirhCjXhCitiujWiuirhnhnhnaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixixixixixjYjZkakakakakajZkbixixixixjgixjSiyjSiyixizixizinababababababababababababababababjjjkkcjhjiiDiDiRiUiVkdhYkekekekfiHiHiHkgkekekehZababababababababababababababaaaaaaaaaaaaaaaaaaikhVaahnaahnkhhOikaaaahnaaaaaaaahnaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixixixixixjZkikjkkklkmknknjZkoixixjSininkpkqininjSkrksjSinabababababababababababababababababiRiSiRababiDktiUiViWhYiXiYiZhZiHiHiHhZiXiYiZhZababababababababababababababaaaaaaaaaaaaaaaaaahnhnaakuhVaakvkwikhnaaicaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixixixixixjZkxkjkjkykjkjkjjZkoixkzininkAkBkBkAininininininininabababababababababababababababkCkckCababiDhYhYhYhYhYiFiFiFiGiHiHiHiGiFiFiFhZababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaahnhnaakDhVkEaaaaaahnaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixixixixixjZkFkjkjkjkGkjkHjZkojgkzinkIkIkIkIkIkJkKkLkMkNkOkPinababababababababababababababdBkQkRkQdDababhZkSkTkThZhZhZhZhZiHiHiHhZhZhZhZhZababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaahnivirkUitivhnaahnhnaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixixixixixkVjZjZjZkWjZjZjZkXixixkYinkZkIlalalbkIkIkIlcldldldinababababababababababababababdOledPlfdOababhZlglglglhlglijlljiHiHiHlkjlhZababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaiIlllmlniIkujehUlolphnaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixixixixixixixjZlqkjlrjZlsjSjSjSltinkIlalulvlakIlwlxkMlylzininabababababababababababababaDlAledPlflAaDablBlglglClDlglEiHiHiHiHiHiHiHhZababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaahClFlGlHhClIlJhTlKhqhxaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixixixixixixixjZlLkjlMjZlNlOlOlOkqinkIlalPlQlakIlwlRininininababababababababababababababaDkQledPlfkQaDabhZlglglSlTlglUiHiHiHiHiHiHiHhZababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaahOhnhmlVlWlXhmhvlYhTlKaahnaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixixjYjZjZjZjZjZlLkjlMjZlZmamamamambkIkIkIkIkIkIlwlRininininababababababababababababababaDmcledPlfmcaDabhZmdlgmemflgliiHmgmgmgmgmgiHhZababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaahnivmhirhCitmhivmimjlKaahnaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixixjZmkkjkjmljZlLkjlMjZmmmnkplOkqinmolalalakIkIlwmpinmqmrininababababababababababababababdOledPlfdOababhZhZhZhZlimsmtmslihZmuhZlimsliababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaahniIhqmvmwmvhqiIaamxaaaahnaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixixjZmkkjmymzjZlLkjlMjZjZmAmBkbmCinmDmEmFmEmEkIkIkImGmHmHmIinabababababababababababababaDlAledPlflAaDabababababmtmJmtmJmtiDiDiDmtmJmtababababababababababababababababaaaaaaaaaaaaaaaaaaaaaahnhVmKhqhqhqhqhqmKaaaaaaaahVaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinmLixjZmkkjkjmMjZkjkjkjjZkjkjkjjZkYinmNmOmNmNmPkIkIkIinmQmRmIinabababababababababababababaDkQledPlfkQaDababababablEmslEmslEiDiDiDlEmslEababababababababababababababababaaaaaaaaaaaaaaaaaahnhnhOhqhmmShqhqhqmShmaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixixjZmkkjkjkjmTkjkjkjmUkjkjkjjZkzininlxmVmWmXinmYmYinininininabababababababababababababaDmcmZdPlfmcaDabababdBdCnanbncndnckQkQkQncnenfdCngdCdCdDabababababababababababaaaaaaaaaaaaaaaaaaaahniuiunhninininininjaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixixjZmkkjkjkjnkkjkjkjnlkjkjnmjZnnmCininininininnononpnqnrnsinababababababababababababababdOntdPlfdOabababdBnunvnvnwkQdPnxnxnxnxnxdPnynzdOnAnBnCdDababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaahrirnDnDnDithFaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixjYjZjZjZjZjZjZnEkjkjjZjZjZjZjZjZkbnFnFnFnGmCinnHnHnHnHnHnHinababababababababababababababgtnInJnKgwabababnLnMnwnwnwnNdPdPdPdPdPdPdPdPdPdOntntnOkQababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagIgIgIaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixjZnPnPnQnRnSjZnTkjkjjZnUnVnWnXnYjZixiyixixiAkMnHnHnHnHnHnZinababababababababababababababaDgIgIgIaDabababoanMobobobkQdPocodododododoeoflAogdPlekQababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixjZkjkjkjmykjohkjkjkjoikjmykjmyojjZixjgiziyjginokokokokokolinababababababababababababababaDaDaDaDaDabababoanMnfdCdCnaomockQkQonkQkQoedPoodPdPopkQabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixjZoqkjkjkjkjorkjkjkjoskjkjkjkjkjjZixixixizkzininininininininababababababababababababababababababababababoanMotouovowdPocnxnxnxnxnxoedPoxdPdPlekQabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixjZoqkjkjoyozjZoAoBoAjZoCoDkjkjkjjZixizixjgkzinabababababababababababababababababababababababababababababoEnMovovoFkQdPdPdPdPdPdPdPdPdPdOoGoGnOkQabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixjZkjkjkjjZjZjZoHoIkjjZjZjZkjkjkjjZixixiyixkzinabababababababababababababababababababababababababababababgtnIotovoJkQnzodododododododnzdOoKoLgcgwabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixjZoMoNoOjZixjZoPoPoPjZixjZknoQoRjZixixixixkzinababababababababababababababababababababababababababababababgtdCdCdCdCnakQnfnakQnfnakQnfoSdCdCgwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixjZoPoPoPjZixkVoTgIoUkXixjZoPoPoPjZixixixixkzinababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixkVoTgIoUkXixixixixixixixkVoTgIoUkXixixixixkzinababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinixixixixixixixixixixixixixixixixixixixixixixkzinababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababinininininininininininininininininininininininininababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababoVoVoVoVoVoVoVoVoWoVoVoVoVoVoVoVoVabababababababababoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababoVoYoZoZoZoZoZoYoYoYoZoZoZoZoZoYoVabababababababababoXpapbpcpdpdpbpepfpgphpipjpkpjpjpjploXabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababpmoYoYoYpnoYoYoYoYoYoYoYpnoYoYoYpmabababababababababoXpapbpbpbpbpbpopipipipppjpjpjpqpjpjoXabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababoVoYoZoZoZoZoZoYoYoYoZoZoZoZoZoYoVabababababababababoXpapbprpapsptpupipipipipjpjpvpjpwpkoXabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababoVpxpypypypypypypypypypypypypypzoVabababababababababoXpApipppppppppppipipipipjpjpjpBpjpjoXabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababpCpCpCpCpCpCpCpCpCpDpEpEpEpEpEpEpEpEpEpEpEpEpEpDpCpCpCpCpCpCpCpCpCaboXpFpipipipipipipipipipipGpjpjpjpjpjoXabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababcxcyczcAcBcCabababababababababababababababababababababababababababababababeMeNeNeOabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababcDcEcFcGcHcIababababababababababababababababababababababababababababababeMeZfafbfcabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababcJcKcLcMcNcOcPcQababababababababababababeMeNeNeNeNeNfqeNeNeNeNeNeNfrfafafbfsabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababcRcSabcTcUcVcWcXcYcZababababababababababababeMfCfDfDfDfDfDfEfFfGfHfIfJfJfKfafafbfLabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababdaababdbdcdddeababababababababababababeMeNeNfUfCfJfJfJfJfJfEfVfVfWfXfJfJfYeNeNeNfZabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababdfdgdhdidjdkdldmabababababababababababgkglgmgnfEgogpfJgpgqfEfVfVgrgsfJfJfEababababababababababababababababdndndndndndndndndndndndndndndndndnabdododododododododoababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababdpdqdrdsdtdudvdwdxdydzababababababababgkgxgygygzeNgAgBgCeNfrgDgEgFgEfJfJgGababababababababababababababababdndAdndAdndAdndAdndAdndAdndAdndAdnabdodBdCdCdCdCdCdDdododododododoababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababdEdFdGdHdIdJdKdLabdMdNababababababababgkgMgygygNgygygygygygygygygygygygygOgPabababababababababababababababdndndndndndndndndndndndndndndndndnabdodOdPdPdPdPdPdOdodQdQdQdQdQdoababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababdRdSdTdUdVdWdXababababababababababababgkgQgygygRgmfJgygSgSgSgygSgSgSgygTgRababababababababababababababababdndAdndAdndAdndAdndAdndAdndAdndAdnabdodOdPdPdPdPdPdYdodZeaeaeaeadodoabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababebecedeeefegeheiejekelababababababababgkgUgngVfEgWfJgygXgXgXgygXgXgXgygYfEababababababababababababababababdndndndndndndndndndndndndndndndndnabdodOdPdPdPdPdPemeneoepepepepeqdoabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababereseteuevewexeyabababababababababababgZeNeNfqfChafJgygygygygygygygygyhbgzeNeNeNeOababababababababababababababababababababababababababababababdodOdPdPdPdPdPdOezeoepepepepeAdoabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababeBeCeDeEeFeGeHeIeJeKeLabababababababababababgZfChbfJgyfJfJfJgyfJfJfJgyfJfKfafafbfcababababababababababababababababababababababababababababababdodOdPdPdPdPePdOeQeoepeRepepeSdoabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababeTeUeVeWeXeYabababababababababababababababababgZeNgAgOhcgkhcgOhcgkhcgOgChdfafafbfsababababababababababababababababababababababababababababababdodOdPdPdPdPdPdOfdeoepepepepfedoabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababfffgfhfifjfkflfmfnfofpabababababababababababababababheabababhfabababhgabhhhifafbfLababababababababababababababababababababababababababababababdodOdPdPdPdPdPfteneoepepepepfudoabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababfvfwfxfyfzfAfBababababababababababababababababababababababababababababababhheNeNfZababababababababababababababababababababababababababababababdodOdPdPdPdPdPfMdofNfOfOfOfOdodoabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababfPfQfRfSfTababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdogagbdPdPdPgcgddogegegegegedoabababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababgfggghgigjababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdogtgugvgvgvgugwdododododododoabababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdodogHgIgIgIgJdodoabababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababgKababgLababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdododododododoababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababjIjIjIjIjIabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahjhkhlhmaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababjIjIjKjKjKjIjIababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaahnaahohphqhrhsaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababjIkdjUjUjUozjIababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaahnhthuhvhqhwhxaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababjIkdjUjUjUozjIababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaahxhyhzhwhAhBhxaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababjIoJjUjUjUqxjIababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaahrhshChDhChEhFaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababjIjIjIjIqyqzqyjIjIjIjIababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaahnhnhFhGhHhIhraaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababjIqBqAqCjUjUjUqEqDqFjIababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaaaahJhKhLhMhNhOhqhPhnaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqyjUjUqGjUjUjUqHjUjUjIababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaaaahQhRhShThUhNhqhVhWhXhnhnaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababjIqJqIqGjUjUjUqHqKqLjIabababababababababababababababababababababababababababababababhYhYhYhYhYhZhZababababababababababababababababababababababababaaaaaaaaaaaaaaaaaahnaahLiaiaibhNhqichVhXaaidieaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababjIjIjIjIjUjUqMjIjIjIjIabababababababababababababababababababababababababababababababhYifigihhYiihZababhZijhZabababababababababababababababababababaaaaaaaaaaaaaaaaaahPhnaaaahnikilhvimhvhPhnhnaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababjIqOqNqPjUjUjUjIababababababababababjIjIjIjIjIjIjIjIjIjIjIabababababababababababababhYioipiphYhZhZhZhZhZiqhZhZhZhZhZhZababababababababababababababaaaaaaaaaaaaaahEirisitiuiviuiuiriwitiuiuiviuiuaahnaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqyjUjUqGjUjUjUjIqQqRqRqSjIjIjIjIjIjIjIqTjUjUqUjIqVqXqWqYjIhYhYhYhYabababiBiCiBababiDhYhYiEhYhYiFiFiFiGiHiHiHiGiFiFiFhZababababababababababababababaaaaaaaaaaaaaaiIiJhqhqiJiIiKiLhqhqhqiMiNiIiOiPhPiQhnhnaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababjIraqZqGjUjUjUjUjUjUjUjUrbjUrcrerdrfjIqTjUjUqUjIrgjUjUrhjIriiVrjiTabababiRiSiRababiDiTiUiViWhYiXiYiZhZiHiHiHhZiXiYiZhZababababababababababababababaaaaaaaaaaaaaajajbhqhqjbjaiQiQhqhqhqhqjcjajdjeiaiajfaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababjIjIjIjIjIjIjIjIjIjIjIjIjIjUjUjUjUjUjIjIrkrkjIjIjIrlrljIjIriiVrjiRababjhjiiCjjjkiDiDiRiUiViWhYjljljljmiHiHiHjnjljljlhZababababababababababababababaaaaaaaaaaaaaajojphqhVhqjqichVhqjrhqhqjsjojtjujvjwjxjyaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababiDabababiDababjIrnrmroqyjUrprprqjUjUrsrrrrrtjUrurvrvrwjIriiVrjjjjBjBjijziSjAjjjBjBjiiUiViWhYiHiHiHiHiHiHiHiHiHiHiHhZhZabababababababababababababaaaaaaaaaaaaaajCjbhqhvicjDhvhqhqjEhqhqhqjCjFjGjfjHhJaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababiDabababiDababqyjUjUjUrxjUrprprpjUryryryryryryryryryryrzriiViVjJiSiSjJiSiSiSjJiSiSjJiViViWjLiHiHiHiHiHiHiHiHiHiHiHiqijabababababababababababababaaaaaaaaaaaaaahmjMhqhqjMhmjNhqhVhvhqhqjNhmjOjPjQjRaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababiDabababiDababjIrAjUjUqyjUrprprqryjUrCrBrBrDjUrErFrFrGjIriiVrjjhjBjBjkjTiSrHjhjBjBjkiUiViWhYiHiHiHiHiHiHiHiHiHiHiHhZhZabababababababababababababaaaaaaaaaaaaaahrirjVitiujWiuirhCjXhCitiujWiuirhnhnhnaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababjIjIjIjIjIjIjIjIjIjIjIjIjIjUjUjUjUjUjIjIrIrIjIjIjIrJrJjIjIriiVrjiRababjjjkkcjhjiiDiDiRiUiViWhYkekekekfiHiHiHkgkekekehZababababababababababababababaaaaaaaaaaaaaaaaaaikhVaahnaahnkhhOikaaaahnaaaaaaaahnaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababjIqJrKqGjUjUjUjUjUjUjUjUrLjUrcrerdrMjIrNjUjUrOjIrPjUjUrQjIriiVrjktabababiRiSiRababiDktiUiViWhYiXiYiZhZiHiHiHhZiXiYiZhZababababababababababababababaaaaaaaaaaaaaaaaaahnhnaakuhVaakvkwikhnaaicaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababininininininininininininininininininininininininininininininabababababababababababqyjUjUqGjUjUjUjIqQqRqRqSjIjIjIjIjIjIjIrNjUjUrOjIrPjUjUrRjIhYhYhYhYabababkCkckCababiDhYhYhYhYhYiFiFiFiGiHiHiHiGiFiFiFhZababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaahnhnaakDhVkEaaaaaahnaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixixixixixixixixixiyixixixiziAixixixizixixixixixixizixixinabababababababababababjIrTrSrUjUjUjUjIababababababababababjIjUrVrVjUjIjUrWrWjUjIababababababdBkQkRkQdDababhZkSkTkThZhZhZhZhZiHiHiHhZhZhZhZhZababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaahnivirkUitivhnaahnhnaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixixixixiyixixixixixixixixixixixizixixixixixizixixixixixinabababababababababababjIjIjIjIjUjUqMjIababababababababababjIjIjIjIjIjIjIjIjIjIjIababababababdOledPlfdOababhZlglglglhlglijlljiHiHiHlkjlhZababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaiIlllmlniIkujehUlolphnaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixixixixixixixjgixixixixixiyixixiAizixixizixixiziAixizixinabababababababababababjIqJrKqGjUjUjUjIababababababababababababababababababababababababababaDlAledPlflAaDablBlglglClDlglEiHiHiHiHiHiHiHhZababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaahClFlGlHhClIlJhTlKhqhxaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixixixixixixixixixixixixixixixixixixiyixixiziAixixizixiAinabababababababababababqyjUjUqGjUjUjUjIababababababababababababababababababababababababababaDkQledPlfkQaDabhZlglglSlTlglUiHiHiHiHiHiHiHhZababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaahOhnhmlVlWlXhmhvlYhTlKaahnaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixixixixixixixixixixixixixixixiyixixixixixiAixiziAixizixinabababababababababababjIrTrSrUjUjUjUjIababababababababababababababababababababababababababaDmcledPlfmcaDabhZmdlgmemflgliiHmgmgmgmgmgiHhZababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaahnivmhirhCitmhivmimjlKaahnaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixixixixixixjSjSjSjSjSjSjSixixixixixixixizixixjgiAixixixinabababababababababababjIjIjIjIqyrXqyjIjIababababababababababababababababababababababababababdOledPlfdOababhZhZhZhZlimsmtmslihZmuhZlimsliababababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaahniIhqmvmwmvhqiIaamxaaaahnaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixixixixixjYjZkakakakakajZkbixixixixjgixjSiyjSiyixizixizinabababababababababababababjIrYjUjUjUrZjIabababababababababababababababababababababababababaDlAledPlflAaDabababababmtmJmtmJmtiDiDiDmtmJmtababababababababababababababababaaaaaaaaaaaaaaaaaaaaaahnhVmKhqhqhqhqhqmKaaaaaaaahVaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixixixixixjZkikjkkklkmknknjZkoixixjSininkpkqininjSkrksjSinabababababababababababababjIrYjUjUjUrZjIabababababababababababababababababababababababababaDkQledPlfkQaDababababablEmslEmslEiDiDiDlEmslEababababababababababababababababaaaaaaaaaaaaaaaaaahnhnhOhqhmmShqhqhqmShmaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixixixixixjZkxkjkjkykjkjkjjZkoixkzininkAkBkBkAininininininininabababababababababababjIrYjUjUjUrZjIabababababababababababababababababababababababababaDmcmZdPlfmcaDabababdBdCnanbncndnckQkQkQncnenfdCngdCdCdDabababababababababababaaaaaaaaaaaaaaaaaaaahniuiunhninininininjaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixixixixixjZkFkjkjkjkGkjkHjZkojgkzinkIkIkIkIkIkJkKkLkMkNkOkPinabababababababababababjIjIjUjUjUjIjIababababababababababababababababababababababababababdOntdPlfdOabababdBnunvnvnwkQdPnxnxnxnxnxdPnynzdOnAnBnCdDababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaahrirnDnDnDithFaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixixixixixkVjZjZjZkWjZjZjZkXixixkYinkZkIlalalbkIkIkIlcldldldinabababababababababababjIsajUjUjUsbjIababababababababababababababababababababababababababgtnInJnKgwabababnLnMnwnwnwnNdPdPdPdPdPdPdPdPdPdOntntnOkQababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagIgIgIaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixixixixixixixjZlqkjlrjZlsjSjSjSltinkIlalulvlakIlwlxkMlylzininabababababababababababjIsajUjUjUsbjIababababababababababababababababababababababababababaDgIgIgIaDabababoanMobobobkQdPocodododododoeoflAogdPlekQababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixixixixixixixjZlLkjlMjZlNlOlOlOkqinkIlalPlQlakIlwlRininininababababababababababababjIsajUjUjUsbjIababababababababababababababababababababababababababaDaDaDaDaDabababoanMnfdCdCnaomockQkQonkQkQoedPoodPdPopkQabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixixjYjZjZjZjZjZlLkjlMjZlZmamamamambkIkIkIkIkIkIlwlRininininababababababababababababjIjIjIjIjIjIjIababababababababababababababababababababababababababababababababababoanMotouovowdPocnxnxnxnxnxoedPoxdPdPlekQabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixixjZmkkjkjmljZlLkjlMjZmmmnkplOkqinmolalalakIkIlwmpinmqmrininababababababababababababababababababababababababababababababababababababababababababababababababababababoEnMovovoFkQdPdPdPdPdPdPdPdPdPdOoGoGnOkQabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixixjZmkkjmymzjZlLkjlMjZjZmAmBkbmCinmDmEmFmEmEkIkIkImGmHmHmIinababababababababababababababababababababababababababababababababababababababababababababababababababababgtnIotovsckQnzodododododododnzdOoKoLgcgwabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinmLixjZmkkjkjmMjZkjkjkjjZkjkjkjjZkYinmNmOmNmNmPkIkIkIinmQmRmIinabababababababababababababababababababababababababababababababababababababababababababababababababababababgtdCdCdCdCnakQnfnakQnfnakQnfoSdCdCgwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixixjZmkkjkjkjmTkjkjkjmUkjkjkjjZkzininlxmVmWmXinmYmYinininininabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixixjZmkkjkjkjnkkjkjkjnlkjkjnmjZnnmCininininininnononpnqnrnsinabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixjYjZjZjZjZjZjZnEkjkjjZjZjZjZjZjZkbnFnFnFnGmCinnHnHnHnHnHnHinabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixjZnPnPnQnRnSjZnTkjkjjZnUnVnWnXnYjZixiyixixiAkMnHnHnHnHnHnZinabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixjZkjkjkjmykjohkjkjkjoikjmykjmyojjZixjgiziyjginokokokokokolinabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixjZoqkjkjkjkjorkjkjkjoskjkjkjkjkjjZixixixizkzininininininininabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixjZoqkjkjoysdjZoAoBoAjZoCoDkjkjkjjZixizixjgkzinababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixjZkjkjkjjZjZjZoHoIkjjZjZjZkjkjkjjZixixiyixkzinababababababababababababababababababababababababababababababababababababababababababababababababababoVoVoVoVoVoVoVoVoWoVoVoVoVoVoVoVoVabababababababababoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixjZoMoNoOjZixjZoPoPoPjZixjZknoQoRjZixixixixkzinababababababababababababababababababababababababababababababababababababababababababababababababababoVoYoZoZoZoZoZoYoYoYoZoZoZoZoZoYoVabababababababababoXpapbpcpdpdpbpepfpgphpipjpkpjpjpjploXabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixjZoPoPoPjZixkVoTgIoUkXixjZoPoPoPjZixixixixkzinababababababababababababababababababababababababababababababababababababababababababababababababababpmoYoYoYpnoYoYoYoYoYoYoYpnoYoYoYpmabababababababababoXpapbpbpbpbpbpopipipipppjpjpjpqpjpjoXabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixkVoTgIoUkXixixixixixixixkVoTgIoUkXixixixixkzinababababababababababababababababababababababababababababababababababababababababababababababababababoVoYoZoZoZoZoZoYoYoYoZoZoZoZoZoYoVabababababababababoXpapbprpapsptpupipipipipjpjpvpjpwpkoXabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinixixixixixixixixixixixixixixixixixixixixixixkzinababababababababababababababababababababababababababababababababababababababababababababababababababoVpxpypypypypypypypypypypypypypzoVabababababababababoXpApipppppppppppipipipipjpjpjpBpjpjoXabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababinininininininininininininininininininininininininababababababababababababababababababababababababababababababababababababababababababpCpCpCpCpCpCpCpCpCpDpEpEpEpEpEpEpEpEpEpEpEpEpEpDpCpCpCpCpCpCpCpCpCaboXpFpipipipipipipipipipipGpjpjpjpjpjoXabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababpCpHpIpJpJpJpJpJpKpLpEpEpEpEpEpEpEpEpEpEpEpEpEpMpKpNpNpNpNpNpIpOpCaboXpFpipipipipipipipipppipGpPpPpPpQpPoXabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababpCpHpIpJpRpJpRpJpKpLpEpEpEpEpEpEpEpEpEpEpEpEpEpMpKpNpSpNpSpNpIpOpCaboXpTpipipipipipipipppUpppGpVpVpVpVpVoXabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababpCpHpIpJpJpWpJpJpKpLpEpEpEpEpEpXpYpXpEpEpEpEpEpMpKpNpNpZpNpNpIpOpCaboXoXqaqbqbqcoXoXoXoXoXoXoXoXoXoXoXoXoXabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab @@ -1111,3 +1196,4 @@ abababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab "} + diff --git a/_maps/map_files/Efficiencystation/z7.dmm b/_maps/map_files/Efficiencystation/z7.dmm index 31afa30770f..dc4dab951db 100644 --- a/_maps/map_files/Efficiencystation/z7.dmm +++ b/_maps/map_files/Efficiencystation/z7.dmm @@ -581,7 +581,7 @@ "li" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/spacecontent/a5{name = "Syndicate Scouting Ship"}) "lj" = (/turf/simulated/wall/r_wall,/area/turret_protected/tcomsat{name = "\improper Syndicate Mini Base"}) "lk" = (/obj/machinery/power/port_gen/pacman/super,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/turret_protected/tcomsat{name = "\improper Syndicate Mini Base"}) -"ll" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/antitoxin,/obj/item/weapon/reagent_containers/syringe,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/turret_protected/tcomsat{name = "\improper Syndicate Mini Base"}) +"ll" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/charcoal,/obj/item/weapon/reagent_containers/syringe,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/turret_protected/tcomsat{name = "\improper Syndicate Mini Base"}) "lm" = (/obj/structure/table,/obj/item/stack/sheet/mineral/uranium{amount = 10},/obj/item/weapon/wrench,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 5},/area/turret_protected/tcomsat{name = "\improper Syndicate Mini Base"}) "ln" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/space/syndicate,/obj/item/clothing/mask/gas,/obj/item/clothing/head/helmet/space/syndicate,/obj/item/weapon/pickaxe,/turf/simulated/floor/plating{tag = "icon-warnplatecorner (NORTH)"; icon_state = "warnplatecorner"; dir = 1},/area/turret_protected/tcomsat{name = "\improper Syndicate Mini Base"}) "lo" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/structure/sign/vacuum{pixel_y = 32},/turf/simulated/floor/plating{tag = "icon-warnplatecorner"; icon_state = "warnplatecorner"; dir = 2},/area/turret_protected/tcomsat{name = "\improper Syndicate Mini Base"}) @@ -1124,3 +1124,4 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} + diff --git a/_maps/map_files/MiniStation/MiniStation.dmm b/_maps/map_files/MiniStation/MiniStation.dmm index 8254b0caa87..2deb6a9ba0c 100644 --- a/_maps/map_files/MiniStation/MiniStation.dmm +++ b/_maps/map_files/MiniStation/MiniStation.dmm @@ -573,7 +573,7 @@ "la" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/device/paicard,/obj/item/weapon/coin/silver,/obj/item/weapon/pen,/obj/machinery/light,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plasteel{icon_state = "neutral"},/area/hallway/primary/central) "lb" = (/obj/machinery/bookbinder,/turf/simulated/floor/plasteel{icon_state = "neutral"},/area/hallway/primary/central) "lc" = (/obj/machinery/libraryscanner,/turf/simulated/floor/plasteel{icon_state = "neutral"},/area/hallway/primary/central) -"ld" = (/obj/structure/table/wood,/obj/machinery/librarycomp{pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 6},/area/hallway/primary/central) +"ld" = (/obj/structure/table/wood,/obj/machinery/computer/libraryconsole{pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 6},/area/hallway/primary/central) "le" = (/obj/machinery/door/airlock/research{name = "Toxins Lab"; req_access_txt = "7"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "lf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "lg" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -1000,7 +1000,7 @@ "tl" = (/obj/structure/table,/obj/machinery/door/window/southleft{layer = 3.1},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "tm" = (/obj/structure/table,/obj/machinery/door/window/southright{layer = 3.1},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "tn" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{dir = 2; name = "Chemistry Desk"; req_access_txt = "33"},/obj/item/clothing/glasses/science,/turf/simulated/floor/plating,/area/medical/medbay) -"to" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/pill_bottle/inaprovaline{pixel_x = 5; pixel_y = -2},/obj/item/weapon/storage/pill_bottle/inaprovaline{pixel_x = 5; pixel_y = -2},/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) +"to" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/pill_bottle/epinephrine{pixel_x = 5; pixel_y = -2},/obj/item/weapon/storage/pill_bottle/epinephrine{pixel_x = 5; pixel_y = -2},/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "tp" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/obj/item/device/radio/headset/headset_med,/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; listening = 1; name = "Common Channel"; pixel_y = 25},/obj/machinery/camera/autoname,/turf/simulated/floor/plasteel{tag = "icon-whiteyellowcorner"; icon_state = "whiteyellowcorner"; dir = 2},/area/medical/medbay) "tq" = (/obj/machinery/smartfridge/chemistry,/turf/simulated/wall,/area/medical/medbay) "tr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{tag = "icon-whiteyellowcorner (WEST)"; icon_state = "whiteyellowcorner"; dir = 8},/area/medical/medbay) @@ -1246,7 +1246,7 @@ "xX" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light/small,/obj/machinery/processor,/turf/simulated/floor/wood,/area/crew_quarters/bar) "xY" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/wood,/area/crew_quarters/bar) "xZ" = (/obj/structure/table,/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) -"ya" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline{pixel_x = 7; pixel_y = -3},/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = -4; pixel_y = -3},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 4; pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 5; pixel_y = -2},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) +"ya" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 7; pixel_y = -3},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -4; pixel_y = -3},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/glass/bottle/morphine,/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 4; pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 5; pixel_y = -2},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "yb" = (/obj/structure/table,/obj/machinery/light,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/tie/stethoscope,/obj/item/weapon/reagent_containers/hypospray,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "yc" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_se"; name = "southeast of station"; turf_type = /turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"}; width = 18},/turf/space,/area/space) "yd" = (/obj/structure/rack,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/plating,/area/hallway/primary/central) diff --git a/_maps/map_files/MiniStation/z2.dmm b/_maps/map_files/MiniStation/z2.dmm index 88906d58cfe..c11ec3c6360 100644 --- a/_maps/map_files/MiniStation/z2.dmm +++ b/_maps/map_files/MiniStation/z2.dmm @@ -337,7 +337,7 @@ "kn" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/obj/effect/decal/cleanable/cobweb,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "ko" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "kp" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) -"kq" = (/obj/machinery/librarycomp,/obj/structure/table/wood,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) +"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) diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm index 12e465383f8..9ef53c9a112 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -37,18 +37,18 @@ "aaK" = (/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "aaL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{icon_state = "barber"},/area/security/prison) "aaM" = (/obj/machinery/washing_machine,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{icon_state = "barber"},/area/security/prison) -"aaN" = (/obj/structure/closet/secure_closet/injection,/turf/simulated/floor/plasteel,/area/security/transfer) -"aaO" = (/obj/structure/table,/obj/item/device/electropack,/turf/simulated/floor/plasteel,/area/security/transfer) -"aaP" = (/obj/structure/table,/obj/item/weapon/screwdriver,/obj/item/weapon/wrench,/obj/item/clothing/head/helmet,/obj/item/device/assembly/signaler,/turf/simulated/floor/plasteel,/area/security/transfer) -"aaQ" = (/obj/machinery/librarycomp{pixel_y = 0},/obj/structure/table,/obj/machinery/newscaster{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) +"aaN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/wall,/area/security/transfer) +"aaO" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (NORTH)"; dir = 1},/turf/simulated/wall,/area/security/transfer) +"aaP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/security/transfer) +"aaQ" = (/obj/machinery/computer/libraryconsole/bookmanagement{pixel_y = 0},/obj/structure/table,/obj/machinery/newscaster{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "aaR" = (/obj/structure/table,/obj/item/weapon/storage/pill_bottle/dice,/turf/simulated/floor/plasteel,/area/security/prison) "aaS" = (/obj/structure/table,/obj/item/weapon/pen,/turf/simulated/floor/plasteel,/area/security/prison) "aaT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "barber"},/area/security/prison) "aaU" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/simulated/floor/plasteel{icon_state = "barber"},/area/security/prison) "aaV" = (/obj/structure/lattice,/obj/structure/sign/securearea{pixel_y = -32},/turf/space,/area/space) -"aaW" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel,/area/security/transfer) -"aaX" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel,/area/security/transfer) -"aaY" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel,/area/security/transfer) +"aaW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/wall/r_wall,/area/security/transfer) +"aaX" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{tag = "icon-warndark (NORTHWEST)"; icon_state = "warndark"; dir = 9},/area/security/transfer) +"aaY" = (/obj/machinery/door/poddoor{id = "executionspaceblast"; name = "blast door"},/turf/simulated/floor/plating,/area/security/transfer) "aaZ" = (/obj/machinery/computer/arcade,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "aba" = (/obj/structure/table,/obj/item/toy/cards/deck,/turf/simulated/floor/plasteel,/area/security/prison) "abb" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor/plasteel,/area/security/prison) @@ -56,8 +56,8 @@ "abd" = (/obj/machinery/washing_machine,/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{icon_state = "barber"},/area/security/prison) "abe" = (/obj/structure/grille,/obj/structure/lattice,/obj/structure/lattice,/turf/space,/area/space) "abf" = (/obj/structure/grille,/obj/structure/lattice,/turf/space,/area/space) -"abg" = (/turf/simulated/floor/plasteel,/area/security/transfer) -"abh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/security/transfer) +"abg" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{tag = "icon-warndark (NORTHEAST)"; icon_state = "warndark"; dir = 5},/area/security/transfer) +"abh" = (/obj/machinery/light/small{dir = 1},/obj/machinery/flasher{id = "executionflash"; pixel_x = 0; pixel_y = 25},/turf/simulated/floor/plasteel{tag = "icon-warndark (NORTH)"; icon_state = "warndark"; dir = 1},/area/security/transfer) "abi" = (/obj/machinery/vending/sustenance,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "abj" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "abk" = (/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison) @@ -67,8 +67,8 @@ "abo" = (/turf/simulated/wall,/area/security/hos) "abp" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/hos) "abq" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/structure/lattice,/turf/space,/area/space) -"abr" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plasteel,/area/security/transfer) -"abs" = (/obj/machinery/door/window/brigdoor{name = "Transfer Room"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/security/transfer) +"abr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/security/transfer) +"abs" = (/turf/simulated/floor/plasteel{tag = "icon-warndark (WEST)"; icon_state = "warndark"; dir = 8},/area/security/transfer) "abt" = (/turf/simulated/wall,/area/space) "abu" = (/obj/machinery/vending/cola,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "abv" = (/obj/machinery/light,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) @@ -89,11 +89,11 @@ "abK" = (/obj/structure/closet/secure_closet/hos,/turf/simulated/floor/fancy/carpet,/area/security/hos) "abL" = (/obj/machinery/alarm{pixel_y = 23},/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = 6; pixel_y = 6},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = -4; pixel_y = 3},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass,/turf/simulated/floor/fancy/carpet,/area/security/hos) "abM" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/tracker,/turf/simulated/floor/plating/airless,/area/solar/auxstarboard) -"abN" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plasteel,/area/security/transfer) -"abO" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/security/transfer) -"abP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel,/area/security/transfer) -"abQ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{aiControlDisabled = 0; icon_state = "door_closed"; id_tag = null; locked = 0; name = "Prisoner Transfer Centre"; req_access = null; req_access_txt = "2"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/security/transfer) -"abR" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plating,/area/security/prison) +"abN" = (/obj/machinery/sparker{dir = 2; id = "executionburn"; pixel_x = 25},/turf/simulated/floor/plasteel{tag = "icon-warndark (EAST)"; icon_state = "warndark"; dir = 4},/area/security/transfer) +"abO" = (/obj/structure/stool/bed,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/transfer) +"abP" = (/turf/simulated/wall,/area/ai_monitored/security/armory) +"abQ" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{tag = "icon-warndark (SOUTHWEST)"; icon_state = "warndark"; dir = 10},/area/security/transfer) +"abR" = (/obj/machinery/atmospherics/unary/outlet_injector,/turf/simulated/floor/plasteel{tag = "icon-warndark (SOUTHEAST)"; icon_state = "warndark"; dir = 6},/area/security/transfer) "abS" = (/turf/simulated/wall,/area/security/prison) "abT" = (/obj/machinery/door/poddoor/preopen{id = "permacell3"; name = "cell blast door"},/obj/machinery/door/airlock/glass{id_tag = "permabolt3"; name = "Cell 3"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "abU" = (/obj/machinery/door/poddoor/preopen{id = "permacell2"; name = "cell blast door"},/obj/machinery/door/airlock/glass{id_tag = "permabolt2"; name = "Cell 2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) @@ -109,9 +109,9 @@ "ace" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxstarboard) "acf" = (/obj/structure/lattice,/obj/item/stack/cable_coil/random,/turf/space,/area/space) "acg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/transfer) -"ach" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/security/transfer) -"aci" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plasteel,/area/security/transfer) -"acj" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/security/prison) +"ach" = (/turf/simulated/floor/plasteel{tag = "icon-warndark"; icon_state = "warndark"; dir = 2},/area/security/transfer) +"aci" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor/preopen{id = "executionfireblast"; layer = 2.9; name = "blast door"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/security/transfer) +"acj" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/door/poddoor/preopen{id = "executionfireblast"; layer = 2.9; name = "blast door"},/obj/machinery/atmospherics/pipe/simple/general/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 2; icon_state = "rightsecure"; name = "Transfer Room"; req_access_txt = "2"},/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 1; icon_state = "rightsecure"; name = "Transfer Room"; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/security/transfer) "ack" = (/obj/structure/stool/bed,/obj/machinery/camera{c_tag = "Prison Cell 3"; network = list("SS13","Prison")},/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"},/area/security/prison) "acl" = (/obj/structure/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/door_control{id = "permabolt3"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "acm" = (/obj/structure/stool/bed,/obj/machinery/camera{c_tag = "Prison Cell 2"; network = list("SS13","Prison")},/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"},/area/security/prison) @@ -131,10 +131,10 @@ "acA" = (/turf/simulated/wall,/area/maintenance/fsmaint) "acB" = (/obj/machinery/door/airlock/external{name = "Security External Airlock"; req_access_txt = "63; 13"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "acC" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/tracker,/turf/simulated/floor/plating/airless,/area/solar/auxport) -"acD" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/power/apc{dir = 8; name = "Prisoner Transfer Centre"; pixel_x = -30},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel,/area/security/transfer) -"acE" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/security/transfer) -"acF" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plasteel,/area/security/transfer) -"acG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/security/prison) +"acD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "executionfireblast"; layer = 2.9; name = "blast door"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/security/transfer) +"acE" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/turf/simulated/wall/r_wall,/area/security/transfer) +"acF" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/circular_saw,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/surgical_drapes,/obj/item/weapon/razor,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/transfer) +"acG" = (/obj/machinery/flasher_button{id = "executionflash"; pixel_x = 24; pixel_y = 5},/obj/machinery/door_control{id = "executionspaceblast"; name = "Vent to Space"; pixel_x = 25; pixel_y = -5; req_access_txt = "7"},/obj/machinery/atmospherics/pipe/simple/general/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/transfer) "acH" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/machinery/flasher{id = "PCell 3"; pixel_x = -28},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "acI" = (/obj/structure/table,/obj/item/weapon/paper,/obj/item/weapon/pen,/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "acJ" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/machinery/flasher{id = "PCell 2"; pixel_x = -28},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) @@ -157,8 +157,8 @@ "ada" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxstarboard) "adb" = (/obj/structure/grille,/turf/space,/area/space) "adc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxport) -"add" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/security/transfer) -"ade" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{icon_state = "warnplate"},/area/security/prison) +"add" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/device/taperecorder{pixel_x = -3; pixel_y = 0},/obj/item/device/flash/handheld,/obj/item/weapon/reagent_containers/spray/pepper,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/transfer) +"ade" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent,/obj/machinery/atmospherics/unary/portables_connector/visible,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/security/transfer) "adf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/security/prison) "adg" = (/obj/machinery/door/airlock/glass_security{name = "Long-Term Cell 3"; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "adh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/security/prison) @@ -183,24 +183,24 @@ "adA" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxstarboard) "adB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxstarboard) "adC" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxstarboard) -"adD" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/prison) -"adE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/security/prison) -"adF" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/prison) -"adG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/prison) -"adH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/prison) -"adI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (NORTH)"; dir = 1},/turf/simulated/floor/plasteel,/area/security/prison) -"adJ" = (/obj/machinery/door_control{id = "permacell3"; name = "Cell 3 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/flasher_button{id = "PCell 3"; pixel_x = 6; pixel_y = 24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 4},/area/security/prison) -"adK" = (/obj/machinery/light{dir = 1},/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/obj/machinery/camera{c_tag = "Prison Hallway West"; network = list("SS13","Prison")},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/prison) -"adL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/security/prison) -"adM" = (/obj/machinery/door_control{id = "permacell2"; name = "Cell 2 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/flasher_button{id = "PCell 2"; pixel_x = 6; pixel_y = 24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 4},/area/security/prison) -"adN" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/prison) -"adO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/security/prison) +"adD" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/transfer) +"adE" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/machinery/atmospherics/unary/portables_connector/visible,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/security/transfer) +"adF" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/ignition_switch{id = "executionburn"; pixel_x = 24; pixel_y = 5},/obj/machinery/door_control{id = "executionfireblast"; name = "Transfer Area Lockdown"; pixel_x = 25; pixel_y = -5; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/general/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/transfer) +"adG" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/transfer) +"adH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/prison) +"adI" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/wall,/area/security/transfer) +"adJ" = (/obj/machinery/door_control{id = "permacell3"; name = "Cell 3 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/flasher_button{id = "PCell 3"; pixel_x = 6; pixel_y = 24},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 4},/area/security/prison) +"adK" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (NORTH)"; dir = 1},/turf/simulated/floor/plasteel,/area/security/prison) +"adL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/prison) +"adM" = (/obj/machinery/light{dir = 1},/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/prison) +"adN" = (/obj/machinery/door_control{id = "permacell2"; name = "Cell 2 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/flasher_button{id = "PCell 2"; pixel_x = 6; pixel_y = 24},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 4},/area/security/prison) +"adO" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/security/prison) "adP" = (/obj/machinery/door_control{id = "permacell1"; name = "Cell 1 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/flasher_button{id = "PCell 1"; pixel_x = 6; pixel_y = 24},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 4},/area/security/prison) "adQ" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/light{dir = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/prison) "adR" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/power/apc{dir = 4; name = "Prison Wing APC"; pixel_x = 24; pixel_y = 0; step_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 5},/area/security/prison) "adS" = (/obj/structure/closet/secure_closet{name = "contraband locker"; req_access_txt = "3"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory) "adT" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/ai_monitored/security/armory) -"adU" = (/obj/structure/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/item/clothing/suit/armor/laserproof,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory) +"adU" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching Prison Wing holding areas."; name = "Prison Monitor"; network = list("Prison"); pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/camera{c_tag = "Prison Hallway"; network = list("SS13","Prison")},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/prison) "adV" = (/obj/structure/rack,/obj/item/weapon/storage/box/chemimp{pixel_x = 4; pixel_y = 3},/obj/item/weapon/storage/box/trackimp,/obj/item/weapon/storage/lockbox/loyalty,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory) "adW" = (/obj/structure/rack,/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs{pixel_x = -2; pixel_y = -2},/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory) "adX" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/riot{pixel_x = 3; pixel_y = 3},/obj/item/weapon/gun/projectile/shotgun/riot,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory) @@ -221,15 +221,15 @@ "aem" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/auxstarboard) "aen" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/auxport) "aeo" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxport) -"aep" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/prison) -"aeq" = (/obj/machinery/light,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 10},/area/security/prison) -"aer" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "redcorner"},/area/security/prison) -"aes" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/security/prison) -"aet" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel,/area/security/prison) -"aeu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/security/prison) -"aev" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/simulated/floor/plasteel,/area/security/prison) -"aew" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel,/area/security/prison) -"aex" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera{c_tag = "Prison Hallway East"; dir = 1; network = list("SS13","Prison"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/security/prison) +"aep" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/security/prison) +"aeq" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/security/transfer) +"aer" = (/obj/structure/rack,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/weapon/tank/anesthetic{pixel_x = -3; pixel_y = 1},/obj/item/weapon/tank/oxygen/red{pixel_x = 3},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/security/transfer) +"aes" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/turf/simulated/floor/plating,/area/security/transfer) +"aet" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/hidden,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/transfer) +"aeu" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/transfer) +"aev" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/prison) +"aew" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{aiControlDisabled = 0; icon_state = "door_closed"; id_tag = null; locked = 0; name = "Prisoner Transfer Centre"; req_access = null; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/transfer) +"aex" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/security/prison) "aey" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel,/area/security/prison) "aez" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/prison) "aeA" = (/obj/machinery/flasher/portable,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory) @@ -266,12 +266,12 @@ "aff" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxport) "afg" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxport) "afh" = (/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/turf/space,/area/space) -"afi" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs,/turf/simulated/floor/plasteel,/area/security/prison) +"afi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/security/prison) "afj" = (/obj/structure/extinguisher_cabinet{pixel_x = 1; pixel_y = -27},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/security/prison) "afk" = (/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/security/prison) "afl" = (/obj/machinery/flasher_button{id = "insaneflash"; pixel_y = -26},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/security/prison) "afm" = (/obj/structure/table,/obj/item/device/electropack,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/security/prison) -"afn" = (/obj/structure/table,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/weapon/razor{pixel_x = -6},/obj/item/stack/medical/ointment{pixel_y = 4},/obj/item/stack/medical/bruise_pack{pixel_x = 10; pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 5; pixel_y = -2},/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/security/prison) +"afn" = (/obj/structure/rack,/obj/item/weapon/storage/box/firingpins{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/firingpins,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/ai_monitored/security/armory) "afo" = (/obj/structure/table,/obj/item/device/assembly/signaler,/turf/simulated/floor/plasteel{dir = 2; icon_state = "escape"},/area/security/prison) "afp" = (/obj/structure/closet/secure_closet/brig{anchored = 1},/turf/simulated/floor/plasteel{icon_state = "red"},/area/security/prison) "afq" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/security/prison) @@ -418,8 +418,8 @@ "aib" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aic" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aid" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"aie" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/prison) -"aif" = (/obj/machinery/camera{c_tag = "Prison Sanitatium"; dir = 1; network = list("SS13","Prison"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/prison) +"aie" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bottle/morphine,/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/prison) +"aif" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/security/prison) "aig" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/syringe,/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/prison) "aih" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) "aii" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) @@ -1523,7 +1523,7 @@ "aDo" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/food/snacks/grown/wheat,/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon,/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon,/obj/item/weapon/reagent_containers/food/snacks/grown/watermelon,/obj/item/weapon/reagent_containers/food/snacks/grown/citrus/orange,/obj/item/weapon/reagent_containers/food/snacks/grown/grapes,/obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod,/turf/simulated/floor/plasteel{icon_state = "green"; dir = 4},/area/hallway/secondary/construction{name = "\improper Garden"}) "aDp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) "aDq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aDr" = (/obj/machinery/door/airlock{name = "Garden"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/construction{name = "\improper Garden"}) +"aDr" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/security/prison) "aDs" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (NORTH)"; dir = 1},/turf/simulated/floor/plasteel,/area/storage/primary) "aDt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/turf/simulated/floor/plasteel,/area/storage/primary) "aDu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/storage/primary) @@ -2001,7 +2001,7 @@ "aMy" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/wood,/area/library) "aMz" = (/obj/machinery/photocopier,/turf/simulated/floor/wood,/area/library) "aMA" = (/obj/machinery/door/airlock/glass{name = "Chapel Office"; req_access_txt = "22"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office) -"aMB" = (/obj/structure/flora/tree/pine/xmas,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) +"aMB" = (/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 5},/area/crew_quarters/hor) "aMC" = (/obj/machinery/door/morgue{name = "Confession Booth (Chaplain)"; req_access_txt = "22"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "aMD" = (/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; pixel_x = 25},/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "aME" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/hallway/secondary/exit) @@ -2057,7 +2057,7 @@ "aNC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/fancy/carpet,/area/library) "aND" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/fancy/carpet,/area/library) "aNE" = (/obj/structure/bookcase{name = "bookcase (Reference)"},/turf/simulated/floor/wood,/area/library) -"aNF" = (/obj/machinery/librarypubliccomp,/obj/structure/table/wood,/turf/simulated/floor/wood,/area/library) +"aNF" = (/turf/simulated/floor/plasteel,/area/ai_monitored/security/armory) "aNG" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/simulated/floor/plasteel{icon_state = "cult"; dir = 2},/area/library) "aNH" = (/obj/structure/table/wood,/obj/item/device/taperecorder{pixel_y = 0},/obj/item/device/camera,/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "cult"; dir = 2},/area/library) "aNI" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen/invisible,/turf/simulated/floor/plasteel{icon_state = "cult"; dir = 2},/area/library) @@ -2098,12 +2098,12 @@ "aOr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/hallway/primary/port) "aOs" = (/turf/simulated/wall,/area/storage/tools) "aOt" = (/turf/simulated/wall/r_wall,/area/bridge) -"aOu" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/bridge) -"aOv" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/bridge) -"aOw" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/status_display{density = 0; layer = 4},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/bridge) -"aOx" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/bridge) -"aOy" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/status_display{density = 0; layer = 4},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/bridge) -"aOz" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/bridge) +"aOu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/security/prison) +"aOv" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/security/prison) +"aOw" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 10},/area/security/transfer) +"aOx" = (/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/transfer) +"aOy" = (/obj/machinery/atmospherics/binary/pump{dir = 4; layer = 2.4},/obj/machinery/door/window/southleft{base_state = "right"; dir = 4; icon_state = "right"; name = "Armory"; req_access_txt = "2"},/turf/simulated/floor/plating{icon_state = "warnplate"},/area/security/transfer) +"aOz" = (/obj/machinery/light_switch{pixel_x = 25; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/transfer) "aOA" = (/obj/structure/table,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -31},/obj/item/clothing/head/cakehat,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "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) @@ -2239,7 +2239,6 @@ "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/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aRf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/flora/tree/pine/xmas,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "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{dir = 4},/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/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) @@ -2265,7 +2264,7 @@ "aRC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor/plasteel,/area/hydroponics) "aRD" = (/obj/machinery/door/window/northright{base_state = "right"; dir = 8; icon_state = "right"; name = "Library Desk Door"; req_access_txt = "37"},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/wood,/area/library) "aRE" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/wood,/area/library) -"aRF" = (/obj/structure/table/wood,/obj/machinery/librarycomp{pixel_y = 0},/obj/machinery/light_switch{pixel_y = 28},/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/structure/stool,/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "chapel"},/area/chapel/main) "aRI" = (/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "chapel"},/area/chapel/main) @@ -3069,7 +3068,7 @@ "bha" = (/obj/item/device/radio/intercom{dir = 8; freerange = 1; name = "Station Intercom (Command)"; pixel_x = -28},/obj/machinery/suit_storage_unit/captain,/turf/simulated/floor/wood,/area/crew_quarters/captain) "bhb" = (/obj/machinery/computer/card,/obj/item/weapon/card/id/captains_spare,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/wood,/area/crew_quarters/captain) "bhc" = (/obj/structure/table/wood,/obj/machinery/recharger,/obj/item/weapon/melee/chainofcommand,/turf/simulated/floor/wood,/area/crew_quarters/captain) -"bhd" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = 4; pixel_y = 4},/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = 4; pixel_y = 4},/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/pill_bottle/inaprovaline{pixel_x = 5; pixel_y = -2},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/machinery/requests_console{department = "Chemistry"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) +"bhd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/ai_monitored/security/armory) "bhe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) "bhf" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) "bhg" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) @@ -3150,7 +3149,7 @@ "biD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) "biE" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/obj/machinery/chem_heater,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) "biF" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) -"biG" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/storage/pill_bottle/inaprovaline{pixel_x = 5; pixel_y = -2},/obj/item/weapon/storage/pill_bottle/inaprovaline{pixel_x = 5; pixel_y = -2},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteyellow"},/area/medical/chemistry) +"biG" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/ai_monitored/security/armory) "biH" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/medical/chemistry) "biI" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "biJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitebluecorner"},/area/medical/medbay) @@ -3474,7 +3473,7 @@ "boP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "boQ" = (/obj/structure/table/glass,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module{pixel_x = 2; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module,/obj/machinery/light_switch{pixel_x = 0; pixel_y = -23},/obj/machinery/power/apc{dir = 4; name = "Research Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "boR" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/asmaint2) -"boS" = (/turf/simulated/wall/r_wall,/area/toxins/telesci) +"boS" = (/obj/structure/rack,/obj/item/weapon/gun/energy/ionrifle{pin = /obj/item/device/firing_pin},/obj/item/clothing/suit/armor/laserproof,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory) "boT" = (/obj/structure/closet,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "boU" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "boV" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/poddoor{id = "QMLoaddoor2"; name = "supply dock loading door"},/turf/simulated/floor/plating,/area/quartermaster/storage) @@ -3547,11 +3546,11 @@ "bqk" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/shutters/preopen{id = "rnd2"; name = "research lab shutters"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "bql" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/heavy,/obj/machinery/door/poddoor/shutters/preopen{id = "rnd2"; name = "research lab shutters"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "bqm" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "rnd2"; name = "research lab shutters"},/obj/structure/window/fulltile,/turf/simulated/floor/plating,/area/toxins/lab) -"bqn" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 0; pixel_y = 6},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitecorner"},/area/toxins/telesci) -"bqo" = (/obj/structure/table,/obj/item/weapon/pen,/obj/machinery/camera{c_tag = "Telescience Lab"; dir = 2; network = list("SS13","RD")},/obj/item/weapon/hand_labeler,/obj/item/stack/packageWrap,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/toxins/telesci) -"bqp" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/item/device/radio/off,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/toxins/telesci) -"bqq" = (/obj/structure/closet/l3closet/scientist{pixel_x = -2},/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/toxins/telesci) -"bqr" = (/obj/structure/closet/emcloset{pixel_x = -2},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitecorner"},/area/toxins/telesci) +"bqn" = (/obj/structure/table,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/weapon/razor{pixel_x = -6},/obj/item/stack/medical/ointment{pixel_y = 4},/obj/item/stack/medical/bruise_pack{pixel_x = 10; pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 5; pixel_y = -2},/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/security/prison) +"bqo" = (/obj/machinery/computer/libraryconsole,/obj/structure/table/wood,/turf/simulated/floor/wood,/area/library) +"bqp" = (/obj/structure/table/wood,/obj/machinery/computer/libraryconsole/bookmanagement{pixel_y = 0},/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor/wood,/area/library) +"bqq" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/machinery/requests_console{department = "Chemistry"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) +"bqr" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteyellow"},/area/medical/chemistry) "bqs" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/sign/securearea{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bqt" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bqu" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 6},/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -3633,13 +3632,13 @@ "brS" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "brT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 6; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "brU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"brV" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/fulltile,/turf/simulated/floor/plating,/area/toxins/telesci) -"brW" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"brX" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"brY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"brZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"bsa" = (/obj/structure/disposalpipe/segment{dir = 4},/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/plasteel{icon_state = "white"},/area/toxins/telesci) -"bsb" = (/obj/machinery/door/airlock/maintenance{name = "Telescience Maintenance"; req_access_txt = "7"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/toxins/telesci) +"brV" = (/turf/simulated/wall/r_wall,/area/toxins/explab) +"brW" = (/obj/structure/table,/obj/item/weapon/pen,/obj/machinery/camera{c_tag = "Experimentor Lab"; dir = 2; network = list("SS13","RD")},/obj/item/weapon/hand_labeler,/obj/item/stack/packageWrap,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/toxins/explab) +"brX" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 0; pixel_y = 6},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitecorner"},/area/toxins/explab) +"brY" = (/obj/structure/closet/l3closet/scientist{pixel_x = -2},/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/toxins/explab) +"brZ" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/item/device/radio/off,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/toxins/explab) +"bsa" = (/obj/structure/closet/emcloset{pixel_x = -2},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitecorner"},/area/toxins/explab) +"bsb" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/fulltile,/obj/machinery/door/firedoor/heavy,/turf/simulated/floor/plating,/area/toxins/explab) "bsc" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bsd" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 2},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bse" = (/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -3696,13 +3695,13 @@ "btd" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bte" = (/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "btf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"btg" = (/obj/machinery/door/airlock/research{name = "Telescience Lab"; req_access_txt = "7"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"bth" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"bti" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"btj" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"btk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"btl" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"btm" = (/obj/machinery/power/apc{dir = 4; name = "Telescience Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) +"btg" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"bth" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"bti" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"btj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"btk" = (/obj/machinery/door/airlock/maintenance{name = "Experimentation Lab Maintenance"; req_access_txt = "7"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/toxins/explab) +"btl" = (/obj/structure/disposalpipe/segment{dir = 4},/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/plasteel{icon_state = "white"},/area/toxins/explab) +"btm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/research{name = "Experimentation Lab"; req_access_txt = "7"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) "btn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bto" = (/obj/docking_port/stationary{dir = 8; dwidth = 5; height = 7; id = "supply_home"; name = "supply bay"; width = 12},/turf/space,/area/space) "btp" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "QMLoad"},/turf/simulated/floor/plasteel,/area/quartermaster/storage) @@ -3767,11 +3766,11 @@ "buw" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/turf/simulated/floor/plasteel{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "bux" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/crew_quarters/hor) "buy" = (/turf/simulated/wall,/area/crew_quarters/hor) -"buz" = (/obj/machinery/light_switch{pixel_x = -20; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"buA" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = -30},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"buB" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"buC" = (/obj/structure/stool/bed/chair/office/light,/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) -"buD" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/telesci) +"buz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"buA" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"buB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"buC" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"buD" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) "buE" = (/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "buF" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/poddoor{id = "QMLoaddoor"; name = "supply dock loading door"},/turf/simulated/floor/plating,/area/quartermaster/storage) "buG" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/floor/plating,/area/quartermaster/storage) @@ -3845,13 +3844,12 @@ "bvW" = (/obj/machinery/computer/aifixer,/obj/machinery/requests_console{announcementConsole = 1; department = "Research Director's Desk"; departmentType = 5; name = "Research Director RC"; pixel_x = -2; pixel_y = 30},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/hor) "bvX" = (/obj/structure/rack,/obj/item/weapon/circuitboard/aicore{pixel_x = -2; pixel_y = 4},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warnwhite"},/area/crew_quarters/hor) "bvY" = (/obj/machinery/ai_status_display{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 1},/area/crew_quarters/hor) -"bvZ" = (/obj/structure/flora/tree/festivus,/turf/simulated/floor/plasteel{icon_state = "warnwhite"; dir = 5},/area/crew_quarters/hor) -"bwa" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/telesci) -"bwb" = (/turf/simulated/wall,/area/toxins/telesci) -"bwc" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/book/manual/wiki/telescience{pixel_y = 8},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitecorner"},/area/toxins/telesci) -"bwd" = (/obj/machinery/computer/telescience,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 1},/area/toxins/telesci) -"bwe" = (/obj/structure/table,/obj/item/device/gps/science,/obj/item/device/gps/science,/obj/item/device/gps/science,/obj/item/device/gps/science,/obj/item/device/gps/science,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitecorner"},/area/toxins/telesci) -"bwf" = (/obj/machinery/door_control{id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = 25; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"},/area/toxins/telesci) +"bwa" = (/obj/machinery/power/apc{dir = 4; name = "Experimentation Lab APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"bwb" = (/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = -30},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"bwc" = (/obj/machinery/light_switch{pixel_x = -20; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"bwd" = (/obj/structure/stool/bed/chair/office/light,/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"bwe" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"bwf" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) "bwg" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bwh" = (/obj/machinery/atmospherics/unary/heat_reservoir/heater{dir = 8},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/unary/cold_sink/freezer,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bwi" = (/turf/simulated/wall,/area/quartermaster/qm) @@ -3906,8 +3904,8 @@ "bxf" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/crew_quarters/hor) "bxg" = (/obj/structure/lamarr,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/crew_quarters/hor) "bxh" = (/turf/simulated/wall/r_wall,/area/crew_quarters/hor) -"bxi" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "telelab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/engine,/area/toxins/telesci) -"bxj" = (/obj/machinery/door/poddoor/preopen{id = "telelab"; name = "test chamber blast door"},/turf/simulated/floor/engine,/area/toxins/telesci) +"bxi" = (/turf/simulated/wall,/area/toxins/explab) +"bxj" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/explab) "bxk" = (/obj/structure/table,/obj/item/weapon/cartridge/quartermaster{pixel_x = 6; pixel_y = 5},/obj/item/weapon/cartridge/quartermaster,/obj/item/weapon/cartridge/quartermaster{pixel_x = -4; pixel_y = 7},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/item/weapon/coin/silver,/turf/simulated/floor/plasteel{dir = 9; icon_state = "brown"},/area/quartermaster/qm) "bxl" = (/obj/machinery/power/apc{dir = 1; name = "Quartermaster APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plasteel{dir = 1; icon_state = "brown"},/area/quartermaster/qm) "bxm" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "brown"},/area/quartermaster/qm) @@ -3976,7 +3974,7 @@ "byx" = (/obj/structure/rack,/obj/item/device/taperecorder{pixel_x = -3},/obj/item/device/paicard{pixel_x = 4},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warnwhite"},/area/crew_quarters/hor) "byy" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"},/area/crew_quarters/hor) "byz" = (/turf/simulated/floor/plasteel{dir = 6; icon_state = "warnwhite"},/area/crew_quarters/hor) -"byA" = (/turf/simulated/floor/engine,/area/toxins/telesci) +"byA" = (/obj/machinery/computer/rdconsole/experiment,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 1},/area/toxins/explab) "byB" = (/obj/machinery/computer/supplycomp,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "brown"},/area/quartermaster/qm) "byC" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/quartermaster/qm) "byD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/quartermaster/qm) @@ -4030,8 +4028,8 @@ "bzz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/hor) "bzA" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/hor) "bzB" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/hor) -"bzC" = (/obj/item/device/radio/beacon,/turf/simulated/floor/engine,/area/toxins/telesci) -"bzD" = (/obj/machinery/telepad,/obj/effect/landmark{name = "blobstart"},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/engine,/area/toxins/telesci) +"bzC" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/book/manual/experimentor,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitecorner"},/area/toxins/explab) +"bzD" = (/obj/structure/closet/radiation,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitecorner"},/area/toxins/explab) "bzE" = (/obj/machinery/computer/security/mining,/obj/machinery/camera{c_tag = "Quartermaster's Office"; dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -35},/obj/machinery/status_display{density = 0; pixel_x = -32; pixel_y = 0; supply_display = 1},/turf/simulated/floor/plasteel{dir = 10; icon_state = "brown"},/area/quartermaster/qm) "bzF" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "brown"},/area/quartermaster/qm) "bzG" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/simulated/floor/plasteel{dir = 2; icon_state = "brown"},/area/quartermaster/qm) @@ -4101,7 +4099,7 @@ "bAS" = (/obj/structure/closet/secure_closet/RD,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/hor) "bAT" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/hor) "bAU" = (/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/hor) -"bAV" = (/obj/machinery/camera{c_tag = "Telescience Test Chamber"; dir = 1; network = list("SS13","RD")},/obj/machinery/light,/obj/structure/sign/nosmoking_2{pixel_y = -32},/turf/simulated/floor/engine,/area/toxins/telesci) +"bAV" = (/obj/machinery/door_control{id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = 25; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"},/area/toxins/explab) "bAW" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 5},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bAX" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/simulated/floor/plasteel,/area/quartermaster/miningdock) "bAY" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel,/area/quartermaster/miningdock) @@ -4341,7 +4339,7 @@ "bFy" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/structure/sign/nosmoking_2{pixel_x = -28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitebluecorner"},/area/medical/sleeper) "bFz" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/vending/wallmed1{pixel_x = 28; pixel_y = 0},/obj/machinery/camera{c_tag = "Medbay Recovery Room"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/sleeper) "bFA" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/hand_labeler,/obj/item/weapon/gun/syringe,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/sleeper) -"bFB" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline{pixel_x = 7; pixel_y = -3},/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = -4; pixel_y = -3},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 4; pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 5; pixel_y = -2},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/sleeper) +"bFB" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "telelab"; name = "test chamber blast door"},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/firedoor/heavy,/turf/simulated/floor/engine,/area/toxins/explab) "bFC" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/sleeper) "bFD" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/clothing/tie/stethoscope,/obj/machinery/vending/wallmed1{pixel_y = 28},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) "bFE" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay) @@ -4795,7 +4793,7 @@ "bOk" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) "bOl" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) "bOm" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/simulated/floor/plating,/area/toxins/misc_lab) -"bOn" = (/obj/machinery/door/airlock/research{name = "Testing Lab"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/misc_lab) +"bOn" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/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/transfer) "bOo" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/window/fulltile,/turf/simulated/floor/plating,/area/toxins/misc_lab) "bOp" = (/turf/simulated/wall,/area/toxins/misc_lab) "bOq" = (/obj/effect/spawner/lootdrop/maintenance,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -4810,7 +4808,7 @@ "bOz" = (/obj/machinery/door/airlock/engineering{name = "Construction Area"; req_access_txt = "32"},/turf/simulated/floor/plating,/area/construction) "bOA" = (/turf/simulated/floor/plasteel,/area/hallway/primary/aft) "bOB" = (/turf/simulated/floor/plasteel{icon_state = "caution"; dir = 5},/area/hallway/primary/aft) -"bOC" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "atmos"; name = "atmos blast door"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/atmos) +"bOC" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 10},/area/security/prison) "bOD" = (/obj/structure/dispenser{pixel_x = -1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/atmos) "bOE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel,/area/atmos) "bOF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/atmos) @@ -4868,7 +4866,7 @@ "bPF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/construction) "bPG" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "bPH" = (/turf/simulated/floor/plasteel{icon_state = "caution"; dir = 4},/area/hallway/primary/aft) -"bPI" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/heavy,/obj/machinery/door/window/northleft{dir = 4; icon_state = "left"; name = "Atmospherics Desk"; req_access_txt = "24"},/obj/machinery/door/poddoor/preopen{id = "atmos"; name = "atmos blast door"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/atmos) +"bPI" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 1},/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/transfer) "bPJ" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark/start{name = "Atmospheric Technician"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/atmos) "bPK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/atmos) "bPL" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Atmospheric Technician"},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor/plasteel,/area/atmos) @@ -5716,7 +5714,7 @@ "cfV" = (/obj/machinery/power/apc{cell_type = 15000; dir = 1; name = "Engineering APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/engine/engineering) "cfW" = (/obj/machinery/light{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/engine/engineering) "cfX" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/engine/engineering) -"cfY" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/table,/obj/item/weapon/reagent_containers/pill/antitox,/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/engine/engineering) +"cfY" = (/obj/machinery/door/poddoor/preopen{id = "telelab"; name = "test chamber blast door"},/obj/machinery/door/firedoor/heavy,/turf/simulated/floor/engine,/area/toxins/explab) "cfZ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/table,/obj/item/weapon/tank/emergency_oxygen/engi,/obj/item/clothing/mask/breath{step_x = 0; step_y = 0},/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/engine/engineering) "cga" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/engine/engineering) "cgb" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/engine/engineering) @@ -5775,7 +5773,7 @@ "chc" = (/obj/structure/filingcabinet/chestdrawer,/obj/machinery/camera{c_tag = "Chief Engineer's Office"; dir = 4; network = list("SS13")},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/mob/living/simple_animal/parrot/Poly,/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) "chd" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) "che" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/storage/fancy/cigarettes,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) -"chf" = (/obj/structure/table/reinforced,/obj/item/stack/medical/bruise_pack{pixel_x = -3; pixel_y = 2},/obj/item/weapon/reagent_containers/pill/kelotane{pixel_x = -3; pixel_y = -8},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) +"chf" = (/turf/simulated/floor/engine,/area/toxins/explab) "chg" = (/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/engine/engineering) "chh" = (/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/engine/engineering) "chi" = (/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/engine/engineering) @@ -6249,96 +6247,96 @@ "cqi" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cqj" = (/obj/item/weapon/screwdriver,/obj/structure/lattice,/turf/space,/area/space) "cqk" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"cql" = (/obj/structure/transit_tube{icon_state = "N-S"},/turf/simulated/floor/plasteel{tag = "icon-darkyellow (EAST)"; icon_state = "darkyellow"; dir = 4},/area/aisat) -"cqm" = (/obj/structure/table,/obj/item/device/radio/off,/obj/item/weapon/crowbar,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) -"cqn" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) -"cqo" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 28; pixel_y = 0},/obj/structure/closet/emcloset,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) -"cqp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/aisat) -"cqq" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) -"cqr" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/aisat) +"cql" = (/obj/structure/closet/secure_closet/injection,/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "Prisoner Transfer Centre"; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/transfer) +"cqm" = (/obj/structure/table,/obj/item/device/electropack,/obj/item/weapon/screwdriver,/obj/item/weapon/wrench,/obj/item/clothing/head/helmet,/obj/item/device/assembly/signaler,/obj/machinery/light/small,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/transfer) +"cqn" = (/obj/structure/stool/bed,/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/glasses/sunglasses/blindfold,/obj/item/clothing/mask/muzzle,/obj/machinery/camera{c_tag = "Prison Sanitatium"; dir = 4; network = list("SS13","Prison"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/prison) +"cqo" = (/obj/machinery/door/airlock{name = "Garden"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/secondary/construction{name = "\improper Garden"}) +"cqp" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) +"cqq" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/bridge) +"cqr" = (/obj/structure/grille,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/status_display{density = 0; layer = 4},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) "cqs" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/engine/engineering) -"cqt" = (/obj/structure/transit_tube/station{dir = 4; icon_state = "closed"; reverse_launch = 1; tag = "icon-closed (EAST)"},/turf/simulated/floor/plasteel{tag = "icon-darkyellow (EAST)"; icon_state = "darkyellow"; dir = 4},/area/aisat) -"cqu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) +"cqt" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) +"cqu" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/status_display{density = 0; layer = 4},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) "cqv" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) "cqw" = (/obj/machinery/door/airlock/hatch{name = "Teleporter Room"; req_access_txt = "17;65"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) -"cqx" = (/obj/machinery/bluespace_beacon,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) -"cqy" = (/obj/machinery/teleport/station,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/aisat) +"cqx" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) +"cqy" = (/obj/machinery/door/airlock/research{name = "Testing Lab"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/toxins/misc_lab) "cqz" = (/obj/structure/cable,/obj/machinery/power/tracker,/turf/simulated/floor/plating/airless,/area/solar/starboard) "cqA" = (/obj/machinery/camera/emp_proof{c_tag = "Singularity West"; dir = 1; network = list("Singularity")},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cqB" = (/obj/machinery/camera/emp_proof{c_tag = "Singularity East"; dir = 1; network = list("Singularity")},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"cqC" = (/obj/structure/transit_tube{dir = 1; icon_state = "Block"; tag = "icon-Block (NORTH)"},/obj/machinery/light,/turf/simulated/floor/plasteel{tag = "icon-darkyellow (EAST)"; icon_state = "darkyellow"; dir = 4},/area/aisat) -"cqD" = (/obj/machinery/door/poddoor/shutters{id = "teledoor"; name = "AI Satellite Teleport Access"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) -"cqE" = (/obj/machinery/door_control{id = "teledoor"; name = "AI Satellite Teleport Shutters Control"; pixel_x = 0; pixel_y = -25; req_access_txt = "17;65"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1},/obj/machinery/camera{c_tag = "MiniSat Teleporter"; dir = 1; network = list("MiniSat"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) -"cqF" = (/obj/machinery/teleport/hub,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/aisat) -"cqG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/aisat) -"cqH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/aisat) -"cqI" = (/obj/machinery/power/apc{dir = 1; name = "MiniSat External Power APC"; pixel_y = 29},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) -"cqJ" = (/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/machinery/camera{c_tag = "MiniSat Entrance"; dir = 2; network = list("MiniSat"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) -"cqK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) +"cqC" = (/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "atmos"; layer = 2.9; name = "atmos blast door"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/atmos) +"cqD" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/heavy,/obj/machinery/door/window/northleft{dir = 4; icon_state = "left"; name = "Atmospherics Desk"; req_access_txt = "24"},/obj/machinery/door/poddoor/preopen{id = "atmos"; layer = 2.9; name = "atmos blast door"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/atmos) +"cqE" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "atmos"; layer = 2.9; name = "atmos blast door"},/turf/simulated/floor/plating,/area/atmos) +"cqF" = (/obj/machinery/teleport/station,/turf/simulated/floor/plating,/area/aisat) +"cqG" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plating,/area/aisat) +"cqH" = (/obj/machinery/teleport/hub,/turf/simulated/floor/plating,/area/aisat) +"cqI" = (/obj/machinery/bluespace_beacon,/turf/simulated/floor/plasteel{tag = "icon-warndark (NORTH)"; icon_state = "warndark"; dir = 1},/area/aisat) +"cqJ" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel{tag = "icon-warndark (NORTH)"; icon_state = "warndark"; dir = 1},/area/aisat) +"cqK" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-warndark (NORTH)"; icon_state = "warndark"; dir = 1},/area/aisat) "cqL" = (/obj/machinery/door/airlock/external{name = "MiniSat External Access"; req_access = null; req_access_txt = "65;13"},/turf/simulated/floor/plating,/area/aisat) -"cqM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (WEST)"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) -"cqN" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) +"cqM" = (/obj/machinery/camera{c_tag = "MiniSat Teleporter"; dir = 1; network = list("MiniSat"); pixel_x = 0; pixel_y = 0},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -28; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) +"cqN" = (/obj/machinery/door_control{id = "teledoor"; name = "AI Satellite Teleport Shutters Control"; pixel_x = 25; pixel_y = 0; req_access_txt = "17;65"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) "cqO" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) -"cqP" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) -"cqQ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) +"cqP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/aisat) +"cqQ" = (/obj/machinery/door/poddoor/shutters{id = "teledoor"; name = "AI Satellite Teleport Access"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) "cqR" = (/obj/structure/window/reinforced{dir = 4},/turf/space,/area/space) "cqS" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/aisat) "cqT" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/light/small{dir = 4},/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/plating,/area/aisat) "cqU" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/wall,/area/aisat) -"cqV" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners"; icon_state = "darkbluecorners"; temperature = 273.15},/area/aisat) -"cqW" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{tag = "icon-darkblue"; icon_state = "darkblue"; temperature = 273.15},/area/aisat) -"cqX" = (/obj/machinery/computer/security/telescreen{dir = 1; name = "MiniSat Monitor"; network = list("MiniSat"); pixel_x = 0; pixel_y = -30},/turf/simulated/floor/plasteel{tag = "icon-darkblue"; icon_state = "darkblue"; temperature = 273.15},/area/aisat) -"cqY" = (/turf/simulated/floor/plasteel{tag = "icon-darkblue"; icon_state = "darkblue"; temperature = 273.15},/area/aisat) -"cqZ" = (/obj/machinery/light,/obj/machinery/turretid{control_area = "\improper AI Satellite Antechamber"; enabled = 1; icon_state = "control_standby"; name = "Antechamber Turret Control"; pixel_x = 0; pixel_y = -24; req_access = list(65)},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners (WEST)"; icon_state = "darkbluecorners"; dir = 8},/area/aisat) +"cqV" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/aisat) +"cqW" = (/obj/structure/transit_tube{icon_state = "N-S"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/aisat) +"cqX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) +"cqY" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 25},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (WEST)"; dir = 8},/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners (WEST)"; icon_state = "darkbluecorners"; dir = 8},/area/aisat) +"cqZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/aisat) "cra" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/wall,/area/aisat) "crb" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 8},/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/plating,/area/aisat) "crc" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/aisat) "crd" = (/obj/structure/window/reinforced{dir = 8},/turf/space,/area/space) -"cre" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/space) +"cre" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners"; icon_state = "darkbluecorners"; temperature = 273.15},/area/aisat) "crf" = (/obj/structure/window/reinforced,/turf/space,/area/space) "crg" = (/turf/simulated/wall,/area/turret_protected/aisat_interior) "crh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/turret_protected/aisat_interior) "cri" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch{name = "MiniSat Antechamber"; req_one_access_txt = "65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) -"crj" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch{name = "MiniSat Antechamber"; req_one_access_txt = "65"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) +"crj" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/aisat) "crk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/turret_protected/aisat_interior) -"crl" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/space,/area/space) +"crl" = (/obj/structure/transit_tube/station{dir = 4; icon_state = "closed"; reverse_launch = 1; tag = "icon-closed (EAST)"},/turf/simulated/floor/plating,/area/aisat) "crm" = (/obj/machinery/door/window{dir = 1; name = "MiniSat Walkway Access"; req_access_txt = "13;65"},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plating,/area/aisat) "crn" = (/obj/structure/window/reinforced,/obj/machinery/door/window{base_state = "right"; dir = 1; icon_state = "right"; name = "MiniSat Walkway Access"; req_access_txt = "13;65"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/aisat) "cro" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/aisat) "crp" = (/obj/machinery/door/airlock/maintenance_hatch{req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) -"crq" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) -"crr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) +"crq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners (WEST)"; icon_state = "darkbluecorners"; dir = 8},/area/aisat) +"crr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners"; icon_state = "darkbluecorners"; temperature = 273.15},/area/aisat) "crs" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) -"crt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) -"cru" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) -"crv" = (/obj/machinery/light{dir = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (NORTH)"; dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) +"crt" = (/turf/simulated/floor/plating,/area/aisat) +"cru" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/aisat) +"crv" = (/obj/structure/transit_tube{dir = 1; icon_state = "Block"; tag = "icon-Block (NORTH)"},/turf/simulated/floor/plating,/area/aisat) "crw" = (/obj/machinery/door/airlock/maintenance_hatch{req_access_txt = "65"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) "crx" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/aisat) "cry" = (/obj/structure/window/reinforced,/obj/machinery/door/window{dir = 1; name = "MiniSat Walkway Access"; req_access_txt = "13;65"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/aisat) "crz" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/window{base_state = "right"; dir = 1; icon_state = "right"; name = "MiniSat Walkway Access"; req_access_txt = "13;65"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plating,/area/aisat) "crA" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_sw"; name = "southwest of station"; turf_type = /turf/space; width = 18},/turf/space,/area/space) "crB" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/aisat) -"crC" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/space,/area/space) +"crC" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (EAST)"; dir = 4},/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners (WEST)"; icon_state = "darkbluecorners"; dir = 8},/area/aisat) "crD" = (/obj/structure/window/reinforced{dir = 1},/turf/space,/area/space) -"crE" = (/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_x = -28; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) +"crE" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/aisat) "crF" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) "crG" = (/obj/machinery/hologram/holopad,/obj/effect/landmark/start{name = "Cyborg"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) -"crH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) +"crH" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (WEST)"; dir = 8},/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners"; icon_state = "darkbluecorners"; temperature = 273.15},/area/aisat) "crI" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/space,/area/space) "crJ" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/aisat) -"crK" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (WEST)"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) -"crL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) -"crM" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) +"crK" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/structure/closet/emcloset,/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/plating,/area/aisat) +"crL" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) +"crM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/camera{c_tag = "MiniSat Entrance"; dir = 4; network = list("MiniSat"); pixel_x = 0; pixel_y = 0},/obj/machinery/power/apc{dir = 8; name = "MiniSat External Power APC"; pixel_x = -27; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners (WEST)"; icon_state = "darkbluecorners"; dir = 8},/area/aisat) "crN" = (/obj/machinery/bot/secbot/pingsky,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) -"crO" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) -"crP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) -"crQ" = (/obj/machinery/power/apc{aidisabled = 0; cell_type = 2500; dir = 4; name = "MiniSat Antechamber APC"; pixel_x = 29; pixel_y = 0},/obj/structure/cable,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) +"crO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners"; icon_state = "darkbluecorners"; temperature = 273.15},/area/aisat) +"crP" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) +"crQ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners"; icon_state = "darkbluecorners"; temperature = 273.15},/area/aisat) "crR" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "MiniSat Exterior North West"; dir = 8; network = list("MiniSat"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/aisat) "crS" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/bot/floorbot{on = 0},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/aisat_interior) -"crT" = (/obj/machinery/porta_turret{ai = 1; dir = 1},/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners"; icon_state = "darkbluecorners"; temperature = 273.15},/area/turret_protected/aisat_interior) +"crT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/aisat) "crU" = (/turf/simulated/floor/plasteel{tag = "icon-darkblue"; icon_state = "darkblue"; temperature = 273.15},/area/turret_protected/aisat_interior) "crV" = (/obj/machinery/camera/motion{c_tag = "MiniSat Antechamber"; dir = 1; network = list("MiniSat")},/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_y = -29},/turf/simulated/floor/plasteel{tag = "icon-darkblue"; icon_state = "darkblue"; temperature = 273.15},/area/turret_protected/aisat_interior) -"crW" = (/obj/machinery/porta_turret{ai = 1; dir = 1},/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners (WEST)"; icon_state = "darkbluecorners"; dir = 8},/area/turret_protected/aisat_interior) +"crW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{tag = "icon-darkblue"; icon_state = "darkblue"; temperature = 273.15},/area/aisat) "crX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/bot/cleanbot{on = 0},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/aisat_interior) "crY" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera{c_tag = "MiniSat Exterior North East"; dir = 4; network = list("MiniSat"); pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/aisat) "crZ" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai) @@ -6348,17 +6346,17 @@ "csd" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/highsecurity{icon_state = "door_locked"; locked = 1; name = "AI Chamber"; req_access_txt = "16"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai) "cse" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/turret_protected/ai) "csf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/turret_protected/ai) -"csg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/turf/simulated/floor/plasteel{tag = "icon-darkblue (NORTHWEST)"; icon_state = "darkblue"; dir = 9},/area/turret_protected/ai) -"csh" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners (NORTH)"; icon_state = "darkbluecorners"; dir = 1},/area/turret_protected/ai) +"csg" = (/obj/machinery/computer/security/telescreen{dir = 1; name = "MiniSat Monitor"; network = list("MiniSat"); pixel_x = 0; pixel_y = -30},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{tag = "icon-darkblue"; icon_state = "darkblue"; temperature = 273.15},/area/aisat) +"csh" = (/obj/machinery/turretid{control_area = "\improper AI Satellite Antechamber"; enabled = 1; icon_state = "control_standby"; name = "Antechamber Turret Control"; pixel_x = 0; pixel_y = -24; req_access = list(65)},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{tag = "icon-darkblue"; icon_state = "darkblue"; temperature = 273.15},/area/aisat) "csi" = (/obj/machinery/camera{c_tag = "AI Chamber North"; dir = 2; network = list("MiniSat","RD"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/ai) "csj" = (/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/ai) "csk" = (/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/ai) -"csl" = (/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners (EAST)"; icon_state = "darkbluecorners"; dir = 4},/area/turret_protected/ai) -"csm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/turf/simulated/floor/plasteel{tag = "icon-darkblue (NORTHEAST)"; icon_state = "darkblue"; dir = 5},/area/turret_protected/ai) -"csn" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{tag = "icon-darkblue (WEST)"; icon_state = "darkblue"; dir = 8},/area/turret_protected/ai) +"csl" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/structure/grille,/turf/space,/area/space) +"csm" = (/obj/structure/lattice,/obj/structure/window/reinforced,/obj/structure/grille,/turf/space,/area/space) +"csn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) "cso" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai) "csp" = (/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"csq" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1},/turf/simulated/floor/plasteel{tag = "icon-darkblue (EAST)"; icon_state = "darkblue"; dir = 4},/area/turret_protected/ai) +"csq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/aisat_interior) "csr" = (/obj/machinery/porta_turret{ai = 1; dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "css" = (/obj/machinery/flasher{id = "AI"; pixel_x = 0; pixel_y = -21},/obj/machinery/ai_slipper{icon_state = "motion0"; uses = 10},/obj/machinery/light,/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "cst" = (/obj/machinery/porta_turret{ai = 1; dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) @@ -6384,45 +6382,73 @@ "csN" = (/turf/simulated/wall/r_wall,/area/ai_monitored/storage/secure) "csO" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/wall/r_wall,/area/turret_protected/ai) "csP" = (/turf/simulated/wall,/area/ai_monitored/storage/secure) -"csQ" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/device/multitool,/turf/simulated/floor/plasteel{dir = 9; icon_state = "yellow"},/area/ai_monitored/storage/secure) -"csR" = (/obj/machinery/atmospherics/unary/tank/air,/turf/simulated/floor/plasteel{dir = 5; icon_state = "yellow"},/area/ai_monitored/storage/secure) +"csQ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (EAST)"; dir = 4},/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners (WEST)"; icon_state = "darkbluecorners"; dir = 8},/area/turret_protected/aisat_interior) +"csR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) "csS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall/r_wall,/area/ai_monitored/storage/secure) -"csT" = (/obj/machinery/recharge_station,/turf/simulated/floor/plasteel{dir = 9; icon_state = "yellow"},/area/ai_monitored/storage/secure) -"csU" = (/obj/structure/rack,/obj/item/weapon/crowbar/red,/obj/item/weapon/wrench,/obj/item/clothing/head/welding,/turf/simulated/floor/plasteel{dir = 5; icon_state = "yellow"},/area/ai_monitored/storage/secure) +"csT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (WEST)"; dir = 8},/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners"; icon_state = "darkbluecorners"; temperature = 273.15},/area/turret_protected/aisat_interior) +"csU" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/aisat_interior) "csV" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/space) "csW" = (/obj/structure/window/reinforced,/obj/structure/lattice,/turf/space,/area/space) -"csX" = (/obj/machinery/power/apc{dir = 8; name = "MiniSat Maint APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plasteel,/area/ai_monitored/storage/secure) -"csY" = (/obj/machinery/atmospherics/binary/pump{dir = 0; name = "Air Out"; on = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/secure) -"csZ" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel,/area/ai_monitored/storage/secure) -"cta" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/secure) -"ctb" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 28; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/ai_monitored/storage/secure) +"csX" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/obj/structure/grille,/turf/space,/area/space) +"csY" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/window/reinforced,/turf/space,/area/space) +"csZ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (EAST)"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/aisat_interior) +"cta" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners (WEST)"; icon_state = "darkbluecorners"; dir = 8},/area/turret_protected/aisat_interior) +"ctb" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1},/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners"; icon_state = "darkbluecorners"; temperature = 273.15},/area/turret_protected/aisat_interior) "ctc" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/space) "ctd" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plating,/area/aisat) "cte" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/aisat) -"ctf" = (/obj/machinery/door/airlock/maintenance_hatch{req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/simulated/floor/plasteel,/area/ai_monitored/storage/secure) -"ctg" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/ai_monitored/storage/secure) -"cth" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 8},/area/ai_monitored/storage/secure) -"cti" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/ai_monitored/storage/secure) -"ctj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 4},/area/ai_monitored/storage/secure) -"ctk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/ai_monitored/storage/secure) -"ctl" = (/obj/machinery/door/airlock/maintenance_hatch{req_access_txt = "65"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/ai_monitored/storage/secure) +"ctf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (WEST)"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/aisat_interior) +"ctg" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/aisat_interior) +"cth" = (/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners (WEST)"; icon_state = "darkbluecorners"; dir = 8},/area/turret_protected/aisat_interior) +"cti" = (/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners"; icon_state = "darkbluecorners"; temperature = 273.15},/area/turret_protected/aisat_interior) +"ctj" = (/obj/machinery/power/apc{aidisabled = 0; cell_type = 2500; dir = 4; name = "MiniSat Antechamber APC"; pixel_x = 29; pixel_y = 0},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/aisat_interior) +"ctk" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/space,/area/space) +"ctl" = (/obj/machinery/porta_turret{ai = 1; dir = 1},/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/aisat_interior) "ctm" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plating,/area/aisat) -"ctn" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/camera/motion{c_tag = "MiniSat Maintenance"; dir = 4; network = list("MiniSat")},/turf/simulated/floor/plasteel,/area/ai_monitored/storage/secure) -"cto" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/ai_monitored/storage/secure) -"ctp" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel,/area/ai_monitored/storage/secure) -"ctq" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel,/area/ai_monitored/storage/secure) -"ctr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/ai_monitored/storage/secure) +"ctn" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/space) +"cto" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai) +"ctp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai) +"ctq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai) +"ctr" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai) "cts" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/ai_monitored/storage/secure) "ctt" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/unary/outlet_injector{dir = 8},/turf/simulated/floor/plating/airless,/area/space) "ctu" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/space) "ctv" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_s"; name = "south of station"; turf_type = /turf/space; width = 18},/turf/space,/area/space) -"ctw" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 1; name = "Auxiliary MiniSat Distribution Port"},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 10},/area/ai_monitored/storage/secure) -"ctx" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/ai_monitored/storage/secure) -"cty" = (/obj/machinery/computer/station_alert,/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/ai_monitored/storage/secure) -"ctz" = (/obj/structure/table,/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/ai_monitored/storage/secure) -"ctA" = (/obj/machinery/power/port_gen/pacman,/obj/structure/cable,/turf/simulated/floor/plasteel{dir = 6; icon_state = "yellow"},/area/ai_monitored/storage/secure) +"ctw" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai) +"ctx" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/device/multitool,/turf/simulated/floor/plating,/area/ai_monitored/storage/secure) +"cty" = (/obj/machinery/atmospherics/unary/tank/air,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/ai_monitored/storage/secure) +"ctz" = (/obj/structure/rack,/obj/item/weapon/crowbar/red,/obj/item/weapon/wrench,/obj/item/clothing/head/welding,/turf/simulated/floor/plating,/area/ai_monitored/storage/secure) +"ctA" = (/obj/machinery/recharge_station,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/ai_monitored/storage/secure) "ctB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/ai_monitored/storage/secure) "ctC" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/chem_heater,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) +"ctD" = (/obj/effect/landmark{name = "blobstart"},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/engine,/area/toxins/explab) +"ctE" = (/obj/machinery/r_n_d/experimentor,/turf/simulated/floor/engine,/area/toxins/explab) +"ctF" = (/obj/machinery/camera{c_tag = "Experimentor Test Chamber"; dir = 1; network = list("SS13","RD")},/obj/machinery/light,/obj/structure/sign/nosmoking_2{pixel_y = -32},/turf/simulated/floor/engine,/area/toxins/explab) +"ctG" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 7; pixel_y = -3},/obj/item/weapon/reagent_containers/glass/bottle/morphine,/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 4; pixel_y = 2},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/sleeper) +"ctH" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/engine/engineering) +"ctI" = (/obj/structure/table/reinforced,/obj/item/stack/medical/bruise_pack{pixel_x = -3; pixel_y = 2},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralfull"},/area/engine/chiefs_office) +"ctJ" = (/obj/machinery/power/apc{dir = 8; name = "MiniSat Maint APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plasteel{tag = "icon-warndark (NORTH)"; icon_state = "warndark"; dir = 1},/area/ai_monitored/storage/secure) +"ctK" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating{icon_state = "warnplate"},/area/ai_monitored/storage/secure) +"ctL" = (/obj/machinery/atmospherics/binary/pump{dir = 0; name = "Air Out"; on = 1},/turf/simulated/floor/plasteel{tag = "icon-warndark (NORTHEAST)"; icon_state = "warndark"; dir = 5},/area/ai_monitored/storage/secure) +"ctM" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 28; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{tag = "icon-warndark (NORTH)"; icon_state = "warndark"; dir = 1},/area/ai_monitored/storage/secure) +"ctN" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel{tag = "icon-warndark (NORTHWEST)"; icon_state = "warndark"; dir = 9},/area/ai_monitored/storage/secure) +"ctO" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure) +"ctP" = (/obj/machinery/door/airlock/maintenance_hatch{req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure) +"ctQ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure) +"ctR" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4; initialize_directions = 11},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure) +"ctS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure) +"ctT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure) +"ctU" = (/obj/machinery/door/airlock/maintenance_hatch{req_access_txt = "65"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure) +"ctV" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/camera/motion{c_tag = "MiniSat Maintenance"; dir = 4; network = list("MiniSat")},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure) +"ctW" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure) +"ctX" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure) +"ctY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure) +"ctZ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure) +"cua" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 1; name = "Auxiliary MiniSat Distribution Port"},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure) +"cub" = (/obj/machinery/computer/station_alert,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure) +"cuc" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure) +"cud" = (/obj/machinery/power/port_gen/pacman,/obj/structure/cable,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure) +"cue" = (/obj/structure/table,/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/secure) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -6489,26 +6515,26 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaagaagaagaagaagaagaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaafaaaaafaaaaafaaaaafaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaiaaiaajaakaalaakaalaakaamaaiaaiaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaiaanaaoaapaaqaaraasaataauaavaaiaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafaafaaiaawaaxaayaaxaaxaaxaazaauaaAaaiaafaafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaiaaiaaBaaCaaDaaEaaFaasaasaauaaGaaiaafaafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaHaaHaaHaaHaaHaaIaaIaaiaaJaasaasaasaasaaKaasaasaaLaaMaaiaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaafaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaaNaaOaaPaaHaaIaaiaaiaaQaaKaasaasaaRaaSaaKaasaaTaaUaaiaaaaaVaafaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaaWaaXaaYaaHaaIaaiaaZaasaasaasaaKabaabbaasaasabcabdaaiaaiaaiaafaaaaaaaaaaaaaaaaafaaaaaVaaaaaaaaaaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeabeabeabfabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHabgabhabgaaHaaIaaiabiaasabjaasaasaasaasaasaasaauaasabkablaaiaafaafaafaafaafaafaafaafabmabmabnabmabmaboaboabpabpabpaboaboaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaafaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHabrabsabraaHabtaaiabuaasaasabvabwabxaasabyabzabAaasabBabCaaiaafaaaaaaaaaaaaaaaaaaaaaabnabDabEabFabGaboabHabIabJabKabLaboaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafabMaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaabfabfabeabfabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHabNabOabPabQabRaaiabSabTabSabSabSabUabSabSabSabVabSabSabWaaiaafaaaaafaafaafaafaaaaafabmabXabEabYabDaboabZacaacbacbaccaboaaaaafacdaagaagaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfabfabfabfabfaafaafaaaaceaaaacfaafabfabfabfabfabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaafaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacgachabhaciaaHacjaaiackaasaclabSacmacnacoabSacpacqacrabSacsaaiactactactactactactactactactacuabEacvabDabpacwacxacyacbaczaboaaaaafacAacBacAaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaaaaaafaaaaafaaaaaaaceaaaaaaaafaaaaafaaaaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafacCaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaHacDacEacFaaHacGaaiacHaasacIabSacJacnacIabSacKacqacIabSacLaaiacMacNacOacOacPacQacRacSactacTabEacvabDabpacUacVacWacbacXaboaafaafacAacYacAaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafacZacZacZacZacZaaaadaaaaacZacZacZacZacZaafabfaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfadbadbadbadbaafaafaaaadcaaaaafaafabfabfabfabfabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaaHacgaddaaHadeaaiadfadgadhabSadfadiadhabSadfadjadhabSabSaaiacMadkadladladladladmadnactadoabEacvabDaboadpadqadradsadtaboabnabmaduacBacAacAadvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaadwadxadxadxadxadyadzadAadBadBadBadBadCaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaaaaafaaaaafaaaaaaadcaaaaaaaafaaaaafaaaaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadDadEadFadGadHadIadJadKadHadLadMadNadHadOadPadQadRaaiadSadTadUadVadWadXadYadZaeaabEaebaecabmaboaedaboaeeaboaefaboaegaehabmaeiacAaejaekaekaelaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafaemaemaemaemaemaaaadzaaaaemaemaemaemaemaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafaenaenaenaenaenaaaaeoaaaaenaenaenaenaenaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaepaeqaeraesaetaeuaesaevaetaesaesaesaetaewaexaeyaezaaiaeAaeBaeCaeDaeEaeFaeGaeHactaeIaeJaeKabmaeLaeMaeNaeOaePaeQaeNaeRaeSaeTaeUaeVaeWaeXaeYaeZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaaaaaaaafaaaaaaaaaadzaaaaaaaaaaafaaaaaaaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaafaafbafbafbafbafcafdafeaffaffaffaffafgaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafhaaiaaiaaiaaiafiafjafkaflafmafnafoafpafpafpabSafqafraaiafsaftafuafvafwafxafyafzactafAafBafCabmafDafEafFafGafHafIafJafKafLabmafMacAafNaekaekafOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafacZacZacZacZacZaaaadzaaaacZacZacZacZacZaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafafPafPafPafPafPaaaafdaaaafPafPafPafPafPaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaiaaiadhafQadfafRafRafRafRafRafRafRafSafTafUafVafWafXafYafZagaagbagcafUagdageagfaggaghagiafFagjafHagkaglagmabmaduacAacAacAadvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaadwadxadxadxadxadyadzadAadBadBadBadBadCaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaaaaaaaafaaaaaaaaaafdaaaaaaaaaaafaaaaaaaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaafaaaaaaaaiagnagoagpafRagqagragsagtaguafRagvagwagxagyagzagAagBagaagCagbagDagEagFagGagHagIagJagKagLagMagNagOagPagQagRagSagTagUacAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafaemaemaemaemaemaaaadzaaaaemaemaemaemaemaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaiaanaaoaapaaqaaraasaataauaavaaiaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaiaawaaxaayaaxaaxaaxaazaauaaAaaiaafaafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaiaaiaaBaaCaaDaaEaaFaasaasaauaaGaaiaafaafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaafaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaaiaaJaasaasaasaasaaKaasaasaaLaaMaaiaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaafaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaQaaKaasaasaaRaaSaaKaasaaTaaUaaiaaaaaVaafaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaZaasaasaasaaKabaabbaasaasabcabdaaiaaiaaiaafaaaaaaaaaaaaaaaaafaaaaaVaaaaaaaaaaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeabeabeabfabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaaNaaPaaOaaWabiaasabjaasaasaasaasaasaasaauaasabkablaaiaafaafaafaafaafaafaafaafabmabmabnabmabmaboaboabpabpabpaboaboaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaafaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYaaXabhabgabrabuaasaasabvabwabxaasabyabzabAaasabBabCaaiaafaaaaafaafaafaafaaaaafabnabDabEabFabGaboabHabIabJabKabLaboaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafabMaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaabfabfabeabfabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYabsabOabNabrabSabTabSabSabSabUabSabSabSabVabSabSabWaaiactactactactactactactactabPabXabEabYabDaboabZacaacbacbaccaboaaaaafacdaagaagaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfabfabfabfabfaafaafaaaaceaaaacfaafabfabfabfabfabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaafaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaYabQachabRabrackaasaclabSacmacnacoabSacpacqacrabSacsaaiacMacNacOacOacPacQacRacSactacuabEacvabDabpacwacxacyacbaczaboaaaaafacAacBacAaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaaaaaafaaaaafaaaaaaaceaaaaaaaafaaaaafaaaaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafacCaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaciacDacjacEacHaasacIabSacJacnacIabSacKacqacIabSacLaaiacMadkadladladladladmadnactacTabEacvabDabpacUacVacWacbacXaboaafaafacAacYacAaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafacZacZacZacZacZaaaadaaaaacZacZacZacZacZaafabfaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfadbadbadbadbaafaafaaaadcaaaaafaafabfabfabfabfabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafhaaHaaHaaHacFaddacGabradfadgadhabSadfadiadhabSadfadjadhabSabSaaiafnaRFaNFadVaNFadWbhdbiGactadoabEacvabDaboadpadqadradsadtaboabnabmaduacBacAacAadvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaadwadxadxadxadxadyadzadAadBadBadBadBadCaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaaaaafaaaaafaaaaaaadcaaaaaaaafaaaaafaaaaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHadeadEadDadGadFadIadHadKadJadMadLadOadNadUadLaepadPadQadRaaiadSadTaNFboSaNFadXadYadZaeaabEaebaecabmaboaedaboaeeaboaefaboaegaehabmaeiacAaejaekaekaelaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafaemaemaemaemaemaaaadzaaaaemaemaemaemaemaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafaenaenaenaenaenaaaaeoaaaaenaenaenaenaenaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaeqaesaeraeuaetaewaevafiaexaDraifaexaexaexaifaOvaOuaeyaezaaiaeAaeBaeCaeDaeEaeFaeGaeHactaeIaeJaeKabmaeLaeMaeNaeOaePaeQaeNaeRaeSaeTaeUaeVaeWaeXaeYaeZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaaaaaaaafaaaaaaaaaadzaaaaaaaaaaafaaaaaaaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaafaafbafbafbafbafcafdafeaffaffaffaffafgaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacgaOwaOyaOxbOnaOzaaHbOCafjafkaflafmbqnafoafpafpafpabSafqafraaiafsaftafuafvafwafxafyafzactafAafBafCabmafDafEafFafGafHafIafJafKafLabmafMacAafNaekaekafOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafacZacZacZacZacZaaaadzaaaacZacZacZacZacZaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafafPafPafPafPafPaaaafdaaaafPafPafPafPafPaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHaaHaaHbPIcqmcqlaaHaaiadhafQadfafRafRafRafRafRafRafRafSafTafUafVafWafXafYafZagaagbagcafUagdageagfaggaghagiafFagjafHagkaglagmabmaduacAacAacAadvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaadwadxadxadxadxadyadzadAadBadBadBadBadCaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaaaaaaaafaaaaaaaaaafdaaaaaaaaaaafaaaaaaaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaHaaHaaHaaHaaHaaiagnagoagpafRagqagragsagtaguafRagvagwagxagyagzagAagBagaagCagbagDagEagFagGagHagIagJagKagLagMagNagOagPagQagRagSagTagUacAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafaemaemaemaemaemaaaadzaaaaemaemaemaemaemaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafaenaenaenaenaenaaaafdaaaaenaenaenaenaenaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaiagVagWagXafRagYagZahaahbahcafRagvahdaheahfahgahhahiahjahjahkahlahmahnahoahpahqahrahsahrahtahuahuahvahwabmabmaeUahxacAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaaaaaaaafaaaaaaaaaadzaaaaaaaaaaafaaaaaaaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaafaafbafbafbafbafcafdafeaffaffaffaffafgaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiahyagWahyafRagYagZahzahbahAafRahBahCahDahEahFahGahHahIahJahKahLahMahNahOahPahQahRahSahTahUahVahWahXahYahZaiaaibaicaidaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafacZacZacZacZacZaaaadzaaaacZacZacZacZacZaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfacfafPafPafPafPafPaaaafdaaaafPafPafPafPafPaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaiaieaifaigafRaihaiiaiiaijahcafRaikailafUaimainaioaipaipaiqairafUafUaisaitaduaduaduabmabmabmabmabmabmabmabmaiuaivaiwaidaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaadwadxadxadxadxadyadzadAadBadBadBadBadCaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaafaafbafbafbafbafcafdafeaffaffaffaffafgaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaicqnagWahyafRagYagZahzahbahAafRahBahCahDahEahFahGahHahIahJahKahLahMahNahOahPahQahRahSahTahUahVahWahXahYahZaiaaibaicaidaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafacZacZacZacZacZaaaadzaaaacZacZacZacZacZaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfacfafPafPafPafPafPaaaafdaaaafPafPafPafPafPaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaiaieagWaigafRaihaiiaiiaijahcafRaikailafUaimainaioaipaipaiqairafUafUaisaitaduaduaduabmabmabmabmabmabmabmabmaiuaivaiwaidaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaadwadxadxadxadxadyadzadAadBadBadBadBadCaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaaaaaaaafaaaaaaaaaafdaaaaaaaaaaafaaaaaaaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaixaixaiyaixaizaiAafRafRafRafRafRafRaiBaiCafRaiDaiEaiFaiFaiFaiFaiFaiFaiFaiFaiGaiHaiIaiJaiFailaiAaiKaiLaiMaiNaiOaiPaiQaiRaiuaivaiwaidaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafaemaemaemaemaemaaaadzaaaaemaemaemaemaemaiSabqaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafaenaenaenaenaenaaaafdaaaaenaenaenaenaenaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaixaiTaiUaiVaiWaiXaiYaiZajaajbajcajdajeajfajgajhajiajjajkajjajjajjajjajjajjajlajjajiajmajkajnajoajpajqajrajsajtajuajvajwaiuaivaiwacAaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaaaaafaaaaafaaaaaaadzaaaaaaaafaaaaafaaaaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaafaafbafbafbafbafcafdafeaffaffaffaffafgaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajxaeZaeZaeZaelaaaaafaizajyajzajAajBajCajDajEajFajGajHajIajJajKajLajIajJajMajLajIajJajNajOajOajOajPahCajQajRajSajTajUajVajWajVajVajVajXajYaiPaiuaivaiwaidaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfabfabfaafaafaafaafaafadzaafaafaafaafaafabfabfabfaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -6533,17 +6559,17 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaafaafaafaztaqpazuatBavMavMavMavMavMavMatBazuavMaqpazvazwamHazxazyazzazAatGazBayuazCazDazEazFazGazHazCayuazIazJazKawdawdawdawdawdazLazMaxoaafazNazNazOazNazPazNazNaafaxoaxuaxvazQazRazSazTazQaxvazUazVazWazXazYazZaAaaAbaAcaAdaAeaAfayOayOayOaAgayQamwaAhacAaeUapTapTapTapTapTaAiaAjaAkayZayZayZayZayZaAlaAmaAnayZapWapWapWapWaAoaApapWaydaqcaqcaqcaqcaqcaydapWallamlaAqazhallaArallamlamlallamlarjallamlamlallamlamlallarjasjallamlamlallaAsamlarjawSaAtaroaroaroaroaroaroaroaroaroabtabtabtabtabtaafaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMaylavMaaIaaIaaIaaIavMaylavMaaaaqpaAuaysaAvaAvaAwaAxaAvaAvaAyayuazCazEaAzaAAazEazEazCayuaqCaABaACaADaADaADaADaADaADaADaAEaaaazNaAFaAGaAHaAIaAJazNaaaaxoaxuaxvazQaAKaALaAMazQaxvawaazLaxxaANaAOaAPaAQaARaAbaASaATayOayOaAUayOaAgayQamwayRacAaeUapTaqOaqPaAVaqRaxOaAWayZaAXaAmaAYaAYayZaAlaAZaAnayZaBaaBbaBcaBdaBeaApaafaBfaBgaBgaBgaBgaBgaBhaaaallamlaBiaBjallallallallallallaBkaBlallallallallallallaBmaBnaBoaBpaBpaBpaBqaBraBsaBtaBuaBvaBwaBxaByaBzaBAaBBaBCaBDaBDaBDaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaajxaekaBEaekaeZaeZaeZaeZaekaBEaBFaelaqpaBGaBHaBIaBJaBKaBLaBMaBNaBOayuazCazEazEaBPazEazEazCayuaBQaBRaBSaBTaBUaBVaBWaBXaBYaBZaAEaafazNaCaaCbaCcaCdaCeazNaafaxoaxuaxvaCfaCgaChaCiaCjaxvapNaCkaxxaClaCmaCnayOaCnaCoaCpaCqaCraAgaxKaCsaxKayQamwayRacAaeUapTarQarRarSaCtarUaCuayZaCvaAmaAmaAmazaaCwaCxaCyayZaCzaCAaCBaCCaCDaApaaaaafaaaaafaaaaafaaaaafaaaallavuaCEaBsaCFaCGallasiamlavuarjamlallaaaallawTaBsaBsaCHaCIaCJaCJaCJaCJaCJaCKaCLaCMaCNaCOaCOaCOaCPaCQaCRaCSaCTaCUaCVaCWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajxaekaekaCXaCYalQaCZaDaaDbaDcaDdaDealQaDgaDfavMaBGaDhaAvaDiaDjaDkaDlaDmaDnayuaDoazEazEazEazEaDpaDqaDraDsaDtaDuaBYaBYaBYaBYaBYaBYaBYaAEaaaazNaDvaDwaDxaDyaDzazNaaaaxoaxuaxvaDAaDBaDCaDDaDEaxvapNaDFaxxaxxaDGaATaDHaATaDIaxxaxxaDJaDKaxKaDLaxKayQamwayRacAaeUapTapTapTapTapTaDMaDNaDOaDPaDQaDRaDRaDRaDSayZaDTayZaDUaDVaDWaBdaBeaApallallallallallallallallallallallallallaDXallallallallawTaBtaDYaDZaEaaDZaEbaEcaEdaEdaEeaEfaEfaEfaEfaEfaEgaEhaEiaEiaEiaEiaEiaEiaBDaEjaEkaElaBDaBDaBDaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajxaekaekaCXaCYalQaCZaDaaDbaDcaDdaDealQaDgaDfavMaBGaDhaAvaDiaDjaDkaDlaDmaDnayuaDoazEazEazEazEaDpaDqcqoaDsaDtaDuaBYaBYaBYaBYaBYaBYaBYaAEaaaazNaDvaDwaDxaDyaDzazNaaaaxoaxuaxvaDAaDBaDCaDDaDEaxvapNaDFaxxaxxaDGaATaDHaATaDIaxxaxxaDJaDKaxKaDLaxKayQamwayRacAaeUapTapTapTapTapTaDMaDNaDOaDPaDQaDRaDRaDRaDSayZaDTayZaDUaDVaDWaBdaBeaApallallallallallallallallallallallallallaDXallallallallawTaBtaDYaDZaEaaDZaEbaEcaEdaEdaEeaEfaEfaEfaEfaEfaEgaEhaEiaEiaEiaEiaEiaEiaBDaEjaEkaElaBDaBDaBDaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeZaEmaEmaEnalQaEoalQaEoalQaEoalQaEoalQaDgaEpavMaBGaEqaAvaEraEsaEtaEuaEvaEwayuaExazEaEyaEzaEzaEAaEBaECaEDaEEaEFaEGaEGaEGaEGaEGaEHaEIaAEaafazNaEJaDwaEKaELaEMazNaafaxoaENaEOaEPaEQaDCaERaESaETaEUaEVaxKaEWaEXaDJaDJaDJaEYaEZaxKaFaaFaaxKaDJaxKaFbaoeaFcacAaeUaeUaeUaeUaeUamXawvaFdaFeaFfaFgaFeaFhaFeaFiaFeaFjayZaFkaFlaFmaBdaFnaFoaFpaFqaFraFsaFtaFuaFuaFuaFuaFvaFwaFuaFuaFxaFyaFzaFAaBpaFBaFCaFDaFEaFFaFEaFGaFHaEfaEfaFIaEfaFJaFKaFLaEfaEiaFMaEiaFNaFOaFPaFQaFRaFSaFTaFUaFVaFWaFXaFYaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFZaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeZalQalQaGaalQaEoalQaEoaGbaEoalQaEoalQaDgaEpavMaBGaGcaAvaAvaGdaGeaGfaGgaAvayuayuayuayuaGhazEazEaGiayuaGjaGkaBYaBYaBYaGlaBYaBYaBYaGmaAEaaaazNazNaGnaGoaGnazNazNaaaaxoaxuaxvaGpaGqaGraGsaGtaxvapNaGuaxKaGvaEXaDJaDJaDJaEYaGwaxKaAgaAgaxKaCsaxKaGxaGyaGzacAamXacAacAacAacAacAaGAaGBayZaGCaAmayZaGDayZaGEayZaGFayZaGGaGHaFmaBdaGIaGJaGKaGLaGMaGMaGNaGMaGMaGOaGMaGPaGQauwauwauwauwaGRaGSaGTaGUaGVamlaGWaGWaGWaGWaGXaEfaGYaGZaHaaHbaHcaHdaEfaHeaHfaEiaHgaHhaHiaHjaFRaHkaEjaEkaCTaHlaHmaFYaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeZaHnaHnaHoalQaEoalQaEoalQaEoalQaEoalQaDgaEpavMaHpaHqaHraHsaHsaHtaHuaxaaHvaHwaHxaHyayuaHzazEazEaHAayuaHBaHCaBYaHDaHEaHFaHGaHHaHIaHJaAEaaaaafaaaaHKaHLaHKaaaaafaaaaxoaxuaxvaDCaHMaHNaHOaHPaxvapNasJaxKaHQaHRaDJaDJaDJaHSaHTaxKaaaaaaaHUaHVaHWaHXaHYaHZaIaaIbaHUaaaaaaaIcaIdaIeaIfayZaIgaAmaAmaAmaCxaAmaAmaAmayZaBdaIhaIiaBdaBdaApaIjaIkaIkaIlaImaInaIkaIoaIkaIpaIqaIpaIraIpaIsaGWaGWaItaGWaGWaGWaGWaIuaIvaGWaGXaEfaGZaIwaIxaIyaIzaIAaEfaIBaICaIDaIEaIFaIGaIHaIIaIJaBAaIKaFVaFWaILaFYaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanTaekaekaCXaCYalQalQalQalQalQalQaIMalQaDgaINavMaBGaxaaIOaIPaIPaIPaIPaIPaIPaIPaIQaxaayuaIRaISaIRayuayuaITaIUaIVaADaADaADaADaIVaIWaIXaAEaIYaIZaIZaJaaJbaJaaIZaIZaJcaxoaJdaxvaJeaxvaJfaJfaJgaxvaJhaJiaxKaxKaxKaAgaDHaAgaxKaxKaxKaHUaHUaHUaJjaHYaHYaHYaHYaHYaJkaHUaHUaHUaIcaJlaIeaJmayZayZayZayZayZayZayZayZayZayZaJnaJoaJpaJqaJraJsaJtaJuaIkaJvaImaJwaJxaJwaIpaJyaJzaIpaJAaIpaJBaJCaJDaJEaJFaJFaJFaJGaJHaJIaGWaGXaEfaJJaIwaJKaIyaIzaJLaEfaJMaJNaJOaJPaJQaJRaJSaJTaJUaJVaJWaCTaHlaHmaFYaaaaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanTaekaJXaekaeZaeZaeZaeZaekaBEaJYafOaqpaJZaxaaKaaKbaKbaKcaKbaKdarpaKeaKfaxaaKgaKhaKiaKiaKjaKiaKkaKlaKiaKiaKiaKiaKiaKiaKiaKmaKnaKoaKpaKqaKqaKraKsaKqaKqaKqaKtaKuaKvaKraKqaKqaKqaKwaGyaKxaHYaKyaKzaHZaIaaIaaIaaHXaHYaHYaKAaHYaKBaKCaKDaKEaKFaKGaKHaKIaHYaHYaKAaKJaKKaKLaKMaKNaKOaKPaKQaHYaKRaHYaBdaKSaKTaKUaJoaKVaKWaKXaKYaKZaLaaIkaLbaLcaLdaLeaLfaIpaLgaJzaLhaLiaIpaGWaLjaLkaLlaLmaLnaLoaLpaLqaLraGWaGXaEfaLsaLtaLuaLvaLwaLxaEfaLyaLzaEiaLAaLAaLAaLAaEiaLBaCRaJWaCTaBDaBDaBDaLCaLCaLCaLDaLDaLDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMaylavMaaIaaIaaIaaIavMaylavMaaaaqpaAuaLEaKaaLFaLGaLHaLHaLIarpaLJaKfaLKaLLaKhaLMaLNaLOaLPaLQaLRaKiaKiaKiaKiaKiaKiaKiaKmaKiaKhaKiaKiaKiaLSaLTaLUaLUaLUaLUaLVaLUaLWaLUaLUaLXaKhaGyaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaKAaHYaLYaLZaMaaMbaMcaMdaMeaMfaHYaHYaKAaHYaHYaHYaHYaHYaHYaHYaHYaHYaMgaHYaBdaKUaKUaKUaMhaMiaMjaMkaMlaMmaMnaIkaMoaImaMpaIkaIkaIpaMqaJzaMraLiaMsaIpaGWaGWaGWaGWaGWaGWaMtaMuaMvaGWaGXaEfaMwaGZaMxaMyaGZaMzaEfaEiaEiaEiaEiaEiaEiaMAaEiaEjaMBaEkaCTaMCaMDaBDaMEaMFaMGaMHaMIaLDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaafaafaafaztaqpavMatBavMavMavMavMavMavMatBavMavMaqpaBGaxaaKaaMJaMKaLHaLHaLIarpaMLaKfaxaaLLaKhaKiaMMaMNaMNaMNaMOaMPaMQaMNaMRaMNaMNaMNaMSaMNaMTaMNaMNaMNaMUaMVaMWaMXaMXaMYaMZaNaaNbaNcaKiaNdaKhaGyaHYaNeaHYaNfaNfaNfaNfaNfaNfaNfaNfaNgaNfaNfaNfaNfaNfaNfaNfaNfaNfaNfaNfaNhaNfaNfaNfaNfaNfaNfaNfaNfaHYaHYaHYaBdaNiaNiaNiaNiaNiaNjaNkaJsaKZaNlaIkaNmaNnaNoaIkaNpaIpaNqaNraNsaLiaNtaIpaGWaNuaNvaNwaNxaNwaNyaNzaNAaGWaGXaEfaNBaNBaNCaNDaNEaNEaNFaEfaNGaNHaNIaBDaNJaNKaNLaEjaEjaNMaNNaBDaNOaBDaNPaNQaNRaNRaNSaLDaLDaLDaLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafarpavMaylavMaNTaNUaNVaNWavMaylavMaNXaNYaNZaxaaKaaOaaOaaKcaOaaKdarpaObaKfaxaaOcaOcaOcaOdaOcaOeaOeaOeaOeaOeaOfaOgaOeaOhaOeaOeaOeaOiaOjaOkaOjaOlaOmaOnaKiaKiaOoaOpaOqaOraKlaKiaNdaOsaOsaHYaHYaHZaHUaHUaHUaHUaHUaHUaHUaHUaOtaOuaOvaOwaOvaOvaOvaOxaOvaOyaOvaOzaOtaHUaHUaHUaHUaHUaHUaHUaHUaHXaHYaHYaIkaOAaOBaOCaOCaOCaOCaOCaJsaODaOCaIkaOEaOFaOGaIpaIpaIpaOHaOIaIpaIpaIpaIpaGWaNwaOJaOKaOKaOKaOLaOMaNwaGWaGXaEfaONaGZaNCaNDaGZaGZaOOaEfaOPaOQaORaBDaEjaOSaOTaOUaOUaOVaOWaOXaOYaBDaOZaPaaNRaPbaNRaPcaPdaPdaPcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMaylavMaaIaaIaaIaaIavMaylavMaaaaqpaAuaLEaKaaLFaLGaLHaLHaLIarpaLJaKfaLKaLLaKhaLMaLNaLOaLPaLQaLRaKiaKiaKiaKiaKiaKiaKiaKmaKiaKhaKiaKiaKiaLSaLTaLUaLUaLUaLUaLVaLUaLWaLUaLUaLXaKhaGyaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaKAaHYaLYaLZaMaaMbaMcaMdaMeaMfaHYaHYaKAaHYaHYaHYaHYaHYaHYaHYaHYaHYaMgaHYaBdaKUaKUaKUaMhaMiaMjaMkaMlaMmaMnaIkaMoaImaMpaIkaIkaIpaMqaJzaMraLiaMsaIpaGWaGWaGWaGWaGWaGWaMtaMuaMvaGWaGXaEfaMwaGZaMxaMyaGZaMzaEfaEiaEiaEiaEiaEiaEiaMAaEiaEjaEjaEkaCTaMCaMDaBDaMEaMFaMGaMHaMIaLDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaafaafaafaztaqpavMatBavMavMavMavMavMavMatBavMavMaqpaBGaxaaKaaMJaMKaLHaLHaLIarpaMLaKfaxaaLLaKhaKiaMMaMNaMNaMNaMOaMPaMQaMNaMRaMNaMNaMNaMSaMNaMTaMNaMNaMNaMUaMVaMWaMXaMXaMYaMZaNaaNbaNcaKiaNdaKhaGyaHYaNeaHYaNfaNfaNfaNfaNfaNfaNfaNfaNgaNfaNfaNfaNfaNfaNfaNfaNfaNfaNfaNfaNhaNfaNfaNfaNfaNfaNfaNfaNfaHYaHYaHYaBdaNiaNiaNiaNiaNiaNjaNkaJsaKZaNlaIkaNmaNnaNoaIkaNpaIpaNqaNraNsaLiaNtaIpaGWaNuaNvaNwaNxaNwaNyaNzaNAaGWaGXaEfaNBaNBaNCaNDaNEaNEbqoaEfaNGaNHaNIaBDaNJaNKaNLaEjaEjaNMaNNaBDaNOaBDaNPaNQaNRaNRaNSaLDaLDaLDaLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafarpavMaylavMaNTaNUaNVaNWavMaylavMaNXaNYaNZaxaaKaaOaaOaaKcaOaaKdarpaObaKfaxaaOcaOcaOcaOdaOcaOeaOeaOeaOeaOeaOfaOgaOeaOhaOeaOeaOeaOiaOjaOkaOjaOlaOmaOnaKiaKiaOoaOpaOqaOraKlaKiaNdaOsaOsaHYaHYaHZaHUaHUaHUaHUaHUaHUaHUaHUaOtcqqcqpcqrcqpcqpcqpcqtcqpcqucqpcqxaOtaHUaHUaHUaHUaHUaHUaHUaHUaHXaHYaHYaIkaOAaOBaOCaOCaOCaOCaOCaJsaODaOCaIkaOEaOFaOGaIpaIpaIpaOHaOIaIpaIpaIpaIpaGWaNwaOJaOKaOKaOKaOLaOMaNwaGWaGXaEfaONaGZaNCaNDaGZaGZaOOaEfaOPaOQaORaBDaEjaOSaOTaOUaOUaOVaOWaOXaOYaBDaOZaPaaNRaPbaNRaPcaPdaPdaPcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMaPeaxaavNaNZaxaaxaaPfavNaxaaPeaNZaxaaxaaxaaPgaPhaPhaPhaPhaPhaPhaPhaPiaxaaOcaPjaOcaPkaOeaPlaPmaPnaPoaPpaPmaPqaPraPsaPtaPuaPvaOiaPwaPxaPyaOlaPzaOnaOnaPAaOnaOnaOsaPBaPCaPDaPEaOsaOsaPFaHYaHZaHUaaaaaaaaaaaaaaaaaaaaaaOtaPGaPHaPIaPJaPKaPLaPMaPNaPOaPPaPQaOtaaaaaaaaaaaaaaaaaaaaaaHUaHXaHYaPRaIkaPSaOCaOCaOCaOCaOCaPTaJsaODaPUaPVaJsaPWaPXaIpaPYaPZaQaaQbaQcaQdaQeaQfaIpaNwaQgaQhaQhaQhaQiaQjaNwaGWaQkaEfaQlaQlaNCaNDaQmaQmaQnaEfaEfaQoaEfaBDaQpaNKaNLaQqaQqaNMaNNaBDaBDaBDaLDaQraQsaQtaLDaLDaLDaLDaQuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaavMaQvaQwaQwaQwaQwaQwaQwaQwaQwaQvaQwaQxaxaaxaaLLaxaaQyaQzaxaaQAaQBaxaaQCaQDaOcaQEaOcaPkaOeaQFaPmaQGaPmaPmaPmaPqaQHaPmaPmaPmaPvaOiaQIaPxaPxaOlaPzaOnaQJaQKaQKaQLaOsaQMaQNaQOaQPaQQaQRaHYaHYaHZaHUaaaaaaaaaaaaaOtaOtaOtaOtaQSaQTaQUaQVaQWaQXaQYaQZaRaaRbaRcaOtaOtaOtaOtaaaaaaaaaaaaaHUaHXaHYaHYaRdaOCaReaRfaRgaRgaRhaRiaRjaRkaRlaRmaRnaRoaRpaRqaRraRraRsaRtaRuaRuaRvaRraRwaRxaRyaRzaRAaRBaRCaQjaNwaGWaGXaEfaGZaGZaNCaNDaGZaGZaGZaRDaREaGZaRFaBDaRGaRHaRIaQqaQqaRJaRKaRLaBDaRMaRNaPaaNRaROaNRaRPaPdaPdaRQaRRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaavMaQvaQwaQwaQwaQwaQwaQwaQwaQwaQvaQwaQxaxaaxaaLLaxaaQyaQzaxaaQAaQBaxaaQCaQDaOcaQEaOcaPkaOeaQFaPmaQGaPmaPmaPmaPqaQHaPmaPmaPmaPvaOiaQIaPxaPxaOlaPzaOnaQJaQKaQKaQLaOsaQMaQNaQOaQPaQQaQRaHYaHYaHZaHUaaaaaaaaaaaaaOtaOtaOtaOtaQSaQTaQUaQVaQWaQXaQYaQZaRaaRbaRcaOtaOtaOtaOtaaaaaaaaaaaaaHUaHXaHYaHYaRdaOCaReaRgaRgaRgaRhaRiaRjaRkaRlaRmaRnaRoaRpaRqaRraRraRsaRtaRuaRuaRvaRraRwaRxaRyaRzaRAaRBaRCaQjaNwaGWaGXaEfaGZaGZaNCaNDaGZaGZaGZaRDaREaGZbqpaBDaRGaRHaRIaQqaQqaRJaRKaRLaBDaRMaRNaPaaNRaROaNRaRPaPdaPdaRQaRRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaqpaqpavMavMavMavMavMavMavMavMaqpaqparpaLLaRSaRTaRTaRUaRTaRTaRTaRVaRTaRTaRTaOcaQEaRWaRXaOeaRYaPmaRZaSaaSbaScaSdaSaaPmaPmaPmaSeaOiaSfaSgaShaOlaPzaOnaSiaSjaSkaSlaOsaSmaSnaSoaSpaSqaQRaHYaHYaHZaHUaHUaIcaSraOtaOtaSsaStaSuaSvaSwaSxaSyaSzaSxaSAaSxaSxaSBaSCaSDaSEaSFaOtaOtaSraIcaHUaHUaHXaHYaHYaIkaSGaJsaOCaOCaOCaOCaSHaOCaSIaSJaSKaSLaSMaSNaSOaSPaSQaSRaSSaSTaSUaSVaSPaSWaSXaSYaSZaTaaTbaSZaTcaTdaGWaGXaEfaTeaTeaNCaNDaTfaGZaGZaTgaGZaThaTiaBDaTjaTkaTlaQqaQqaTmaTnaEjaBDaToaNRaPaaNRaROaTpaLDaLDaLDaLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMaymaxbaTqaRTaTraTsaTtaTuaTtaTvaTraTtaRTaQEaQEaTwaTxaOeaTyaPmaTzaTAaTBaTCaTDaSaaPmaPmaPmaPvaOiaOiaOiaOiaOlaPzaOnaOnaOnaOnaOnaOsaTEaQOaQOaQOaQOaQRaHYaHYaHZaIaaIaaTFaTGaTHaOtaTIaTJaTKaTLaTMaTLaTNaTOaTPaTQaTRaTSaTTaTRaTUaTVaTWaOtaTXaTGaTYaTZaIaaHXaHYaHYaRdaOCaJsaUaaOCaUbaOCaUaaOCaODaPUaUcaOCaOCaOCaUdaUeaUfaUgaUhaUiaUjaUkaUlaIpaUmaUnaUoaQhaUpaQhaUqaUraGWaUsaEfaEfaEfaNCaNDaUtaUuaGZaUvaUwaJKaUxaBDaEjaUyaRIaQqaQqaRJaUzaUAaBDaUBaNRaPaaUCaUDaUEaLDaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUFavMavMaBGaUGaUHaUIaUJaUKaULaUMaUNaTraTtaRTaUOaUPaUQaOcaOeaURaUSaUTaUUaUTaUVaUWaUVaUVaUVaUXaUYaOeaUZaVaaVbaVcaVdaVeaVfaVgaOcaVhaOsaViaVjaVkaVlaVlaQRaHYaHYaHYaHYaHYaVmaVnaVoaVpaVqaVraVsaVtaVuaVvaVwaVxaVyaVzaVAaVBaVCaVDaVsaVEaVFaVGaVHaVIaVJaVKaVLaVMaHYaHYaIkaVNaVOaVPaVQaOCaVRaVSaVQaODaPUaVTaVTaVUaVVaIpaUeaUeaUeaVWaUeaUeaUkaVXaIpaNwaUnaQhaQhaUpaQhaVYaNwaGWaVZaWaaWbaWcaWdaWeaWfaWfaWfaWfaWfaWfaWgaWhaWiaWiaWiaWiaWiaWjaWkaWlaWhaWmaWnaWoaWpaNRaWqaLDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -6555,35 +6581,35 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafavMawZaxaawZaxbaxaaxaaxcawZaxaawZaxbaxabcqaHqbcrbcsbctbcrbcrbcrbcubcvaOcaOcaOcbcwaUQaWAaYdbcxbcybczaWAbcAbcBbcAaOeaOeaOebcCbcDaOcaYnaYoaYpbcEaZGbaFbcFbcGaYpaZIaYvbcHbaHbaHbcIbcJbcKbcLaHYaWUbaMbcMbaObbNbcNbcObcPbaSbaOaZWbcQbcRaYDbcSbcTbcUaYDbcVbcWbabbcXbcYbcZbdabdabdbbajbdcaYHbddbdeaHYaGybbfaXFaXFbdfaXFbdgbdhbdhbdhbdibdhbdhbdhbdjaXFaXFaXFaXFaXFaXFbdkbdlbdmbbfaXFaXFaXFaXFbarbdnbdobdpbdqbdraXFaXFaXFaXFaXFbdsbdtaXFaXFaXFaXFaXFaXFaXFaXFaXFaXFaXFaXFaXFbbfbdubdvbdwbdxaROaNRaNSaLDaLDaLDaLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarpavMbdyavMaBGaxaaxabdzavMbdAavMayqbdBbdCbdCbdDbdEbdFbdGbdHbdIbdJbdKbdLbdMbdMbdNbdOaWAaWAaWAbdPbdQaWAaOcaOcaOcaOcbdRaVbbdSbdTaVbbdUaYoaYpbdVaZGaZGbdWbdXaYpbdYaYvbdZbaHbaHbeabebbecbedaHYaWUaYxbaObeebaPbaPbefbaRbaSbegbehaXfbeibejbekbekbekbelbemaXkbenbeobepbeqberbajbesbajbetaYHaXqaHYaHYbeubeubeubeubeubeubeubevbewbewbexbeybeybevbezbezbezbezbezbeAbeAbeBbeCbeAbeAbeAbeAbeDaXFbeEbeFbeGbeHbeIaXFaXFaXFbeJbeJbeKbeKbeKbeKbeKbeLbeMbeMbeMbeNbeMbeObePbeMbeMbeQbeRbeRbeRbeRbeSbeTbeUbeVaLDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaztaqpazuatBavMaymaynbeWbeXavMatBazuavMaqpaztarpbdDbeYbeZbeZbeZbfabdJbfbbfcbfdbfdbfebffaWAaYdbfgbdPbfhaWAbfibfiaQEaQEbfjbfkbflbfmbflbflbfnaYpbfobfpaZGaZGbdXbfqbfraYvbfsbaHbaHbeabftbfubedaHYbfvaYxbfwaYAbfxbfybfzbfAbaSbfBaYxaafbfCbfDbfDbfDbfEbfFbfGaafaYHbfHbfIbfJbfKbajbfLbajbfMaYHaXqaHYbfNbeubfObfPbfQbfRbfSbeubfTbfUbfVbfWbfXbfXbfXbfYbfZbgabgbbezbgcbgdbgebgdbgdbgfbggbeAbeGbghbeGbeGbeGbgibeIbeIbgjbeIbgkbgkbeKbglbgmbgnbeKbgobgpbgobeKbgqbgrbgqbeRbgsbgtbgsbeRbgubgvbeRbgwbgxaLDaLDaLDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafavMbdyavMavMavMavMavMavMbdAavMaafaafaafaaabdDbgybdDbgzbeZbgAbgBbcraVbbgCbgDbgEbgFbgGbgGbgGbgGbgGbgGbgHbgIbgJbfdbgKbgLaYpaYpaYpaYpaYpaYpbgMaYpaYpaYpbgNbgObgPbgQbgRbaHbaHbeabgSbecbedaHYbgTaYxbgUaYAaYAaYAaYAbfAbaSbgVaYxaafbfCbfDbgWbgXbgYbfDbgZaafaYHbhabbYbhbbhcbajbesbajbajaYHaXqaHYaHYbeubhdbhebhfbhgbhhbhibfXbhjbfXbhkbfXbfXbhlbfYbhmbhnbhobezbhpbgdbhqbgdbhpbhrbgdbeAbhsbhtbhubhvbeGbhwbeIbhxbhybhzbhAbhAbeKbhBbhCbhDbhEbhFbhGbhHbeKbhIbhJbhKbeRbhLbhMbhLbhNbhObhObeRbhPbgxaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaafaaabdDbhQbhRbhSbhTbhTbhUbhVaWPbhWaOcbhXbhYbhZbhZbhZbiabiabiabiabiabiabiabibbgNbicbidbiebifbigbihbiibijaYpbikbilbimbinbinbiobaHbaHbeabaHaYvbedaHYaWUbipbiqbirbisbitaYAbiubaSaYxaYxaafbfCbfDbgXbfDbgXbfDbgZaafaYHaYHbivbcZbiwbajbixbiybizaYHaXqaHYbiAbiBbiCbiDbiEbiFbiGbiHbfXbiIbiJbiKbiLbiLbiMbfYbiNbhnbiObezbhpbgdbhqbiPbhpbiQbiRbeAbiSbiTbiUbiVbeGbgibeIbiWbiXbiXbiYbiZbjabjbbjcbjcbjcbjdbjebjfbeKbjgbhJbjhbeRbjibjjbjkbjlbjmbjnbeRbhPbgxbjobjobjobjoaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafavMbdyavMavMavMavMavMavMbdAavMaafaafaafaaabdDbgybdDbgzbeZbgAbgBbcraVbbgCbgDbgEbgFbgGbgGbgGbgGbgGbgGbgHbgIbgJbfdbgKbgLaYpaYpaYpaYpaYpaYpbgMaYpaYpaYpbgNbgObgPbgQbgRbaHbaHbeabgSbecbedaHYbgTaYxbgUaYAaYAaYAaYAbfAbaSbgVaYxaafbfCbfDbgWbgXbgYbfDbgZaafaYHbhabbYbhbbhcbajbesbajbajaYHaXqaHYaHYbeubqqbhebhfbhgbhhbhibfXbhjbfXbhkbfXbfXbhlbfYbhmbhnbhobezbhpbgdbhqbgdbhpbhrbgdbeAbhsbhtbhubhvbeGbhwbeIbhxbhybhzbhAbhAbeKbhBbhCbhDbhEbhFbhGbhHbeKbhIbhJbhKbeRbhLbhMbhLbhNbhObhObeRbhPbgxaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaafaaabdDbhQbhRbhSbhTbhTbhUbhVaWPbhWaOcbhXbhYbhZbhZbhZbiabiabiabiabiabiabiabibbgNbicbidbiebifbigbihbiibijaYpbikbilbimbinbinbiobaHbaHbeabaHaYvbedaHYaWUbipbiqbirbisbitaYAbiubaSaYxaYxaafbfCbfDbgXbfDbgXbfDbgZaafaYHaYHbivbcZbiwbajbixbiybizaYHaXqaHYbiAbiBbiCbiDbiEbiFbqrbiHbfXbiIbiJbiKbiLbiLbiMbfYbiNbhnbiObezbhpbgdbhqbiPbhpbiQbiRbeAbiSbiTbiUbiVbeGbgibeIbiWbiXbiXbiYbiZbjabjbbjcbjcbjcbjdbjebjfbeKbjgbhJbjhbeRbjibjjbjkbjlbjmbjnbeRbhPbgxbjobjobjobjoaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaafaaabdDbjpbdDbjqbjrbjrbjsbdDbjtbjtaOcbjubjvbjubjubjubjvbjuaOcaOcaYpaYpaYpbjwbgNbjxbjxbjybjxbjxbjxbiibjxbjzbjAbjBbjCbjDbjEbjEbjEbjEbjFbjGbjHbjIbjJbjKbjLbjMbjNbjObjPaYAbfAbaSaYxaafaafbfCbfDbgYbjQbgWbjRbgZaafaafaYHbjSbjTaYHaYHaYHaYHbjUaYHbjVaHYaHYbeubjWbhebjXbhgbhhbjYbfXbjZbkabkbbkcbkdbkebezbkfbkgbkhbezbhpbgdbkibkjbhpbkkbgdbeAbeGbeGbeGbeGbeGbgibeIbklbkmbknbkobkpbkqbkrbksbktbktbkubkvbkwbeKbkxbhJbkybeRbkzbkAbkBbkCbkDbkEbeRbhPbkFbkGbkHbkIbkHaaaaaaaafaaaaafaaaaafaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaafaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaabdDbkJbhRbkKbjrbkLbkMbdDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkNbkObkPbkQbkRbkSbkSbkTbkSbkSbkSbkUbkSbkVbkWbkXbkYbkZbecbecbecblaaYvblbaYvblcbldaKAbipbleblfblfblfblfblgblhbliaafaaabljblkbllbfDbfDblmbgZaaaaafblnbloblpblqblrblsblnbltblnbluaHYaHYbeublvbhectCblwblxbeublybjZbkablzblAbfXblBbezblCblDblEbezblFblGblHblIblJblKblLblMblNblOblNblNblNblPbeIblQbhyblRblSblTbkqblUblVblWblWblXblYblZbeKbmabgrbmbbeRbmcbmdbmebkCbhObmfbeRbhPbmgbmhbmibmibmibmibmibmibmjaafaaaaafaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaabdDbmkbhRbhRbhRbdDbdDbdDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkNbmlbjxbmmbmnbmobmnbmnbmnbmnbmnbmpbmnbmqbmrbmsbmtbmubmvbecbmwbaHbmxbmybmzbedbmAbmBbipbipblibmCbmDbmEbmFbmGbliaaaaaabfCbmHbmIbmJbmIbmKbgZaaaaaablnbmLbmMbmNblnbmOblnbltblnbluaHYaHYbeubmPbhebjXbmQbmRbeubmSbmTbmUbmVbmWbfXbmXbezbfYbmYbmZbezbeAbnabeAbeBbnbbncbncbncbncbncbncbncbncbgibeIbndbkmbknbnebnfbngbnhbnibnibniblXbkvbnjbnkbnlbnmbnnbnobnpbnqbnpbnrbhObnsbeRbntbnubnubnubnubnubnubnubnvbgxbjobjobjoaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnwbkNbkNbnxbjxbjxbjxbnybnzbnzbnzbjxbjxbjxbjxbjzbnAbeabnBbnCbnDbnEbnFbnGbnHbaHbmzbnIbnJbnKbnLbnMbnNbnObnPbnQbnRbnSbliaafaaabfCbnTbnUbnUbnUbnVbgZaaaaafblnbnWbnXbnYblnbnZblnbltblnboaaHYaKJbobbocbodboebofbogbeubohbjZbhkbmVboibojbmSbmSbokbolbombonboobopbfXboqborbosbotboubovbowboxboybncbgibeIbozboAboBboCboDbeKboEbnibniboFboGbkvboHboIboJboKboLbnoboMboNbhOboOboPboQbeRboRboSboSboSboSboSboSboSbhPbgxboTboUbjobjoaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboVboWboVboXboYbjxbjxbiibjxbjxbjxbjxbjxboZaYpaYpbpabpbbjEbpcbpdbecbpebaHbpfbaHbpgblubmAbphbpibpjbpkbplbpmbpnbpobppbliaaaaaabfCbpqbprbpsbprbptbgZaaaaaabpubpvbpwbpubpubpubpubpxbpubpyaKAaKAbeubeubpzbpAbpBbpCbeubpDbjZbpEbpFbpFbpFbpFbpFbpGbpHbpIbpJbpFbpKbpFbpLbpMbosbpNbpObpPbpQbpRbpSbncbpTbpUbpVbpWbpWbpXbpYbpZbqabqbbqbbqcbqdbkvbqebqfbqgbqhbqibnobnobqjbqkbqlbqmbnobeRboSboSbqnbqobqpbqqbqrboSbqsbqtbqubqvbqwbjoaaaaafaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqxbqybqxbqzbjxbjxbjxbnybnzbnzbnzbjxbjxbqAbqBaYpbqCbaHbaHbqDbqEbqFbqGbaHbaHbaHbpgblubqHaHYbpibpjbqIbqJbqKbqLbqMbqNbliaafaafbqObqPbqQbqRbqSbqTbqUaafaafbqVbqWbqXbqYbqZbrabrbbrcbpubrdaHYaHYbmVbrebrfbrgbrhbribrjbrkbrlbrmbrnbrnbrnbrnbrnbrobrpbrqbrrbrsbrtbrubrvbrwbosbrxbrybrzbrAbrBboybncbgibeIbrCbrDbrEbrFbrFbeKbrGbrHbrIbnkbrJbkvbrKbnkbrLbrMbrNbrObrPbrQbrRbrSbrTbrUbrVbrWbrXbrYbrZbrZbrZbsabsbbscbgxbsdbsebjobjoaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnwbkNbkNbsfbjxbjxbjxbiibjxbjxbjxbjxbjxbqAbsgaYpbshbsibjEbsjbskbslbeabaHbaHbsmbmzbsnbqHaHYbpibpjblibsobspbsqbsrbssbliaaaaaaaafbfCbstbsubstbgZaafaaaaaabqVbsvbswbsxbsybszbszbsAbsBbsCaHYaHYbmVbsDbfXbsEbsFbsGbsHbsGbsIbsJbsKbsLbsKbsKbsKbsMbsNbfXbhkbsObsPbsPbsQbsRbosbosbsSbsTbsUbpRboybncbeHbeIbsVbsVbsVbsVbsVbeKbnkbnkbnkbnkbsWbsXbsYbnkbsZbtabtbbtcbtcbtcbtcbtdbtebtfbtgbthbtibtjbtkbtkbtlbtmboSbtnbgxbsdbsebjoaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtobqxbqybqxbmlbtpbjxbjxbtqbjxbtpbjxbjxbjxbqAbtraYpbtsbttbnGbtubtvbecbpbbjEbtwbtxbmzbsnbqHaWUbpibtyblibtzbtAbtBbtCbmGbliaaaaaaaafbtDbtEbnUbtFbtGaafaaaaaabqVbtHbtIbtJbtKbtLbtMbtNbpubtOaHYaHYbmSbmSbtPbtQbpGbtRbtSbtTbtUbtVbtWbtXbtWbtXbtWbtXbtWbtXbtYbtZbsPbuabubbucbudbuebufbugbuhbuibujbncbukbulbumbnmbunbhJbhJbuobhJbhJbupbuqburbusbutbtcbuubuvbuwbuxbuxbuxbuybuybuybuybuybuzbuAbuBbuCbuBbuDbuBboSbtnbgxbsdbuEbjobjoaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabuFbuGbuFbuHbuIbuHbuHbuHbuHbuHbuJbuKbjxbqAbuLaYpbuMbaHbuNbuObuPbuQbuRbuRbuRbuQbuQbuSbqHaJkbuTbpjblibuUbuVbuWbuXbuYbliaaaaaaaafbuZbvabqRbvbbvcaafaaaaaabqVbvdbvebvfbvgbtLbtMbtNbpubvhaHYaHYbvibvjbvkbvlbvmbvnbtXbvobvpbvqbvrbvsbvtbvubvvbvubvwbtXbhkbjZbsPbvxbvybvzbvAbvBbvCbvDbvEbvEbvFbvGbvHbvIbvJbvKbvLbvMbvNbvMbvMbvObvMbvMbvPbvQbvRbvRbvSbvTbqibuxbvUbvVbvWbvXbvYbvZbuybwabwbbwcbwdbwebwbbwfboSbtnbgxbwgbqvbwhbjoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnwbkNbkNbkNaYpbkNbkNbkNbwibwibwibwibwjbwkbwkbwibwibwlbwlbwmbwnbuQbwobwpbwqbwrbuQbsnbqHaHZaIcaIcbliblibwsbliblibwtbliaHUaHUaHUbwubwvbsubwwbwxaHUaHUaHUbpubpubpubpubpubpubpubpubpubvhaHYbwybtXbtXbtXbwzbtXbtXbtXbwAbvpbwBbwCbwDbwEbwFbwGbwHbwIbwDbhkbjZbsPbwJbwKbwLbwMbwNbwObrAbrAbrAbwPbwQbwRbwSbwTbwTbwTbwTbwUbwTbwTbwTbwVbwVbwWbwXbwYbwYbwZbxabqibuxbxbbxcbxdbxebxfbxgbxhboSboSbxibxibxiboSbxjboSbtnbgxbsdbsebjobjoaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwibxkbxlbxmbxnbxobxpbwkbxqbxrbxsbxtbxubxvbxwbxxbxybuQbsnbqHaHYaHYaHYbxzaKQbxAaKAbxBbxCbxDaVLaVLaVLbxEbxFbxGbxHbxIaHYaHYaHYaHYaKQaHYaKAaHYaHYaHYbxzaHYbvhaHYbxJbtXbxKbxLbxMbxNbxObtXbxPbxQbxRbxSbwDbwEbwEbxTbxUbxVbwDbhkbxWbsPbrAbxXbxYbxZbwQbyabybbycbydbncbncbeHbyebwTbyfbygbyhbyibyjbykbwTbylbymbynbyobypbwYbyqbyrbysbytbyubyvbywbyxbyybyzbxhbyAbyAbyAbyAbyAbyAbyAboSbtnbgxbsdbsebjoaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFZaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwkbyBbyCbyDbyEbyFbyGbyHbyIbyJbyKbyLbyMbyNbyObxxbyPbuQbsnbyQaHYaHYaHYaHYaHYaHYaKAaHYbqHaHYaHYaHYaHYaHYbyRbySbyTaHYaHYaHYaHYaHYaHYaHYaKAbyUaHYaHYaHYaHYbvhbyVbyWbtSbyXbyYbyZbyYbzabtXbzbbvpbvqbzcbtXbzdbzebzfbzgbzhbtXbhkbjZbsPbsPbsPbsPbsPbncbncbncbncbncbncbzibgibzjbwTbzkbzlbzmbznbzobzpbwTbzqbzrbzsbztbzubwYbyqbzvbzwbzxbzybzzbzzbzzbzAbzBbxhbyAbzCbyAbzDbyAbyAbyAboSbtnbgxbsdbsebjobjoaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwibzEbzFbzGbzHbzIbzJbwkbxrbxrbzKbzLbuRbzMbzNbzObzPbuQbzQbzRbzSbzSbzSbzTbzSbzSbzUbzSbzVaHYbzWbzXbzYbzYbzZbAabAbbAcbAdbAeaVLaVLbAfaVLbAgbAhaVLbAibAjbAkbAlaHYaHYbtXbAmbAnbAobtWbApbtXbtWbAqbArbtXbtXbtXbtXbtXbtXbtXbtXbhkbjZbfXbAsbAtbAubAvbAwbAxbAybAzbAAbAwbzibgibABbwTbACbADbAEbAFbAGbAHbwTbAIbAJbAKbALbAMbwYbyqbANbAObuybAPbAQbARbASbATbAUbxhbyAbyAbyAbAVbyAbyAbyAboSbtnbqtbAWbqvbqwbjoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwibwibwkbwkbwkbwkbwibwibAXbAYbAZbBabuQbuQbuQbuQbuQbuQbBbbBcaIcaIcaIcaIcbBdbBdbBdbBdbBdbBdbBdbBdbBdbBdbBebBfbBgbBhbBhbBhbBhbBhbBibBhbBhbBjbBhbyebBkbyeaIdaJlbBlbtXbBmbBnbBobBpbBqbtXbBrbxQbBsbBtbBubBvbBwbBxbBybBzbBAbBBbBCbBDbBDbBEbBFbBGbBHbBIbBJbBKbBLbAwbzibgibBMbBMbBMbBMbBMbBMbBMbBMbBMbBNbBNbBNbBNbBNbBNbBObBPbBQbuybuybuybuybuybuybuybxhboSboSboSboSboSboSboSboSbtnbgxbBRbBSbjobjoaafaafaafaagaagaagaagaagaagaagaagaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnwbkNbkNbnxbjxbjxbjxbnybnzbnzbnzbjxbjxbjxbjxbjzbnAbeabnBbnCbnDbnEbnFbnGbnHbaHbmzbnIbnJbnKbnLbnMbnNbnObnPbnQbnRbnSbliaafaaabfCbnTbnUbnUbnUbnVbgZaaaaafblnbnWbnXbnYblnbnZblnbltblnboaaHYaKJbobbocbodboebofbogbeubohbjZbhkbmVboibojbmSbmSbokbolbombonboobopbfXboqborbosbotboubovbowboxboybncbgibeIbozboAboBboCboDbeKboEbnibniboFboGbkvboHboIboJboKboLbnoboMboNbhOboOboPboQbeRboRbrVbrVbrVbrVbrVbrVbrVbhPbgxboTboUbjobjoaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboVboWboVboXboYbjxbjxbiibjxbjxbjxbjxbjxboZaYpaYpbpabpbbjEbpcbpdbecbpebaHbpfbaHbpgblubmAbphbpibpjbpkbplbpmbpnbpobppbliaaaaaabfCbpqbprbpsbprbptbgZaaaaaabpubpvbpwbpubpubpubpubpxbpubpyaKAaKAbeubeubpzbpAbpBbpCbeubpDbjZbpEbpFbpFbpFbpFbpFbpGbpHbpIbpJbpFbpKbpFbpLbpMbosbpNbpObpPbpQbpRbpSbncbpTbpUbpVbpWbpWbpXbpYbpZbqabqbbqbbqcbqdbkvbqebqfbqgbqhbqibnobnobqjbqkbqlbqmbnobeRbrVbrVbrXbrWbrZbrYbsabrVbqsbqtbqubqvbqwbjoaaaaafaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqxbqybqxbqzbjxbjxbjxbnybnzbnzbnzbjxbjxbqAbqBaYpbqCbaHbaHbqDbqEbqFbqGbaHbaHbaHbpgblubqHaHYbpibpjbqIbqJbqKbqLbqMbqNbliaafaafbqObqPbqQbqRbqSbqTbqUaafaafbqVbqWbqXbqYbqZbrabrbbrcbpubrdaHYaHYbmVbrebrfbrgbrhbribrjbrkbrlbrmbrnbrnbrnbrnbrnbrobrpbrqbrrbrsbrtbrubrvbrwbosbrxbrybrzbrAbrBboybncbgibeIbrCbrDbrEbrFbrFbeKbrGbrHbrIbnkbrJbkvbrKbnkbrLbrMbrNbrObrPbrQbrRbrSbrTbrUbsbbthbtgbtjbtibtibtibtlbtkbscbgxbsdbsebjobjoaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnwbkNbkNbsfbjxbjxbjxbiibjxbjxbjxbjxbjxbqAbsgaYpbshbsibjEbsjbskbslbeabaHbaHbsmbmzbsnbqHaHYbpibpjblibsobspbsqbsrbssbliaaaaaaaafbfCbstbsubstbgZaafaaaaaabqVbsvbswbsxbsybszbszbsAbsBbsCaHYaHYbmVbsDbfXbsEbsFbsGbsHbsGbsIbsJbsKbsLbsKbsKbsKbsMbsNbfXbhkbsObsPbsPbsQbsRbosbosbsSbsTbsUbpRboybncbeHbeIbsVbsVbsVbsVbsVbeKbnkbnkbnkbnkbsWbsXbsYbnkbsZbtabtbbtcbtcbtcbtcbtdbtebtfbtmbuAbuzbuCbuBbuBbuDbwabrVbtnbgxbsdbsebjoaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtobqxbqybqxbmlbtpbjxbjxbtqbjxbtpbjxbjxbjxbqAbtraYpbtsbttbnGbtubtvbecbpbbjEbtwbtxbmzbsnbqHaWUbpibtyblibtzbtAbtBbtCbmGbliaaaaaaaafbtDbtEbnUbtFbtGaafaaaaaabqVbtHbtIbtJbtKbtLbtMbtNbpubtOaHYaHYbmSbmSbtPbtQbpGbtRbtSbtTbtUbtVbtWbtXbtWbtXbtWbtXbtWbtXbtYbtZbsPbuabubbucbudbuebufbugbuhbuibujbncbukbulbumbnmbunbhJbhJbuobhJbhJbupbuqburbusbutbtcbuubuvbuwbuxbuxbuxbuybuybuybuybuybwcbwbbwebwdbwebwfbwebrVbtnbgxbsdbuEbjobjoaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabuFbuGbuFbuHbuIbuHbuHbuHbuHbuHbuJbuKbjxbqAbuLaYpbuMbaHbuNbuObuPbuQbuRbuRbuRbuQbuQbuSbqHaJkbuTbpjblibuUbuVbuWbuXbuYbliaaaaaaaafbuZbvabqRbvbbvcaafaaaaaabqVbvdbvebvfbvgbtLbtMbtNbpubvhaHYaHYbvibvjbvkbvlbvmbvnbtXbvobvpbvqbvrbvsbvtbvubvvbvubvwbtXbhkbjZbsPbvxbvybvzbvAbvBbvCbvDbvEbvEbvFbvGbvHbvIbvJbvKbvLbvMbvNbvMbvMbvObvMbvMbvPbvQbvRbvRbvSbvTbqibuxbvUbvVbvWbvXbvYaMBbuybxjbxibzCbyAbzDbxibAVbrVbtnbgxbwgbqvbwhbjoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnwbkNbkNbkNaYpbkNbkNbkNbwibwibwibwibwjbwkbwkbwibwibwlbwlbwmbwnbuQbwobwpbwqbwrbuQbsnbqHaHZaIcaIcbliblibwsbliblibwtbliaHUaHUaHUbwubwvbsubwwbwxaHUaHUaHUbpubpubpubpubpubpubpubpubpubvhaHYbwybtXbtXbtXbwzbtXbtXbtXbwAbvpbwBbwCbwDbwEbwFbwGbwHbwIbwDbhkbjZbsPbwJbwKbwLbwMbwNbwObrAbrAbrAbwPbwQbwRbwSbwTbwTbwTbwTbwUbwTbwTbwTbwVbwVbwWbwXbwYbwYbwZbxabqibuxbxbbxcbxdbxebxfbxgbxhbrVbrVbFBbFBbFBbrVcfYbrVbtnbgxbsdbsebjobjoaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwibxkbxlbxmbxnbxobxpbwkbxqbxrbxsbxtbxubxvbxwbxxbxybuQbsnbqHaHYaHYaHYbxzaKQbxAaKAbxBbxCbxDaVLaVLaVLbxEbxFbxGbxHbxIaHYaHYaHYaHYaKQaHYaKAaHYaHYaHYbxzaHYbvhaHYbxJbtXbxKbxLbxMbxNbxObtXbxPbxQbxRbxSbwDbwEbwEbxTbxUbxVbwDbhkbxWbsPbrAbxXbxYbxZbwQbyabybbycbydbncbncbeHbyebwTbyfbygbyhbyibyjbykbwTbylbymbynbyobypbwYbyqbyrbysbytbyubyvbywbyxbyybyzbxhchfchfchfchfchfchfchfbrVbtnbgxbsdbsebjoaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFZaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwkbyBbyCbyDbyEbyFbyGbyHbyIbyJbyKbyLbyMbyNbyObxxbyPbuQbsnbyQaHYaHYaHYaHYaHYaHYaKAaHYbqHaHYaHYaHYaHYaHYbyRbySbyTaHYaHYaHYaHYaHYaHYaHYaKAbyUaHYaHYaHYaHYbvhbyVbyWbtSbyXbyYbyZbyYbzabtXbzbbvpbvqbzcbtXbzdbzebzfbzgbzhbtXbhkbjZbsPbsPbsPbsPbsPbncbncbncbncbncbncbzibgibzjbwTbzkbzlbzmbznbzobzpbwTbzqbzrbzsbztbzubwYbyqbzvbzwbzxbzybzzbzzbzzbzAbzBbxhchfchfctEctDchfchfchfbrVbtnbgxbsdbsebjobjoaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwibzEbzFbzGbzHbzIbzJbwkbxrbxrbzKbzLbuRbzMbzNbzObzPbuQbzQbzRbzSbzSbzSbzTbzSbzSbzUbzSbzVaHYbzWbzXbzYbzYbzZbAabAbbAcbAdbAeaVLaVLbAfaVLbAgbAhaVLbAibAjbAkbAlaHYaHYbtXbAmbAnbAobtWbApbtXbtWbAqbArbtXbtXbtXbtXbtXbtXbtXbtXbhkbjZbfXbAsbAtbAubAvbAwbAxbAybAzbAAbAwbzibgibABbwTbACbADbAEbAFbAGbAHbwTbAIbAJbAKbALbAMbwYbyqbANbAObuybAPbAQbARbASbATbAUbxhchfchfchfctFchfchfchfbrVbtnbqtbAWbqvbqwbjoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwibwibwkbwkbwkbwkbwibwibAXbAYbAZbBabuQbuQbuQbuQbuQbuQbBbbBcaIcaIcaIcaIcbBdbBdbBdbBdbBdbBdbBdbBdbBdbBdbBebBfbBgbBhbBhbBhbBhbBhbBibBhbBhbBjbBhbyebBkbyeaIdaJlbBlbtXbBmbBnbBobBpbBqbtXbBrbxQbBsbBtbBubBvbBwbBxbBybBzbBAbBBbBCbBDbBDbBEbBFbBGbBHbBIbBJbBKbBLbAwbzibgibBMbBMbBMbBMbBMbBMbBMbBMbBMbBNbBNbBNbBNbBNbBNbBObBPbBQbuybuybuybuybuybuybuybxhbrVbrVbrVbrVbrVbrVbrVbrVbtnbgxbBRbBSbjobjoaafaafaafaagaagaagaagaagaagaagaagaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBTaaaaaaaaaaafaaaaaabwlbBUbBVbBWbBXbBYbBZbCabCbbCcbCdbCebCfaaaaaaaafaaabBdbCgbChbCibCjbCkbClbCmbCnbCobCpbCqbCrbBhbCsbCtbCubCvbCwbCvbCvbCxbCybCzbCAbyebyebyebyebtXbCBbCCbCDbCCbCEbtXbCFbvpbCGbCHbCIbCJbCIbCIbCKbCLbCMbCNbCObCObCObCPbCQbvlbCRbCSbCTbCUbCVbAwbzibgibBMbCWbCWbCWbCXbCWbCWbCWbBMbCYbCYbCZbCYbCYbBNbDabDbbqibDcbDdbDebDfbDgbDhbDibDjbDkbDlbDmbDnbDobDpbDqbDqbDrbDsbDdbDdbjoaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajxaekaeZaekaelaaaaafaaabwlbwlbDtbxrbDubDvbDwbDxbDybDybDzbDAbDBbDCaafbDDbDEbDFbDGbDHbDIbDJbDIbDKbDIbDIbDIbBdbDLbDMbDNbBhbDObDPbDQbDRbDSbCvbDTbBjbBhbDUbDVbDWbDXbDYbDZbEabEbbCCbEcbCCbxQbEdbEebEfbEgbtXbEhbEibCCbCCbEjbEkbmSbmSbmSbmSbmSbElbEmbpGbEnbEobEpbBKbEqbAwbzibgibBMbCWbCWbCWbCWbCWbCWbCWbBMbErbEsbEtbEubEvbBNbEwbExbEybEzbEAbEBbECbEDbEDbEDbEDbEEbEFbEGbDnbjobEHbEIbEJbEJbEKbELbEMaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbENbEObENaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajZbEPbEQbEPajZbERbERbERbwlbESbxrbETbEUbEVbEWbwlbBcbEXbBcbBcbEYbEZaaabFabFbbFcbFdbDIbDIbFebDIbFfbFgbFhbDIbBdbDLbFibFjbBhbFkbFlbFmbFnbFobCvbFpbBjbzibFqbFrbFsbFrbFtbFubtXbFvbCIbFwbCIbFxbtSbFybCJbFzbtXbFAbCCbCCbCCbFBbFCbmSbFDbFEbFFbFGbBEbFHbvlbFIbBKbBKbFJbFKbFLbFMbFNbBMbCWbCWbCWbCWbCWbCWbCWbBMbFObFPbFQbFRbFSbFTbFUbFVbtbbFWbFXbEDbFYbEDbEDbEDbEDbEDbEDbEDbDnbFZbGabGbbGcbGdbGebGfbEMaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbEObENbGgbENbEOaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajZbEPbEQbEPajZbERbERbERbwlbESbxrbETbEUbEVbEWbwlbBcbEXbBcbBcbEYbEZaaabFabFbbFcbFdbDIbDIbFebDIbFfbFgbFhbDIbBdbDLbFibFjbBhbFkbFlbFmbFnbFobCvbFpbBjbzibFqbFrbFsbFrbFtbFubtXbFvbCIbFwbCIbFxbtSbFybCJbFzbtXbFAbCCbCCbCCctGbFCbmSbFDbFEbFFbFGbBEbFHbvlbFIbBKbBKbFJbFKbFLbFMbFNbBMbCWbCWbCWbCWbCWbCWbCWbBMbFObFPbFQbFRbFSbFTbFUbFVbtbbFWbFXbEDbFYbEDbEDbEDbEDbEDbEDbEDbDnbFZbGabGbbGcbGdbGebGfbEMaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbEObENbGgbENbEOaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeZalQaHnalQaeZbERbGhbGibwlbGjbxrbGkbxrbxrbEWbwlbGlbGmbGnbBcbEYbEZaafbFabGobGpbGqbGrbGsbGrbGrbGtbGubGrbGrbGvbGwbGxbGybBhbGzbBhbBhbBhbBhbGAbGBbGCbGDbGEbGFbGGbGHbGIbGIbtXbGJbGKbGLbGMbGNbtXbGObGPbGQbtXbGRbGSbGTbGUbGVbGWbmSbGXbGYbpFbGZbHabHbbHcbCRbHdbBKbBKbHebAwbzibgibBMbBMbHfbCWbCWbHgbHfbBMbBMbHhbHibHjbHkbHlbBNbHmbHnbtbbHobHpbHqbHqbHrbHsbHtbHqbHubHvbHwbHxbHybHzbHAbHBbHCbHDbHEbEMaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbHFbEObHGbHHbHIbEObHFaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajZalQalQalQbHJbHKbxrbxrbHLbGjbxrbxrbxrbxrbEWbwlbHMbGnbHNbBcbEYbEZaaabFabHObHPbHQbDIbDIbHRbDIbHSbHTbHUbHVbBdbHWbHXbHYbHZbIabIbbIbbIbbIbbIbbIcbIbbIdbIebIfbIgbIhbIibIjbtSbtSbtSbtSbtSbtSbtSbtSbtSbtSbtSbtSbtSbtSbtSbtSbIkbmSbmSbmSbmSbmSbIlbImbhjbAwbAwbAwbAwbAwbAwbzibgibBMbInbIobIpbIqbIrbIsbInbItbHhbHibHjbIubIvbIwbIxbIybuwbIzbDdbIAbIAbIBbICbIDbIEbEDbEDbIFbDnbIGbIHbIIbDdbIJbIKbIKbDdaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbEObEObILbIMbIMbIMbINbEObEOaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeZaHnaHnaHnaeZbERbIObIPbIQbIRbxrbxrbISbITbIUbwlbBcbBcbBcbBcbEYbDCaafbIVbDEbIWbDGbIXbDIbIYbDIbDIbDIbDIbDIbBdbDLbIZbJabJbbJcbJcbJcbJcbJcbJcbJdbJebJfbJgbJhbJibJjbJkbJlbJmbJnbJmbJmbJmbJmbJmbJmbJmbJmbJmbJmbJmbJmbJmbJobJpbmSbGXbJqbBDbJrbBEbJsbJtbJubJvbJvbJwbJxbJgbJybJzbBMbJAbJBbJCbJDbJEbJFbJGbItbItbItbItbItbItbJHbJIbJJbJKbJLbDdbDnbDnbDnbDnbDnbDnbJMbEDbEDbDnbjobEHbgxbDdbJNbJObJPbJQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabJRbJSbJRbIMbJTbIMbJUbJVbENaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajZamIbJWbJXajZbERbERbERbwlbwlbERbERbERbwlbwlbwlaaaaaaaaabJYbJZbEZaaaaaaaafaaabBdbKabKbbKcbDIbKdbKebKfbKgbKhbKibKjbKkbKlbKmbKnbKobKpbKqbKmbKmbKmbKmbKmbKrbKsbKmbKmbKtbKmbKubKmbKmbKmbKmbKmbyebyebyebyebyebyebyebyebKvbKwbmSbKxbKybKzbKAbKBbKCbKDbKEbKFbKFbKGbKFbKFbKHbKIbBMbKJbKKbKLbKKbKMbKKbKNbKObKPbKQbKRbKSbKTbKUbyqbHnbqibKVaafbKWbKXbKYbKZbLabKZbLbbLcbLdbDnbLebtnbLfbDdbDdbDdbDdbDdaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbEObEObLgbIMbIMbIMbLhbEObEOaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanTaekbLiaekafOaaaaaaaaaaafaaIaafaaaaafaaIaafaaaaaaaaaaafbJYbEYbEZaafaafaafaafbBdbBdbBdbBdbBdbBdbBdbBdbBdbBdbLjbLkbLlbLmbKmbKnbKobKpbKqbLnbLnbLobLpbLqbLrbLsbLtbLubLvbLwbLxbLybLzbLAbLBbLCbLDbLDbLDbLDbLDbLDbLEbyebKvbLFbLGbLGbLGbLGbLGbLHbLIbLJbLGbLGbLGbLGbLGbLGbLFbLKbLLbLMbLNbLObLNbLPbLQbLRbLSbLSbLSbLSbLSbLSbLTbLUbLVbqibKVaafbKWbLWbLWbLXbLYbLZbMabMbbMcbDnbMdbtnbkFbjobMebMfbjoaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaafaafbHFbEObMgbMhbMibMjbHFaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaIaafaaaaafaaIaafaaaaaaaaaaaabJYbEYbEZaaaaaaaaaaafbMkbMlbMlbMmbMnbMobMobMpbMpbMkbDLbMqbKkbMrbKmbMsbMtbMtbMubMvbLnbMwbMxbMybMzbMAbMBbMCbMDbMEbMFbMGbMFbMHbMIbMJaafbMKbMKbMKbMKbMKbMLbyebKvbMMbMNbMObMPbMQbLGbMRbMSbMTbLGbMUbMVbMWbMVbMUbLFbMXbBMbKKbKKbKKbMYbKKbKKbMZbNabNbbNbbNcbNbbNbbNdbNebNfbNgbKVaafbKWbLWbNhbKZbNibKZbNjbNkbNlbDnbsebtnbkFbjobsebsebjoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbEObENbNmbENbMjaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbBcbBcbJYbJYbJYbBcbBcaaaaaaaaaaaabJYbEYbEZaaaaaaaaaaafbMkbNnbMmbMmbMmbMmbMobNobNpbNqbNrbKjbNsbNtbNubNvbNwbNxbNybNzbNAbNwbNwbNwbNybNBbNCbNDbNEbNFbLBbNGbNHbNIbNJbNKbLDbNLbNMbNNbNObMKbMLbNPbKvbLFbNQbMUbMUbMUbLGbNRbNSbNTbLGbMVbNUbMVbNVbNWbNXbNYbBMbNZbOabObbOcbOdbOebOfbOgbOhbOibOjbOkbOlbItbOmbOnbOobOpbOpbDnbDnbDnbDnbDnbDnbDdbDdbDdbDnbsebtnbOqbsebsebOrbjoaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbENbEObENaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBcbOsbGnbOtbGnbOubBcaaaaaaaaaaaabJYbJZbEZaaaaafbJYbJYbMkbMmbOvbOwbMmbMmbOxbOybMobOzbDLbMqbOAbOBbOCbODbOEbOFbOGbOHbOIbOFbOJbOFbOKbOLbOMbLubONbOObOPbOQbORbOSbOTbOUaafbOVbOWbNObOXbMKbMLbNPbKvbLFbOYbOZbMUbPabLGbPbbPcbPdbLGbMUbPebPfbMUbMUbLFbKvbBMbItbItbItbItbJHbPgbPhbPibJHbItbItbItbItbItbPjbPkbPlbPmbPnbPobPpbPqbPpbPrbOpbPsbPtbPubPvbPwbtnbkFbjobjobjobjoabtaafaafaafaagaagaagaagaagaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbBcbPxbGnbGnbGnbPybBcaaaaaaaaaaaabJYbEYbEZaaaaafbJYbPzbPAbPBbPCbPDbPDbPDbPDbPDbPEbPFbPGbMqbOAbPHbPIbPJbPKbMFbPLbPMbPNbPObPPbPQbPRbPSbPSbPTbPUbLBbPVbPWbPXbPYbPZbQabQbbNLbQcbNObNObMKbMLbNPbKvbLFbQdbMUbQebLHbLGbLGbQfbLGbLGbQgbQhbQibQgbQgbLFbKvbBMbQjbQkbQkbQlbQmbKKbQnbQobQpbQqbCWbCWbCWbItbQrbQsbQtbQubQvbPobQwbQxbQybQzbOmbPtbQAbPtbPvbBRbQBbQCbjoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBcbPxbGnbGnbQDbQEbBcaaaaafaaaaaabJYbEYbDCbBcbBcbBcbQFbMkbQGbMmbMmbMmbQHbQIbQJbQKbMkbDLbMqbOAbPHbOCbQLbQMbMFbMFbQNbLnbQObQPbQQbQRbMFbMFbLubQSbQTbQUbQVbQWbQXbQWbQYaafbMKbMKbMKbMKbMKbMLbyebKvbLFbQZbRabRabRbbRcbRdbRebRfbRgbMUbPebMUbMUbMUbLFbKvbBMbCWbCWbCWbRhbRibKKbRjbKKbRkbRlbCWbCWbCWbItbRmbRnbRobRpbRqbRrbRsbRtbRrbRubOpbRvbPtbRwbPvbjobRxbRybjoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbBcbBcbJYbJYbJYbBcbBcaaaaaaaaaaaabJYbEYbEZaaaaaaaaaaafbMkbNnbMmbMmbMmbMmbMobNobNpbNqbNrbKjbNsbNtbNubNvbNwbNxbNybNzbNAbNwbNwbNwbNybNBbNCbNDbNEbNFbLBbNGbNHbNIbNJbNKbLDbNLbNMbNNbNObMKbMLbNPbKvbLFbNQbMUbMUbMUbLGbNRbNSbNTbLGbMVbNUbMVbNVbNWbNXbNYbBMbNZbOabObbOcbOdbOebOfbOgbOhbOibOjbOkbOlbItbOmcqybOobOpbOpbDnbDnbDnbDnbDnbDnbDdbDdbDdbDnbsebtnbOqbsebsebOrbjoaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbENbEObENaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBcbOsbGnbOtbGnbOubBcaaaaaaaaaaaabJYbJZbEZaaaaafbJYbJYbMkbMmbOvbOwbMmbMmbOxbOybMobOzbDLbMqbOAbOBcqCbODbOEbOFbOGbOHbOIbOFbOJbOFbOKbOLbOMbLubONbOObOPbOQbORbOSbOTbOUaafbOVbOWbNObOXbMKbMLbNPbKvbLFbOYbOZbMUbPabLGbPbbPcbPdbLGbMUbPebPfbMUbMUbLFbKvbBMbItbItbItbItbJHbPgbPhbPibJHbItbItbItbItbItbPjbPkbPlbPmbPnbPobPpbPqbPpbPrbOpbPsbPtbPubPvbPwbtnbkFbjobjobjobjoabtaafaafaafaagaagaagaagaagaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbBcbPxbGnbGnbGnbPybBcaaaaaaaaaaaabJYbEYbEZaaaaafbJYbPzbPAbPBbPCbPDbPDbPDbPDbPDbPEbPFbPGbMqbOAbPHcqDbPJbPKbMFbPLbPMbPNbPObPPbPQbPRbPSbPSbPTbPUbLBbPVbPWbPXbPYbPZbQabQbbNLbQcbNObNObMKbMLbNPbKvbLFbQdbMUbQebLHbLGbLGbQfbLGbLGbQgbQhbQibQgbQgbLFbKvbBMbQjbQkbQkbQlbQmbKKbQnbQobQpbQqbCWbCWbCWbItbQrbQsbQtbQubQvbPobQwbQxbQybQzbOmbPtbQAbPtbPvbBRbQBbQCbjoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBcbPxbGnbGnbQDbQEbBcaaaaafaaaaaabJYbEYbDCbBcbBcbBcbQFbMkbQGbMmbMmbMmbQHbQIbQJbQKbMkbDLbMqbOAbPHcqEbQLbQMbMFbMFbQNbLnbQObQPbQQbQRbMFbMFbLubQSbQTbQUbQVbQWbQXbQWbQYaafbMKbMKbMKbMKbMKbMLbyebKvbLFbQZbRabRabRbbRcbRdbRebRfbRgbMUbPebMUbMUbMUbLFbKvbBMbCWbCWbCWbRhbRibKKbRjbKKbRkbRlbCWbCWbCWbItbRmbRnbRobRpbRqbRrbRsbRtbRrbRubOpbRvbPtbRwbPvbjobRxbRybjoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbRzaafaafaafbBcbBcbBcbBcbBcbBcbBcbBcbBcbBcbRAbBcbBcbBcbJYbJYbJYbRBbRCbRDbREbRFbRGbRCbRHbPFbPFbPFbPFbPFbPFbPFbPFbPFbRIbRJbRKbOAbRLbKmbRMbRNbPNbRObPNbLnbMFbMFbMFbQRbRPbRQbRQbRRbRSbRTbNGbRUbRVbRWbNKbLDbNLbRXbRYbRYbMKbMLbyebKvbRZbSabSabSabSbbScbMUbSdbMUbMUbMUbPebMUbMUbMUbLFbKvbBMbCWbCWbCWbSebSfbQobSgbKKbShbSibQkbQkbSjbItbSkbSlbPlbSmbSnbPobQybSobRrbSpbOpbSqbSqbSqbPvbSrbSsbRybjoaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabStbSubSubSubSubSvbSwbSwbSxbSybSzbSAbSBbSCbSDbSEbBcbGnbGnbGnbGnbGnbGnbGnbSFbSGbSHbSIbSJbSKbSKbSKbSKbSLbSMbSMbSMbSNbSMbSObDybDybSPbDCbDLbMqbOAbSQbSRbSSbSTbRQbRQbSUbSVbRQbRQbSWbSXbSYbMFbSZbTabTbbTcbMFbTdbTebTfbOUaafbOVbTgbThbTibMKbMLbNPbTjbTkbTkbTkbTlbLFbTmbQZbTnbTobTpbTqbTrbTsbTsbTtbLFbKvbBMbItbItbItbItbTubTvbRjbTwbTubItbItbItbItbItbTxbTybTzbTAbTBbTCbTCbTCbTCbTDbOmbSqbSqbTEbPvbTFbSsbRybjobjobjoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaagaaaaafaaaaaabTGbTGbJYbGnbTHbTIbTJbTKbTLbBcbTMbJYbJYbJYbJYbJYbJYbJYbJYbDCbTNbTObTObTObTObTObTObTObTObTPbTPbTPbTPbTPbTQbTRbDCbDLbMqbOAbSQbTSbTTbTUbTVbPSbTWbTXbPSbPSbTYbTZbUabUbbUcbUdbUebUfbMFbTdbUgbUhbQabQbbNLbUibRYbRYbMKbMLbNPbUjbyebyebyebNYbLFbUkbMUbMUbUlbUmbUnbUobUpbUobUnbLFbKvbBMbQjbQkbQkbUqbQmbKKbQnbQobUrbUsbCWbCWbCWbItbUtbUubUvbUwbRnbRpbUxbUybUzbUAbOpbSqbSqbSqbPvbTFbSsbRybsebsebjoaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -6599,8 +6625,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbZXcaVbZZaaabZXcaVbZZaaabZXcaVbZZaafaafaaaaaaaaaaaaaaaaaabBcccRbBcbGnbGnbBcaafaaaaafaaaaaaaafaaaaaaaafaaabDCbTNbTObTObTObTObTObTObTObTObTPbTPbTPbTPbTPbTPbBcccSbBcccTccUccUccUccVccWccXccUccYccZcdabKmcdbcdcbPXcddcdecdfcdecddcdgcddcdhbRPcdiaafaafaafaafaafaafbMLcdjcdjcdjcdkcdlcdjcdjcdjcdmbyecdncdncdocdncdnbyebABbZGcbKbjobXkbXkbXkbjobXkbXkcdpbXkbjobXkbXkbXkbXkbjobjobRxcdqbjobjobPvbPvbPvcdrcdsbPvbBRbjobYcbseboTbRxbZbbjobjocdtbjobjobjobjoaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfabfabfaafaaabZXcaVbZZaaabZXcaVbZZaaabZXcaVbZZaaaaafaaaaaacducdvcdvcdvcdvbBcbBccdwbGnbBcbJYbJYbJYbJYbJYbJYbJYbJYbJYbBcbDCbTNbBccdxcdycdzcdzcdzcdzcdzcdzcdzcdzcdzcdAcdAcdzcdBcaWccTcdCcdDcdEcdFcdGcdHccUcdIcdJcdKbKmcdbcdLcdMcdNcdOcdPcdQcdRbMFcdScdTcdUbLuaafaafaaaaaaaaaaaacdVcdWcdXcdYcdZceacebceccdjcedceecefcegcehccBccBbzibzibZGbntceiceiceiceiceiceiceicejcekcekcekcekcekcekcelcekcemcekcekcenceocepceqcercesbjobjocetceoceuceocevbRybjocewbsebsebjoaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaafaaaaaaaaacexaaaaaaaaacexaaaaaaaaacexaaaaaaaafcducducduceycezceAceBceCbGnceDceEceFceEceEceEceEceEceEceEceEceEceEceGceHbRGceIceJceKceKceKceKceKceKceKceKceKceKceKceKceKceKccTccUceLceMceNceOcePceQceRceSceTceKbLuceUbLuceVbLuceUbLuceVbLuceWbLuceWbLuaafaafaaaaaaaaaaaacdjceXceYceZcfacfbcfccfdcdjcedcfeccBcffcfgcfhcfibDZcfjcfkcflcflcflcflcflcflcflcfmcfncflcflcflcflcflcflcfocfpcfqbmicfrcfscftcftcftcfucfvcfwcfxcfycfzcftcftcfAcfBbjocaUbsecfCbjoaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafcfDcfEcfEcfFcfGcfGcfGcfGcfGcfGcfGcfGcfGcfGcfGcfHcfIcfJcfIcfKcfLcfMcfNceEcfOcfPbOubBcbJYbJYbJYbJYbJYbJYbJYbJYbJYbBcbBccfQbSKcfRcfSceKcfTcfTcfUceKcfVcfWcfXcfYcfZcgacgbcgccgdcgeccUcgfcggcghcgicgjcgkcglcgmcgnceKaafcgoaafbMLaafcgoaafbMLaafcgpaafcgpaaaaaaaaaaaaaaaaaaaaacdjcgqcgrcgscgtcgucgvcgwcdjbzicgxcgycgzcgAcgBbDZcgCcgDbyebjobXkbXkbXkbXkbjobXkbXkbXkbXkbjobXkbXkbXkbXkbjocgEbsebjocgFcgGbjobjobXkbXkbjobjocgHbZacgIbjocgJcgKboRbjobjobjobjobjoaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaafaaaaaaaaacgLaaaaaaaaacgLaaaaaaaaacgLaaaaaaaafcducducducgMcgNcgOcdvbGnbGnbGnbGnbBcaaaaaaaafaaaaaaaafaaaaaaaafaaabBccgPbBccgQcgRceKcgScgTcgUcgVcgWcgXceRceRceRcgYcgZchachbcgXccUchcchdchecgichfccUchgchhchiceKbMKchjbOVchjbMKchjbOVchjbMKchkbOVchlbMKaaaaaaaaaaaaaaaaaacdjchmchnchochpchqchrchschtchuchubFMchvchwbFMchxbyebyebyeaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaabjochybLebjochzbZabjoaaaaaaaaaaaabjobsebZachAchBchBchCchDchBaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafcfDcfEcfEcfFcfGcfGcfGcfGcfGcfGcfGcfGcfGcfGcfGcfHcfIcfJcfIcfKcfLcfMcfNceEcfOcfPbOubBcbJYbJYbJYbJYbJYbJYbJYbJYbJYbBcbBccfQbSKcfRcfSceKcfTcfTcfUceKcfVcfWcfXctHcfZcgacgbcgccgdcgeccUcgfcggcghcgicgjcgkcglcgmcgnceKaafcgoaafbMLaafcgoaafbMLaafcgpaafcgpaaaaaaaaaaaaaaaaaaaaacdjcgqcgrcgscgtcgucgvcgwcdjbzicgxcgycgzcgAcgBbDZcgCcgDbyebjobXkbXkbXkbXkbjobXkbXkbXkbXkbjobXkbXkbXkbXkbjocgEbsebjocgFcgGbjobjobXkbXkbjobjocgHbZacgIbjocgJcgKboRbjobjobjobjobjoaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaafaaaaaaaaacgLaaaaaaaaacgLaaaaaaaaacgLaaaaaaaafcducducducgMcgNcgOcdvbGnbGnbGnbGnbBcaaaaaaaafaaaaaaaafaaaaaaaafaaabBccgPbBccgQcgRceKcgScgTcgUcgVcgWcgXceRceRceRcgYcgZchachbcgXccUchcchdchecgictIccUchgchhchiceKbMKchjbOVchjbMKchjbOVchjbMKchkbOVchlbMKaaaaaaaaaaaaaaaaaacdjchmchnchochpchqchrchschtchuchubFMchvchwbFMchxbyebyebyeaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaabjochybLebjochzbZabjoaaaaaaaaaaaabjobsebZachAchBchBchCchDchBaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfabfabfaafaaabZXchEbZZaaabZXchEbZZaaabZXchEbZZaaaaafaaaaaacducdvcdvcdvcdvchFbWBbGnbGnbBcaafaafchGchGchGchGchGchGchGaafbBcbBcbBcchHchIceKchJcgUcgUcgVchKchLchLchMchNchOchPchPchQceRccUchRchSchTchUchVccUchWcdJchXceKbMKchYchZciabMKcibciccidbMKciecifcigbMKaaaaaaaaaaaaaaaaaacihciichncijcikcilcimcincdjaafbyecczciobNPbNPbyebyeaaaabtaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaabjocipbjobjociqbZabjobjobXkbXkbjobjobsecircischBcitciucivchBaaaaaaaafaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbZXchEbZZaaabZXchEbZZaaabZXchEbZZaafaafaafaaaaaaaaaaaaaagbBcbBcbBcciwbGnbBcaaaaaachGcixciycizciyciAchGaaabBcbQDbGnciBchIceKciCciCciDceKciEciFciGciHceSciIciJciKciLciLccUciMciNciOciPciQciRciSciTciUceKbMKciVciWciVbMKciXciYciXbMKciZcjacjbbMKaaaaaaaaaaaaaaaaaacdjcjccjdcjecjfcjgcjhcjicdjaafaafaafcjjaaaaaaaafaaaaaaabtaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaabXkbXkbXkbjocjkbBRbjocjlcjmcjnceocjncjncjncjncjocjpcjqchBcjrcjscjtchBaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFZaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaabZXchEbZZaafbZXchEbZZaafbZXchEbZZaaaaafaafaafaaaaaaaaaaagcjucjvcjubGnbGnbBcaaaaaachGcjwcjxcjycjzcjAchGaaabBccaXbGnciBchIceKciCciCciDceKcjBcgccjCcjDcjEcjFcjCcgccjCcjCcgccjGcjHcjIciIcjJcjKcjLceScjMceKbMKciVcjNciVbMKciXcjOciXbMKcjbcjPcjbbMKaaaaaaaaaaaaaaaaaacdjcdjcdjcjQcjRcjScjTcjUcjRaafaaaaafcjVaaaaaaaaaaaaaaaabtaafaafaafaafaafaafaaaaaaaaaaaaaaaaaabXkbsecjWbjocjXbsebjocjYbmhbmhcjZbmhbmibmibmickackackbchBckcckdckechBaafaaaaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -6616,41 +6642,41 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabJYbJYbJYbJYbBcaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceKcoPcoQcoRaaaaaaaaacogcogcogcogcogcogcogcogcogaaaaaaaaacoScoTcoUcoVcoWclyclycoXcoYcoZcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaabfacfcpacpacpacpacpaaaacosaaacpacpacpacpacpaaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceKcpbcpccpcaaaaaaaafaafaafaafaafaafaafaafaafaafaafaaaaaacpccpdcpbceKcpecpfceKcgccgccpgcgcaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaabfaaaaaaaaaaafaaaaaaaaacosaaaaaaaaaaafaaaaaaaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceKcphcpicpjaafaafaafcpkaaaaaaaaaaaacpkaaaaaacpkaafaafaafcplcpmcpnceKcpocdIcgcaafaaacppcpqaafaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafcorcorcorcorcoraaacosaaacorcorcorcorcoraafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceKcpbcpccpraaaaaaaafaaaaaaaaaaaaaaacpsaaaaaaaaaaafaaaaaacpccpccpbceKaagaagaagaafaaacptcpucpvcpwcpxcpwcpvcpwcpxcpwcpwcpwcpxcpwcpvcpwcpxcpycpzaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaacoJcoKcoKcoKcoKcoLcoscoMcoNcoNcoNcoNcoOaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceKcpbcpccpraaaaaaaafaaaaaaaaaaaaaaacpsaaaaaaaaaaafaaaaaacpccpccpbceKaagaagaagaafaaacptcpucpvcpwcpxcpwcpvcpwcpxcpwcpvcpwcpxcpwcpvcpwcpxcpycpzaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaacoJcoKcoKcoKcoKcoLcoscoMcoNcoNcoNcoNcoOaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceKcpAcpBcpcaaaaaaaafaaaaaaaafaafaafaafaafaaaaaaaafaaaaaacpccpCcpDceKaaaaaaaagaafaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaaaafaaaaaacptcpEcpqcnDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafcpacpacpacpacpaaaacosaaacpacpacpacpacpaaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceKceKcpFcpcaaaaaaaafcpkaafaafcpGcpHcpIaafcpJaaaaafaaaaaacpccpFceKceKaaaaaaaagaafaafcnDaafaafcnDaafaafaafaafaafaafaafaafaafaafaafaafcnDaafcpKcpEcpzaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaaaaaaaaafaaaaaaaaacpLaaaaaaaaaaafaaaaaaaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcpMceKcpNcpcaaaaaaaafaaaaaaaafcpOcpPcpQaafaaaaaaaafaaaaaacpccpRceKcpMaaaaaaaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagcnDaaaaaacpScpEcpqaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafcorcorcorcorcoraaacmxaaacorcorcorcorcoraafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceKceKcpFcpcaaaaaaaafaaacpTaafcpUcpVcpWaafaafcpkaafaaaaaacpccpFceKceKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaaaaaaaaacpXcpYcpqaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaacoJcoKcoKcoKcoKcpZcqacpZcoNcoNcoNcoNcoOaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceKcpCcpDcpcaaaaaaaafaaaaaaaafaafaafaafaafaaaaaaaafaaaaaacpccpAcpBceKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaaaaaaaaaaafcpXcqbaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafcpacpacpacpacpaaaacmxaaacpacpacpacpacpaaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceKcpbcpccqcaaaaaacqdaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaacpccpccpbceKaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaaaaaaaaaaafcqecqfcqecqgcqgcqhcqhcqhcqhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaaaaafaaaaafaaaaaacmxaaaaaaaafaaaaafaaaaaaabfaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaceKcqicpicpjaafaafaafcpkaaaaaacpkaaaaaaaaaaaacpkaafcqjaafcplcpmcqkceKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagcnDaafaafaafaafcqecqlcqmcqncqocqpcqqcqrcqhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaabfabfabfabfabfaafaafaaacmxaaaaafaafabfabfabfabqabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceKcqscpccpcaaaaaaaafaafaafaafaafaafaafaafaafaafaafaaaaaacpccpccqsceKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaaaaaaaaaaafcqecqtcqucqvcqvcqwcqxcqycqhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafcqzaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceKcqscpccqAaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaacqBcpccqsceKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaaaaaaaaaaafcqecqCcqucqvcqvcqDcqEcqFcqhaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaafaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachWceKceKceKcpcaafaafaafaafaaaaaaaaaaaaaaaaafaafaafaafcpcceKceKceKchWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaafaafaafaafcqecqecqGcqvcqvcqhcqHcqhcqhaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfabfabfabfabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacqsceKceKceKceKceKceKceKceKceKceKceKceKceKceKceKceKceKcqsaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaafaaacqgcqIcqvcqvcqJcqKcqgaafaafaagaagaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaacqscqscqscqscpMcqscqscqscqscqscqscqscpMcqscqscqscqsaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfabfcqLcqLabfabfaaacqgcqMcqNcqOcqPcqQcqgaaaabfabfcqLcqLabfabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaafaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcqScqTcqUabfabfcqgcqVcqWcqXcqYcqZcqgabfabfcracrbcrccrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcqScrccrecrfcrgcrgcrhcricrgcrjcrkcrgcrgcrfcrlcqScrccrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrmcrncrocrocrpcrqcrrcrscrtcrtcrucrvcrwcrxcrxcrycrzcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrBcrCcrDcrDcrgcrEcrFcrFcrGcrFcrFcrHcrgcrDcrDcrIcrJcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrBcrdaaaaaacrgcrKcrLcrMcrNcrOcrPcrQcrgaaaaaacqRcrJcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrRcqecqecqecrgcrScrTcrUcrUcrVcrWcrXcrgcqecqecqecrYcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceKceKcpFcpcaaaaaaaafcpkaafaafcpGcpHcpIaafcpJaaaaafaaaaaacpccpFceKceKaaaaaaaagaafaafcnDaafaafcnDaafaafaafaafaafaafaafaafaafaafaafaafcnDaafcpKcpEcpzaafaafcqhcqhcqhcqhcqhaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaaaaaaaaafaaaaaaaaacpLaaaaaaaaaaafaaaaaaaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcpMceKcpNcpcaaaaaaaafaaaaaaaafcpOcpPcpQaafaaaaaaaafaaaaaacpccpRceKcpMaaaaaaaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagaagcnDaaaaaacpScpEcpqaaacqhcqGcqFcqHcqhaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafcorcorcorcorcoraaacmxaaacorcorcorcorcoraafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceKceKcpFcpcaaaaaaaafaaacpTaafcpUcpVcpWaafaafcpkaafaaaaaacpccpFceKceKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaaaaaaaaacpXcpYcpqcqhcqJcqIcqKcqhaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaacoJcoKcoKcoKcoKcpZcqacpZcoNcoNcoNcoNcoOaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceKcpCcpDcpcaaaaaaaafaaaaaaaafaafaafaafaafaaaaaaaafaaaaaacpccpAcpBceKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaaaaaaaaaaafcpXcqbcqhcqMcqvcqNcqhaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafcpacpacpacpacpaaaacmxaaacpacpacpacpacpaaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceKcpbcpccqcaaaaaacqdaaaaaaaaaaafaaaaaaaaaaaaaaaaafaaaaaacpccpccpbceKaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaaaaaaaaaaafcqecqfcqhcqPcqwcqQcqhcqecqeaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaaaaafaaaaafaaaaaacmxaaaaaaaafaaaaafaaaaaaabfaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaceKcqicpicpjaafaafaafcpkaaaaaacpkaaaaaaaaaaaacpkaafcqjaafcplcpmcqkceKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagcnDaafaafaafaafcqecqWcqVcqYcqXcrecqZcrjcqeaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaabfabfabfabfabfaafaafaaacmxaaaaafaafabfabfabfabqabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceKcqscpccpcaaaaaaaafaafaafaafaafaafaafaafaafaafaafaaaaaacpccpccqsceKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaaaaaaaaaaafcqecrlcqVcrqcqvcrrcqLcrtcqLaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaafcqzaafabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceKcqscpccqAaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaacqBcpccqsceKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaaaaaaaaaaafcqecrvcrucrCcqOcrHcrEcrKcqeaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaaaafaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachWceKceKceKcpcaafaafaafaafaaaaaaaaaaaaaaaaafaafaafaafcpcceKceKceKchWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaaaaaaaaaaafcqecqecqecrMcrLcrOcqecqecqeaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfabfabfabfabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacqsceKceKceKceKceKceKceKceKceKceKceKceKceKceKceKceKceKcqsaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaafaafaafaafaaaaaacqgcrqcrPcrQcqgaaaaaaaagaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaacqscqscqscqscpMcqscqscqscqscqscqscqscpMcqscqscqscqsaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaafaaaaaacqgcrqcrTcrrcqgaaaaaaaagaagaagaagaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaafaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfabfcqLcqLabfaafaafaafcqecsgcrWcshcqeaafaafaafabfcqLcqLabfabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcqScqTcqUaaacrgcrgcrgcrhcricrkcrgcrgcrgaaacracrbcrccrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcqScrccslcsmcrgcsqcsncsQcrscsTcsRcsUcrgcsYcsXcqScrccrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrmcrncrocrocrpcsZcrFctacrGctbcrFctfcrwcrxcrxcrycrzcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrBcrdaaaaaacrgctgcrFcthcrNcticrFctjcrgcrDcrDcrIcrJcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfctkcrRcqecqecqecrgcrSctlcrUcrUcrVctlcrXcrgcqecqecqecrYctnabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrBcrdaaaaaacrZcsacsbcsccsdcrZcsecsfcrZaaaaaacqRcrJcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrBcrdaaaaaacrZcsgcshcsicsjcskcslcsmcrZaaaaaacqRcrJcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrBcrdaaacrZcrZcsncsocspcspcspcsocsqcrZcrZaaacqRcrJcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrBcrdaaaaaacrZctpctocsicsjcskcsoctqcrZaaaaaacqRcrJcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrBcrdaaacrZcrZctrcsocspcspcspcsoctwcrZcrZaaacqRcrJcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrBcrdaaacrZcrZcsrcspcspcsscspcspcstcrZcrZaaacqRcrJcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcsucqecqecrZcrZcsocspcsvcsvcsvcspcsocrZcrZcqecqecswcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfctkcsucqecqecrZcrZcsocspcsvcsvcsvcspcsocrZcrZcqecqecswctnabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrBcrdcqhcrZcsxcsocsycsvcszcsvcsycsocsAcrZcqhcqRcrJcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrBcrdaaacrZcrZcsocspcsBcsCcsDcspcsocrZcrZaaacqRcrJcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrBcrdaaacrZcrZcsrcspcspcsEcspcspcstcrZcrZaaacqRcrJcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrBcrdaaacrZcrZcsFcspcsGcsHcsIcspcsFcrZcrZaaacqRcrJcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcsJcqecqecsvcrZcrZcsecrZcsKcrZcsbcrZcrZcsvcqecqecsLcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrBcrdaaaaaaaaacsNcsNcsNcsOcsNcsNcsNaaaaaaaaacqRcrJcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrBcrdaaaaafaaacsPcsQcsRcsScsTcsUcsPaaaaaaaaacqRcrJcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrBcsVcrfcsWcsWcsPcsXcsYcsZctactbcsPcrfcrfcrfctccrJcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRctdctecrocrocroctfctgcthctictjctkctlcrxcrxcrxcrxctmcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaacrDcrDcrDcrDcrDcsPctnctoctpctqctrctscttcrDcrDctuctuaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfabfabfabfabfabfabfcsPctwctxctyctzctAcsPabfabfabfabfabfabfabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfctkcsJcqecqecsvcrZcrZcsecrZcsKcrZcsbcrZcrZcsvcqecqecsLctnabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrBcrdaaaaafaaacsNcsNcsNcsOcsNcsNcsNaaaaafaaacqRcrJcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrBcrdaaaaafaaacsPctxctycsSctActzcsPaaaaafaaacqRcrJcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRcrBcsVcrfcsWcsWcsPctJctLctKctNctMcsPcrfcsWcrfctccrJcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfcqRctdctecrocrocroctPctOctRctQctTctSctUcrxcrxcrxcrxctmcrdabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfaaacrDcrDcrDctucrDcsPctVctXctWctZctYctscttctucrDctuctuaaaabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfabfabfabfabfabfabfcsPcuacuccubcuecudcsPabfabfabfabfabfabfabfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcsPcsPctBctBctBcsPcsPaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/generic/z2.dmm b/_maps/map_files/generic/z2.dmm index 03e04e60fb8..9b2b4ce6d12 100644 --- a/_maps/map_files/generic/z2.dmm +++ b/_maps/map_files/generic/z2.dmm @@ -180,9 +180,9 @@ "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/space,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/space) +"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" = (/turf/space,/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_f10"; layer = 2},/area/space) +"dC" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/space) "dD" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/centcom/evac) "dE" = (/turf/simulated/shuttle/wall{icon_state = "swallc4"; dir = 2},/area/centcom/evac) "dF" = (/obj/machinery/door/airlock/shuttle{name = "Cockpit"; req_access_txt = "109"},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/centcom/evac) @@ -204,13 +204,13 @@ "dV" = (/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) "dW" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/poddoor{id = "QMLoaddoor"; name = "supply dock loading door"},/turf/simulated/shuttle/plating,/area/space) "dX" = (/turf/simulated/shuttle/wall{icon_state = "swall7"; dir = 2},/area/space) -"dY" = (/turf/simulated/shuttle/wall{icon_state = "swallc2"; dir = 2},/area/space) -"dZ" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/space) +"dY" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/space) +"dZ" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/space) "ea" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/space) -"eb" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/space) +"eb" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/space) "ec" = (/turf/simulated/shuttle/wall{icon_state = "swall15"; dir = 2},/area/space) "ed" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/simulated/shuttle/plating,/area/space) -"ee" = (/obj{anchored = 1; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{icon_state = "swallc4"; dir = 2},/area/space) +"ee" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/space) "ef" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/simulated/shuttle/plating,/area/space) "eg" = (/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/plating,/area/space) "eh" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/simulated/shuttle/plating,/area/space) @@ -233,11 +233,12 @@ "ey" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control) "ez" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/simulated/shuttle/plating,/area/space) "eA" = (/turf/unsimulated/wall/fakedoor{name = "Centcom Security"},/area/centcom/evac) -"eB" = (/obj{anchored = 1; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{dir = 2; icon_state = "swallc3"},/area/space) +"eB" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/obj{anchored = 1; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/space) "eC" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) "eD" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/space) "eE" = (/obj/machinery/computer/emergency_shuttle,/turf/simulated/shuttle/floor,/area/space) "eF" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) +"eG" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/obj{anchored = 1; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/space) "eH" = (/obj/machinery/door/poddoor{id = "CentComPort"; name = "security door"},/turf/unsimulated/floor{dir = 1; icon_state = "loadingarea"},/area/centcom/control) "eI" = (/obj/machinery/door/airlock/centcom{name = "Centcom Security"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "eJ" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac) @@ -286,472 +287,553 @@ "fA" = (/obj/machinery/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = 6},/obj/machinery/flasher_button{id = "shuttle_flasher"; pixel_x = -24; pixel_y = -6},/turf/simulated/shuttle/floor4,/area/space) "fB" = (/turf/simulated/shuttle/floor4,/area/space) "fC" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig"; req_access_txt = "2"},/turf/simulated/shuttle/floor,/area/space) -"fD" = (/obj/structure/stool,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry) -"fE" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry) -"fF" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/space) -"fG" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/control) -"fH" = (/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/control) -"fI" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/control) -"fJ" = (/obj/machinery/door/airlock/external{name = "Port Docking Bay 1"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/evac) -"fK" = (/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/evac) -"fL" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/simulated/shuttle/plating,/area/space) -"fM" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor4,/area/space) -"fN" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) -"fO" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) -"fP" = (/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) -"fQ" = (/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) -"fR" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/control) -"fS" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/control) -"fT" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/control) -"fU" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/control) -"fV" = (/obj/machinery/door/airlock/centcom{name = "Centcom Security"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac) -"fW" = (/turf/simulated/shuttle/wall{icon_state = "swallc4"; dir = 2},/area/space) -"fX" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry) -"fY" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry) -"fZ" = (/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry) -"ga" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) -"gb" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/ferry) -"gc" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/control) -"gd" = (/turf/unsimulated/floor{icon_state = "greencorner"},/area/centcom/control) -"ge" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/evac) -"gf" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac) -"gg" = (/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/evac) -"gh" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency,/obj/docking_port/stationary{dir = 4; dwidth = 9; height = 11; id = "emergency_away"; name = "Centcom"; width = 22},/turf/simulated/shuttle/plating,/area/space) -"gi" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/shuttle/floor,/area/space) -"gj" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/shuttle/floor,/area/space) -"gk" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/space) -"gl" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/space) -"gm" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/space) -"gn" = (/turf/unsimulated/floor{name = "plating"},/area/space) -"go" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/ferry) -"gp" = (/obj/effect/landmark{name = "Deathsquad"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) -"gq" = (/turf/unsimulated/wall/fakeglass,/area/centcom/control) -"gr" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) -"gs" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) -"gt" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) -"gu" = (/turf/unsimulated/wall,/area/syndicate_mothership) -"gv" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/simulated/shuttle/plating,/area/space) -"gw" = (/obj/machinery/computer/shuttle/ferry/request,/turf/simulated/shuttle/floor,/area/space) -"gx" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor,/area/space) -"gy" = (/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) -"gz" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (SOUTHEAST)"; icon_state = "fakewindows"; dir = 6},/area/centcom/ferry) -"gA" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "greencorner"; dir = 1},/area/centcom/evac) -"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 = 8},/turf/simulated/shuttle/floor,/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" = (/turf/simulated/shuttle/wall{icon_state = "swallc1"; dir = 2},/area/space) -"gN" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 5},/area/centcom/ferry) -"gO" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) -"gP" = (/obj/structure/flora/bush,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership) -"gQ" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/space) -"gR" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/space) -"gS" = (/turf/unsimulated/floor{icon_state = "greencorner"},/area/centcom/ferry) -"gT" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/evac) -"gU" = (/turf/unsimulated/wall/fakeglass,/area/centcom/ferry) -"gV" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/simulated/shuttle/plating,/area/space) -"gW" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/simulated/shuttle/floor,/area/space) -"gX" = (/turf/unsimulated/wall,/area/centcom/holding) -"gY" = (/turf/unsimulated/wall/fakedoor{name = "Shuttle Bay B"},/area/centcom/holding) -"gZ" = (/obj/machinery/door/airlock/centcom{name = "Centcom"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac) -"ha" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo"},/turf/simulated/shuttle/floor,/area/space) -"hb" = (/obj/machinery/status_display,/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/space) -"hc" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Infirmary"},/turf/simulated/shuttle/floor,/area/space) -"hd" = (/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) -"he" = (/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/space) -"hf" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/space) -"hg" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) -"hh" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/space) -"hi" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/space) -"hj" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/obj/structure/window/reinforced/fulltile,/turf/simulated/shuttle/plating,/area/space) -"hk" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/space) -"hl" = (/turf/unsimulated/wall,/area/tdome/tdomeobserve) -"hm" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/tdome/tdomeobserve) -"hn" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeobserve) -"ho" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdomeobserve) -"hp" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeobserve) -"hq" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 5},/area/tdome/tdomeobserve) -"hr" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -28; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) -"hs" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) -"ht" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"hu" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"hv" = (/obj/structure/table,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 1},/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) -"hA" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership) -"hB" = (/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) -"hC" = (/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) -"hD" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve) -"hE" = (/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve) -"hF" = (/turf/unsimulated/wall/fakeglass,/area/tdome/tdomeobserve) -"hG" = (/turf/unsimulated/floor{icon_state = "neutral"; dir = 8},/area/tdome/tdomeobserve) -"hH" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdomeobserve) -"hI" = (/turf/unsimulated/floor{icon_state = "neutral"; dir = 4},/area/tdome/tdomeobserve) -"hJ" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "green"; dir = 9},/area/centcom/evac) -"hK" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac) -"hL" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac) -"hM" = (/obj/structure/closet,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/space) -"hN" = (/obj/structure/closet/crate,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/space) -"hO" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"hP" = (/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) -"hQ" = (/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) -"hR" = (/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) -"hS" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"hT" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve) -"hU" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve) -"hV" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve) -"hW" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/evac) -"hX" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac) -"hY" = (/obj/structure/filingcabinet/filingcabinet,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac) -"hZ" = (/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) -"ia" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 8; icon_state = "fakewindows2"},/area/wizard_station) -"ib" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 4; icon_state = "fakewindows"},/area/wizard_station) -"ic" = (/turf/unsimulated/wall/normal{tag = "icon-uranium2"; icon_state = "uranium2"},/area/wizard_station) -"id" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 10},/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"ie" = (/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) -"if" = (/obj/structure/closet/syndicate/personal,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"ig" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"ih" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"ii" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"ij" = (/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) -"ik" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/syndicate_mothership) -"il" = (/obj/item/device/paicard,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) -"im" = (/obj/structure/stool/bed/chair/comfy/teal,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) -"in" = (/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) -"io" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/tdome/tdomeobserve) -"ip" = (/obj/structure/lattice,/turf/space/transit,/area/wizard_station) -"iq" = (/obj/item/weapon/shard{color = "#008000"},/turf/unsimulated/floor{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station) -"ir" = (/obj/machinery/computer/shuttle,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) -"is" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) -"it" = (/turf/unsimulated/wall/normal{tag = "icon-uranium5"; icon_state = "uranium5"},/area/wizard_station) -"iu" = (/turf/unsimulated/wall/normal{tag = "icon-uranium10"; icon_state = "uranium10"},/area/wizard_station) -"iv" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/space) -"iw" = (/obj/machinery/door/window{name = "Cockpit"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"ix" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/space) -"iy" = (/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) -"iz" = (/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) -"iA" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"iB" = (/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) -"iC" = (/obj/machinery/door/airlock/centcom{name = "Study"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"iD" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) -"iE" = (/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/tdome/tdomeobserve) -"iF" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/tdome/tdomeobserve) -"iG" = (/turf/unsimulated/floor{dir = 10; icon_state = "green"},/area/centcom/evac) -"iH" = (/turf/unsimulated/floor{icon_state = "green"},/area/centcom/evac) -"iI" = (/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/centcom/evac) -"iJ" = (/obj/structure/lattice,/obj/item/weapon/shard{color = "#008000"; icon_state = "medium"},/turf/space/transit,/area/wizard_station) -"iK" = (/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cultdamage2"; icon_state = "cultdamage2"},/area/wizard_station) -"iL" = (/turf/unsimulated/floor{tag = "icon-cultdamage3"; icon_state = "cultdamage3"},/area/wizard_station) -"iM" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) -"iN" = (/turf/unsimulated/wall/normal{tag = "icon-uranium3"; icon_state = "uranium3"},/area/wizard_station) -"iO" = (/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/weapon/crowbar/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"iP" = (/obj/structure/table,/obj/item/weapon/storage/box/zipties{pixel_x = 1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"iQ" = (/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) -"iR" = (/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) -"iS" = (/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) -"iT" = (/obj/structure/table/wood,/obj/item/pizzabox{ismessy = 1},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"iU" = (/obj/structure/stool,/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"iV" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (NORTHWEST)"; icon_state = "podhatch"; dir = 9},/area/syndicate_mothership) -"iW" = (/obj/structure/dresser,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) -"iX" = (/obj/structure/table/wood,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) -"iY" = (/turf/unsimulated/floor{icon_state = "red"; dir = 10},/area/tdome/tdomeobserve) -"iZ" = (/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/tdome/tdomeobserve) -"ja" = (/turf/unsimulated/floor{icon_state = "green"},/area/tdome/tdomeobserve) -"jb" = (/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/tdome/tdomeobserve) -"jc" = (/turf/unsimulated/wall/fakedoor{name = "Centcom"},/area/centcom/evac) -"jd" = (/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) -"je" = (/obj/item/weapon/gun/energy/pulse_rifle,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) -"jf" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) -"jg" = (/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) -"jh" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"ji" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"jj" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership) -"jk" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership) -"jl" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"jm" = (/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) -"jn" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (WEST)"; icon_state = "podhatch"; dir = 8},/area/syndicate_mothership) -"jo" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 6; icon_state = "fakewindows2"},/area/wizard_station) -"jp" = (/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) -"jq" = (/turf/unsimulated/wall/normal{tag = "icon-uranium6"; icon_state = "uranium6"},/area/wizard_station) -"jr" = (/turf/unsimulated/wall/normal{tag = "icon-uranium9"; icon_state = "uranium9"},/area/wizard_station) -"js" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership) -"jt" = (/turf/unsimulated/floor,/area/syndicate_mothership) -"ju" = (/obj/machinery/door/poddoor/shutters{id = "nukeop_ready"; name = "shuttle dock"},/turf/unsimulated/floor,/area/syndicate_mothership) -"jv" = (/turf/space,/area/tdome/tdomeobserve) -"jw" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{tag = "icon-cultdamage6"; icon_state = "cultdamage6"},/area/wizard_station) -"jx" = (/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) -"jy" = (/obj/structure/mirror{pixel_x = 28},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) -"jz" = (/obj/machinery/suit_storage_unit/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"jA" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"jB" = (/turf/unsimulated/wall/fakeglass,/area/syndicate_mothership) -"jC" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/unsimulated/floor,/area/syndicate_mothership) -"jD" = (/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) -"jE" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (SOUTHWEST)"; icon_state = "podhatch"; dir = 10},/area/syndicate_mothership) -"jF" = (/obj/structure/urinal{pixel_y = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"jG" = (/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) -"jH" = (/turf/simulated/shuttle/wall{icon_state = "swall0"; dir = 2},/area/wizard_station) -"jI" = (/turf/unsimulated/wall/fakedoor{name = "Squad 4 Pod"},/area/wizard_station) -"jJ" = (/turf/simulated/shuttle/wall{icon_state = "swall4"; dir = 2},/area/wizard_station) -"jK" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/wizard_station) -"jL" = (/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) -"jM" = (/turf/unsimulated/floor{tag = "icon-cultdamage7"; icon_state = "cultdamage7"},/area/wizard_station) -"jN" = (/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) -"jO" = (/obj/structure/stool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"jP" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"jQ" = (/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{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) -"jR" = (/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) -"jS" = (/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) -"jT" = (/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) -"jU" = (/obj/structure/table/wood,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) -"jV" = (/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) -"jW" = (/obj/machinery/door/airlock/centcom{name = "Restroom"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) -"jX" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"jY" = (/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) -"jZ" = (/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve) -"ka" = (/obj/structure/stool/bed/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve) -"kb" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/space/transit,/area/wizard_station) -"kc" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/turf/simulated/floor/plating/airless,/area/wizard_station) -"kd" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{icon_state = "floor"},/area/wizard_station) -"ke" = (/turf/unsimulated/floor{icon_state = "floor"},/area/wizard_station) -"kf" = (/obj/machinery/door/poddoor/preopen,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plating/airless,/area/wizard_station) -"kg" = (/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) -"kh" = (/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cultdamage7"; icon_state = "cultdamage7"},/area/wizard_station) -"ki" = (/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station) -"kj" = (/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) -"kk" = (/obj/structure/table,/obj/item/weapon/c4{pixel_x = 2; pixel_y = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"kl" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) -"km" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) -"kn" = (/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) -"ko" = (/obj/item/weapon/soap/syndie,/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"kp" = (/obj/item/weapon/mop,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) -"kq" = (/turf/unsimulated/wall/fakedoor{name = "Thunderdome"},/area/tdome/tdomeobserve) -"kr" = (/obj/machinery/computer/security/telescreen,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve) -"ks" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/wizard_station) -"kt" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/wizard_station) -"ku" = (/turf/unsimulated/floor{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station) -"kv" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{tag = "icon-cultdamage2"; icon_state = "cultdamage2"},/area/wizard_station) -"kw" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/cardhand,/turf/unsimulated/floor{tag = "icon-cultdamage2"; icon_state = "cultdamage2"},/area/wizard_station) -"kx" = (/obj/machinery/door/window{dir = 4; name = "EVA Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"ky" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"kz" = (/obj/machinery/computer/telecrystals/boss,/turf/unsimulated/floor{tag = "icon-podhatch (NORTHEAST)"; icon_state = "podhatch"; dir = 5},/area/syndicate_mothership) -"kA" = (/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) -"kB" = (/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) -"kC" = (/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) -"kD" = (/obj/structure/lattice,/obj/effect/forcefield,/turf/space/transit,/area/wizard_station) -"kE" = (/obj/machinery/vending/magivend,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) -"kF" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) -"kG" = (/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) -"kH" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/shuttle/plating,/area/space) -"kI" = (/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) -"kJ" = (/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) -"kK" = (/turf/unsimulated/floor{tag = "icon-stage_stairs"; icon_state = "stage_stairs"},/area/syndicate_mothership) -"kL" = (/obj/machinery/mech_bay_recharge_port,/turf/unsimulated/floor/plating,/area/syndicate_mothership) -"kM" = (/turf/unsimulated/floor{icon_state = "recharge_floor"; name = "mech bay recharge floor"; tag = "icon-recharge_floor"},/area/syndicate_mothership) -"kN" = (/obj/machinery/computer/mech_bay_power_console,/turf/unsimulated/floor/plating,/area/syndicate_mothership) -"kO" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"kP" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeobserve) -"kQ" = (/turf/unsimulated/wall/normal{tag = "icon-uranium8"; icon_state = "uranium8"},/area/wizard_station) -"kR" = (/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) -"kS" = (/turf/unsimulated/wall/normal{tag = "icon-uranium4"; icon_state = "uranium4"},/area/wizard_station) -"kT" = (/turf/unsimulated/wall/normal{tag = "icon-uranium12"; icon_state = "uranium12"},/area/wizard_station) -"kU" = (/turf/unsimulated/wall/normal{tag = "icon-uranium14"; icon_state = "uranium14"},/area/wizard_station) -"kV" = (/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) -"kW" = (/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) -"kX" = (/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) -"kY" = (/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) -"kZ" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"la" = (/turf/unsimulated/wall,/area/tdome/arena) -"lb" = (/obj/machinery/igniter,/turf/simulated/floor/plasteel,/area/tdome/arena) -"lc" = (/turf/simulated/floor/plasteel,/area/tdome/arena) -"ld" = (/turf/unsimulated/wall/normal{tag = "icon-uranium1"; icon_state = "uranium1"},/area/wizard_station) -"le" = (/obj/structure/stool/bed/chair/wood/wings,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) -"lf" = (/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) -"lg" = (/obj/structure/table/wood,/obj/item/weapon/retractor,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) -"lh" = (/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) -"li" = (/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) -"lj" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/hardsuit/wizard,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) -"lk" = (/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) -"ll" = (/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) -"lm" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"ln" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"lo" = (/obj/structure/table,/obj/machinery/cell_charger,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"lp" = (/obj/structure/table,/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"lq" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -28; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"lr" = (/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) -"ls" = (/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) -"lt" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/assembly/infra,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"lu" = (/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) -"lv" = (/obj/structure/table,/obj/item/weapon/weldingtool/largetank{pixel_y = 3},/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"lw" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"lx" = (/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) -"ly" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena) -"lz" = (/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2) -"lA" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{name = "plating"},/area/tdome/arena) -"lB" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/tdome/arena) -"lC" = (/turf/simulated/floor/plasteel{icon_state = "green"; dir = 4},/area/tdome/arena) -"lD" = (/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1) -"lE" = (/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) -"lF" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows"},/area/wizard_station) -"lG" = (/obj/structure/cult/tome,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) -"lH" = (/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) -"lI" = (/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) -"lJ" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/wizard_station) -"lK" = (/turf/simulated/shuttle/wall{icon_state = "swall8"; dir = 2},/area/wizard_station) -"lL" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"lM" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"lN" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/syndicate,/obj/item/weapon/crowbar/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"lO" = (/obj/structure/closet/syndicate/personal,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/syndicate_mothership) -"lP" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) -"lQ" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2) -"lR" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1) -"lS" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows2"},/area/wizard_station) -"lT" = (/obj/structure/bookcase,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) -"lU" = (/obj/structure/grille{color = "#008000"; density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating,/area/wizard_station) -"lV" = (/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) -"lW" = (/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) -"lX" = (/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) -"lY" = (/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) -"lZ" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon_state = "floor"},/area/wizard_station) -"ma" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{icon_state = "floor"},/area/wizard_station) -"mb" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/turf/simulated/floor/plating/airless,/area/wizard_station) -"mc" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/space/transit,/area/wizard_station) -"md" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"me" = (/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) -"mf" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"mg" = (/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) -"mh" = (/turf/simulated/floor/bluegrid,/area/tdome/arena) -"mi" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/simulated/floor/bluegrid,/area/tdome/arena) -"mj" = (/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) -"mk" = (/turf/unsimulated/wall/fakeglass{color = "#008000"},/area/wizard_station) -"ml" = (/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) -"mm" = (/obj/effect/landmark/start{name = "wizard"},/turf/unsimulated/floor{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station) -"mn" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) -"mo" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/wizard_station) -"mp" = (/turf/unsimulated/wall/fakedoor{name = "Squad 3 Pod"},/area/wizard_station) -"mq" = (/obj/structure/table,/obj/item/weapon/gun/syringe{pixel_x = 1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"mr" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/antitoxin,/obj/item/weapon/reagent_containers/syringe/antitoxin{pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/antitoxin{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"ms" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"mt" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"mu" = (/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) -"mv" = (/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) -"mw" = (/obj/machinery/camera{pixel_x = 10; network = list("thunder"); c_tag = "Arena"},/turf/simulated/floor/bluegrid,/area/tdome/arena) -"mx" = (/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) -"my" = (/obj/structure/cult/pylon,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) -"mz" = (/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) -"mA" = (/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) -"mB" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) -"mC" = (/turf/unsimulated/floor{tag = "icon-cultdamage4"; icon_state = "cultdamage4"},/area/wizard_station) -"mD" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"mE" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"mF" = (/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) -"mG" = (/turf/unsimulated/wall/normal{tag = "icon-uranium15"; icon_state = "uranium15"},/area/wizard_station) -"mH" = (/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) -"mI" = (/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) -"mJ" = (/obj/structure/closet/crate/internals,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"mK" = (/obj/structure/closet/crate/medical,/obj/item/weapon/surgicaldrill,/obj/item/weapon/scalpel,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"mL" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/space) -"mM" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"mN" = (/obj/machinery/teleport/hub/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"mO" = (/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cultdamage3"; icon_state = "cultdamage3"},/area/wizard_station) -"mP" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/simulated/shuttle/plating,/area/space) -"mQ" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/simulated/shuttle/plating,/area/space) -"mR" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena) -"mS" = (/turf/unsimulated/floor{tag = "icon-cultdamage2"; icon_state = "cultdamage2"},/area/wizard_station) -"mT" = (/obj/effect/forcefield,/turf/space,/area/wizard_station) -"mU" = (/obj/effect/decal/remains/human,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) -"mV" = (/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) -"mW" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeadmin) -"mX" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeadmin) -"mY" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeadmin) -"mZ" = (/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) -"na" = (/obj/structure/lattice,/obj/effect/forcefield,/turf/space,/area/wizard_station) -"nb" = (/obj/effect/forcefield,/turf/space/transit,/area/wizard_station) -"nc" = (/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin) -"nd" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin) -"ne" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{pixel_y = 0},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin) -"nf" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin) -"ng" = (/obj/machinery/flasher_button{id = "tdomeflash"; pixel_x = 0; pixel_y = 0},/obj/structure/table,/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin) -"nh" = (/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) -"ni" = (/turf/unsimulated/wall,/area/tdome/tdomeadmin) -"nj" = (/obj/machinery/computer/security/telescreen{pixel_y = -32},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin) -"nk" = (/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin) -"nl" = (/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) -"nm" = (/turf/unsimulated/floor{dir = 1; icon_state = "carpetside"},/area/wizard_station) -"nn" = (/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/wizard_station) -"no" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_f10"; layer = 2},/area/wizard_station) -"np" = (/turf/unsimulated/floor{tag = "icon-cultdamage6"; icon_state = "cultdamage6"},/area/wizard_station) -"nq" = (/turf/unsimulated/wall/fakedoor{name = "Thunderdome Admin"},/area/tdome/tdomeadmin) -"nr" = (/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) -"ns" = (/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) -"nt" = (/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) -"nu" = (/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/wizard_station) -"nv" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/wiz,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/wizard_station) -"nw" = (/turf/unsimulated/floor{dir = 4; icon_state = "carpetside"},/area/wizard_station) -"nx" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) -"ny" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/wizard_station) -"nz" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/wizard_station) -"nA" = (/obj/structure/dresser,/obj/item/weapon/storage/backpack/satchel,/turf/unsimulated/floor{dir = 10; icon_state = "carpetside"},/area/wizard_station) -"nB" = (/turf/unsimulated/floor{dir = 2; icon_state = "carpetside"},/area/wizard_station) -"nC" = (/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) -"nD" = (/turf/unsimulated/wall/fakedoor{name = "Squad 2 Pod"},/area/wizard_station) -"nE" = (/turf/unsimulated/wall/normal{tag = "icon-uranium13"; icon_state = "uranium13"},/area/wizard_station) -"nF" = (/turf/simulated/shuttle/wall,/area/wizard_station) -"nG" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/wizard_station) -"nH" = (/obj/structure/table/wood,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) -"nI" = (/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) -"nJ" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/wizard_station) -"nK" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) -"nL" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) -"nM" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) -"nN" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) -"nO" = (/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) -"nP" = (/obj/structure/rack,/obj/item/device/camera,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding) -"nQ" = (/obj/structure/rack,/obj/item/toy/sword,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding) -"nR" = (/obj/structure/rack,/obj/item/toy/gun,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding) -"nS" = (/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding) -"nT" = (/turf/unsimulated/beach/sand,/area/centcom/holding) -"nU" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/centcom/holding) -"nV" = (/obj/effect/overlay/palmtree_l,/turf/unsimulated/beach/sand,/area/centcom/holding) -"nW" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Dooruranium.dmi'; name = "Engine Room B"},/turf/space,/area/wizard_station) -"nX" = (/obj/structure/table,/obj/item/clothing/head/that,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) -"nY" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding) -"nZ" = (/obj/item/device/camera,/turf/unsimulated/beach/sand,/area/centcom/holding) -"oa" = (/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) -"ob" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) -"oc" = (/obj/structure/table,/obj/item/weapon/lighter/zippo,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) -"od" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) -"oe" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) -"of" = (/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) -"og" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/beach/sand,/area/centcom/holding) -"oh" = (/turf/unsimulated/wall/normal{tag = "icon-uranium11"; icon_state = "uranium11"},/area/wizard_station) -"oi" = (/obj/structure/window/reinforced{color = "#008000"; dir = 1},/turf/unsimulated/floor{tag = "icon-lava"; icon_state = "lava"},/area/wizard_station) -"oj" = (/turf/unsimulated/wall/normal{tag = "icon-uranium7"; icon_state = "uranium7"},/area/wizard_station) -"ok" = (/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) -"ol" = (/obj/item/weapon/beach_ball,/turf/unsimulated/beach/sand,/area/centcom/holding) -"om" = (/obj/structure/shuttle/engine/heater,/turf/unsimulated/floor{tag = "icon-lava"; icon_state = "lava"},/area/wizard_station) -"on" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding) -"oo" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding) -"op" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/space) -"oq" = (/turf/unsimulated/beach/coastline,/area/centcom/holding) -"or" = (/obj/item/clothing/head/collectable/paper,/turf/unsimulated/beach/coastline,/area/centcom/holding) -"os" = (/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) -"ot" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding) -"ou" = (/turf/unsimulated/beach/water,/area/centcom/holding) -"ov" = (/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) -"ow" = (/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/holding) -"ox" = (/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) -"oy" = (/obj/effect/landmark{name = "Holding Facility"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/holding) -"oz" = (/obj/machinery/computer/shuttle/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"oA" = (/obj/machinery/computer/shuttle/syndicate/recall,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"fD" = (/obj/structure/rack,/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot,/turf/unsimulated/floor{tag = "icon-warning"; icon_state = "warning"; dir = 2; heat_capacity = 1},/area/centcom/ferry) +"fE" = (/obj/structure/stool,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry) +"fF" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/ferry) +"fG" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/space) +"fH" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/control) +"fI" = (/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/control) +"fJ" = (/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/control) +"fK" = (/obj/machinery/door/airlock/external{name = "Port Docking Bay 1"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/evac) +"fL" = (/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/evac) +"fM" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/simulated/shuttle/plating,/area/space) +"fN" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor4,/area/space) +"fO" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) +"fP" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) +"fQ" = (/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) +"fR" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/gun/energy/gun,/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry) +"fS" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"fT" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser,/obj/item/weapon/gun/energy/laser,/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry) +"fU" = (/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) +"fV" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/control) +"fW" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/control) +"fX" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/control) +"fY" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/control) +"fZ" = (/obj/machinery/door/airlock/centcom{name = "Centcom Security"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac) +"ga" = (/turf/simulated/shuttle/wall{icon_state = "swallc4"; dir = 2},/area/space) +"gb" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry) +"gc" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/centcom/ferry) +"gd" = (/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry) +"ge" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/ferry) +"gf" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/control) +"gg" = (/turf/unsimulated/floor{icon_state = "greencorner"},/area/centcom/control) +"gh" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/evac) +"gi" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac) +"gj" = (/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/evac) +"gk" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency,/obj/docking_port/stationary{dir = 4; dwidth = 9; height = 11; id = "emergency_away"; name = "Centcom"; width = 22},/turf/simulated/shuttle/plating,/area/space) +"gl" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/shuttle/floor,/area/space) +"gm" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/shuttle/floor,/area/space) +"gn" = (/obj/structure/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry) +"go" = (/obj/structure/rack,/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/teargas,/obj/item/weapon/storage/box/flashbangs,/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry) +"gp" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/space) +"gq" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/space) +"gr" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/space) +"gs" = (/turf/unsimulated/floor{name = "plating"},/area/space) +"gt" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/centcom/ferry) +"gu" = (/obj/effect/landmark{name = "Deathsquad"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"gv" = (/turf/unsimulated/wall/fakeglass,/area/centcom/control) +"gw" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) +"gx" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) +"gy" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) +"gz" = (/turf/unsimulated/wall,/area/syndicate_mothership) +"gA" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/centcom/ferry) +"gB" = (/obj/machinery/door/airlock/centcom{name = "Equipment Room"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"gC" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/simulated/shuttle/plating,/area/space) +"gD" = (/obj/machinery/computer/shuttle/ferry/request,/turf/simulated/shuttle/floor,/area/space) +"gE" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor,/area/space) +"gF" = (/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) +"gG" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (SOUTHEAST)"; icon_state = "fakewindows"; dir = 6},/area/centcom/ferry) +"gH" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "greencorner"; dir = 1},/area/centcom/evac) +"gI" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership) +"gJ" = (/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership) +"gK" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership) +"gL" = (/obj/structure/flora/grass/both,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership) +"gM" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/weapon/weldingtool/largetank,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"gN" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"gO" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/weapon/energy/taser,/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser,/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry) +"gP" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp,/obj/item/mecha_parts/mecha_equipment/tool/cable_layer,/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry) +"gQ" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/rcd,/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"gR" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/weapon/weldingtool/largetank,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"gS" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/floor,/area/space) +"gT" = (/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) +"gU" = (/obj/machinery/door/airlock/external{name = "Ferry Airlock"; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/ferry) +"gV" = (/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/ferry) +"gW" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 4},/area/centcom/ferry) +"gX" = (/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) +"gY" = (/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry) +"gZ" = (/turf/simulated/shuttle/wall{icon_state = "swallc1"; dir = 2},/area/space) +"ha" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 5},/area/centcom/ferry) +"hb" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"hc" = (/obj/structure/flora/bush,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/area/syndicate_mothership) +"hd" = (/obj/machinery/mech_bay_recharge_port,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"he" = (/obj/mecha/combat/gygax,/turf/unsimulated/floor{icon_state = "recharge_floor"; name = "mech bay recharge floor"; tag = "icon-recharge_floor"},/area/centcom/ferry) +"hf" = (/obj/mecha/working/ripley,/turf/unsimulated/floor{icon_state = "recharge_floor"; name = "mech bay recharge floor"; tag = "icon-recharge_floor"},/area/centcom/ferry) +"hg" = (/obj/machinery/mech_bay_recharge_port{tag = "icon-recharge_port (WEST)"; icon_state = "recharge_port"; dir = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"hh" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/space) +"hi" = (/turf/unsimulated/floor{name = "plating"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/space) +"hj" = (/turf/unsimulated/floor{icon_state = "greencorner"},/area/centcom/ferry) +"hk" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/evac) +"hl" = (/obj/structure/reagent_dispensers/fueltank,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"hm" = (/turf/unsimulated/wall/fakeglass,/area/centcom/ferry) +"hn" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/simulated/shuttle/plating,/area/space) +"ho" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/simulated/shuttle/floor,/area/space) +"hp" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/weapon/weldingtool/largetank,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"hq" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/syringes,/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"hr" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/tool/sleeper,/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry) +"hs" = (/turf/unsimulated/wall,/area/centcom/holding) +"ht" = (/obj/machinery/door/airlock/centcom{name = "ERT Ready Room"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"hu" = (/obj/machinery/door/airlock/centcom{name = "Centcom"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac) +"hv" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo"},/turf/simulated/shuttle/floor,/area/space) +"hw" = (/obj/machinery/status_display,/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/space) +"hx" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Infirmary"},/turf/simulated/shuttle/floor,/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"},/area/syndicate_mothership) +"hz" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/centcom/ferry) +"hA" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/centcom/ferry) +"hB" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/centcom/ferry) +"hC" = (/obj/machinery/suit_storage_unit/ertMed,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"hD" = (/obj/structure/rack,/obj/item/clothing/glasses/hud/health,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/fire{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/reagent_containers/hypospray/combat/nanites,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"hE" = (/obj/structure/rack,/obj/item/weapon/storage/box/emps,/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"hF" = (/obj/structure/mirror{pixel_y = 28},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"hG" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"hH" = (/obj/structure/rack,/obj/item/device/aicard,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"hI" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/ferry) +"hJ" = (/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/space) +"hK" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/space) +"hL" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) +"hM" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/space) +"hN" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/space) +"hO" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/obj/structure/window/reinforced/fulltile,/turf/simulated/shuttle/plating,/area/space) +"hP" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/space) +"hQ" = (/obj/machinery/mech_bay_recharge_port{on = 1},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"hR" = (/obj/mecha/medical/odysseus,/turf/unsimulated/floor{icon_state = "recharge_floor"; name = "mech bay recharge floor"; tag = "icon-recharge_floor"},/area/centcom/ferry) +"hS" = (/obj/machinery/door/poddoor{name = "Emergency Response Team Armoury"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"hT" = (/obj/structure/closet/syndicate/ertEngi,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"hU" = (/obj/structure/closet/syndicate/ertMed,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"hV" = (/obj/structure/closet/syndicate/ertSec,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"hW" = (/obj/structure/table/reinforced,/obj/item/device/paicard,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"hX" = (/obj/structure/rack,/obj/item/weapon/storage/box/handcuffs,/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/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"hY" = (/obj/structure/rack,/obj/item/weapon/extinguisher,/obj/item/weapon/extinguisher,/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/weapon/soap/nanotrasen,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"hZ" = (/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/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -28; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) +"ig" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) +"ih" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"ii" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"ij" = (/obj/structure/table,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"ik" = (/obj/machinery/computer/shuttle/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"il" = (/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) +"im" = (/obj/structure/computerframe,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"in" = (/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) +"io" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership) +"ip" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership) +"iq" = (/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) +"ir" = (/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) +"is" = (/obj/machinery/door/airlock/glass_large{name = "Medical Equipment"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"it" = (/obj/machinery/door/airlock/glass_large{name = "Miscellaneous Equipment"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"iu" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve) +"iv" = (/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve) +"iw" = (/turf/unsimulated/wall/fakeglass,/area/tdome/tdomeobserve) +"ix" = (/turf/unsimulated/floor{icon_state = "neutral"; dir = 8},/area/tdome/tdomeobserve) +"iy" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdomeobserve) +"iz" = (/turf/unsimulated/floor{icon_state = "neutral"; dir = 4},/area/tdome/tdomeobserve) +"iA" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "green"; dir = 9},/area/centcom/evac) +"iB" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac) +"iC" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac) +"iD" = (/obj/structure/closet,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/space) +"iE" = (/obj/structure/closet/crate,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/space) +"iF" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"iG" = (/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) +"iH" = (/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) +"iI" = (/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) +"iJ" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) +"iK" = (/obj/structure/lattice,/turf/space,/area/space) +"iL" = (/obj/structure/table/reinforced,/obj/item/ammo_box/a357,/obj/item/ammo_box/a357,/obj/item/weapon/gun/projectile/revolver/mateba,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"iM" = (/obj/structure/table/reinforced,/obj/item/device/aicard,/obj/item/clothing/glasses/hud/security/night,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"iN" = (/obj/structure/rack,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/belt/security,/obj/item/device/flash/handheld,/obj/item/weapon/grenade/flashbang,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"iO" = (/obj/effect/landmark{name = "Emergencyresponseteam"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/ferry) +"iP" = (/turf/unsimulated/floor{tag = "icon-bluecorner (EAST)"; icon_state = "bluecorner"; dir = 4},/area/centcom/ferry) +"iQ" = (/turf/unsimulated/floor{tag = "icon-blue (NORTH)"; icon_state = "blue"; dir = 1},/area/centcom/ferry) +"iR" = (/turf/unsimulated/floor{tag = "icon-bluecorner (NORTH)"; icon_state = "bluecorner"; dir = 1},/area/centcom/ferry) +"iS" = (/turf/unsimulated/floor{tag = "icon-neutralcorner (EAST)"; icon_state = "neutralcorner"; dir = 4},/area/centcom/ferry) +"iT" = (/turf/unsimulated/floor{tag = "icon-neutral (NORTH)"; icon_state = "neutral"; dir = 1},/area/centcom/ferry) +"iU" = (/turf/unsimulated/floor{tag = "icon-neutralcorner (NORTH)"; icon_state = "neutralcorner"; dir = 1},/area/centcom/ferry) +"iV" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve) +"iW" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve) +"iX" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve) +"iY" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/evac) +"iZ" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac) +"ja" = (/obj/structure/filingcabinet/filingcabinet,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac) +"jb" = (/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) +"jc" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 8; icon_state = "fakewindows2"},/area/wizard_station) +"jd" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 4; icon_state = "fakewindows"},/area/wizard_station) +"je" = (/turf/unsimulated/wall/normal{tag = "icon-uranium2"; icon_state = "uranium2"},/area/wizard_station) +"jf" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 10},/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"jg" = (/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) +"jh" = (/obj/structure/closet/syndicate/personal,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"ji" = (/obj/machinery/computer/shuttle/syndicate/recall,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"jj" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"jk" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"jl" = (/obj/machinery/vending/cola,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"jm" = (/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) +"jn" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/syndicate_mothership) +"jo" = (/obj/item/device/paicard,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) +"jp" = (/obj/structure/stool/bed/chair/comfy/teal,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) +"jq" = (/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) +"jr" = (/obj/machinery/door/airlock/centcom{name = "Commander's Room"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"js" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 6},/area/tdome/tdomeobserve) +"jt" = (/obj/structure/lattice,/turf/space/transit,/area/wizard_station) +"ju" = (/obj/item/weapon/shard{color = "#008000"},/turf/unsimulated/floor{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station) +"jv" = (/obj/machinery/computer/shuttle,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) +"jw" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) +"jx" = (/turf/unsimulated/wall/normal{tag = "icon-uranium5"; icon_state = "uranium5"},/area/wizard_station) +"jy" = (/turf/unsimulated/wall/normal{tag = "icon-uranium10"; icon_state = "uranium10"},/area/wizard_station) +"jz" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/space) +"jA" = (/obj/machinery/door/window{name = "Cockpit"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"jB" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/space) +"jC" = (/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) +"jD" = (/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) +"jE" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"jF" = (/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) +"jG" = (/obj/machinery/door/airlock/centcom{name = "Study"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"jH" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) +"jI" = (/obj/machinery/suit_storage_unit/ertCom,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"jJ" = (/turf/unsimulated/floor{tag = "icon-redcorner"; icon_state = "redcorner"; dir = 2},/area/centcom/ferry) +"jK" = (/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/centcom/ferry) +"jL" = (/turf/unsimulated/floor{tag = "icon-redcorner (WEST)"; icon_state = "redcorner"; dir = 8},/area/centcom/ferry) +"jM" = (/turf/unsimulated/floor{tag = "icon-yellowcorner"; icon_state = "yellowcorner"; dir = 2},/area/centcom/ferry) +"jN" = (/turf/unsimulated/floor{tag = "icon-yellow"; icon_state = "yellow"; dir = 2},/area/centcom/ferry) +"jO" = (/turf/unsimulated/floor{tag = "icon-yellowcorner (WEST)"; icon_state = "yellowcorner"; dir = 8},/area/centcom/ferry) +"jP" = (/turf/unsimulated/floor{dir = 8; icon_state = "red"},/area/tdome/tdomeobserve) +"jQ" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/tdome/tdomeobserve) +"jR" = (/turf/unsimulated/floor{dir = 10; icon_state = "green"},/area/centcom/evac) +"jS" = (/turf/unsimulated/floor{icon_state = "green"},/area/centcom/evac) +"jT" = (/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/centcom/evac) +"jU" = (/obj/structure/lattice,/obj/item/weapon/shard{color = "#008000"; icon_state = "medium"},/turf/space/transit,/area/wizard_station) +"jV" = (/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cultdamage2"; icon_state = "cultdamage2"},/area/wizard_station) +"jW" = (/turf/unsimulated/floor{tag = "icon-cultdamage3"; icon_state = "cultdamage3"},/area/wizard_station) +"jX" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) +"jY" = (/turf/unsimulated/wall/normal{tag = "icon-uranium3"; icon_state = "uranium3"},/area/wizard_station) +"jZ" = (/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/weapon/crowbar/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"ka" = (/obj/structure/table,/obj/item/weapon/storage/box/zipties{pixel_x = 1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"kb" = (/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) +"kc" = (/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) +"kd" = (/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) +"ke" = (/obj/structure/table/wood,/obj/item/pizzabox{ismessy = 1},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"kf" = (/obj/structure/stool,/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"kg" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (NORTHWEST)"; icon_state = "podhatch"; dir = 9},/area/syndicate_mothership) +"kh" = (/obj/structure/dresser,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) +"ki" = (/obj/structure/table/wood,/obj/item/weapon/clipboard,/obj/item/weapon/pen,/turf/unsimulated/floor{icon_state = "grimy"},/area/syndicate_mothership) +"kj" = (/obj/machinery/door/airlock/glass_large{name = "Security Equipment"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"kk" = (/obj/machinery/door/airlock/glass_large{name = "Engineering Equipment"},/turf/unsimulated/floor{icon_state = "floor"},/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" = (/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) +"kr" = (/obj/item/weapon/gun/energy/pulse_rifle,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) +"ks" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) +"kt" = (/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) +"ku" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"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/mushroompizzaslice,/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/mecha/combat/marauder{operation_req_access = null},/turf/unsimulated/floor{icon_state = "recharge_floor"; name = "mech bay recharge floor"; tag = "icon-recharge_floor"},/area/centcom/ferry) +"kC" = (/obj/machinery/door/poddoor{name = "Death Squad Equipment Room"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"kD" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"kE" = (/obj/machinery/suit_storage_unit/ertSec,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"kF" = (/obj/structure/rack,/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/belt/security,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/shield/riot/tele,/obj/item/weapon/gun/energy/pulse_rifle/pulse_carbine,/obj/item/device/flash/handheld,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"kG" = (/obj/machinery/suit_storage_unit/ertEngi,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"kH" = (/obj/structure/rack,/obj/item/weapon/storage/belt/utility/full,/obj/item/clothing/glasses/meson,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/device/multitool,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/rcd{matter = 200; name = "military rapid-construction-device (RCD)"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"kI" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 6; icon_state = "fakewindows2"},/area/wizard_station) +"kJ" = (/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) +"kK" = (/turf/unsimulated/wall/normal{tag = "icon-uranium6"; icon_state = "uranium6"},/area/wizard_station) +"kL" = (/turf/unsimulated/wall/normal{tag = "icon-uranium9"; icon_state = "uranium9"},/area/wizard_station) +"kM" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership) +"kN" = (/turf/unsimulated/floor,/area/syndicate_mothership) +"kO" = (/obj/machinery/door/poddoor/shutters{id = "nukeop_ready"; name = "shuttle dock"},/turf/unsimulated/floor,/area/syndicate_mothership) +"kP" = (/obj/structure/rack,/obj/item/weapon/storage/belt/utility/full,/obj/item/clothing/glasses/meson,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/device/multitool,/obj/item/weapon/rcd,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/rcd{matter = 90; name = "military rapid-construction-device (RCD)"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"kQ" = (/turf/space,/area/tdome/tdomeobserve) +"kR" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{tag = "icon-cultdamage6"; icon_state = "cultdamage6"},/area/wizard_station) +"kS" = (/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) +"kT" = (/obj/structure/mirror{pixel_x = 28},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) +"kU" = (/obj/machinery/suit_storage_unit/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"kV" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"kW" = (/turf/unsimulated/wall/fakeglass,/area/syndicate_mothership) +"kX" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/unsimulated/floor,/area/syndicate_mothership) +"kY" = (/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) +"kZ" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (SOUTHWEST)"; icon_state = "podhatch"; dir = 10},/area/syndicate_mothership) +"la" = (/obj/structure/urinal{pixel_y = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) +"lb" = (/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) +"lc" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/anticcw_armor_booster,/obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster,/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay,/obj/item/mecha_parts/mecha_equipment/repair_droid,/obj/item/weapon/weldingtool/largetank,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"ld" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion,/obj/item/mecha_parts/mecha_equipment/weapon/energy/pulse,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"le" = (/obj/structure/table/reinforced,/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack,/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry) +"lf" = (/obj/structure/table/reinforced,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/hud/security/sunglasses,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"lg" = (/obj/structure/table/reinforced,/obj/item/weapon/stock_parts/cell/high,/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/plasteel{amount = 50},/obj/item/clothing/shoes/magboots,/obj/item/weapon/storage/box,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"lh" = (/turf/simulated/shuttle/wall{icon_state = "swall0"; dir = 2},/area/wizard_station) +"li" = (/turf/unsimulated/wall/fakedoor{name = "Squad 4 Pod"},/area/wizard_station) +"lj" = (/turf/simulated/shuttle/wall{icon_state = "swall4"; dir = 2},/area/wizard_station) +"lk" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/wizard_station) +"ll" = (/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) +"lm" = (/turf/unsimulated/floor{tag = "icon-cultdamage7"; icon_state = "cultdamage7"},/area/wizard_station) +"ln" = (/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) +"lo" = (/obj/structure/stool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"lp" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"lq" = (/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{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) +"lr" = (/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) +"ls" = (/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) +"lt" = (/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) +"lu" = (/obj/structure/table/wood,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) +"lv" = (/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) +"lw" = (/obj/machinery/door/airlock/centcom{name = "Restroom"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) +"lx" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) +"ly" = (/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) +"lz" = (/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve) +"lA" = (/obj/structure/stool/bed/chair,/obj/effect/landmark{name = "tdomeobserve"},/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve) +"lB" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/space/transit,/area/wizard_station) +"lC" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/turf/simulated/floor/plating/airless,/area/wizard_station) +"lD" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{icon_state = "floor"},/area/wizard_station) +"lE" = (/turf/unsimulated/floor{icon_state = "floor"},/area/wizard_station) +"lF" = (/obj/machinery/door/poddoor/preopen,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plating/airless,/area/wizard_station) +"lG" = (/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) +"lH" = (/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cultdamage7"; icon_state = "cultdamage7"},/area/wizard_station) +"lI" = (/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station) +"lJ" = (/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) +"lK" = (/obj/structure/table,/obj/item/weapon/c4{pixel_x = 2; pixel_y = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"lL" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) +"lM" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) +"lN" = (/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) +"lO" = (/obj/item/weapon/soap/syndie,/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) +"lP" = (/obj/item/weapon/mop,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) +"lQ" = (/turf/unsimulated/wall/fakedoor{name = "Thunderdome"},/area/tdome/tdomeobserve) +"lR" = (/obj/machinery/computer/security/telescreen,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve) +"lS" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/wizard_station) +"lT" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/wizard_station) +"lU" = (/turf/unsimulated/floor{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station) +"lV" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{tag = "icon-cultdamage2"; icon_state = "cultdamage2"},/area/wizard_station) +"lW" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/cardhand,/turf/unsimulated/floor{tag = "icon-cultdamage2"; icon_state = "cultdamage2"},/area/wizard_station) +"lX" = (/obj/machinery/door/window{dir = 4; name = "EVA Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"lY" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"lZ" = (/obj/machinery/computer/telecrystals/boss,/turf/unsimulated/floor{tag = "icon-podhatch (NORTHEAST)"; icon_state = "podhatch"; dir = 5},/area/syndicate_mothership) +"ma" = (/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) +"mb" = (/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) +"mc" = (/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) +"md" = (/obj/structure/lattice,/obj/effect/forcefield,/turf/space/transit,/area/wizard_station) +"me" = (/obj/machinery/vending/magivend,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) +"mf" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) +"mg" = (/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) +"mh" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/shuttle/plating,/area/space) +"mi" = (/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) +"mj" = (/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) +"mk" = (/turf/unsimulated/floor{tag = "icon-stage_stairs"; icon_state = "stage_stairs"},/area/syndicate_mothership) +"ml" = (/obj/machinery/mech_bay_recharge_port,/turf/unsimulated/floor/plating,/area/syndicate_mothership) +"mm" = (/turf/unsimulated/floor{icon_state = "recharge_floor"; name = "mech bay recharge floor"; tag = "icon-recharge_floor"},/area/syndicate_mothership) +"mn" = (/obj/machinery/computer/mech_bay_power_console,/turf/unsimulated/floor/plating,/area/syndicate_mothership) +"mo" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"mp" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeobserve) +"mq" = (/turf/unsimulated/wall/normal{tag = "icon-uranium8"; icon_state = "uranium8"},/area/wizard_station) +"mr" = (/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) +"ms" = (/turf/unsimulated/wall/normal{tag = "icon-uranium4"; icon_state = "uranium4"},/area/wizard_station) +"mt" = (/turf/unsimulated/wall/normal{tag = "icon-uranium12"; icon_state = "uranium12"},/area/wizard_station) +"mu" = (/turf/unsimulated/wall/normal{tag = "icon-uranium14"; icon_state = "uranium14"},/area/wizard_station) +"mv" = (/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) +"mw" = (/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) +"mx" = (/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) +"my" = (/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) +"mz" = (/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"mA" = (/obj/machinery/door/airlock/centcom{name = "Deathsquad Equipment Room"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) +"mB" = (/turf/unsimulated/wall,/area/tdome/arena) +"mC" = (/obj/machinery/igniter,/turf/simulated/floor/plasteel,/area/tdome/arena) +"mD" = (/turf/simulated/floor/plasteel,/area/tdome/arena) +"mE" = (/turf/unsimulated/wall/normal{tag = "icon-uranium1"; icon_state = "uranium1"},/area/wizard_station) +"mF" = (/obj/structure/stool/bed/chair/wood/wings,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) +"mG" = (/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) +"mH" = (/obj/structure/table/wood,/obj/item/weapon/retractor,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) +"mI" = (/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) +"mJ" = (/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) +"mK" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/hardsuit/wizard,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) +"mL" = (/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) +"mM" = (/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) +"mN" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"mO" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"mP" = (/obj/structure/table,/obj/machinery/cell_charger,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"mQ" = (/obj/structure/table,/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"mR" = (/obj/machinery/vending/wallmed1{name = "Emergency NanoMed"; pixel_x = -28; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"mS" = (/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) +"mT" = (/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) +"mU" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/assembly/infra,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"mV" = (/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) +"mW" = (/obj/structure/table,/obj/item/weapon/weldingtool/largetank{pixel_y = 3},/obj/item/device/multitool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"mX" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"mY" = (/obj/structure/rack,/obj/item/clothing/suit/space/deathsquad,/obj/item/weapon/gun/energy/pulse_rifle,/obj/item/clothing/mask/gas/sechailer/swat,/obj/item/clothing/head/helmet/space/deathsquad,/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry) +"mZ" = (/obj/structure/rack,/obj/item/clothing/suit/space/deathsquad,/obj/item/weapon/gun/energy/pulse_rifle,/obj/item/clothing/mask/gas/sechailer/swat,/obj/item/clothing/head/helmet/space/deathsquad,/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry) +"na" = (/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) +"nb" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena) +"nc" = (/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2) +"nd" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{name = "plating"},/area/tdome/arena) +"ne" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/tdome/arena) +"nf" = (/turf/simulated/floor/plasteel{icon_state = "green"; dir = 4},/area/tdome/arena) +"ng" = (/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1) +"nh" = (/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) +"ni" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows"},/area/wizard_station) +"nj" = (/obj/structure/cult/tome,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) +"nk" = (/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) +"nl" = (/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) +"nm" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/wizard_station) +"nn" = (/turf/simulated/shuttle/wall{icon_state = "swall8"; dir = 2},/area/wizard_station) +"no" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"np" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"nq" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/syndicate,/obj/item/weapon/crowbar/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"nr" = (/obj/structure/closet/syndicate/personal,/turf/unsimulated/floor{dir = 8; icon_state = "vault"},/area/syndicate_mothership) +"ns" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership) +"nt" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2) +"nu" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1) +"nv" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows2"},/area/wizard_station) +"nw" = (/obj/structure/bookcase,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) +"nx" = (/obj/structure/grille{color = "#008000"; density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating,/area/wizard_station) +"ny" = (/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) +"nz" = (/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) +"nA" = (/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) +"nB" = (/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) +"nC" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/remains/human,/turf/unsimulated/floor{icon_state = "floor"},/area/wizard_station) +"nD" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{icon_state = "floor"},/area/wizard_station) +"nE" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/turf/simulated/floor/plating/airless,/area/wizard_station) +"nF" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/space/transit,/area/wizard_station) +"nG" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"nH" = (/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) +"nI" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"nJ" = (/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) +"nK" = (/turf/simulated/floor/bluegrid,/area/tdome/arena) +"nL" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/simulated/floor/bluegrid,/area/tdome/arena) +"nM" = (/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) +"nN" = (/turf/unsimulated/wall/fakeglass{color = "#008000"},/area/wizard_station) +"nO" = (/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) +"nP" = (/obj/effect/landmark/start{name = "wizard"},/turf/unsimulated/floor{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station) +"nQ" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) +"nR" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/wizard_station) +"nS" = (/turf/unsimulated/wall/fakedoor{name = "Squad 3 Pod"},/area/wizard_station) +"nT" = (/obj/structure/table,/obj/item/weapon/gun/syringe{pixel_x = 1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"nU" = (/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) +"nV" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"nW" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"nX" = (/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) +"nY" = (/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) +"nZ" = (/obj/machinery/camera{pixel_x = 10; network = list("thunder"); c_tag = "Arena"},/turf/simulated/floor/bluegrid,/area/tdome/arena) +"oa" = (/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) +"ob" = (/obj/structure/cult/pylon,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) +"oc" = (/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) +"od" = (/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) +"oe" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) +"of" = (/turf/unsimulated/floor{tag = "icon-cultdamage4"; icon_state = "cultdamage4"},/area/wizard_station) +"og" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"oh" = (/obj/effect/landmark{name = "Nuclear-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"oi" = (/obj/structure/rack,/obj/item/weapon/c4,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/pinpointer,/obj/item/weapon/shield/energy,/obj/item/clothing/glasses/thermal,/obj/item/weapon/tank/emergency_oxygen,/obj/item/ammo_box/a357,/obj/item/weapon/gun/projectile/revolver/mateba,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/storage/backpack/security,/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry) +"oj" = (/obj/structure/rack,/obj/item/weapon/c4,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/pinpointer,/obj/item/weapon/shield/energy,/obj/item/clothing/glasses/thermal,/obj/item/weapon/tank/emergency_oxygen,/obj/item/ammo_box/a357,/obj/item/weapon/gun/projectile/revolver/mateba,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/storage/backpack/security,/turf/unsimulated/floor{dir = 8; heat_capacity = 1; icon_state = "warning"},/area/centcom/ferry) +"ok" = (/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) +"ol" = (/turf/unsimulated/wall/normal{tag = "icon-uranium15"; icon_state = "uranium15"},/area/wizard_station) +"om" = (/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) +"on" = (/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) +"oo" = (/obj/structure/closet/crate/internals,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/oxygen/red,/obj/item/clothing/mask/gas,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"op" = (/obj/structure/closet/crate/medical,/obj/item/weapon/surgicaldrill,/obj/item/weapon/scalpel,/obj/item/weapon/reagent_containers/glass/bottle/morphine,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"oq" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/space) +"or" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"os" = (/obj/machinery/teleport/hub/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"ot" = (/obj/effect/forcefield,/turf/unsimulated/floor{tag = "icon-cultdamage3"; icon_state = "cultdamage3"},/area/wizard_station) +"ou" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/simulated/shuttle/plating,/area/space) +"ov" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/simulated/shuttle/plating,/area/space) +"ow" = (/obj/machinery/door/poddoor{id = "thunderdomehea"; name = "Heavy Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena) +"ox" = (/turf/unsimulated/floor{tag = "icon-cultdamage2"; icon_state = "cultdamage2"},/area/wizard_station) +"oy" = (/obj/effect/forcefield,/turf/space,/area/wizard_station) +"oz" = (/obj/effect/decal/remains/human,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) +"oA" = (/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) +"oB" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/tdome/tdomeadmin) +"oC" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/tdome/tdomeadmin) +"oD" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/tdome/tdomeadmin) +"oE" = (/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) +"oF" = (/obj/structure/lattice,/obj/effect/forcefield,/turf/space,/area/wizard_station) +"oG" = (/obj/effect/forcefield,/turf/space/transit,/area/wizard_station) +"oH" = (/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin) +"oI" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/landmark{name = "tdomeadmin"},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin) +"oJ" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{pixel_y = 0},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin) +"oK" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin) +"oL" = (/obj/machinery/flasher_button{id = "tdomeflash"; pixel_x = 0; pixel_y = 0},/obj/structure/table,/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin) +"oM" = (/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) +"oN" = (/turf/unsimulated/wall,/area/tdome/tdomeadmin) +"oO" = (/obj/machinery/computer/security/telescreen{pixel_y = -32},/turf/unsimulated/floor{icon_state = "redyellowfull"},/area/tdome/tdomeadmin) +"oP" = (/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeadmin) +"oQ" = (/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) +"oR" = (/turf/unsimulated/floor{dir = 1; icon_state = "carpetside"},/area/wizard_station) +"oS" = (/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/wizard_station) +"oT" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_f10"; layer = 2},/area/wizard_station) +"oU" = (/turf/unsimulated/floor{tag = "icon-cultdamage6"; icon_state = "cultdamage6"},/area/wizard_station) +"oV" = (/turf/unsimulated/wall/fakedoor{name = "Thunderdome Admin"},/area/tdome/tdomeadmin) +"oW" = (/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) +"oX" = (/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) +"oY" = (/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) +"oZ" = (/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/wizard_station) +"pa" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/wiz,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/wizard_station) +"pb" = (/turf/unsimulated/floor{dir = 4; icon_state = "carpetside"},/area/wizard_station) +"pc" = (/obj/effect/decal/cleanable/blood/gibs/body,/turf/unsimulated/floor{tag = "icon-cultdamage"; icon_state = "cultdamage"},/area/wizard_station) +"pd" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/wizard_station) +"pe" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/wizard_station) +"pf" = (/obj/structure/dresser,/obj/item/weapon/storage/backpack/satchel,/turf/unsimulated/floor{dir = 10; icon_state = "carpetside"},/area/wizard_station) +"pg" = (/turf/unsimulated/floor{dir = 2; icon_state = "carpetside"},/area/wizard_station) +"ph" = (/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) +"pi" = (/turf/unsimulated/wall/fakedoor{name = "Squad 2 Pod"},/area/wizard_station) +"pj" = (/turf/unsimulated/wall/normal{tag = "icon-uranium13"; icon_state = "uranium13"},/area/wizard_station) +"pk" = (/turf/simulated/shuttle/wall,/area/wizard_station) +"pl" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/wizard_station) +"pm" = (/obj/structure/table/wood,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station) +"pn" = (/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) +"po" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"},/turf/space,/area/wizard_station) +"pp" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) +"pq" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) +"pr" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) +"ps" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) +"pt" = (/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) +"pu" = (/obj/structure/rack,/obj/item/device/camera,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding) +"pv" = (/obj/structure/rack,/obj/item/toy/sword,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding) +"pw" = (/obj/structure/rack,/obj/item/toy/gun,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding) +"px" = (/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding) +"py" = (/turf/unsimulated/beach/sand,/area/centcom/holding) +"pz" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/centcom/holding) +"pA" = (/obj/effect/overlay/palmtree_l,/turf/unsimulated/beach/sand,/area/centcom/holding) +"pB" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Dooruranium.dmi'; name = "Engine Room B"},/turf/space,/area/wizard_station) +"pC" = (/obj/structure/table,/obj/item/clothing/head/that,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) +"pD" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding) +"pE" = (/obj/item/device/camera,/turf/unsimulated/beach/sand,/area/centcom/holding) +"pF" = (/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) +"pG" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) +"pH" = (/obj/structure/table,/obj/item/weapon/lighter/zippo,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) +"pI" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) +"pJ" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) +"pK" = (/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) +"pL" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/beach/sand,/area/centcom/holding) +"pM" = (/turf/unsimulated/wall/normal{tag = "icon-uranium11"; icon_state = "uranium11"},/area/wizard_station) +"pN" = (/obj/structure/window/reinforced{color = "#008000"; dir = 1},/turf/unsimulated/floor{tag = "icon-lava"; icon_state = "lava"},/area/wizard_station) +"pO" = (/turf/unsimulated/wall/normal{tag = "icon-uranium7"; icon_state = "uranium7"},/area/wizard_station) +"pP" = (/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) +"pQ" = (/obj/item/weapon/beach_ball,/turf/unsimulated/beach/sand,/area/centcom/holding) +"pR" = (/obj/structure/shuttle/engine/heater,/turf/unsimulated/floor{tag = "icon-lava"; icon_state = "lava"},/area/wizard_station) +"pS" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding) +"pT" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding) +"pU" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/space) +"pV" = (/turf/unsimulated/beach/coastline,/area/centcom/holding) +"pW" = (/obj/item/clothing/head/collectable/paper,/turf/unsimulated/beach/coastline,/area/centcom/holding) +"pX" = (/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) +"pY" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding) +"pZ" = (/turf/unsimulated/beach/water,/area/centcom/holding) +"qa" = (/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) +"qb" = (/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/holding) +"qc" = (/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) +"qd" = (/obj/effect/landmark{name = "Holding Facility"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/holding) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababadaeaeaeaeaeafaeaeaeaeaeafaeaeaeaeaeafaeaeaeaeaeag @@ -888,8 +970,8 @@ abababababababababababababababababababababababababababababababababababababababab abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdGdHdHdHdHdHdVdwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdGdHdHdHdHdHdWdNababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdGdHdHdHdHdHdGdwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdXgMdHdHdHdYeadwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdZecedededecebdwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdXdYdHdHdHdZeadwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwebecedededeceedwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdwefegegegehdwdwababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdwdwdwdwdwdwdwabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab @@ -899,62 +981,62 @@ abababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababepepepepepepepepepepepepepepepepepabababeieqeremeseteieoeoeoeoeoeoekababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababepeuepeuepeuepeuepeuepeuepeuepeuepabababeievemememeweieoeoeoeoeoeoekababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababepepepepepepepepepepepepepepepepepabababeiexemememeyeieoeoeoeoeoeoekababababdAezezezezezdCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababepeuepeuepeuepeuepeuepeuepeuepeuepabababeiexemememeyeieoekekeAekekekabababdAeeeCeDeEeDeFeBdCababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababepeuepeuepeuepeuepeuepeuepeuepeuepabababeiexemememeyeieoekekeAekekekabababdAeBeCeDeEeDeFeGdCababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababepepepepepepepepepepepepepepepepepabababeieieHeieieIeieoekeJeJeJeKekabababdGeLeMdHdHdHeNeOdGababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababeiePeQeRePeieoekeJeJeJeJekabababdGeSeTeUeVdHeNeWdGababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababeieXeYeZePeieoekeJfafbfcekababdAfddBdBfedBfffgdBfddCabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhfhfhfhfhababeiePeQfifjeieoekfkflfmfnekababdGfofofoezfpdHfqfrfsezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhftfufvfhaDeieifweieieieieiekeJeJeJeJfxfyfzdGfAfBfBfCdHdHdHdHfqdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhfDfEfEfhfFfGemfHfHfHfHfGfIekeJeJeJeJfJfKfJfLfBfMfMezfNfOfPdHfqezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfQfhfhfIfRemfSfTfUfHfRfIekfxfzfVfxfyfyfzdXdBdBdBfWfPfPfPdHfqdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhfXfXfXfXfXfXfXfXfXfXfXfXfXfYfZgagbfhfIfRgcemememgdfRfIekgegfgfggfJfKfJghdHgidHdHdHdHdHdHgjdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhfXgkdBdBgldBdBdBezdBdBgmgngofZgpgbfhfIfRexemememeygqfIekgegfgfggfxfyfzdGfOdHgrgsdHgrgsdHgtdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababguguguguguguguguguguguguguguguguguguguguguguguguguguguguguguabababababababababababfhgvfWeNgwgxgxgxgxgxgxgxglgygzfZgpgbfhfIgqexemememeseieQekgAgfgfggekababezfOdHgrgsdHgrgsdHgtezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababgugBgBgBgBgBgBgBgBgBgCgBgBgBgDgEgBgBgBgDgBgBgBgBgBgBgDgBgBguabababababababababababfhgvgFdHdHdHdHdHdHdHdHdHgGgHgIfZgpgJfhgKfherememememememgfgfgfgfgggLababezfOdHgrgsdHgrgsdHgtezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababgugBgBgBgBgCgBgBgBgBgBgBgBgBgBgBgBgDgBgBgBgBgBgDgBgBgBgBgBguabababababababababababfhgvgMeDeDeDeDeDeDeDeDeDglgygNfZgpgagOgagaemememememememgfgfgfgfggekababezfOdHgrgsdHgrgsdHgtezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababgugBgBgBgBgBgBgBgPgBgBgBgBgBgCgBgBgEgDgBgBgDgBgBgDgEgBgDgBguabababababababababababfhfXgQdBdBgldBdBdBezdBdBgRgngofZgpgSfhgKfhgcemememgdeieQekgTgfgfggfxfyfzdGfOdHgrgsdHgrgsdHgtdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababgugBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgCgBgBgDgEgBgBgDgBgEguabababababababababababfhfXfXfXfXfXfXfXfXfXfXfXfXfXgUfZgagbfhfIfGevemememewfGfIekgegfgfggfJfKfJgVdHgWdHdHdHdHdHdHgjdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababgugBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgCgBgBgBgBgBgEgBgDgEgBgDgBguabababababababababababgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgYgXgXfIfRevemememewfRfIekfxfzgZfxfyfyfzdXdBdBhadBhbezhcezezeaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababgugBgBgBgBgBgBhdhdhdhdhdhdhdgBgBgBgBgBgBgBgDgBgBgPgEgBgBgBguabababababababababababababababababababababababababababababgXfIgqevemememewgqfIekgfgfgfggfJfKfJgVhehehehfdGfrfqfqhgezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababgugBgBgBgBgBhhhihjhjhjhjhjhihkgBgBgBgBgPgBhdgChdgCgBgDgBgDguabababababababababababababababababababababababababababababgXhlhlhmhnhohphqhlhlekgfgfgfggfxfyfzdGhehehehedGhrfqfqhsdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababgugBgBgBgBgBhihthuhvozhwhxhxhihygBgBhdguguhzhAguguhdhBhChdguabababababababababababababababababababababababababababababgXhDhEhFhGhHhIhFhEhEekgfhJhKhLekababdGhMhMhNhNdGfrfqfqhgezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababgugBgBgBgBgBhihOhuhuhPhuhuhuhihygBhQguguhRhShShRguguguguguguguguabababababababababababababababababababababababababababgXhEhThUhGhHhIhUhVhEekgfhWhXhYekababdZfeedededededededfeebabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahZiaibicaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababgugBgBgBgBgBhiidhuhuhuiehuifhihygPhQguoAigigigigihiiijikiliminguabababababababababababababababababababababababababababgXiohEiohGhHhIiohEioekgfgfgfgfekabababdZegegegegegegegebababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaipaaiqirisitiuaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababgugBgBgBgBgBivhihihiiwhihihiixgBgBiyguizigiAiAiBigigigiCiDiDiDguabababababababababababababababababababababababababababgXiEhEhEhGhHhIhEhEiFekiGiHiHiIekababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaipiJiKiLisiMiNaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababgugBgBgBgBgBgBgBhiiOhuiPhiiQhdhdhdiRguigiAiSiTiAigiUiVikiWiXguguabababababababababababababababababababababababababababgXiYiZiZhGhHhIjajajbekekjcekekekababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaiNjdjeiMjfjgiNaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababgugBgBgBgBgBgBgBhijhhujihijjjkjkjkhAguigiAjljmiAigiUjnguguguguababababababababababababababababababababababababababababgXhlhlhlhlhHhlhlhlhlekeoeoeoeoekababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaitiujojpjojqjraaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababgugBgBhhhihihihihijhhujihijsjtjtjtjtjuigigigigigigiUjnguguguguababababababababababababababababababababababababababababababababhlhHhljvjvjveoeoeoeoeoekababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaipipjrjwjxjyitaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababgugBgBhijzhuhujAhijhhujihijBjChzjkhAgujDiAiAiAigigiUjEgujFjGguguababababababababababababababababababababababababhlhlhlhlhlhlhlhlhohlhlhlhlhlhlhlhlekekababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaajHjIjJjKjLjMisjNipaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababgugBgBhijzhujOjPhijhhujihihijQjRhkjSgujTjUjVjUjUigigigjWjXjXjYguababababababababababababababababababababababababhljZkakakakakajZjZjZkakakakakajZhlababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaakbkckdkekfjLiskgkhkiipipaaaaaaaaaaaaaaaaabababababababababababababababababababababababgukjgBhijzhuhukkhihuhuhuhihuhuhuhiiyguklkmklklknigigiggukokpjYguababababababababababababababababababababababababkqjZjZjZkrjZjZjZjZjZjZjZkrjZjZjZkqababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaipaajJksksktjLiskukgkiaakvkwaaaaaaaaaaaaaaabababababababababababababababababababababababgugBgBhijzhuhuhukxhuhuhukyhuhuhuhihQguguiVkzkAkBgukCigguguguguguababababababababababababababababababababababababhljZkakakakakajZjZjZkakakakakajZhlababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaajNipaaaaipkDkEiLkFiLjNipipaaaaaaaaaaaaaaaaabababababababababababababababababababababababgugBgBhijzhuhuhukGhuhuhukHhuhukIhikJkJjSgugugugugugukKkLkMkNkOguababababababababababababababababababababababababhlhpkPkPkPkPkPkPkPkPkPkPkPkPkPhnhlababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaajqkQkRkSkTkUkTkTkQkVkSkTkTkUkTkTaaipaaaaaaaaaaabababababababababababababababababababababababgugBhhhihihihihihikWhuhuhihihihihihihihkkXkXkXkYjSgukZkZkZkZkZguabababababababababababababababablalalalalalalalalalblclclclclclclclclclclclclclblalalalalalalalalaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaldleisisleldlflgisisislhlildljlkjNllipipaaaaaaabababababababababababababababababababababababgugBhilmlmlnlolphilqhuhuhilrlsltlulvlvhigBgCgBgBgEikkZkZkZkZlwguabababababababababababababababablalxlylzlzlzlzlzlAlBlclclclclclclclclclclclclclClAlDlDlDlDlDlylElaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaalFlGisislGlFllllisisisislHlFlIlJkskslKaaaaaaaaabababababababababababababababababababababababgugBhihuhuhujOhulLhuhuhulMhujOhujOlNlNhigBgPgDgCgPgulOlOlOlOlPguabababababababababababababababablalxlylzlQlzlQlzlAlBlclclclclclclclclclclclclclClAlDlRlDlRlDlylElaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaalSlTiskgislUkukgislVisislWlSlXlYlZmambmcaaaaaaabababababababababababababababababababababababgugBhimdhuhuhuhumehuhuhumfhuhuhuhuhuhuhigBgBgBgDhQguguguguguguguabababababababababababababababablalxlylzlzmglzlzlAlBlclclclclcmhmimhlclclclclclClAlDlDmjlDlDlylElaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaamklGisiLkumliLisismmisisismkmnmolKmpjHaaaaaaaaabababababababababababababababababababababababgugBhimdhuhumqmrhimsmtmshimumvhuhuhuhuhigBgDgBgPhQguabababababababababababababababababababababablalxlylzlzlzlzlzlAlBlclclclclcmhmwmhlclclclclclClAlDlDlDlDlDlylElaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaicmxisismxicmyiskgiLisismyicmzmAmBmCaaaaaaaaaaabababababababababababababababababababababababgugBhihuhuhuhihihimDmEhuhihihihuhuhuhuhigBgBgCgBhQguabababababababababababababababababababababablalxlylzlQlzlQlzlAlBlclclclclclclclclclclclclclClAlDlRlDlRlDlylElaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaitkQmFkSkTmGkTkQjomHjokSkTmGkTkQipipipaaaaaaaaabababababababababababababababababababababababgugBhimImJmKhigBhimLmLmLhigBhihxmMmNmNhigBgBgBgBhQguabababababababababababababababababababababablalxlylzlzlzlzlzlAlBlclclclclclclclclclclclclclClAlDlDlDlDlDlylElaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaakDkgaaipaaipmOjMkDaaaaipaaaaaaaaipaaaaaaaaabababababababababababababababababababababababgugBhimLmLmLhigBivmPegmQixgBhimLmLmLmLhigBgBgBgBhQguabababababababababababababababababababababablalalamRmRmRmRmRlalblclclclclclclclclclclclclclblamRmRmRmRmRlalalaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaipipaamSkgaamTmUkDipaakuaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababgugBivmPegmQixgBgBgBgBgBgBgBivmPegmQmQixgBgBgBgBhQguabababababababababababababababababababababababablamVmVmVmVmVlamWmXmXmXmXmXmXmXmXmXmXmXmXmXmYlamZmZmZmZmZlaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaipipaanakgnbaaaaaaipaaaaaaaaaaaaaaaaabababababababababababababababababababababababgugBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBgBhQguabababababababababababababababababababababababablalalalalalalancndndndndndnenfngndndndndndnclalalalalalalaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaipkUkQnhkSkUipaaipipaaaaaaaaaaaaaaabababababababababababababababababababababababguguguguguguguguguguguguguguguguguguguguguguguguguguababababababababababababababababababababababababababababababnincncncnjncnknknknknkncnjncncncniababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaldnlnmnnldmSlJkfnonpipaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababnininqnininininrnsntnininininqniniababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaajonunvnwjonxnykenzisiNaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababnininininiababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaajMipicnAnBnCiciLnDkenzaaipaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaipkUnEkQjokSnEkUnFnGnzaaipaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaipldisnHnInHisldaanJaaaaipaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgXnKnLnMnNnNnLnOnPnQnRnSnTnUnTnTnTnVgXababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaipkgnWisisisisisnWaaaaaaaakgaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgXnKnLnLnLnLnLnXnSnSnSnYnTnTnTnZnTnTgXababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaipipjMisicoaisisisoaicaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgXnKnLobnKocodoenSnSnSnSnTnTofnTognUgXababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaipkTkTohoioioioioiojaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgXoknSnYnYnYnYnYnSnSnSnSnTnTnTolnTnTgXababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaitkQomomomkSjraaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgXonnSnSnSnSnSnSnSnSnSnSoonTnTnTnTnTgXababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaopopopaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgXonnSnSnSnSnSnSnSnSnYnSoooqoqoqoroqgXababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgXosnSnSnSnSnSnSnSnYotnYooououououougXababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgXgXovowowoxgXgXgXgXgXgXgXgXgXgXgXgXgXababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgXoyoyoyoygXababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgXoyoyoyoygXababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgXgXgXgXgXgXababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhfhfhfhfhabababababababababababababababababababfhftfufvfhaDeieifweieieieieiekeJeJeJeJfxfyfzdGfAfBfBfCdHdHdHdHfqdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhfhfDfDfDfhfhababababababababababababababababababfhfEfFfFfhfGfHemfIfIfIfIfHfJekeJeJeJeJfKfLfKfMfBfNfNezfOfPfQdHfqezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhfRfSfSfSfTfhababababfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfhfUfhfhfJfVemfWfXfYfIfVfJekfxfzfZfxfyfyfzdXdBdBdBgafQfQfQdHfqdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababfhfRfSfSfSfTfhababababfhgbgbgbgbgbgbgbgbgbgbgbgbgbgcgdfSgefhfJfVgfemememggfVfJekghgigigjfKfLfKgkdHgldHdHdHdHdHdHgmdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababfhgnfSfSfSgofhababababfhgbgpdBdBgqdBdBdBezdBdBgrgsgtgdgugefhfJfVexemememeygvfJekghgigigjfxfyfzdGfPdHgwgxdHgwgxdHgydGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzabababababababababababababababfhfhfhfhgAgBgAfhfhfhfhababfhgCgaeNgDgEgEgEgEgEgEgEgqgFgGgdgugefhfJgvexemememeseieQekgHgigigjekababezfPdHgwgxdHgwgxdHgyezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIgIgIgIgJgIgIgIgKgLgIgIgIgKgIgIgIgIgIgIgKgIgIgzabababababababababababababababfhgMgNgOfSfSfSgPgQgRfhababfhgCgSdHdHdHdHdHdHdHdHdHgTgUgVgdgugWfhgAfherememememememgigigigigjgXababezfPdHgwgxdHgwgxdHgyezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgJgIgIgIgIgIgIgIgIgIgIgIgKgIgIgIgIgIgKgIgIgIgIgIgzabababababababababababababababgAfSfSgYfSfSfSgdfSfSfhababfhgCgZeDeDeDeDeDeDeDeDeDgqgFhagdgufShbfSfSemememememememgigigigigjekababezfPdHgwgxdHgwgxdHgyezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIgIhcgIgIgIgIgIgJgIgIgLgKgIgIgKgIgIgKgLgIgKgIgzabababababababababababababababfhhdhegYfSfSfSgdhfhgfhababfhgbhhdBdBgqdBdBdBezdBdBhigsgtgdguhjfhgAfhgfemememggeieQekhkgigigjfxfyfzdGfPdHgwgxdHgwgxdHgydGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgJgIgIgKgLgIgIgKgIgLgzabababababababababababababababfhfhfhfhfSfShlfhfhfhfhababfhgbgbgbgbgbgbgbgbgbgbgbgbgbhmgdfSgefhfJfHevemememewfHfJekghgigigjfKfLfKhndHhodHdHdHdHdHdHgmdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgJgIgIgIgIgIgLgIgKgLgIgKgIgzabababababababababababababababfhhphqhrfSfSfSfhabababababhshshshshshshshshshshshshshshshshtfhhsfJfVevemememewfVfJekfxfzhufxfyfyfzdXdBdBhvdBhwezhxezezeaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIhyhyhyhyhyhyhygIgIgIgIgIgIgIgKgIgIhcgLgIgIgIgzabababababababababababababababgAfSfSgYfSfSfSfhhzhAhAhBfhfhfhfhfhfhfhhCfSfShDfhhEhFhGhHfhhIfhhsfJgvevemememewgvfJekgigigigjfKfLfKhnhJhJhJhKdGfrfqfqhLezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIhMhNhOhOhOhOhOhNhPgIgIgIgIhcgIhygJhygJgIgKgIgKgzabababababababababababababababfhhQhRgYfSfSfSfSfSfSfSfShSfShThUhVhWfhhCfSfShDfhhXfSfShYfhhIfhhshZhZiaibicidiehZhZekgigigigjfxfyfzdGhJhJhJhJdGiffqfqigdGabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIhNihiiijikilimimhNingIgIhygzgzioipgzgzhyiqirhygzabababababababababababababababfhfhfhfhfhfhfhfhfhfhfhfhfhfSfSfSfSfSfhfhisfSfhfhfhitfSfhfhhIfhhsiuiviwixiyiziwivivekgiiAiBiCekababdGiDiDiEiEdGfrfqfqhLezabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIhNiFiiiiiGiiiiiihNingIiHgzgziIiJiJiIgzgzgzgzgzgzgzgzababababababababababababababiKabababiKababfhiLiMiNgAfSiOiOiOfSfSiPiQiQiRfSiSiTiTiUfShIfhhsiviViWixiyiziWiXivekgiiYiZjaekababebfeedededededededfeeeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajbjcjdjeaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIhNjfiiiiiijgiijhhNinhciHgzjijjjjjjjjjkjljmjnjojpjqgzababababababababababababababiKabababiKababgAfSfSfSjrfSiOiOiOfShIhIhIhIhIhIhIhIhIhIhIhIfhhsjsivjsixiyizjsivjsekgigigigiekabababebegegegegegegegeeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaajtaajujvjwjxjyaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIjzhNhNhNjAhNhNhNjBgIgIjCgzjDjjjEjEjFjjjjjjjGjHjHjHgzababababababababababababababiKabababiKababfhjIfSfSgAfSfSiOfSfSfSjJjKjKjLfSjMjNjNjOfSfSfhhsjPivivixiyizivivjQekjRjSjSjTekababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaajtjUjVjWjwjXjYaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIgIhNjZiikahNkbhyhyhykcgzjjjEkdkejEjjkfkgjnkhkigzgzabababababababababababababfhfhfhfhfhfhfhfhfhfhfhfhfhfSfSfSfSfSfhfhkjfSfhfhfhkkfSfhfhfhfhhsklkmkmixiyizknknkoekekkpekekekababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaajYkqkrjXksktjYaaaaaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIgIhNkuiikvhNkwkxkxkxipgzjjjEkykzjEjjkfkAgzgzgzgzababababababababababababababfhhdkBgYfSfSfSfSfSfSfSfSkCfShThUhVkDfhkEfSfSkFfhkGfSfSkHfhababhshZhZhZhZiyhZhZhZhZekeoeoeoeoekababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaajxjykIkJkIkKkLaaaaaaaaaaaaaaaaaaaaababababababgzgIgIhMhNhNhNhNhNkuiikvhNkMkNkNkNkNkOjjjjjjjjjjjjkfkAgzgzgzgzababababababababababababababgAfSfSgYfSfSfSfhhzhAhAhBfhfhfhfhfhfhfhkEfSfSkFfhkGfSfSkPfhababababababhZiyhZkQkQkQeoeoeoeoeoekababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaajtjtkLkRkSkTjxaaaaaaaaaaaaaaaaaaaaaaababababababgzgIgIhNkUiiiikVhNkuiikvhNkWkXiokxipgzkYjEjEjEjjjjkfkZgzlalbgzgzabababababababababababababfhlcldlefSfSfSfhababababababababababfhfSlflffSfhfSlglgfSfhhZhZhZhZhZhZhZichZhZhZhZhZhZhZhZekekababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaalhliljlklllmjwlnjtaaaaaaaaaaaaaaaaaaaaababababababgzgIgIhNkUiilolphNkuiikvhNhNlqlrhPlsgzltlulvlulujjjjjjlwlxlxlygzabababababababababababababfhfhfhfhfSfShlfhababababababababababfhfhfhfhfhfhfhfhfhfhhZlzlAlAlAlAlAlzlzlzlAlAlAlAlAlzhZababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaalBlClDlElFlljwlGlHlIjtjtaaaaaaaaaaaaaaaaababababababgzlJgIhNkUiiiilKhNiiiiiihNiiiiiihNjCgzlLlMlLlLlNjjjjjjgzlOlPlygzabababababababababababababfhhdkBgYfSfSfSfhabababababababababababababababababababablQlzlzlzlRlzlzlzlzlzlzlzlRlzlzlzlQababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaajtaaljlSlSlTlljwlUlGlIaalVlWaaaaaaaaaaaaaaababababababgzgIgIhNkUiiiiiilXiiiiiilYiiiiiihNiHgzgzkglZmambgzmcjjgzgzgzgzgzabababababababababababababgAfSfSgYfSfSfSfhababababababababababababababababababababhZlzlAlAlAlAlAlzlzlzlAlAlAlAlAlzhZababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaalnjtaaaajtmdmejWmfjWlnjtjtaaaaaaaaaaaaaaaaababababababgzgIgIhNkUiiiiiimgiiiiiimhiiiimihNmjmjlsgzgzgzgzgzgzmkmlmmmnmogzabababababababababababababfhlcldlefSfSfSfhababababababababababababababababababababhZidmpmpmpmpmpmpmpmpmpmpmpmpmpibhZababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaakKmqmrmsmtmumtmtmqmvmsmtmtmumtmtaajtaaaaaaaaaaababababababgzgIhMhNhNhNhNhNhNmwiiiihNhNhNhNhNhNhNhPmxmxmxmylsgzmzmzmzmzmzgzabababababababababababababfhfhfhfhgAmAgAfhfhabababababababababababmBmBmBmBmBmBmBmBmBmCmDmDmDmDmDmDmDmDmDmDmDmDmDmCmBmBmBmBmBmBmBmBmBababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaamEmFjwjwmFmEmGmHjwjwjwmImJmEmKmLlnmMjtjtaaaaaaababababababgzgIhNmNmNmOmPmQhNmRiiiihNmSmTmUmVmWmWhNgIgJgIgIgLjnmzmzmzmzmXgzabababababababababababababababfhmYfSfSfSmZfhabababababababababababmBnanbncncncncncndnemDmDmDmDmDmDmDmDmDmDmDmDmDnfndngngngngngnbnhmBababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaninjjwjwnjnimMmMjwjwjwjwnkninlnmlSlSnnaaaaaaaaababababababgzgIhNiiiiiiloiinoiiiiiinpiiloiilonqnqhNgIhcgKgJhcgznrnrnrnrnsgzabababababababababababababababfhmYfSfSfSmZfhabababababababababababmBnanbncntncntncndnemDmDmDmDmDmDmDmDmDmDmDmDmDnfndngnungnungnbnhmBababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaanvnwjwlGjwnxlUlGjwnyjwjwnznvnAnBnCnDnEnFaaaaaaababababababgzgIhNnGiiiiiiiinHiiiiiinIiiiiiiiiiiiihNgIgIgIgKiHgzgzgzgzgzgzgzabababababababababababababababfhmYfSfSfSmZfhabababababababababababmBnanbncncnJncncndnemDmDmDmDmDnKnLnKmDmDmDmDmDnfndngngnMngngnbnhmBababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaanNnjjwjWlUnOjWjwjwnPjwjwjwnNnQnRnnnSlhaaaaaaaaababababababgzgIhNnGiiiinTnUhNnVnWnVhNnXnYiiiiiiiihNgIgKgIhciHgzabababababababababababababababababababababfhfhgAfSgAfhfhabababababababababababmBnanbncncncncncndnemDmDmDmDmDnKnZnKmDmDmDmDmDnfndngngngngngnbnhmBababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaajeoajwjwoajeobjwlGjWjwjwobjeocodoeofaaaaaaaaaaababababababgzgIhNiiiiiihNhNhNogohiihNhNhNiiiiiiiihNgIgIgJgIiHgzabababababababababababababababababababababfhoifSfSfSojfhabababababababababababmBnanbncntncntncndnemDmDmDmDmDmDmDmDmDmDmDmDmDnfndngnungnungnbnhmBababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaajxmqokmsmtolmtmqkIomkImsmtolmtmqjtjtjtaaaaaaaaababababababgzgIhNonooophNgIhNoqoqoqhNgIhNimorososhNgIgIgIgIiHgzabababababababababababababababababababababfhoifSfSfSojfhabababababababababababmBnanbncncncncncndnemDmDmDmDmDmDmDmDmDmDmDmDmDnfndngngngngngnbnhmBababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaamdlGaajtaajtotlmmdaaaajtaaaaaaaajtaaaaaaaaababababababgzgIhNoqoqoqhNgIjzouegovjBgIhNoqoqoqoqhNgIgIgIgIiHgzabababababababababababababababababababababfhoifSfSfSojfhabababababababababababmBmBmBowowowowowmBmCmDmDmDmDmDmDmDmDmDmDmDmDmDmCmBowowowowowmBmBmBababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaajtjtaaoxlGaaoyozmdjtaalUaaaaaaaaaaaaaaaaaaababababababgzgIjzouegovjBgIgIgIgIgIgIgIjzouegovovjBgIgIgIgIiHgzabababababababababababababababababababababfhfhfhfhfhfhfhabababababababababababababmBoAoAoAoAoAmBoBoCoCoCoCoCoCoCoCoCoCoCoCoCoDmBoEoEoEoEoEmBababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaajtjtaaoFlGoGaaaaaajtaaaaaaaaaaaaaaaaababababababgzgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIgIiHgzabababababababababababababababababababababababababababababababababababababababababmBmBmBmBmBmBmBoHoIoIoIoIoIoJoKoLoIoIoIoIoIoHmBmBmBmBmBmBmBababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaajtmumqoMmsmujtaajtjtaaaaaaaaaaaaaaababababababgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzgzabababababababababababababababababababababababababababababababababababababababababababababababoNoHoHoHoOoHoPoPoPoPoPoHoOoHoHoHoNababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaamEoQoRoSmEoxnmlFoToUjtaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababoNoNoVoNoNoNoNoWoXoYoNoNoNoNoVoNoNababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaakIoZpapbkIpcpdlEpejwjYaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababoNoNoNoNoNababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaalmjtjepfpgphjejWpilEpeaajtaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaajtmupjmqkImspjmupkplpeaajtaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhshshshshshshshshshshshshshshshshshshsababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaajtmEjwpmpnpmjwmEaapoaaaajtaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhspppqprpspspqptpupvpwpxpypzpypypypAhsababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaajtlGpBjwjwjwjwjwpBaaaaaaaalGaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhspppqpqpqpqpqpCpxpxpxpDpypypypEpypyhsababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaajtjtlmjwjepFjwjwjwpFjeaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhspppqpGpppHpIpJpxpxpxpxpypypKpypLpzhsababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaajtmtmtpMpNpNpNpNpNpOaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhspPpxpDpDpDpDpDpxpxpxpxpypypypQpypyhsababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaajxmqpRpRpRmskLaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhspSpxpxpxpxpxpxpxpxpxpxpTpypypypypyhsababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapUpUpUaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhspSpxpxpxpxpxpxpxpxpDpxpTpVpVpVpWpVhsababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhspXpxpxpxpxpxpxpxpDpYpDpTpZpZpZpZpZhsababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhshsqaqbqbqchshshshshshshshshshshshshsababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhsqdqdqdqdhsababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhsqdqdqdqdhsababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababhshshshshshsababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab diff --git a/_maps/map_files/generic/z4.dmm b/_maps/map_files/generic/z4.dmm index b39bd9dce54..938e9451dbf 100644 --- a/_maps/map_files/generic/z4.dmm +++ b/_maps/map_files/generic/z4.dmm @@ -633,7 +633,6 @@ "mi" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/mineral/bananium/airless,/area/space) "mj" = (/obj/item/weapon/pickaxe,/turf/simulated/floor/mineral/bananium/airless,/area/space) "mk" = (/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) -"ml" = (/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,/obj/item/clothing/shoes/clown_shoes{desc = "These shoes appear var-edited!."; name = "uhangi's shoes"; slowdown = -1},/turf/simulated/floor/mineral/bananium/airless,/area/space) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -853,7 +852,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQlQlQlQlQlQlQlQlQlQlQlQmblVlVlVlVlVmclVlZmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQlQlQlQlQlQlQlQlQlQlQlQmdmelVmfmclVmclVmclZmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQlQlQlQlQlQlQlQlQlQmglVmhlVmilVlUlVlVlVmclZmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQlQlQlQlQlQlQlQlQlQlSlSlSlVmjlVlVmkmllWlVlZmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQlQlQlQlQlQlQlQlQlQlSlSlSlVmjlVlVmkmklWlVlZmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlSlSlSlTlTlSlSlSlSlSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQlQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQlQaalQlQlQlQlQlRlRlQlQlQlQlQlQlQlQlQlQlQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/cfg/admin.txt b/cfg/admin.txt index cff055d6101..62879301135 100644 --- a/cfg/admin.txt +++ b/cfg/admin.txt @@ -11,3 +11,4 @@ aranclanos cheridan giacomand rockdtben +MrStonedOne diff --git a/code/ATMOSPHERICS/he_pipes.dm b/code/ATMOSPHERICS/he_pipes.dm index e37c7ba74bc..991eed26913 100644 --- a/code/ATMOSPHERICS/he_pipes.dm +++ b/code/ATMOSPHERICS/he_pipes.dm @@ -6,10 +6,14 @@ var/initialize_directions_he minimum_temperature_difference = 20 thermal_conductivity = WINDOW_HEAT_TRANSFER_COEFFICIENT + color = "#404040" + buckle_lying = 1 + var/icon_temperature = T20C //stop small changes in temperature causing icon refresh /obj/machinery/atmospherics/pipe/simple/heat_exchanging/New() ..() initialize_directions_he = initialize_directions // The auto-detection from /pipe is good enough for a simple HE pipe + color = "#404040" /obj/machinery/atmospherics/pipe/simple/heat_exchanging/initialize() normalize_dir() @@ -29,6 +33,8 @@ /obj/machinery/atmospherics/pipe/simple/heat_exchanging/process() var/environment_temperature = 0 + var/datum/gas_mixture/pipe_air = return_air() + if(istype(loc, /turf/simulated)) if(loc:blocks_air) environment_temperature = loc:temperature @@ -37,10 +43,41 @@ environment_temperature = environment.temperature else environment_temperature = loc:temperature - var/datum/gas_mixture/pipe_air = return_air() + if(abs(environment_temperature-pipe_air.temperature) > minimum_temperature_difference) parent.temperature_interact(loc, volume, thermal_conductivity) + + //Burn any mobs buckled to ourselves based on our temperature + if(buckled_mob) + var/hc = pipe_air.heat_capacity() + var/avg_temp = (pipe_air.temperature * hc + buckled_mob.bodytemperature * 3500) / (hc + 3500) + pipe_air.temperature = avg_temp + buckled_mob.bodytemperature = avg_temp + + var/heat_limit = 1000 + + if(pipe_air.temperature > heat_limit + 1) + buckled_mob.apply_damage(4 * log(pipe_air.temperature - heat_limit), BURN, "chest") + + //Heat causes pipe to glow + if(pipe_air.temperature && (icon_temperature > 500 || pipe_air.temperature > 500)) //glow starts at 500K + if(abs(pipe_air.temperature - icon_temperature) > 10) + icon_temperature = pipe_air.temperature + + var/h_r = heat2colour_r(icon_temperature) + var/h_g = heat2colour_g(icon_temperature) + var/h_b = heat2colour_b(icon_temperature) + + if(icon_temperature < 2000)//scale glow until 2000K + var/scale = (icon_temperature - 500) / 1500 + h_r = 64 + (h_r - 64) * scale + h_g = 64 + (h_g - 64) * scale + h_b = 64 + (h_b - 64) * scale + + animate(src, color = rgb(h_r, h_g, h_b), time = 20, easing = SINE_EASING) + + /obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction icon = 'icons/obj/pipes/junction.dmi' icon_state = "intact" diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm index 96a46761871..0725136d201 100644 --- a/code/ATMOSPHERICS/pipes.dm +++ b/code/ATMOSPHERICS/pipes.dm @@ -8,6 +8,11 @@ var/alert_pressure = 80*ONE_ATMOSPHERE //minimum pressure before check_pressure(...) should be called + //Buckling + can_buckle = 1 + buckle_requires_restraints = 1 + buckle_lying = -1 + /obj/machinery/atmospherics/proc/pipeline_expansion() return null diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/genetics.dm index 938a30a2107..9c4080a6cfd 100644 --- a/code/__DEFINES/genetics.dm +++ b/code/__DEFINES/genetics.dm @@ -15,7 +15,18 @@ #define RACEMUT "Monkified" #define BADSIGHT "Near Sightness" #define LASEREYES "Laser Eyes" - +#define STEALTH "Cloak Of Darkness" +#define CHAMELEON "Chameleon" +#define WACKY "Wacky" +#define JOKE "Joke" +#define VINETA "Vineta" +#define PAPYRUS "Papyrus" +#define MUT_MUTE "Mute" +#define SMILE "Smile" +#define UNINTELLIGABLE "Unintelligable" +#define SWEDISH "Swedish" +#define CHAV "Chav" +#define ELVIS "Elvis" // String identifiers for associative list lookup @@ -53,7 +64,7 @@ #define DNA_FACIAL_HAIR_STYLE_BLOCK 6 #define DNA_HAIR_STYLE_BLOCK 7 -#define DNA_STRUC_ENZYMES_BLOCKS 14 +#define DNA_STRUC_ENZYMES_BLOCKS 26 #define DNA_UNIQUE_ENZYMES_LEN 32 //Transformation proc stuff diff --git a/code/__HELPERS/lists.dm b/code/__HELPERS/lists.dm index 34d7f4ec827..9a237d24be0 100644 --- a/code/__HELPERS/lists.dm +++ b/code/__HELPERS/lists.dm @@ -256,26 +256,31 @@ //Move a single element from position fromIndex within a list, to position toIndex +//All elements in the range [1,toIndex) before the move will be before the pivot afterwards +//All elements in the range [toIndex, L.len+1) before the move will be after the pivot afterwards +//In other words, it's as if the range [fromIndex,toIndex) have been rotated using a <<< operation common to other languages. +//fromIndex and toIndex must be in the range [1,L.len+1] //This will preserve associations ~Carnie /proc/moveElement(list/L, fromIndex, toIndex) + if(fromIndex == toIndex || fromIndex+1 == toIndex) //no need to move + return if(fromIndex > toIndex) - ++fromIndex + ++fromIndex //since a null will be inserted before fromIndex, the index needs to be nudged right by one L.Insert(toIndex, null) L.Swap(fromIndex, toIndex) L.Cut(fromIndex, fromIndex+1) -//Move elements [fromIndex,fromIndex+len) to [toIndex,toIndex+len) -//This will preserve associations and is much faster than copying to a new list -//or checking for associative lists and manually copying elements ~Carnie +//Move elements [fromIndex,fromIndex+len) to [toIndex-len, toIndex) +//Same as moveElement but for ranges of elements +//This will preserve associations ~Carnie /proc/moveRange(list/L, fromIndex, toIndex, len=1) var/distance = abs(toIndex - fromIndex) - if(len > distance) //there are more elements to be moved than the distance to be moved. Therefore the same result can be achieved (with fewer operations) by moving elements between where we are and where we are going - if(fromIndex < toIndex) - toIndex += len - else - fromIndex += len + if(len >= distance) //there are more elements to be moved than the distance to be moved. Therefore the same result can be achieved (with fewer operations) by moving elements between where we are and where we are going. The result being, our range we are moving is shifted left or right by dist elements + if(fromIndex <= toIndex) + return //no need to move + fromIndex += len //we want to shift left instead of right for(var/i=0, i (toIndex)){L.Insert((toIndex), null);L.Swap((fromIndex)+1, (toIndex));L.Cut((fromIndex)+1, (fromIndex)+2);}else{L.Insert((toIndex)+1, null);L.Swap((fromIndex), (toIndex)+1);L.Cut((fromIndex), (fromIndex)+1);} #define fetchElement(L, i) (associative) ? L[L[i]] : L[i] //Minimum sized sequence that will be merged. Anything smaller than this will use binary-insertion sort. @@ -115,7 +114,7 @@ var/datum/sortInstance/sortInstance = new() //in other words, find where the pivot element should go using bisection search while(left < right) var/mid = (left + right) >> 1 //round((left+right)/2) - if(call(cmp)(pivot, fetchElement(L,mid)) < 0) + if(call(cmp)(fetchElement(L,mid), pivot) > 0) right = mid else left = mid+1 @@ -372,23 +371,23 @@ var/datum/sortInstance/sortInstance = new() proc/mergeLo(base1, len1, base2, len2) //ASSERT(len1 > 0 && len2 > 0 && base1 + len1 == base2) + var/cursor1 = base1 + var/cursor2 = base2 + //degenerate cases if(len2 == 1) - moveElement(L, base2, base1) + moveElement(L, cursor2, cursor1) return if(len1 == 1) - moveElement(L, base1, base2+len2-1) + moveElement(L, cursor1, cursor2+len2) return //Move first element of second run - moveElement(L, base2, base1) //L[dest++] = L[cursor2++] + moveElement(L, cursor2++, cursor1++) --len2 - var/cursor1 = base1+1 - var/cursor2 = base2+1 - outer: while(1) var/count1 = 0 //# of times in a row that first run won @@ -399,9 +398,7 @@ var/datum/sortInstance/sortInstance = new() do //ASSERT(len1 > 1 && len2 > 0) if(call(cmp)(fetchElement(L,cursor2), fetchElement(L,cursor1)) < 0) - moveElement(L, cursor2, cursor1) - ++cursor2 - ++cursor1 + moveElement(L, cursor2++, cursor1++) --len2 ++count2 @@ -466,8 +463,7 @@ var/datum/sortInstance/sortInstance = new() if(len1 == 1) //ASSERT(len2 > 0) - - moveRange(L, cursor2, cursor1, len2) + moveElement(L, cursor1, cursor2+len2) //else //ASSERT(len2 == 0) @@ -477,22 +473,20 @@ var/datum/sortInstance/sortInstance = new() proc/mergeHi(base1, len1, base2, len2) //ASSERT(len1 > 0 && len2 > 0 && base1 + len1 == base2) + var/cursor1 = base1 + len1 - 1 //start at end of sublists + var/cursor2 = base2 + len2 - 1 + //degenerate cases if(len2 == 1) moveElement(L, base2, base1) return if(len1 == 1) - moveElement(L, base1, base2+len2-1) + moveElement(L, base1, cursor2+1) return - var/cursor1 = base1 + len1 - 1 - var/cursor2 = base2 + len2 - 1 - - moveElement(L, cursor1, cursor2) + moveElement(L, cursor1--, cursor2-- + 1) --len1 - --cursor1 - --cursor2 outer: while(1) @@ -503,10 +497,7 @@ var/datum/sortInstance/sortInstance = new() do //ASSERT(len1 > 0 && len2 > 1) if(call(cmp)(fetchElement(L,cursor2), fetchElement(L,cursor1)) < 0) - moveElement(L, cursor1, cursor2) - - --cursor1 - --cursor2 + moveElement(L, cursor1--, cursor2-- + 1) --len1 ++count1 @@ -533,11 +524,12 @@ var/datum/sortInstance/sortInstance = new() count1 = len1 - gallopRight(fetchElement(L,cursor2), base1, len1, len1-1) //should cursor1 be base1? if(count1) cursor1 -= count1 + + moveRange(L, cursor1+1, cursor2+1, count1) //cursor1+1 == cursor2 by definition + cursor2 -= count1 len1 -= count1 - moveRange(L, cursor1+1, cursor2+1, count1) - if(len1 == 0) break outer @@ -546,7 +538,7 @@ var/datum/sortInstance/sortInstance = new() if(--len2 == 1) break outer - count2 = len2 - gallopLeft(fetchElement(L,cursor1), base1+len1, len2, len2-1) + count2 = len2 - gallopLeft(fetchElement(L,cursor1), cursor1+1, len2, len2-1) if(count2) cursor2 -= count2 len2 -= count2 @@ -554,9 +546,7 @@ var/datum/sortInstance/sortInstance = new() if(len2 <= 1) break outer - moveElement(L, cursor1, cursor2) - --cursor1 - --cursor2 + moveElement(L, cursor1--, cursor2-- + 1) --len1 if(len1 == 0) @@ -573,7 +563,6 @@ var/datum/sortInstance/sortInstance = new() //ASSERT(len1 > 0) cursor1 -= len1 - cursor2 -= len1 moveRange(L, cursor1+1, cursor2+1, len1) //else @@ -664,5 +653,4 @@ var/datum/sortInstance/sortInstance = new() #undef MIN_GALLOP #undef MIN_MERGE -#undef moveElement #undef fetchElement \ No newline at end of file diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index e4a710ea197..16c24cdae9a 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -509,4 +509,38 @@ for(var/t in test_times) if(bpc & FOOT_RIGHT) covered_parts |= list("r_leg") - return covered_parts \ No newline at end of file + return covered_parts + + + +//adapted from http://www.tannerhelland.com/4435/convert-temperature-rgb-algorithm-code/ +/proc/heat2colour(temp) + return rgb(heat2colour_r(temp), heat2colour_g(temp), heat2colour_b(temp)) + + +/proc/heat2colour_r(temp) + temp /= 100 + if(temp <= 66) + . = 255 + else + . = max(0, min(255, 329.698727446 * (temp - 60) ** -0.1332047592)) + + +/proc/heat2colour_g(temp) + temp /= 100 + if(temp <= 66) + . = max(0, min(255, 99.4708025861 * log(temp) - 161.1195681661)) + else + . = max(0, min(255, 288.1221685293 * ((temp - 60) ** -0.075148492))) + + +/proc/heat2colour_b(temp) + temp /= 100 + if(temp >= 66) + . = 255 + else + if(temp <= 16) + . = 0 + else + . = max(0, min(255, 138.5177312231 * log(temp - 10) - 305.0447927307)) + diff --git a/code/_globalvars/lists/mapping.dm b/code/_globalvars/lists/mapping.dm index 7878972daa4..c908ec38450 100644 --- a/code/_globalvars/lists/mapping.dm +++ b/code/_globalvars/lists/mapping.dm @@ -43,6 +43,7 @@ var/list/prisonwarped = list() //list of players already warped var/list/blobstart = list() var/list/secequipment = list() var/list/deathsquadspawn = list() +var/list/emergencyresponseteamspawn = list() //away missions var/list/awaydestinations = list() //a list of landmarks that the warpgate can take you to diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index c6827293901..d3acf80de85 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -126,7 +126,7 @@ W.afterattack(A,src,0,params) // 0: not Adjacent else RangedAttack(A, params) - + last_movement=world.time return /mob/proc/changeNext_move(num) diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm index 328b17dc1d8..d3a96e20ce2 100644 --- a/code/controllers/master_controller.dm +++ b/code/controllers/master_controller.dm @@ -83,9 +83,10 @@ Note: you can set the datum's defined processing_interval to some integer to set start_time = world.timeofday for(var/datum/subsystem/SS in subsystems) - if(SS.next_fire <= world.time) - SS.next_fire += SS.wait - if(SS.can_fire > 0) + if(SS.can_fire > 0) + if(SS.next_fire <= world.time) + SS.next_fire += SS.wait + timer = world.timeofday cpu = world.cpu last_thing_processed = SS.type diff --git a/code/modules/mob/living/silicon/pai/recruit.dm b/code/controllers/subsystem/pai.dm similarity index 87% rename from code/modules/mob/living/silicon/pai/recruit.dm rename to code/controllers/subsystem/pai.dm index b5a4f0ee025..431f68c348e 100644 --- a/code/modules/mob/living/silicon/pai/recruit.dm +++ b/code/controllers/subsystem/pai.dm @@ -1,217 +1,217 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33 - -// Recruiting observers to play as pAIs - -var/datum/paiController/paiController // Global handler for pAI candidates - -/datum/paiCandidate - var/name - var/key - var/description - var/role - var/comments - var/ready = 0 - - - -/datum/paiController - var/list/pai_candidates = list() - var/list/asked = list() - - var/askDelay = 10 * 60 * 1 // One minute [ms * sec * min] - -/datum/paiController/Topic(href, href_list[]) - if(href_list["download"]) - var/datum/paiCandidate/candidate = locate(href_list["candidate"]) - var/obj/item/device/paicard/card = locate(href_list["device"]) - if(card.pai) - return - if(istype(card,/obj/item/device/paicard) && istype(candidate,/datum/paiCandidate)) - var/mob/living/silicon/pai/pai = new(card) - if(!candidate.name) - pai.name = pick(ninja_names) - else - pai.name = candidate.name - pai.real_name = pai.name - pai.key = candidate.key - - card.setPersonality(pai) - card.looking_for_personality = 0 - - ticker.mode.update_cult_icons_removed(card.pai.mind) - ticker.mode.update_rev_icons_removed(card.pai.mind) - - pai_candidates -= candidate - usr << browse(null, "window=findPai") - - if(href_list["new"]) - var/datum/paiCandidate/candidate = locate(href_list["candidate"]) - var/option = href_list["option"] - var/t = "" - - switch(option) - if("name") - t = input("Enter a name for your pAI", "pAI Name", candidate.name) as text - if(t) - candidate.name = copytext(sanitize(t),1,MAX_NAME_LEN) - if("desc") - t = input("Enter a description for your pAI", "pAI Description", candidate.description) as message - if(t) - candidate.description = copytext(sanitize(t),1,MAX_MESSAGE_LEN) - if("role") - t = input("Enter a role for your pAI", "pAI Role", candidate.role) as text - if(t) - candidate.role = copytext(sanitize(t),1,MAX_MESSAGE_LEN) - if("ooc") - t = input("Enter any OOC comments", "pAI OOC Comments", candidate.comments) as message - if(t) - candidate.comments = copytext(sanitize(t),1,MAX_MESSAGE_LEN) - if("save") - candidate.savefile_save(usr) - if("load") - candidate.savefile_load(usr) - //In case people have saved unsanitized stuff. - if(candidate.name) - candidate.name = copytext(sanitize(candidate.name),1,MAX_NAME_LEN) - if(candidate.description) - candidate.description = copytext(sanitize(candidate.description),1,MAX_MESSAGE_LEN) - if(candidate.role) - candidate.role = copytext(sanitize(candidate.role),1,MAX_MESSAGE_LEN) - if(candidate.comments) - candidate.comments = copytext(sanitize(candidate.comments),1,MAX_MESSAGE_LEN) - - if("submit") - if(candidate) - candidate.ready = 1 - for(var/obj/item/device/paicard/p in world) - if(p.looking_for_personality == 1) - p.alertUpdate() - usr << browse(null, "window=paiRecruit") - return - recruitWindow(usr) - -/datum/paiController/proc/recruitWindow(var/mob/M as mob) - var/datum/paiCandidate/candidate - for(var/datum/paiCandidate/c in pai_candidates) - if(c.key == M.key) - candidate = c - if(!candidate) - candidate = new /datum/paiCandidate() - candidate.key = M.key - pai_candidates.Add(candidate) - - - var/dat = "" - dat += {" - - "} - - dat += "

Please configure your pAI personality's options. Remember, what you enter here could determine whether or not the user requesting a personality chooses you!

" - dat += "" - dat += "" - dat += "" - - dat += "" - dat += "" - - dat += "" - dat += "" - - dat += "" - dat += "" - - dat += "
Name:[candidate.name]
\[Edit\]What you plan to call yourself. Suggestions: Any character name you would choose for a station character OR an AI.
Description:[candidate.description]
\[Edit\]What sort of pAI you typically play; your mannerisms, your quirks, etc. This can be as sparse or as detailed as you like.
Preferred Role:[candidate.role]
\[Edit\]Do you like to partner with sneaky social ninjas? Like to help security hunt down thugs? Enjoy watching an engineer's back while he saves the station yet again? This doesn't have to be limited to just station jobs. Pretty much any general descriptor for what you'd like to be doing works here.
OOC Comments:[candidate.comments]
\[Edit\]Anything you'd like to address specifically to the player reading this in an OOC manner. \"I prefer more serious RP.\", \"I'm still learning the interface!\", etc. Feel free to leave this blank if you want.
" - - dat += "
" - dat += "

Submit Personality


" - dat += "Save Personality
" - dat += "Load Personality
" - - M << browse(dat, "window=paiRecruit") - -/datum/paiController/proc/findPAI(var/obj/item/device/paicard/p, var/mob/user) - requestRecruits() - var/list/available = list() - for(var/datum/paiCandidate/c in paiController.pai_candidates) - if(c.ready) - var/found = 0 - for(var/mob/dead/observer/o in player_list) - if(o.key == c.key) - found = 1 - if(found) - available.Add(c) - var/dat = "" - - dat += {" - - "} - dat += "

Requesting AI personalities from central database... If there are no entries, or if a suitable entry is not listed, check again later as more personalities may be added.

" - - dat += "" - - for(var/datum/paiCandidate/c in available) - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - - dat += "
Name:[c.name]
Description:[c.description]
Preferred Role:[c.role]
OOC Comments:[c.comments]
\[Download [c.name]\]
" - - user << browse(dat, "window=findPai") - -/datum/paiController/proc/requestRecruits() - for(var/mob/dead/observer/O in player_list) - if(jobban_isbanned(O, "pAI")) - continue - if(asked.Find(O.key)) - if(world.time < asked[O.key] + askDelay) - continue - else - asked.Remove(O.key) - if(O.client) - var/hasSubmitted = 0 - for(var/datum/paiCandidate/c in paiController.pai_candidates) - if(c.key == O.key) - hasSubmitted = 1 - if(!hasSubmitted && (O.client.prefs.be_special & BE_PAI)) - question(O.client) - -/datum/paiController/proc/question(var/client/C) - spawn(0) - if(!C) return - asked.Add(C.key) - asked[C.key] = world.time - var/response = alert(C, "Someone is requesting a pAI personality. Would you like to play as a personal AI?", "pAI Request", "Yes", "No", "Never for this round") - if(!C) return //handle logouts that happen whilst the alert is waiting for a response. - if(response == "Yes") - recruitWindow(C.mob) - else if (response == "Never for this round") - asked[C.key] = INFINITY +var/datum/subsystem/pai/SSpai + +/datum/subsystem/pai + name = "pAI" + wait = 20 + + var/askDelay = 600 + + var/list/candidates = list() + var/list/asked = list() + +/datum/subsystem/pai/New() + NEW_SS_GLOBAL(SSpai) + +/datum/subsystem/pai/Topic(href, href_list[]) + if(href_list["download"]) + var/datum/paiCandidate/candidate = locate(href_list["candidate"]) + var/obj/item/device/paicard/card = locate(href_list["device"]) + if(card.pai) + return + if(istype(card,/obj/item/device/paicard) && istype(candidate,/datum/paiCandidate)) + var/mob/living/silicon/pai/pai = new(card) + if(!candidate.name) + pai.name = pick(ninja_names) + else + pai.name = candidate.name + pai.real_name = pai.name + pai.key = candidate.key + + card.setPersonality(pai) + card.looking_for_personality = 0 + + ticker.mode.update_cult_icons_removed(card.pai.mind) + ticker.mode.update_rev_icons_removed(card.pai.mind) + + candidates -= candidate + usr << browse(null, "window=findPai") + + if(href_list["new"]) + var/datum/paiCandidate/candidate = locate(href_list["candidate"]) + var/option = href_list["option"] + var/t = "" + + switch(option) + if("name") + t = input("Enter a name for your pAI", "pAI Name", candidate.name) as text + if(t) + candidate.name = copytext(sanitize(t),1,MAX_NAME_LEN) + if("desc") + t = input("Enter a description for your pAI", "pAI Description", candidate.description) as message + if(t) + candidate.description = copytext(sanitize(t),1,MAX_MESSAGE_LEN) + if("role") + t = input("Enter a role for your pAI", "pAI Role", candidate.role) as text + if(t) + candidate.role = copytext(sanitize(t),1,MAX_MESSAGE_LEN) + if("ooc") + t = input("Enter any OOC comments", "pAI OOC Comments", candidate.comments) as message + if(t) + candidate.comments = copytext(sanitize(t),1,MAX_MESSAGE_LEN) + if("save") + candidate.savefile_save(usr) + if("load") + candidate.savefile_load(usr) + //In case people have saved unsanitized stuff. + if(candidate.name) + candidate.name = copytext(sanitize(candidate.name),1,MAX_NAME_LEN) + if(candidate.description) + candidate.description = copytext(sanitize(candidate.description),1,MAX_MESSAGE_LEN) + if(candidate.role) + candidate.role = copytext(sanitize(candidate.role),1,MAX_MESSAGE_LEN) + if(candidate.comments) + candidate.comments = copytext(sanitize(candidate.comments),1,MAX_MESSAGE_LEN) + + if("submit") + if(candidate) + candidate.ready = 1 + for(var/obj/item/device/paicard/p in world) + if(p.looking_for_personality == 1) + p.alertUpdate() + usr << browse(null, "window=paiRecruit") + return + recruitWindow(usr) + +/datum/subsystem/pai/proc/recruitWindow(var/mob/M as mob) + var/datum/paiCandidate/candidate + for(var/datum/paiCandidate/c in candidates) + if(c.key == M.key) + candidate = c + if(!candidate) + candidate = new /datum/paiCandidate() + candidate.key = M.key + candidates.Add(candidate) + + + var/dat = "" + dat += {" + + "} + + dat += "

Please configure your pAI personality's options. Remember, what you enter here could determine whether or not the user requesting a personality chooses you!

" + dat += "" + dat += "" + dat += "" + + dat += "" + dat += "" + + dat += "" + dat += "" + + dat += "" + dat += "" + + dat += "
Name:[candidate.name]
\[Edit\]What you plan to call yourself. Suggestions: Any character name you would choose for a station character OR an AI.
Description:[candidate.description]
\[Edit\]What sort of pAI you typically play; your mannerisms, your quirks, etc. This can be as sparse or as detailed as you like.
Preferred Role:[candidate.role]
\[Edit\]Do you like to partner with sneaky social ninjas? Like to help security hunt down thugs? Enjoy watching an engineer's back while he saves the station yet again? This doesn't have to be limited to just station jobs. Pretty much any general descriptor for what you'd like to be doing works here.
OOC Comments:[candidate.comments]
\[Edit\]Anything you'd like to address specifically to the player reading this in an OOC manner. \"I prefer more serious RP.\", \"I'm still learning the interface!\", etc. Feel free to leave this blank if you want.
" + + dat += "
" + dat += "

Submit Personality


" + dat += "Save Personality
" + dat += "Load Personality
" + + M << browse(dat, "window=paiRecruit") + +/datum/subsystem/pai/proc/findPAI(var/obj/item/device/paicard/p, var/mob/user) + requestRecruits() + var/list/available = list() + for(var/datum/paiCandidate/c in SSpai.candidates) + if(c.ready) + var/found = 0 + for(var/mob/dead/observer/o in player_list) + if(o.key == c.key) + found = 1 + if(found) + available.Add(c) + var/dat = "" + + dat += {" + + "} + dat += "

Requesting AI personalities from central database... If there are no entries, or if a suitable entry is not listed, check again later as more personalities may be added.

" + + dat += "" + + for(var/datum/paiCandidate/c in available) + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + + dat += "
Name:[c.name]
Description:[c.description]
Preferred Role:[c.role]
OOC Comments:[c.comments]
\[Download [c.name]\]
" + + user << browse(dat, "window=findPai") + +/datum/subsystem/pai/proc/requestRecruits() + for(var/mob/dead/observer/O in player_list) + if(jobban_isbanned(O, "pAI")) + continue + if(asked.Find(O.key)) + if(world.time < asked[O.key] + askDelay) + continue + else + asked.Remove(O.key) + if(O.client) + var/hasSubmitted = 0 + for(var/datum/paiCandidate/c in SSpai.candidates) + if(c.key == O.key) + hasSubmitted = 1 + if(!hasSubmitted && (O.client.prefs.be_special & BE_PAI)) + question(O.client) + +/datum/subsystem/pai/proc/question(var/client/C) + spawn(0) + if(!C) return + asked.Add(C.key) + asked[C.key] = world.time + var/response = alert(C, "Someone is requesting a pAI personality. Would you like to play as a personal AI?", "pAI Request", "Yes", "No", "Never for this round") + if(!C) return //handle logouts that happen whilst the alert is waiting for a response. + if(response == "Yes") + recruitWindow(C.mob) + else if (response == "Never for this round") + asked[C.key] = INFINITY + +/datum/paiCandidate + var/name + var/key + var/description + var/role + var/comments + var/ready = 0 \ No newline at end of file diff --git a/code/controllers/subsystem/shuttles/supply.dm b/code/controllers/subsystem/shuttles/supply.dm index 0e1ac879780..c7ef12234f5 100644 --- a/code/controllers/subsystem/shuttles/supply.dm +++ b/code/controllers/subsystem/shuttles/supply.dm @@ -80,12 +80,14 @@ var/pointsEarned for(var/atom/movable/MA in areaInstance) - SSshuttle.sold_atoms += " [MA.name]" if(MA.anchored) continue + SSshuttle.sold_atoms += " [MA.name]" // Must be in a crate (or a critter crate)! if(istype(MA,/obj/structure/closet/crate) || istype(MA,/obj/structure/closet/critter)) SSshuttle.sold_atoms += ":" + if(!MA.contents.len) + SSshuttle.sold_atoms += " (empty)" ++crate_count var/find_slip = 1 @@ -373,7 +375,7 @@ else temp = "The supply shuttle has departed.

Main Menu" SSshuttle.toggleShuttle("supply", "supply_home", "supply_away", 1) - investigate_log("[usr.key] has sent the supply shuttle away. Remaining points: [SSshuttle.points]. Shuttle contents:[SSshuttle.sold_atoms].", "cargo") + investigate_log("[usr.key] has sent the supply shuttle away. Remaining points: [SSshuttle.points]. Shuttle contents:[SSshuttle.sold_atoms]", "cargo") else if(href_list["loan"] && SSshuttle.shuttle_loan) if(!SSshuttle.shuttle_loan.dispatched) @@ -535,4 +537,4 @@ /obj/machinery/computer/supplycomp/say_quote(text) - return "flashes, \"[text]\"" \ No newline at end of file + return "flashes, \"[text]\"" diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index f61acbb4470..60f50050301 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -12,7 +12,7 @@ var/list/archive_diseases = list() // The order goes from easy to cure to hard to cure. var/list/advance_cures = list( "nutriment", "sugar", "orangejuice", - "spaceacillin", "kelotane", "ethanol", + "spaceacillin", "salglu_solution", "ethanol", "leporazine", "synaptizine", "lipozine", "silver", "gold" ) diff --git a/code/datums/diseases/advance/symptoms/beard.dm b/code/datums/diseases/advance/symptoms/beard.dm index d56c8421f2d..44a81c6a884 100644 --- a/code/datums/diseases/advance/symptoms/beard.dm +++ b/code/datums/diseases/advance/symptoms/beard.dm @@ -33,7 +33,7 @@ BONUS switch(A.stage) if(1, 2) if(H.facial_hair_style == "Shaved") - H.facial_hair_style = "Adam Jensen Beard" + H.facial_hair_style = "Jensen Beard" H.update_hair() if(3, 4) if(!(H.facial_hair_style == "Dwarf Beard") && !(H.facial_hair_style == "Very Long Beard") && !(H.facial_hair_style == "Full Beard")) diff --git a/code/datums/diseases/advance/symptoms/oxygen.dm b/code/datums/diseases/advance/symptoms/oxygen.dm index cb7a02109ef..b82bdfbc9a1 100644 --- a/code/datums/diseases/advance/symptoms/oxygen.dm +++ b/code/datums/diseases/advance/symptoms/oxygen.dm @@ -10,7 +10,7 @@ Self-Respiration Fatal Level. Bonus - The body generates Dexalin Plus. + The body generates salbutamol Plus. ////////////////////////////////////// */ @@ -30,8 +30,8 @@ Bonus var/mob/living/M = A.affected_mob switch(A.stage) if(4, 5) - if (M.reagents.get_reagent_amount("dexalinp") < 20) - M.reagents.add_reagent("dexalinp", 20) + if (M.reagents.get_reagent_amount("salbutamol") < 20) + M.reagents.add_reagent("salbutamol", 20) else if(prob(SYMPTOM_ACTIVATION_PROB * 5)) M << "[pick("Your lungs feel great.", "You are now breathing manually.", "You don't feel the need to breathe.")]" diff --git a/code/datums/diseases/advance/symptoms/stimulant.dm b/code/datums/diseases/advance/symptoms/stimulant.dm index 59b1e4ae1f0..c4cf94b0956 100644 --- a/code/datums/diseases/advance/symptoms/stimulant.dm +++ b/code/datums/diseases/advance/symptoms/stimulant.dm @@ -10,7 +10,7 @@ Stimulant Moderate Level. Bonus - The body generates Hyperzine. + The body generates morphine. ////////////////////////////////////// */ @@ -30,8 +30,8 @@ Bonus var/mob/living/M = A.affected_mob switch(A.stage) if(5) - if (M.reagents.get_reagent_amount("hyperzine") < 30) - M.reagents.add_reagent("hyperzine", 10) + if (M.reagents.get_reagent_amount("ephedrine") < 30) + M.reagents.add_reagent("ephedrine", 10) else if(prob(SYMPTOM_ACTIVATION_PROB * 5)) M << "[pick("You feel restless.", "You feel like running laps around the station.")]" diff --git a/code/datums/diseases/brainrot.dm b/code/datums/diseases/brainrot.dm index f5c0b4d5d33..d0822f3e127 100644 --- a/code/datums/diseases/brainrot.dm +++ b/code/datums/diseases/brainrot.dm @@ -3,8 +3,8 @@ max_stages = 4 spread_text = "On contact" spread_flags = CONTACT_GENERAL - cure_text = "Alkysine" - cures = list("alkysine") + cure_text = "Mannitol" + cures = list("mannitol") agent = "Cryptococcus Cosmosis" viable_mobtypes = list(/mob/living/carbon/human) disease_flags = CAN_CARRY|CAN_RESIST diff --git a/code/datums/diseases/dna_spread.dm b/code/datums/diseases/dna_spread.dm index 6df8582e325..c24e13668e0 100644 --- a/code/datums/diseases/dna_spread.dm +++ b/code/datums/diseases/dna_spread.dm @@ -3,8 +3,8 @@ max_stages = 4 spread_text = "On contact" spread_flags = CONTACT_GENERAL - cure_text = "Ryetalyn" - cures = list("ryetalyn") + cure_text = "Mutadone" + cures = list("mutadone") disease_flags = CAN_CARRY|CAN_RESIST agent = "S4E1 retrovirus" viable_mobtypes = list(/mob/living/carbon/human) diff --git a/code/datums/diseases/retrovirus.dm b/code/datums/diseases/retrovirus.dm index bc22d9641bf..c5eb3cea9e2 100644 --- a/code/datums/diseases/retrovirus.dm +++ b/code/datums/diseases/retrovirus.dm @@ -20,7 +20,7 @@ ..() agent = "Virus class [pick("A","B","C","D","E","F")][pick("A","B","C","D","E","F")]-[rand(50,300)]" if(prob(40)) - cures = list("ryetalyn") + cures = list("mutadone") else restcure = 1 diff --git a/code/datums/goon_mutations_disabilities.dm b/code/datums/goon_mutations_disabilities.dm new file mode 100644 index 00000000000..8e19a7e13c3 --- /dev/null +++ b/code/datums/goon_mutations_disabilities.dm @@ -0,0 +1,219 @@ +/datum/mutation/human/wacky + name = "Wacky" + quality = MINOR_NEGATIVE + text_gain_indication = "You feel an off sensation in your voicebox." + text_lose_indication = "The off sensation passes." + +/datum/mutation/human/wacky/say_mod(var/message) + if(message) + message = "[message]" + return message + +/datum/mutation/human/joke + name = "Joke" + quality = MINOR_NEGATIVE + text_gain_indication = "You feel an off sensation in your voicebox." + text_lose_indication = "The off sensation passes." + +/datum/mutation/human/joke/say_mod(var/message) + if(message) + message = "[message]" + return message + +/datum/mutation/human/papyrus + name = "Papyrus" + quality = MINOR_NEGATIVE + text_gain_indication = "You feel an off sensation in your voicebox." + text_lose_indication = "The off sensation passes." + +/datum/mutation/human/papyrus/say_mod(var/message) + if(message) + message = "[message]" + return message + +/datum/mutation/human/vineta + name = "Vineta" + quality = MINOR_NEGATIVE + text_gain_indication = "You feel an off sensation in your voicebox." + text_lose_indication = "The off sensation passes." + +/datum/mutation/human/vineta/say_mod(var/message) + if(message) + message = "[message]" + return message + + +/datum/mutation/human/mute + name = "Mute" + quality = NEGATIVE + text_gain_indication = "You feel unable to express yourself at all." + text_lose_indication = "You feel able to speak freely again." + +/datum/mutation/human/mute/on_acquiring(mob/living/carbon/human/owner) + if(..()) return + owner.disabilities |= MUTE + +/datum/mutation/human/mute/on_losing(mob/living/carbon/human/owner) + if(..()) return + owner.disabilities &= ~MUTE + +/datum/mutation/human/smile + name = "Smile" + quality = MINOR_NEGATIVE + text_gain_indication = "You feel so happy. Nothing can be wrong with anything. :)" + text_lose_indication = "Everything is terrible again. :(" + +/datum/mutation/human/smile/say_mod(var/message) + if(message) + //Time for a friendly game of SS13 + message = replacetext(message,"stupid","smart") + message = replacetext(message,"retard","genius") + message = replacetext(message,"unrobust","robust") + message = replacetext(message,"dumb","smart") + message = replacetext(message,"awful","great") + message = replacetext(message,"gay",pick("nice","ok","alright")) + message = replacetext(message,"horrible","fun") + message = replacetext(message,"terrible","terribly fun") + message = replacetext(message,"terrifying","wonderful") + message = replacetext(message,"gross","cool") + message = replacetext(message,"disgusting","amazing") + message = replacetext(message,"loser","winner") + message = replacetext(message,"useless","useful") + message = replacetext(message,"oh god","cheese and crackers") + message = replacetext(message,"jesus","gee wiz") + message = replacetext(message,"weak","strong") + message = replacetext(message,"kill","hug") + message = replacetext(message,"murder","tease") + message = replacetext(message,"ugly","beautiful") + message = replacetext(message,"douchbag","nice guy") + message = replacetext(message,"whore","lady") + message = replacetext(message,"nerd","smart guy") + message = replacetext(message,"moron","fun person") + message = replacetext(message,"IT'S LOOSE","EVERYTHING IS FINE") + message = replacetext(message,"sex","hug fight") + message = replacetext(message,"idiot","genius") + message = replacetext(message,"fat","thin") + message = replacetext(message,"beer","water with ice") + message = replacetext(message,"drink","water") + message = replacetext(message,"feminist","empowered woman") + message = replacetext(message,"i hate you","you're mean") + message = replacetext(message,"nigger","african american") + message = replacetext(message,"jew","jewish") + message = replacetext(message,"shit","shiz") + message = replacetext(message,"crap","poo") + message = replacetext(message,"slut","tease") + message = replacetext(message,"ass","butt") + message = replacetext(message,"damn","dang") + message = replacetext(message,"fuck","") + message = replacetext(message,"penis","privates") + message = replacetext(message,"cunt","privates") + message = replacetext(message,"dick","jerk") + message = replacetext(message,"vagina","privates") + return message + +/datum/mutation/human/unintelligable + name = "Unintelligable" + quality = NEGATIVE + text_gain_indication = "You can't seem to form any coherent thoughts!" + text_lose_indication = "Your mind feels more clear." + +/datum/mutation/human/unintelligable/say_mod(var/message) + if(message) + var/prefix=copytext(message,1,2) + if(prefix == ";") + message = copytext(message,2) + else if(prefix in list(":","#")) + prefix += copytext(message,2,3) + message = copytext(message,3) + else + prefix="" + + var/list/words = text2list(message," ") + var/list/rearranged = list() + for(var/i=1;i<=words.len;i++) + var/cword = pick(words) + words.Remove(cword) + var/suffix = copytext(cword,length(cword)-1,length(cword)) + while(length(cword)>0 && suffix in list(".",",",";","!",":","?")) + cword = copytext(cword,1 ,length(cword)-1) + suffix = copytext(cword,length(cword)-1,length(cword) ) + if(length(cword)) + rearranged += cword + message = "[prefix][uppertext(list2text(rearranged," "))]!!" + return message + +/datum/mutation/human/swedish + name = "Swedish" + quality = MINOR_NEGATIVE + text_gain_indication = "You feel Swedish, however that works." + text_lose_indication = "The feeling of Swedishness passes." + +/datum/mutation/human/swedish/say_mod(var/message) + if(message) + message = replacetext(message,"w","v") + if(prob(30)) + message += " Bork[pick("",", bork",", bork, bork")]!" + return message + +/datum/mutation/human/chav + name = "Chav" + quality = MINOR_NEGATIVE + text_gain_indication = "Ye feel like a reet prat like, innit?" + text_lose_indication = "You no longer feel like being rude and sassy." + +/datum/mutation/human/chav/say_mod(var/message) + if(message) + message = replacetext(message,"dick","prat") + message = replacetext(message,"comdom","knob'ead") + message = replacetext(message,"looking at","gawpin' at") + message = replacetext(message,"great","bangin'") + message = replacetext(message,"man","mate") + message = replacetext(message,"friend",pick("mate","bruv","bledrin")) + message = replacetext(message,"what","wot") + message = replacetext(message,"drink","wet") + message = replacetext(message,"get","giz") + message = replacetext(message,"what","wot") + message = replacetext(message,"no thanks","wuddent fukken do one") + message = replacetext(message,"i don't know","wot mate") + message = replacetext(message,"no","naw") + message = replacetext(message,"robust","chin") + message = replacetext(message,"hi","how what how") + message = replacetext(message,"hello","sup bruv") + message = replacetext(message,"kill","bang") + message = replacetext(message,"murder","bang") + message = replacetext(message,"windows","windies") + message = replacetext(message,"window","windy") + message = replacetext(message,"break","do") + message = replacetext(message,"your","yer") + message = replacetext(message,"security","coppers") + return message + +/datum/mutation/human/elvis + name = "Elvis" + quality = MINOR_NEGATIVE + text_gain_indication = "You feel pretty good, honeydoll." + text_lose_indication = "You feel a little less conversation would be great." + +/datum/mutation/human/elvis/on_life(mob/living/carbon/human/owner) + switch(pick(1,2)) + if(1) + if(prob(15)) + var/list/dancetypes = list("swinging", "fancy", "stylish", "20'th century", "jivin'", "rock and roller", "cool", "salacious", "bashing", "smashing") + var/dancemoves = pick(dancetypes) + owner.visible_message("[owner] busts out some [dancemoves] moves!") + if(2) + if(prob(15)) + owner.visible_message("[owner] [pick("jiggles their hips", "rotates their hips", "gyrates their hips", "taps their foot", "dances to an imaginary song", "jiggles their legs", "snaps their fingers")]!") + +/datum/mutation/human/elvis/say_mod(var/message) + if(message) + message = replacetext(message,"i'm not","I aint") + message = replacetext(message,"girl",pick("honey","baby","baby doll")) + message = replacetext(message,"man",pick("son","buddy","brother", "pal", "friendo")) + message = replacetext(message,"out of","outta") + message = replacetext(message,"thank you","thank you, thank you very much") + message = replacetext(message,"what are you","whatcha") + message = replacetext(message,"yes",pick("sure", "yea")) + message = replacetext(message,"faggot","square") + message = replacetext(message,"muh valids","getting my kicks") + return message \ No newline at end of file diff --git a/code/datums/goon_mutations_powers.dm b/code/datums/goon_mutations_powers.dm new file mode 100644 index 00000000000..38069f48488 --- /dev/null +++ b/code/datums/goon_mutations_powers.dm @@ -0,0 +1,38 @@ +/datum/mutation/human/stealth + name = "Cloak Of Darkness" + quality = POSITIVE + get_chance = 10 + lowest_value = 256 * 14 + text_gain_indication = "You begin to fade into the shadows." + text_lose_indication = "You become fully visible." + +/datum/mutation/human/stealth/on_life(mob/living/carbon/human/owner) + var/turf/simulated/T = get_turf(owner) + if(!istype(T)) + return + if(T.lighting_lumcount <= 2) + owner.alpha -= 25 + else + owner.alpha = round(255 * 0.80) + +/datum/mutation/human/stealth/on_losing(mob/living/carbon/human/owner) + ..() + owner.alpha = 255 + +/datum/mutation/human/chameleon + name = "Chameleon" + quality = POSITIVE + get_chance = 10 + lowest_value = 256 * 14 + text_gain_indication = "You feel one with your surroundings." + text_lose_indication = "You feel oddly exposed." + +/datum/mutation/human/chameleon/on_life(mob/living/carbon/human/owner) + if((world.time - owner.last_movement) >= 30 && !owner.stat && owner.canmove && !owner.restrained()) + owner.alpha -= 25 + else + owner.alpha = round(255 * 0.80) + +/datum/mutation/human/chameleon/on_losing(mob/living/carbon/human/owner) + ..() + owner.alpha = 255 \ No newline at end of file diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm index 4a041256d06..0ed97a79c13 100644 --- a/code/datums/helper_datums/teleport.dm +++ b/code/datums/helper_datums/teleport.dm @@ -121,7 +121,7 @@ if(isliving(teleatom)) var/mob/living/L = teleatom if(L.buckled) - L.buckled.unbuckle() + L.buckled.unbuckle_mob() destarea.Entered(teleatom) diff --git a/code/datums/mutations.dm b/code/datums/mutations.dm index b5f1279d655..a9e7da16668 100644 --- a/code/datums/mutations.dm +++ b/code/datums/mutations.dm @@ -14,7 +14,8 @@ var/quality var/get_chance = 100 var/lowest_value = 256 * 8 - var/text_indication = "" + var/text_gain_indication = "" + var/text_lose_indication = "" var/list/visual_indicators = list() /datum/mutation/human/proc/force_give(mob/living/carbon/human/owner) @@ -27,9 +28,9 @@ /datum/mutation/human/proc/set_se(se_string, on = 1) if(!se_string || lentext(se_string) < DNA_STRUC_ENZYMES_BLOCKS * DNA_BLOCK_SIZE) return - var/before = copytext(se_string, 1, (dna_block * DNA_BLOCK_SIZE) + 1) - var/injection = num2hex(lowest_value + (rand(1, 256 * 6) * (on ? 1 : -1))) - var/after = copytext(se_string, (dna_block * DNA_BLOCK_SIZE) + DNA_BLOCK_SIZE + 1) + var/before = copytext(se_string, 1, ((dna_block - 1) * DNA_BLOCK_SIZE) + 1) + var/injection = num2hex(on ? rand(lowest_value, (256 * 16) - 1) : rand(0, lowest_value - 1), DNA_BLOCK_SIZE) + var/after = copytext(se_string, (dna_block * DNA_BLOCK_SIZE) + 1, 0) return before + injection + after /datum/mutation/human/proc/set_block(mob/living/carbon/owner, on = 1) @@ -53,7 +54,7 @@ return 1 owner.dna.mutations.Add(src) gain_indication(owner) - owner << text_indication + owner << text_gain_indication /datum/mutation/human/proc/gain_indication(mob/living/carbon/human/owner) owner.overlays.Add(visual_indicators) @@ -79,16 +80,21 @@ /datum/mutation/human/proc/on_losing(mob/living/carbon/human/owner) if(owner.dna.mutations.Remove(src)) lose_indication(owner) + owner << text_lose_indication return 0 return 1 +/datum/mutation/human/proc/say_mod(var/message) + if(message) + return message + /datum/mutation/human/hulk name = "Hulk" quality = POSITIVE get_chance = 5 lowest_value = 256 * 14 - text_indication = "Your muscles hurt!" + text_gain_indication = "Your muscles hurt!" /datum/mutation/human/hulk/New() ..() @@ -118,13 +124,18 @@ ..() owner.status_flags |= CANSTUN | CANWEAKEN | CANPARALYSE | CANPUSH +/datum/mutation/human/hulk/say_mod(var/message) + if(message) + message = "[uppertext(replacetext(message, ".", "!"))]!!" + return message + /datum/mutation/human/telekinesis name = "Telekinesis" quality = POSITIVE get_chance = 10 lowest_value = 256 * 14 - text_indication = "You feel smarter!" + text_gain_indication = "You feel smarter!" /datum/mutation/human/telekinesis/New() ..() @@ -139,7 +150,7 @@ quality = POSITIVE get_chance = 10 lowest_value = 256 * 12 - text_indication = "Your body feels warm!" + text_gain_indication = "Your body feels warm!" /datum/mutation/human/cold_resistance/New() ..() @@ -156,7 +167,7 @@ quality = POSITIVE get_chance = 10 lowest_value = 256 * 15 - text_indication = "The walls suddenly disappear!" + text_gain_indication = "The walls suddenly disappear!" /datum/mutation/human/x_ray/on_acquiring(mob/living/carbon/human/owner) if(..()) return @@ -175,7 +186,7 @@ name = "Near Sightness" quality = MINOR_NEGATIVE - text_indication = "You can't see very well." + text_gain_indication = "You can't see very well." /datum/mutation/human/nearsight/on_acquiring(mob/living/carbon/human/owner) if(..()) return @@ -189,7 +200,7 @@ name = "Epilepsy" quality = NEGATIVE - text_indication = "You get a headache." + text_gain_indication = "You get a headache." /datum/mutation/human/epilepsy/on_life(mob/living/carbon/human/owner) if ((prob(1) && owner.paralysis < 1)) @@ -203,7 +214,7 @@ name = "Unstable DNA" quality = NEGATIVE - text_indication = "You feel strange." + text_gain_indication = "You feel strange." /datum/mutation/human/bad_dna/on_acquiring(var/mob/living/carbon/human/owner) var/mob/new_mob @@ -223,7 +234,7 @@ name = "Cough" quality = MINOR_NEGATIVE - text_indication = "You start coughing." + text_gain_indication = "You start coughing." /datum/mutation/human/cough/on_life(mob/living/carbon/human/owner) if((prob(5) && owner.paralysis <= 1)) @@ -234,7 +245,7 @@ name = "Clumsiness" quality = MINOR_NEGATIVE - text_indication = "You feel lightheaded." + text_gain_indication = "You feel lightheaded." /datum/mutation/human/clumsy/on_acquiring(mob/living/carbon/human/owner) if(..()) return @@ -248,7 +259,7 @@ name = "Tourettes Syndrome" quality = NEGATIVE - text_indication = "You twitch." + text_gain_indication = "You twitch." /datum/mutation/human/tourettes/on_life(mob/living/carbon/human/owner) if((prob(10) && owner.paralysis <= 1)) @@ -269,7 +280,7 @@ name = "Nervousness" quality = MINOR_NEGATIVE - text_indication = "You feel nervous." + text_gain_indication = "You feel nervous." /datum/mutation/human/nervousness/on_life(mob/living/carbon/human/owner) if(prob(10)) @@ -279,7 +290,7 @@ name = "Deafness" quality = NEGATIVE - text_indication = "You can't seem to hear anything." + text_gain_indication = "You can't seem to hear anything." /datum/mutation/human/deaf/on_acquiring(mob/living/carbon/human/owner) if(..()) return @@ -293,7 +304,7 @@ name = "Blindness" quality = NEGATIVE - text_indication = "You can't seem to see anything." + text_gain_indication = "You can't seem to see anything." /datum/mutation/human/blind/on_acquiring(mob/living/carbon/human/owner) if(..()) return @@ -327,8 +338,8 @@ name = "Laser Eyes" quality = POSITIVE dna_block = NON_SCANNABLE - text_indication = "You feel pressure building up behind your eyes." + text_gain_indication = "You feel pressure building up behind your eyes." /datum/mutation/human/laser_eyes/on_ranged_attack(mob/living/carbon/human/owner, atom/target) if(owner.a_intent == "harm") - owner.LaserEyes(target) \ No newline at end of file + owner.LaserEyes(target) diff --git a/code/datums/spell.dm b/code/datums/spell.dm index 4d9bdd5f0a5..c49252f1a1e 100644 --- a/code/datums/spell.dm +++ b/code/datums/spell.dm @@ -25,6 +25,7 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin var/clothes_req = 1 //see if it requires clothes var/human_req = 0 //spell can only be cast by humans + var/nonabstract_req = 0 //spell can only be cast by mobs that are physical entities var/stat_allowed = 0 //see if it requires being conscious/alive, need to set to 1 for ghostpells var/invocation = "HURP DURP" //what is uttered when the wizard casts the spell var/invocation_emote_self = null @@ -95,6 +96,9 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin if(clothes_req || human_req) user << "This spell can only be cast by humans!" return 0 + if(nonabstract_req && (isbrain(user) || ispAI(user))) + user << "This spell can only be cast by physical beings!" + return 0 if(!skipcharge) switch(charge_type) diff --git a/code/datums/spells/area_teleport.dm b/code/datums/spells/area_teleport.dm index 7103eb17765..83aa183ae41 100644 --- a/code/datums/spells/area_teleport.dm +++ b/code/datums/spells/area_teleport.dm @@ -1,6 +1,7 @@ /obj/effect/proc_holder/spell/targeted/area_teleport name = "Area teleport" desc = "This spell teleports you to a type of area of your selection." + nonabstract_req = 1 var/randomise_selection = 0 //if it lets the usr choose the teleport loc or picks it from the list var/invocation_area = 1 //if the invocation appends the selected area @@ -47,7 +48,7 @@ return if(target && target.buckled) - target.buckled.unbuckle() + target.buckled.unbuckle_mob() var/list/tempL = L var/attempt = null diff --git a/code/datums/spells/ethereal_jaunt.dm b/code/datums/spells/ethereal_jaunt.dm index 73a8bf24b4e..ca5a143768b 100644 --- a/code/datums/spells/ethereal_jaunt.dm +++ b/code/datums/spells/ethereal_jaunt.dm @@ -11,6 +11,7 @@ cooldown_min = 100 //50 deciseconds reduction per rank include_user = 1 centcom_cancast = 0 //Prevent people from getting to centcom + nonabstract_req = 1 var/jaunt_duration = 50 //in deciseconds /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/cast(list/targets) //magnets, so mostly hardcoded @@ -28,7 +29,7 @@ animation.master = holder target.ExtinguishMob() if(target.buckled) - target.buckled.unbuckle() + target.buckled.unbuckle_mob() jaunt_disappear(animation, target) target.loc = holder target.notransform=0 //mob is safely inside holder now, no need for protection. diff --git a/code/datums/spells/turf_teleport.dm b/code/datums/spells/turf_teleport.dm index 26b7b74e7e7..51e71a56c5a 100644 --- a/code/datums/spells/turf_teleport.dm +++ b/code/datums/spells/turf_teleport.dm @@ -1,6 +1,7 @@ /obj/effect/proc_holder/spell/targeted/turf_teleport name = "Turf Teleport" desc = "This spell teleports the target to the turf in range." + nonabstract_req = 1 var/inner_tele_radius = 1 var/outer_tele_radius = 2 diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index d5f47e7827e..9a2b80739f7 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -352,6 +352,13 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine cost = 20 containername = "security barriers crate" +/datum/supply_packs/security/firingpins + name = "Standard Firing Pins Crate" + contains = list(/obj/item/weapon/storage/box/firingpins, + /obj/item/weapon/storage/box/firingpins) + cost = 10 + containername = "firing pins crate" + /datum/supply_packs/security/securityclothes name = "Security Clothing Crate" contains = list(/obj/item/clothing/under/rank/security/navyblue, @@ -523,12 +530,12 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine /datum/supply_packs/medical/supplies name = "Medical Supplies Crate" - contains = list(/obj/item/weapon/reagent_containers/glass/bottle/antitoxin, - /obj/item/weapon/reagent_containers/glass/bottle/antitoxin, - /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline, - /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline, - /obj/item/weapon/reagent_containers/glass/bottle/stoxin, - /obj/item/weapon/reagent_containers/glass/bottle/stoxin, + contains = list(/obj/item/weapon/reagent_containers/glass/bottle/charcoal, + /obj/item/weapon/reagent_containers/glass/bottle/charcoal, + /obj/item/weapon/reagent_containers/glass/bottle/epinephrine, + /obj/item/weapon/reagent_containers/glass/bottle/epinephrine, + /obj/item/weapon/reagent_containers/glass/bottle/morphine, + /obj/item/weapon/reagent_containers/glass/bottle/morphine, /obj/item/weapon/reagent_containers/glass/bottle/morphine, /obj/item/weapon/reagent_containers/glass/bottle/morphine, /obj/item/weapon/reagent_containers/glass/bottle/morphine, diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index c1ab434fd07..4fec23faac0 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -137,9 +137,10 @@ var/list/uplink_items = list() surplus = 0 /datum/uplink_item/dangerous/crossbow - name = "Miniature Auto Crossbow" - desc = "A short bow mounted across a tiller in miniature. Small enough to fit into a pocket or slip into a bag unnoticed. It fires bolts tipped with a paralyzing toxin collected from a rare organism." - item = /obj/item/weapon/gun/projectile/automatic/crossbow + name = "Miniature Energy Crossbow" + desc = "A short bow mounted across a tiller in miniature. Small enough to fit into a pocket or slip into a bag unnoticed. It fires bolts tipped with a paralyzing toxin collected from a rare organism. \ + The bow generates bolts using an internal power source but must be manually charged between shots." + item = /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow cost = 10 excludefrom = list(/datum/game_mode/nuclear) surplus = 50 @@ -230,13 +231,6 @@ var/list/uplink_items = list() item = /obj/item/ammo_box/magazine/m10mm cost = 1 -/datum/uplink_item/ammo/crossbow - name = "Poison-tipped Crossbow Bolts (x4)" - desc = "A four pack of paralyzing crossbow bolts, for hunting big game." - item = /obj/item/ammo_box/crossbow - cost = 2 - excludefrom = list(/datum/game_mode/nuclear) - /datum/uplink_item/ammo/revolver name = "Speed Loader - .357" desc = "A speed loader that contains seven additional .357 Magnum rounds for the syndicate revolver. For when you really need a lot of things dead." @@ -317,7 +311,7 @@ var/list/uplink_items = list() name = "Poison Kit" desc = "An assortment of nasty chemicals." item = /obj/item/weapon/storage/box/syndie_kit/chemical - cost = 2 + cost = 6 surplus = 50 /datum/uplink_item/stealthy_weapons/detomatix @@ -557,6 +551,12 @@ var/list/uplink_items = list() item = /obj/item/weapon/storage/box/syndie_kit/imp_adrenal cost = 8 +/datum/uplink_item/implants/explosive + name = "Explosive Implant" + desc = "An implant injected into the body, and later activated either manually or automatically upon death. Creates a moderately-sized fiery explosion. For those agents who know there is no going back." + item = /obj/item/weapon/storage/box/syndie_kit/imp_explosive + cost = 9 + // POINTLESS BADASSERY /datum/uplink_item/badass diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index 8d87892c39b..aa6bb44d7af 100644 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -976,9 +976,9 @@ proc/process_ghost_teleport_locs() name = "\improper Server Room" icon_state = "server" -/area/toxins/telesci - name = "\improper Telescience Lab" - icon_state = "toxtest" +/area/toxins/explab + name = "\improper Experimentation Lab" + icon_state = "toxmisc" //Storage diff --git a/code/game/asteroid.dm b/code/game/asteroid.dm index 50f2dcd8336..e0870964a61 100644 --- a/code/game/asteroid.dm +++ b/code/game/asteroid.dm @@ -124,7 +124,7 @@ proc/make_mining_asteroid_secret() treasureitems = list(/obj/item/weapon/gun/energy/floragun=1,/obj/item/seeds/novaflowerseed=2,/obj/item/seeds/bluespacetomatoseed=2,/obj/item/seeds/bluetomatoseed=2, /obj/item/seeds/coffee_robusta_seed=2, /obj/item/seeds/cashseed=2) fluffitems = list(/obj/structure/flora/kirbyplants=1,/obj/structure/table/reinforced=2,/obj/machinery/hydroponics=1, - /obj/effect/glowshroom/single=2,/obj/item/weapon/reagent_containers/syringe/antitoxin=2, + /obj/effect/glowshroom/single=2,/obj/item/weapon/reagent_containers/syringe/charcoal=2, /obj/item/weapon/reagent_containers/glass/bottle/diethylamine=3,/obj/item/weapon/reagent_containers/glass/bottle/ammonia=3) /*if("poly") diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 4ebda9f6a83..1c6692677cb 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -25,11 +25,18 @@ var/turf/T = get_turf(src) if(!T) return 0 - if(T.z != ZLEVEL_CENTCOM) + + if(T.z != ZLEVEL_CENTCOM)//if not, don't bother return 0 - if(T.y > 160) - return 0 - return 1 + + //check for centcomm shuttles + for(var/centcom_shuttle in list("emergency", "pod1", "pod2", "pod3", "pod4", "ferry")) + var/obj/docking_port/mobile/M = SSshuttle.getShuttle(centcom_shuttle) + if(src in M.areaInstance) + return 1 + + //finally check for centcom itself + return istype(T.loc,/area/centcom) /atom/proc/throw_impact(atom/hit_atom) if(istype(hit_atom,/mob/living)) diff --git a/code/game/dna.dm b/code/game/dna.dm index e43a55fe024..6b1ed80bd7a 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -82,9 +82,8 @@ /datum/dna/proc/generate_struc_enzymes(mob/living/carbon/character) var/list/L = list("0","1","2","3","4","5","6") - var/list/sorting = list() - sorting.len = 14 - var/result + var/list/sorting = new /list(DNA_STRUC_ENZYMES_BLOCKS) + var/result = "" for(var/datum/mutation/human/A in good_mutations + bad_mutations + not_good_mutations) if(A.name == RACEMUT && istype(character,/mob/living/carbon/monkey)) sorting[A.dna_block] = num2hex(A.lowest_value + rand(0, 256 * 6), DNA_BLOCK_SIZE) @@ -105,6 +104,12 @@ . += repeat_string(DNA_UNIQUE_ENZYMES_LEN, "0") return . +/datum/dna/proc/mutations_say_mods(var/message) + if(message) + for(var/datum/mutation/human/M in mutations) + message = M.say_mod(message) + return message + /proc/hardset_dna(mob/living/carbon/owner, ui, se, real_name, blood_type, datum/species/mrace, mcolor) if(!istype(owner, /mob/living/carbon/monkey) && !istype(owner, /mob/living/carbon/human)) return @@ -543,7 +548,7 @@ occupant_status += "" occupant_status += "
Health:
[viable_occupant.health]%
" occupant_status += "
Radiation Level:
[viable_occupant.radiation]%
" - var/rejuvenators = viable_occupant.reagents.get_reagent_amount("inaprovaline") + var/rejuvenators = viable_occupant.reagents.get_reagent_amount("epinephrine") occupant_status += "
Rejuvenators:
[rejuvenators] units
" occupant_status += "
Unique Enzymes :
[viable_occupant.dna.unique_enzymes]
" occupant_status += "
Last Operation:
[last_change ? last_change : "----"]
" @@ -752,9 +757,9 @@ current_screen = href_list["text"] if("rejuv") if(viable_occupant && viable_occupant.reagents) - var/inaprovaline_amount = viable_occupant.reagents.get_reagent_amount("inaprovaline") - var/can_add = max(min(REJUVENATORS_MAX - inaprovaline_amount, REJUVENATORS_INJECT), 0) - viable_occupant.reagents.add_reagent("inaprovaline", can_add) + var/epinephrine_amount = viable_occupant.reagents.get_reagent_amount("epinephrine") + var/can_add = max(min(REJUVENATORS_MAX - epinephrine_amount, REJUVENATORS_INJECT), 0) + viable_occupant.reagents.add_reagent("epinephrine", can_add) if("setbufferlabel") var/text = sanitize(input(usr, "Input a new label:", "Input an Text", null) as text|null) if(num && text) diff --git a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm index 3c2b72e9b90..d1cacbfe1b7 100644 --- a/code/game/gamemodes/blob/powers.dm +++ b/code/game/gamemodes/blob/powers.dm @@ -334,6 +334,7 @@ var/obj/effect/blob/core/new_core = new(get_turf(N), 200, C, blob_core.point_rate) qdel(N) var/mob/camera/blob/B = new(get_turf(new_core)) + B.verbs -= /mob/camera/blob/verb/split_consciousness // this was a bad idea to allow you were right remie B.key = C.key B.blob_core = new_core new_core.overmind = B diff --git a/code/game/gamemodes/changeling/powers/mutations.dm b/code/game/gamemodes/changeling/powers/mutations.dm index a02321d79b1..60bc0a7bacc 100644 --- a/code/game/gamemodes/changeling/powers/mutations.dm +++ b/code/game/gamemodes/changeling/powers/mutations.dm @@ -268,7 +268,7 @@ /obj/item/clothing/suit/space/changeling/process() if(ishuman(loc)) var/mob/living/carbon/human/H = loc - H.reagents.add_reagent("dexalinp", REAGENTS_METABOLISM) + H.reagents.add_reagent("salbutamol", REAGENTS_METABOLISM) /obj/item/clothing/head/helmet/space/changeling name = "flesh mass" diff --git a/code/game/gamemodes/changeling/powers/panacea.dm b/code/game/gamemodes/changeling/powers/panacea.dm index 35067080403..ceb7fc8e311 100644 --- a/code/game/gamemodes/changeling/powers/panacea.dm +++ b/code/game/gamemodes/changeling/powers/panacea.dm @@ -10,9 +10,9 @@ /obj/effect/proc_holder/changeling/panacea/sting_action(var/mob/user) user << "We cleanse impurities from our form." - user.reagents.add_reagent("ryetalyn", 10) - user.reagents.add_reagent("hyronalin", 10) - user.reagents.add_reagent("anti_toxin", 20) + user.reagents.add_reagent("mutadone", 10) + user.reagents.add_reagent("potass_iodide", 10) + user.reagents.add_reagent("charcoal", 20) for(var/datum/disease/D in user.viruses) D.cure() diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index d56d30213d5..93c6a3753c9 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -169,8 +169,9 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", if(!iscultist(user)) user << "You can't mouth the arcane scratchings without fumbling over them." return - if(user.is_muzzled()) - user << "You are unable to speak the words of the rune." + var/message = "You are unable to speak the words of the rune." + if(!user.can_speak(message) && (user.mind && !user.mind.miming)) + user << message return if(!word1 || !word2 || !word3 || prob(user.getBrainLoss())) return fizzle(user) diff --git a/code/game/gamemodes/intercept_report.dm b/code/game/gamemodes/intercept_report.dm index 93ec09810de..a19846888be 100644 --- a/code/game/gamemodes/intercept_report.dm +++ b/code/game/gamemodes/intercept_report.dm @@ -134,8 +134,9 @@ fingerprints = pick_fingerprints() */ - src.text += "

The [name_1] [name_2] implied an undercover operative was acting on their behalf on the station currently." + src.text += "

The [name_1] [name_2] implied an undercover operative was acting on their behalf on the station currently." src.text += "It would be in your best interests to suspect everybody, as these undercover operatives could have implants which trigger them to have their memories removed until they are needed. He, or she, could even be a high ranking officer." + src.text += "

" /* src.text += "After some investigation, we " if(traitor_name) @@ -173,8 +174,9 @@ else traitor_name = pick_mob() */ - src.text += "

It has been brought to our attention that the [name_1] [name_2] have stumbled upon some dark secrets. They apparently want to spread the dangerous knowledge onto as many stations as they can." + src.text += "

It has been brought to our attention that the [name_1] [name_2] have stumbled upon some dark secrets. They apparently want to spread the dangerous knowledge onto as many stations as they can." src.text += "Watch out for the following: praying to an unfamilar god, preaching the word of \[REDACTED\], sacrifices, magical dark power, living constructs of evil and a portal to the dimension of the underworld." + src.text += "

" /* src.text += "Based on our intelligence, we are [prob_right_job]% sure that if true, someone doing the job of [traitor_job] on your station may have been converted " src.text += "and instilled with the idea of the flimsiness of the real world, seeking to destroy it. " @@ -213,8 +215,9 @@ else traitor_name = src.pick_mob() */ - src.text += "

It has been brought to our attention that the [name_1] [name_2] are attempting to stir unrest on one of our stations in your sector." + src.text += "

It has been brought to our attention that the [name_1] [name_2] are attempting to stir unrest on one of our stations in your sector." src.text += "Watch out for suspicious activity among the crew and make sure that all heads of staff report in periodically." + src.text += "

" /* src.text += "Based on our intelligence, we are [prob_right_job]% sure that if true, someone doing the job of [traitor_job] on your station may have been brainwashed " src.text += "at a recent conference, and their department should be closely monitored for signs of mutiny. " @@ -228,26 +231,30 @@ src.text += "

Syndicate forces may be supplying opposing criminal organizations within your sector in an attempt at destabilizing our operations." src.text += "Ensure law and order is maintained on the station and be on the lookout for violent confrontations between station factions." src.text += "Central Command retains an interest in any criminal leaders captured by station security. The execution or exile of these persons are ill-advised." + src.text += "

" /datum/intercept_text/proc/build_wizard(datum/mind/correct_person) var/SWF_desc = pick(SWF_names) - src.text += "

The evil Space Wizards Federation have recently broke their most feared wizard, known only as \"[SWF_desc]\" out of space jail. " + src.text += "

The evil Space Wizards Federation have recently broke their most feared wizard, known only as \"[SWF_desc]\" out of space jail. " src.text += "He is on the run, last spotted in a system near your present location. If anybody suspicious is located aboard, please " src.text += "approach with EXTREME caution. Centcom also recommends that it would be wise to not inform the crew of this, due to their fearful nature." src.text += "Known attributes include: Brown sandals, a large blue hat, a voluptous white beard, and an inclination to cast spells." + src.text += "

" /datum/intercept_text/proc/build_nuke(datum/mind/correct_person) src.text += "

Centcom recently recieved a report of a plot to destroy one of our stations in your area. We believe the Nuclear Authentication Disc " src.text += "that is standard issue aboard your vessel may be a target. We recommend removal of this object, and it's storage in a safe " src.text += "environment. As this may cause panic among the crew, all efforts should be made to keep this information a secret from all but " src.text += "the most trusted crew-members." + src.text += "

" /datum/intercept_text/proc/build_malf(datum/mind/correct_person) var/a_name = pick(src.anomalies) - src.text += "

A [a_name] was recently picked up by a nearby stations sensors in your sector. If it came into contact with your ship or " + src.text += "

A [a_name] was recently picked up by a nearby stations sensors in your sector. If it came into contact with your ship or " src.text += "electrical equipment, it may have had hazardarous and unpredictable effect. Closely observe any non carbon based life forms " src.text += "for signs of unusual behaviour, but keep this information discreet at all times due to this possibly dangerous scenario." + src.text += "

" /datum/intercept_text/proc/build_changeling(datum/mind/correct_person) var/cname = pick(src.changeling_names) @@ -275,10 +282,10 @@ changeling_name = src.pick_mob() */ - src.text += "

We have received a report that a dangerous alien lifeform known only as \"[cname]\" may have infiltrated your crew. " + src.text += "

We have received a report that a dangerous alien lifeform known only as \"[cname]\" may have infiltrated your crew. " /* src.text += "Our intelligence suggests a [prob_right_job]% chance that a [changeling_job] on board your station has been replaced by the alien. " src.text += "Additionally, the report indicates a [prob_right_dude]% chance that [changeling_name] may have been in contact with the lifeform at a recent social gathering. " */ - src.text += "These lifeforms are assosciated with the [orgname1] [orgname2] and may be attempting to acquire sensitive materials on their behalf. " - src.text += "Please take care not to alarm the crew, as [cname] may take advantage of a panic situation. Remember, they can be anybody, suspect everybody!" + src.text += "These lifeforms are associated with the [orgname1] [orgname2] and may be attempting to acquire sensitive materials on their behalf. " + src.text += "Please take care not to alarm the crew, as [cname] may take advantage of a panic situation. Remember, they can be anybody, suspect everybody!" diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index cc1346f4bd6..a2a75543f92 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -179,7 +179,7 @@ U.hidden_uplink.uses = 20 synd_mob.equip_to_slot_or_del(U, slot_in_backpack) - var/obj/item/weapon/implant/explosive/E = new/obj/item/weapon/implant/explosive(synd_mob) + var/obj/item/weapon/implant/weapons_auth/E = new/obj/item/weapon/implant/weapons_auth(synd_mob) E.imp_in = synd_mob E.implanted = 1 E.implanted(synd_mob) @@ -194,12 +194,10 @@ return ..() -/datum/game_mode/proc/is_operatives_are_dead() +/datum/game_mode/proc/are_operatives_dead() for(var/datum/mind/operative_mind in syndicates) - if (!istype(operative_mind.current,/mob/living/carbon/human)) - if(operative_mind.current) - if(operative_mind.current.stat!=2) - return 0 + if (istype(operative_mind.current,/mob/living/carbon/human) && (operative_mind.current.stat!=2)) + return 0 return 1 @@ -218,47 +216,47 @@ //derp //Used for tracking if the syndies actually haul the nuke to the station //no //herp //Used for tracking if the syndies got the shuttle off of the z-level //NO, DON'T FUCKING NAME VARS LIKE THIS - if (!disk_rescued && station_was_nuked && !syndies_didnt_escape) + if (!disk_rescued && station_was_nuked && !syndies_didnt_escape) feedback_set_details("round_end_result","win - syndicate nuke") world << "Syndicate Major Victory!" world << "[syndicate_name()] operatives have destroyed [station_name()]!" - else if (!disk_rescued && station_was_nuked && syndies_didnt_escape) + else if (!disk_rescued && station_was_nuked && syndies_didnt_escape) feedback_set_details("round_end_result","halfwin - syndicate nuke - did not evacuate in time") world << "Total Annihilation" world << "[syndicate_name()] operatives destroyed [station_name()] but did not leave the area in time and got caught in the explosion. Next time, don't lose the disk!" - else if (!disk_rescued && !station_was_nuked && nuke_off_station && !syndies_didnt_escape) + else if (!disk_rescued && !station_was_nuked && nuke_off_station && !syndies_didnt_escape) feedback_set_details("round_end_result","halfwin - blew wrong station") world << "Crew Minor Victory" world << "[syndicate_name()] operatives secured the authentication disk but blew up something that wasn't [station_name()]. Next time, don't lose the disk!" - else if (!disk_rescued && !station_was_nuked && nuke_off_station && syndies_didnt_escape) + else if (!disk_rescued && !station_was_nuked && nuke_off_station && syndies_didnt_escape) feedback_set_details("round_end_result","halfwin - blew wrong station - did not evacuate in time") world << "[syndicate_name()] operatives have earned Darwin Award!" world << "[syndicate_name()] operatives blew up something that wasn't [station_name()] and got caught in the explosion. Next time, don't lose the disk!" - else if ( disk_rescued && is_operatives_are_dead()) + else if ( disk_rescued && are_operatives_dead()) feedback_set_details("round_end_result","loss - evacuation - disk secured - syndi team dead") world << "Crew Major Victory!" world << "The Research Staff has saved the disc and killed the [syndicate_name()] Operatives" - else if ( disk_rescued ) + else if ( disk_rescued ) feedback_set_details("round_end_result","loss - evacuation - disk secured") world << "Crew Major Victory" world << "The Research Staff has saved the disc and stopped the [syndicate_name()] Operatives!" - else if (!disk_rescued && is_operatives_are_dead()) + else if (!disk_rescued && are_operatives_dead()) feedback_set_details("round_end_result","loss - evacuation - disk not secured") world << "Syndicate Minor Victory!" world << "The Research Staff failed to secure the authentication disk but did manage to kill most of the [syndicate_name()] Operatives!" - else if (!disk_rescued && crew_evacuated) + else if (!disk_rescued && crew_evacuated) feedback_set_details("round_end_result","halfwin - detonation averted") world << "Syndicate Minor Victory!" world << "[syndicate_name()] operatives recovered the abandoned authentication disk but detonation of [station_name()] was averted. Next time, don't lose the disk!" - else if (!disk_rescued && !crew_evacuated) + else if (!disk_rescued && !crew_evacuated) feedback_set_details("round_end_result","halfwin - interrupted") world << "Neutral Victory" world << "Round was mysteriously interrupted!" @@ -297,7 +295,7 @@ text += "(Syndicates used [TC_uses] TC) [purchases]" - if(TC_uses==0 && station_was_nuked && !is_operatives_are_dead()) + if(TC_uses==0 && station_was_nuked && !are_operatives_dead()) text += "" world << text diff --git a/code/game/gamemodes/wizard/rightandwrong.dm b/code/game/gamemodes/wizard/rightandwrong.dm index 93f32bbf153..1d96ad8c791 100644 --- a/code/game/gamemodes/wizard/rightandwrong.dm +++ b/code/game/gamemodes/wizard/rightandwrong.dm @@ -1,7 +1,7 @@ //In this file: Summon Magic/Summon Guns/Summon Events /proc/rightandwrong(var/summon_type, var/mob/user, var/survivor_probability) //0 = Summon Guns, 1 = Summon Magic - var/list/gunslist = list("taser","egun","laser","revolver","detective","c20r","nuclear","deagle","gyrojet","pulse","suppressed","cannon","doublebarrel","shotgun","combatshotgun","bulldog","mateba","sabr","uzi","crossbow","saw","car") + var/list/gunslist = list("taser","egun","laser","revolver","detective","c20r","nuclear","deagle","gyrojet","pulse","suppressed","cannon","doublebarrel","shotgun","combatshotgun","bulldog","mateba","sabr","uzi","crossbow","saw","car","boltaction","speargun") var/list/magiclist = list("fireball","smoke","blind","mindswap","forcewall","knock","horsemask","charge", "summonitem", "wandnothing", "wanddeath", "wandresurrection", "wandpolymorph", "wandteleport", "wanddoor", "wandfireball", "staffchange", "staffhealing", "armor", "scrying", "staffdoor", "special") var/list/magicspeciallist = list("staffchange","staffanimation", "wandbelt", "contract", "staffchaos") @@ -40,10 +40,6 @@ new /obj/item/weapon/gun/projectile/revolver(get_turf(H)) if("detective") new /obj/item/weapon/gun/projectile/revolver/detective(get_turf(H)) - if("c20r") - new /obj/item/weapon/gun/projectile/automatic/c20r(get_turf(H)) - if("nuclear") - new /obj/item/weapon/gun/energy/gun/nuclear(get_turf(H)) if("deagle") new /obj/item/weapon/gun/projectile/automatic/pistol/deagle/camo(get_turf(H)) if("gyrojet") @@ -61,18 +57,38 @@ new /obj/item/weapon/gun/projectile/shotgun(get_turf(H)) if("combatshotgun") new /obj/item/weapon/gun/projectile/shotgun/combat(get_turf(H)) - if("bulldog") - new /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog(get_turf(H)) if("mateba") new /obj/item/weapon/gun/projectile/revolver/mateba(get_turf(H)) - if("sabr") - new /obj/item/weapon/gun/projectile/automatic(get_turf(H)) if("crossbow") - new /obj/item/weapon/gun/projectile/automatic/crossbow(get_turf(H)) + new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/large(get_turf(H)) + if("nuclear") + var/obj/item/weapon/gun/energy/gun/nuclear/gat + gat.pin = /obj/item/device/firing_pin //no authentication pins for spawned guns. fun allowed. + new gat(get_turf(H)) + if("sabr") + var/obj/item/weapon/gun/projectile/automatic/gat + gat.pin = /obj/item/device/firing_pin + new gat(get_turf(H)) + if("bulldog") + var/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/gat + gat.pin = /obj/item/device/firing_pin + new gat(get_turf(H)) + if("c20r") + var/obj/item/weapon/gun/projectile/automatic/c20r/gat + gat.pin = /obj/item/device/firing_pin + new gat(get_turf(H)) if("saw") - new /obj/item/weapon/gun/projectile/automatic/l6_saw(get_turf(H)) + var/obj/item/weapon/gun/projectile/automatic/l6_saw/gat + gat.pin = /obj/item/device/firing_pin + new gat(get_turf(H)) if("car") - new /obj/item/weapon/gun/projectile/automatic/m90(get_turf(H)) + var/obj/item/weapon/gun/projectile/automatic/m90/gat + gat.pin = /obj/item/device/firing_pin + new gat(get_turf(H)) + if("boltaction") + new /obj/item/weapon/gun/projectile/shotgun/boltaction(get_turf(H)) + if("speargun") + new /obj/item/weapon/gun/projectile/automatic/speargun(get_turf(H)) else switch (randomizemagic) if("fireball") diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index fc0d9721900..b9c9c43a3e3 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -1,5 +1,5 @@ /obj/item/device/soulstone - name = "Soul Stone Shard" + name = "soulstone shard" icon = 'icons/obj/wizard.dmi' icon_state = "soulstone" item_state = "electronic" @@ -8,11 +8,23 @@ slot_flags = SLOT_BELT origin_tech = "bluespace=4;materials=4" var/imprinted = "empty" + var/usability = 0 +/obj/item/device/soulstone/anybody + usability = 1 + +/obj/item/device/soulstone/pickup(mob/living/user as mob) + if(!iscultist(user) && !iswizard(user) && !usability) + user << "An overwhelming feeling of dread comes over you as you pick up the soulstone. It would be wise to be rid of this quickly." + user.Dizzy(120) //////////////////////////////Capturing//////////////////////////////////////////////////////// /obj/item/device/soulstone/attack(mob/living/carbon/human/M as mob, mob/user as mob) + if(!iscultist(user) && !iswizard(user) && !usability) + user.Paralyse(5) + user << "Your body is wracked with debilitating pain!" + return if(!istype(M, /mob/living/carbon/human))//If target is not a human. return ..() if(istype(M, /mob/living/carbon/human/dummy)) @@ -27,6 +39,10 @@ /obj/item/device/soulstone/attack_self(mob/user) if (!in_range(src, user)) return + if(!iscultist(user) && !iswizard(user) && !usability) + user.Paralyse(5) + user << "Your body is wracked with debilitating pain!" + return user.set_machine(src) var/dat = "Soul Stone
" for(var/mob/living/simple_animal/shade/A in src) @@ -59,10 +75,14 @@ for(var/mob/living/simple_animal/shade/A in src) A.status_flags &= ~GODMODE A.canmove = 1 - A << "You have been released from your prison, but you are still bound to [U.name]'s will. Help them suceed in their goals at all costs." A.loc = U.loc A.cancel_camera() src.icon_state = "soulstone" + if(iswizard(U) || usability) + A << "You have been released from your prison, but you are still bound to [U.name]'s will. Help them suceed in their goals at all costs." + else if(iscultist(U)) + A << "You have been released from your prison, but you are still bound to the cult's will. Help them suceed in their goals at all costs." + attack_self(U) ///////////////////////////Transferring to constructs///////////////////////////////////////////////////// @@ -177,7 +197,11 @@ proc/makeNewConstruct(var/mob/living/simple_animal/construct/ctype, var/mob/targ ticker.mode.cult+=newstruct.mind ticker.mode.update_cult_icons_added(newstruct.mind) newstruct << newstruct.playstyle_string - newstruct << "You are still bound to serve your creator, follow their orders and help them complete their goals at all costs." + if(stoner && iswizard(stoner)) + newstruct << "You are still bound to serve your creator, follow their orders and help them complete their goals at all costs." + else if(stoner && iscultist(stoner)) + newstruct << "You are still bound to serve the cult, follow their orders and help them complete their goals at all costs." + else newstruct << "You are still bound to serve your creator, follow their orders and help them complete their goals at all costs." newstruct.cancel_camera() @@ -203,7 +227,10 @@ proc/makeNewConstruct(var/mob/living/simple_animal/construct/ctype, var/mob/targ S.cancel_camera() C.icon_state = "soulstone2" C.name = "Soul Stone: [S.real_name]" - S << "Your soul has been captured! You are now bound to [U.name]'s will, help them suceed in their goals at all costs." + if(iswizard(U) || usability) + S << "Your soul has been captured! You are now bound to [U.name]'s will, help them suceed in their goals at all costs." + else if(iscultist(U)) + S << "Your soul has been captured! You are now bound to the cult's will, help them suceed in their goals at all costs." C.imprinted = "[S.name]" if(vic) U << "Capture successful!: [T.real_name]'s soul has been ripped from their body and stored within the soul stone." diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index 7fafb6f14f5..17727d00c2e 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -275,3 +275,6 @@ Made a proc so this is not repeated 14 (or more) times.*/ return 0 else return 1 + +/proc/iswizard(mob/living/M as mob) + return istype(M) && M.mind && ticker && ticker.mode && (M.mind in ticker.mode.wizards) diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index fdd010fd10f..11d280c0663 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -193,6 +193,14 @@ return get_all_centcom_access() if("Centcom Commander") return get_all_centcom_access() + if("Emergency Response Team Commander") + return list(access_cent_general) + if("Security Response Officer") + return list(access_cent_general) + if("Engineer Response Officer") + return list(access_cent_general) + if("Medical Response Officer") + return list(access_cent_general) /proc/get_all_accesses() return list(access_security, access_sec_doors, access_brig, access_armory, access_forensics_lockers, access_court, @@ -411,7 +419,7 @@ proc/get_all_job_icons() //For all existing HUD icons return get_all_jobs() + list("Prisoner") /proc/get_all_centcom_jobs() - return list("VIP Guest","Custodian","Thunderdome Overseer","Centcom Official","Medical Officer","Death Commando","Research Officer","Special Ops Officer","Admiral","Centcom Commander") + return list("VIP Guest","Custodian","Thunderdome Overseer","Centcom Official","Medical Officer","Death Commando","Research Officer","Special Ops Officer","Admiral","Centcom Commander","Emergency Response Team Commander","Security Response Officer","Engineer Response Officer", "Medical Response Officer") /obj/item/proc/GetJobName() //Used in secHUD icon generation var/obj/item/weapon/card/id/I = GetID() diff --git a/code/game/machinery/Freezer.dm b/code/game/machinery/Freezer.dm index 78a56a386f0..5889d0301a4 100644 --- a/code/game/machinery/Freezer.dm +++ b/code/game/machinery/Freezer.dm @@ -98,6 +98,7 @@ usr.set_machine(src) if (href_list["start"]) src.on = !src.on + use_power = 1 + src.on update_icon() if(href_list["temp"]) var/amount = text2num(href_list["temp"]) @@ -105,6 +106,7 @@ src.current_temperature = min(T20C, src.current_temperature+amount) else src.current_temperature = max(min_temperature, src.current_temperature+amount) + active_power_usage = (current_heat_capacity * (T20C - current_temperature) / 100) + idle_power_usage src.updateUsrDialog() /obj/machinery/atmospherics/unary/cold_sink/freezer/process() @@ -210,7 +212,8 @@ //user << browse(dat, "window=freezer;size=400x500") //onclose(user, "freezer") - var/datum/browser/popup = new(user, "freezer", "Cryo Gas Heating System", 400, 240) // Set up the popup browser window + var/datum/browser/popup = new(user, "freezer", "Pyro Gas Heating System", 400, 240) // Set up the popup browser window + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.set_content(dat) popup.open() @@ -221,13 +224,15 @@ usr.set_machine(src) if (href_list["start"]) src.on = !src.on + use_power = 1 + src.on update_icon() if(href_list["temp"]) var/amount = text2num(href_list["temp"]) if(amount > 0) - src.current_temperature = min((T20C+max_temperature), src.current_temperature+amount) + src.current_temperature = min((max_temperature), src.current_temperature+amount) else src.current_temperature = max(T20C, src.current_temperature+amount) + active_power_usage = (current_heat_capacity * (current_temperature - T20C) / 100) + idle_power_usage src.updateUsrDialog() src.add_fingerprint(usr) return diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 181536d3b6f..610708a9454 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -15,11 +15,10 @@ var/efficiency var/initial_bin_rating = 1 var/min_health = 25 - var/list/injection_chems = list() //list of injectable chems except inaprovaline, coz inaprovaline is always avalible - var/list/possible_chems = list(list("stoxin", "dexalin", "bicaridine", "kelotane"), - list("stoxin", "dexalinp", "bicaridine", "dermaline", "imidazoline"), - list("stoxin", "dexalinp", "bicaridine", "dermaline", "imidazoline", "anti_toxin", "ryetalyn", "alkysine", "arithrazine")) - + var/list/injection_chems = list() //list of injectable chems except ephedrine, coz ephedrine is always avalible + var/list/possible_chems = list(list("morphine", "salbutamol", "salglu_solution"), + list("morphine", "salbutamol", "salglu_solution", "oculine"), + list("morphine", "salbutamol", "salglu_solution", "oculine", "charcoal", "mutadone", "mannitol", "pen_acid")) /obj/machinery/sleeper/New() ..() component_parts = list() @@ -126,9 +125,9 @@ var/dat dat += "

Injector

" if(occupant) - dat += "Inject Inaprovaline" + dat += "Inject epinephrine" else - dat += "Inject Inaprovaline" + dat += "Inject epinephrine" if(occupant && occupant.health > min_health) for(var/re in injection_chems) var/datum/reagent/C = chemical_reagents_list[re] @@ -191,7 +190,7 @@ close_machine() return if(occupant && occupant.stat != DEAD) - if(href_list["inject"] == "inaprovaline" || occupant.health > min_health) + if(href_list["inject"] == "epinephrine" || occupant.health > min_health) inject_chem(usr, href_list["inject"]) else usr << "ERROR: Subject is not in stable condition for auto-injection." @@ -218,7 +217,7 @@ if(!is_operational()) return if(occupant && occupant.reagents) - if(chem in injection_chems + "inaprovaline") + if(chem in injection_chems + "epinephrine") if(occupant.reagents.get_reagent_amount(chem) + 10 <= 20 * efficiency) occupant.reagents.add_reagent(chem, 10) var/units = round(occupant.reagents.get_reagent_amount(chem)) @@ -228,4 +227,4 @@ if(state_open) icon_state = "sleeper-open" else - icon_state = "sleeper" + icon_state = "sleeper" \ No newline at end of file diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index f2472b632d2..71cd8c8cece 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -32,10 +32,10 @@ var/stationary_mode = 0 //If enabled, the Medibot will not move automatically. radio_frequency = MED_FREQ //Medical frequency //Setting which reagents to use to treat what by default. By id. - var/treatment_brute = "tricordrazine" - var/treatment_oxy = "tricordrazine" - var/treatment_fire = "tricordrazine" - var/treatment_tox = "tricordrazine" + var/treatment_brute = "salglu_solution" + var/treatment_oxy = "salbutamol" + var/treatment_fire = "salglu_solution" + var/treatment_tox = "charcoal" var/treatment_virus = "spaceacillin" var/treat_virus = 1 //If on, the bot will attempt to treat viral infections, curing them if possible. var/shut_up = 0 //self explanatory :) @@ -46,10 +46,10 @@ name = "\improper Mysterious Medibot" desc = "International Medibot of mystery." skin = "bezerk" - treatment_oxy = "dexalinp" - treatment_brute = "bicaridine" - treatment_fire = "kelotane" - treatment_tox = "anti_toxin" + treatment_oxy = "omnizine" + treatment_brute = "omnizine" + treatment_fire = "omnizine" + treatment_tox = "omnizine" /obj/item/weapon/firstaid_arm_assembly name = "incomplete medibot assembly." diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 5d68e0878bf..b7e7b31d012 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -218,8 +218,8 @@ src.occupant.adjustBrainLoss(-((speed_coeff/2))) //So clones don't die of oxyloss in a running pod. - if (src.occupant.reagents.get_reagent_amount("inaprovaline") < 30) - src.occupant.reagents.add_reagent("inaprovaline", 60) + if (src.occupant.reagents.get_reagent_amount("epinephrine") < 30) + src.occupant.reagents.add_reagent("epinephrine", 60) use_power(7500) //This might need tweaking. return diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index fa9295b00e8..b74a49d5d28 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -236,6 +236,10 @@ name = "circuit board (Slot Machine)" build_path = /obj/machinery/computer/slot_machine origin_tech = "programming=1" +/obj/item/weapon/circuitboard/libraryconsole + name = "circuit board (Library Visitor Console)" + build_path = /obj/machinery/computer/libraryconsole + origin_tech = "programming=1" /obj/item/weapon/circuitboard/supplycomp/attackby(obj/item/I as obj, mob/user as mob) @@ -272,6 +276,18 @@ user << "Defaulting access protocols." return +/obj/item/weapon/circuitboard/libraryconsole/attackby(obj/item/I as obj, mob/user as mob) + if(istype(I,/obj/item/weapon/screwdriver)) + if(build_path == /obj/machinery/computer/libraryconsole/bookmanagement) + name = "circuit board (Library Visitor Console)" + build_path = /obj/machinery/computer/libraryconsole + user << "Defaulting access protocols." + else + name = "circuit board (Book Inventory Management Console)" + build_path = /obj/machinery/computer/libraryconsole/bookmanagement + user << "Access protocols successfully updated." + return + /obj/item/weapon/circuitboard/shuttle/attackby(obj/item/I as obj, mob/user as mob) if(istype(I, /obj/item/device/multitool)) var/chosen_id = round(input(usr, "Choose an ID number (-1 for reset):", "Input an Integer", null) as num|null) diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 8486b010252..6f5f4334f02 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -63,7 +63,17 @@ proc/crewmonitor(mob/user,var/atom/source) jobs["Clown"] = 66 jobs["Mime"] = 67 jobs["Janitor"] = 68 - jobs["Assistant"] = 99 //Unknowns/custom jobs should appear after civilians, and before assistants + jobs["Lawyer"] = 69 + jobs["Admiral"] = 200 + jobs["Centcom Commander"] = 210 + jobs["Custodian"] = 211 + jobs["Medical Officer"] = 212 + jobs["Research Officer"] = 213 + jobs["Emergency Response Team Commander"] = 220 + jobs["Security Response Officer"] = 221 + jobs["Engineer Response Officer"] = 222 + jobs["Medical Response Officer"] = 223 + jobs["Assistant"] = 999 //Unknowns/custom jobs should appear after civilians, and before assistants var/t = "" var/list/logs = list() @@ -96,6 +106,8 @@ proc/crewmonitor(mob/user,var/atom/source) style += "color: #F1C40F; " //engineering if(ijob >= 50 && ijob < 60) style += "color: #F39C12; " //cargo + if(ijob >= 200 && ijob < 230) + style += "color: #00C100; " //Centcom log += "[ijob]]" //ijob does not get displayed, nor does it take up space, it's just used for the positioning of an entry else log += "80" diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm index c96d9a79714..da96e20f42a 100644 --- a/code/game/machinery/computer/message.dm +++ b/code/game/machinery/computer/message.dm @@ -460,7 +460,7 @@ customrecepient.tnote += "← From [customsender] ([customjob]):
[custommessage]
" if (!customrecepient.silent) playsound(customrecepient.loc, 'sound/machines/twobeep.ogg', 50, 1) - customrecepient.loc.audible_message("\icon[customrecepient] *[customrecepient.ttone]*", null, 3) + customrecepient.audible_message("\icon[customrecepient] *[customrecepient.ttone]*", null, 3) if( customrecepient.loc && ishuman(customrecepient.loc) ) var/mob/living/carbon/human/H = customrecepient.loc H << "\icon[customrecepient] Message from [customsender] ([customjob]), \"[custommessage]\" (Reply)" @@ -473,7 +473,7 @@ customrecepient.tnote += "← From [PDARec.owner] ([customjob]):
[custommessage]
" if (!customrecepient.silent) playsound(customrecepient.loc, 'sound/machines/twobeep.ogg', 50, 1) - customrecepient.loc.audible_message("\icon[customrecepient] *[customrecepient.ttone]*", null, 3) + customrecepient.audible_message("\icon[customrecepient] *[customrecepient.ttone]*", null, 3) if( customrecepient.loc && ishuman(customrecepient.loc) ) var/mob/living/carbon/human/H = customrecepient.loc H << "\icon[customrecepient] Message from [PDARec.owner] ([customjob]), \"[custommessage]\" (Reply)" diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 2259b631491..45579d38889 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -382,6 +382,15 @@ to destroy them and players will be able to make replacements. /obj/item/weapon/stock_parts/console_screen = 1, /obj/item/weapon/stock_parts/cell = 1) +/obj/item/weapon/circuitboard/chem_heater + name = "circuit board (Chemical Heater)" + build_path = /obj/machinery/chem_heater + board_type = "machine" + origin_tech = "materials=2;engineering=2" + req_components = list( + /obj/item/weapon/stock_parts/manipulator = 1, + /obj/item/weapon/stock_parts/console_screen = 1) + //Almost the same recipe as destructive analyzer to give people choices. /obj/item/weapon/circuitboard/experimentor name = "circuit board (E.X.P.E.R.I-MENTOR)" @@ -603,4 +612,4 @@ obj/item/weapon/circuitboard/rdserver origin_tech = "programming=1;engineering=2" req_components = list( /obj/item/weapon/stock_parts/console_screen = 1, - /obj/item/weapon/stock_parts/matter_bin = 3) \ No newline at end of file + /obj/item/weapon/stock_parts/matter_bin = 3) diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index ae846787d06..68ca61280e7 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -47,6 +47,10 @@ /obj/machinery/atmospherics/unary/cryo_cell/process() ..() + if(occupant) + if(occupant.health >= 100) + on = 0 + open_machine() if(!node || !is_operational()) return if(!on) @@ -61,7 +65,6 @@ if(occupant) if(occupant.stat != 2) process_occupant() - if(abs(temperature_archived-air_contents.temperature) > 1) parent.update = 1 diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index f3e5dad90ca..bc533479088 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -125,6 +125,9 @@ Class Procs: dropContents() ..() +/obj/machinery/proc/locate_machinery() + return + /obj/machinery/process()//If you dont use process or power why are you here return PROCESS_KILL diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index f9e55ea906e..cd62f49c314 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -795,9 +795,9 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co qdel(src) return - if (src.isbroken) + if (isbroken) playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 100, 1) - src.loc.audible_message("[user.name] further abuses the shattered [src.name].", null, 5 ) + audible_message("[user.name] further abuses the shattered [src.name].", null, 5 ) else if(istype(I, /obj/item/weapon) ) user.do_attack_animation(src) @@ -805,16 +805,16 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co if(W.damtype == STAMINA) return if(W.force <15) - src.loc.audible_message("[user.name] hits the [src.name] with the [W.name] with no visible effect.", null , 5 ) + audible_message("[user.name] hits the [src.name] with the [W.name] with no visible effect.", null , 5 ) playsound(src.loc, 'sound/effects/Glasshit.ogg', 100, 1) else - src.hitstaken++ - if(src.hitstaken==3) - src.loc.audible_message("[user.name] smashes the [src.name]!", null, 5 ) - src.isbroken=1 + hitstaken++ + if(hitstaken==3) + audible_message("[user.name] smashes the [src.name]!", null, 5 ) + isbroken=1 playsound(src.loc, 'sound/effects/Glassbr3.ogg', 100, 1) else - src.loc.audible_message("[user.name] forcefully slams the [src.name] with the [I.name]!", null, 5 ) + audible_message("[user.name] forcefully slams the [src.name] with the [I.name]!", null, 5 ) playsound(src.loc, 'sound/effects/Glasshit.ogg', 100, 1) else user << "This does nothing." diff --git a/code/game/machinery/pipe/pipe_dispenser.dm b/code/game/machinery/pipe/pipe_dispenser.dm index 2ee4138a9ab..9fc80e1f630 100644 --- a/code/game/machinery/pipe/pipe_dispenser.dm +++ b/code/game/machinery/pipe/pipe_dispenser.dm @@ -170,29 +170,13 @@ Nah if(href_list["dmake"]) if(!wait) var/p_type = text2num(href_list["dmake"]) - var/obj/structure/disposalconstruct/C = new (src.loc) - switch(p_type) - if(0) - C.ptype = 0 - if(1) - C.ptype = 1 - if(2) - C.ptype = 2 - if(3) - C.ptype = 4 - if(4) - C.ptype = 5 - if(5) - C.ptype = 6 - C.density = 1 - if(6) - C.ptype = 7 - C.density = 1 - if(7) - C.ptype = 8 - C.density = 1 - if(8) - C.ptype = 9 + var/obj/structure/disposalconstruct/C = new (src.loc,p_type+1) + + if(!C.can_place()) + usr << "There's not enough room to build that here!" + qdel(C) + return + C.add_fingerprint(usr) C.update() wait = 1 diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index 58d962377aa..7fdef2fbeb4 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -81,6 +81,30 @@ MASK_TYPE = /obj/item/clothing/mask/gas/syndicate STORAGE_TYPE = /obj/item/weapon/tank/jetpack/oxygen/harness +/obj/machinery/suit_storage_unit/ertCom + SUIT_TYPE = /obj/item/clothing/suit/space/ert + HELMET_TYPE = /obj/item/clothing/head/helmet/space/hardsuit/ert + MASK_TYPE = /obj/item/clothing/mask/breath + STORAGE_TYPE = /obj/item/weapon/tank/emergency_oxygen/double + +/obj/machinery/suit_storage_unit/ertSec + SUIT_TYPE = /obj/item/clothing/suit/space/ert/sec + HELMET_TYPE = /obj/item/clothing/head/helmet/space/hardsuit/ert/sec + MASK_TYPE = /obj/item/clothing/mask/breath + STORAGE_TYPE = /obj/item/weapon/tank/emergency_oxygen/double + +/obj/machinery/suit_storage_unit/ertEngi + SUIT_TYPE = /obj/item/clothing/suit/space/ert/engi + HELMET_TYPE = /obj/item/clothing/head/helmet/space/hardsuit/ert/engi + MASK_TYPE = /obj/item/clothing/mask/breath + STORAGE_TYPE = /obj/item/weapon/tank/emergency_oxygen/double + +/obj/machinery/suit_storage_unit/ertMed + SUIT_TYPE = /obj/item/clothing/suit/space/ert/med + HELMET_TYPE = /obj/item/clothing/head/helmet/space/hardsuit/ert/med + MASK_TYPE = /obj/item/clothing/mask/breath + STORAGE_TYPE = /obj/item/weapon/tank/emergency_oxygen/double + /obj/machinery/suit_storage_unit/New() src.update_icon() if(SUIT_TYPE) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 1755280de31..87c58d69888 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -764,11 +764,11 @@ icon_deny = "med-deny" product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!" req_access_txt = "5" - products = list(/obj/item/weapon/reagent_containers/glass/bottle/antitoxin = 4,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline = 4, - /obj/item/weapon/reagent_containers/glass/bottle/stoxin = 4,/obj/item/weapon/reagent_containers/glass/bottle/toxin = 4, + products = list(/obj/item/weapon/reagent_containers/glass/bottle/charcoal = 4,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine = 4, + /obj/item/weapon/reagent_containers/glass/bottle/morphine = 4,/obj/item/weapon/reagent_containers/glass/bottle/toxin = 4, /obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/syringe = 12,/obj/item/weapon/reagent_containers/hypospray/medipen = 5, /obj/item/device/healthanalyzer = 5,/obj/item/weapon/reagent_containers/glass/beaker = 4, /obj/item/weapon/reagent_containers/dropper = 2, /obj/item/device/sensor_device = 2) - contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3,/obj/item/weapon/reagent_containers/pill/stox = 4,/obj/item/weapon/reagent_containers/pill/antitox = 6) + contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3,/obj/item/weapon/reagent_containers/pill/morphine = 4,/obj/item/weapon/reagent_containers/pill/charcoal = 6) //This one's from bay12 @@ -787,8 +787,8 @@ icon_deny = "wallmed-deny" req_access_txt = "5" density = 0 //It is wall-mounted, and thus, not dense. --Superxpdude - products = list(/obj/item/stack/medical/bruise_pack = 2,/obj/item/stack/medical/ointment = 2,/obj/item/weapon/reagent_containers/hypospray/medipen = 4,/obj/item/device/healthanalyzer = 1) - contraband = list(/obj/item/weapon/reagent_containers/syringe/antitoxin = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/pill/tox = 1) + products = list(/obj/item/weapon/reagent_containers/pill/patch/styptic = 2,/obj/item/weapon/reagent_containers/pill/patch/silver_sulf = 2,/obj/item/weapon/reagent_containers/hypospray/medipen = 4,/obj/item/device/healthanalyzer = 1) + contraband = list(/obj/item/weapon/reagent_containers/syringe/charcoal = 4,/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/pill/tox = 1) /obj/machinery/vending/wallmed2 name = "\improper NanoMed" @@ -797,8 +797,8 @@ icon_deny = "wallmed-deny" req_access_txt = "5" density = 0 //It is wall-mounted, and thus, not dense. --Superxpdude - products = list(/obj/item/weapon/reagent_containers/hypospray/medipen = 5,/obj/item/weapon/reagent_containers/syringe/antitoxin = 3,/obj/item/stack/medical/bruise_pack = 3, - /obj/item/stack/medical/ointment =3,/obj/item/device/healthanalyzer = 3) + products = list(/obj/item/weapon/reagent_containers/hypospray/medipen = 5,/obj/item/weapon/reagent_containers/syringe/charcoal = 3,/obj/item/weapon/reagent_containers/pill/patch/styptic = 3, + /obj/item/weapon/reagent_containers/pill/patch/silver_sulf =3,/obj/item/device/healthanalyzer = 3) contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3) /obj/machinery/vending/security @@ -970,7 +970,7 @@ /obj/item/clothing/under/suit_jacket/really_black=2,/obj/item/clothing/under/pants/jeans=3,/obj/item/clothing/under/pants/classicjeans=2, /obj/item/clothing/under/pants/camo = 1,/obj/item/clothing/under/pants/blackjeans=2,/obj/item/clothing/under/pants/khaki=2, /obj/item/clothing/under/pants/white=2,/obj/item/clothing/under/pants/red=1,/obj/item/clothing/under/pants/black=2, - /obj/item/clothing/under/pants/tan=2,/obj/item/clothing/under/pants/blue=1,/obj/item/clothing/under/pants/track=1, + /obj/item/clothing/under/pants/tan=2,/obj/item/clothing/under/pants/track=1, /obj/item/clothing/tie/scarf/red=1,/obj/item/clothing/tie/scarf/green=1,/obj/item/clothing/tie/scarf/darkblue=1, /obj/item/clothing/tie/scarf/purple=1,/obj/item/clothing/tie/scarf/yellow=1,/obj/item/clothing/tie/scarf/orange=1, /obj/item/clothing/tie/scarf/lightblue=1,/obj/item/clothing/tie/scarf/white=1,/obj/item/clothing/tie/scarf/black=1, diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index 5208671d792..975c262692b 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -232,8 +232,8 @@ M.AdjustStunned(-4) M.AdjustWeakened(-4) M.AdjustStunned(-4) - if(M.reagents.get_reagent_amount("inaprovaline") < 5) - M.reagents.add_reagent("inaprovaline", 5) + if(M.reagents.get_reagent_amount("epinephrine") < 5) + M.reagents.add_reagent("epinephrine", 5) S.chassis.use_power(S.energy_drain) S.update_equip_info() return @@ -241,7 +241,7 @@ /obj/item/mecha_parts/mecha_equipment/tool/syringe_gun name = "exosuit syringe gun" desc = "Equipment for medical exosuits. A chem synthesizer with syringe gun. Reagents inside are held in stasis, so no reactions will occur." - icon = 'icons/obj/gun.dmi' + icon = 'icons/obj/guns/projectile.dmi' icon_state = "syringegun" var/list/syringes var/list/known_reagents @@ -260,7 +260,7 @@ ..() flags |= NOREACT syringes = new - known_reagents = list("inaprovaline"="Inaprovaline","anti_toxin"="Anti-Toxin (Dylovene)") + known_reagents = list("epinephrine"="Epinephrine","charcoal"="Charcoal") processed_reagents = new create_reagents(max_volume) synth = new (list(src),0) diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index 1cc0b25e9cc..33280a3a7fb 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -417,7 +417,7 @@ name = "mousetrap mortar" desc = "Equipment for clown exosuits. Launches armed mousetraps." icon_state = "mecha_mousetrapmrtr" - projectile = /obj/item/device/assembly/mousetrap + projectile = /obj/item/device/assembly/mousetrap/armed fire_sound = 'sound/items/bikehorn.ogg' projectiles = 15 missile_speed = 1.5 @@ -433,7 +433,7 @@ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/mousetrap_mortar/action(target) if(!action_checks(target)) return set_ready_state(0) - var/obj/item/device/assembly/mousetrap/M = new projectile(chassis.loc) + var/obj/item/device/assembly/mousetrap/armed/M = new projectile(chassis.loc) M.secured = 1 playsound(chassis, fire_sound, 60, 1) M.throw_at(target, missile_range, missile_speed) diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm new file mode 100644 index 00000000000..c8dca0a0e5a --- /dev/null +++ b/code/game/objects/buckling.dm @@ -0,0 +1,98 @@ + + +/obj + var/can_buckle = 0 + var/buckle_lying = -1 //bed-like behaviour, forces mob.lying = buckle_lying if != -1 + var/buckle_requires_restraints = 0 //require people to be handcuffed before being able to buckle. eg: pipes + var/mob/living/buckled_mob = null + + +//Interaction +/obj/attack_hand(mob/living/user) + . = ..() + if(can_buckle && buckled_mob) + user_unbuckle_mob(user) + +/obj/MouseDrop_T(mob/living/M, mob/living/user) + . = ..() + if(can_buckle && istype(M)) + user_buckle_mob(M, user) + + +//Cleanup +/obj/Destroy() + . = ..() + unbuckle_mob() + +/obj/Del() + . = ..() + unbuckle_mob() + + +//procs that handle the actual buckling and unbuckling +/obj/proc/buckle_mob(mob/living/M) + if(!can_buckle || !istype(M) || (M.loc != loc) || M.buckled || (buckle_requires_restraints && !M.restrained())) + return 0 + + M.buckled = src + M.dir = dir + buckled_mob = M + M.update_canmove() + post_buckle_mob(M) + return 1 + +/obj/proc/unbuckle_mob() + if(buckled_mob && buckled_mob.buckled == src) + . = buckled_mob + buckled_mob.buckled = null + buckled_mob.anchored = initial(buckled_mob.anchored) + buckled_mob.update_canmove() + buckled_mob = null + + post_buckle_mob(.) + + +//Handle any extras after buckling/unbuckling +//Called on buckle_mob() and unbuckle_mob() +/obj/proc/post_buckle_mob(mob/living/M) + return + + +//Wrapper procs that handle sanity and user feedback +/obj/proc/user_buckle_mob(mob/living/M, mob/user) + if(!user.Adjacent(M) || user.restrained() || user.lying || user.stat) + return + + add_fingerprint(user) + unbuckle_mob() + + if(buckle_mob(M)) + if(M == user) + M.visible_message(\ + "[M.name] buckles themselves to [src].",\ + "You buckle yourself to [src].",\ + "You hear metal clanking.") + else + M.visible_message(\ + "[M.name] is buckled to [src] by [user.name]!",\ + "You are buckled to [src] by [user.name]!",\ + "You heat metal clanking.") + +/obj/proc/user_unbuckle_mob(mob/user) + var/mob/living/M = unbuckle_mob() + + if(M) + if(M != user) + M.visible_message(\ + "[M.name] was unbuckled by [user.name]!",\ + "You were unbuckled from [src] by [user.name].",\ + "You hear metal clanking.") + else + M.visible_message(\ + "[M.name] unbuckled themselves!",\ + "You unbuckled yourself from [src].",\ + "You hear metal clanking.") + add_fingerprint(user) + return M + + diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index b7eacdc89d5..1fa64b3c89c 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -59,6 +59,10 @@ deathsquadspawn += loc qdel(src) return + if("Emergencyresponseteam") + emergencyresponseteamspawn += loc + qdel(src) + return if("xeno_spawn") xeno_spawn += loc qdel(src) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index fb1e6fc5e0e..3fc05862b2a 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -771,6 +771,9 @@ var/global/list/obj/item/device/pda/PDAs = list() var/t = msg_input(U) + if (!t) + return + if (last_text && world.time < last_text + 5) return @@ -809,7 +812,7 @@ var/global/list/obj/item/device/pda/PDAs = list() if (!P.silent) playsound(P.loc, 'sound/machines/twobeep.ogg', 50, 1) - P.loc.audible_message("\icon[P] *[P.ttone]*", null, 3) + P.audible_message("\icon[P] *[P.ttone]*", null, 3) //Search for holder of the PDA. var/mob/living/L = null if(P.loc && isliving(P.loc)) @@ -1150,7 +1153,7 @@ var/global/list/obj/item/device/pda/PDAs = list() else ntrclog[channel] = msg + ntrclog[channel] if (findtext(message, nick) && !silent) - loc.audible_message("\icon[src] *[ttone]*", null, 3) + audible_message("\icon[src] *[ttone]*", null, 3) new_ntrc_msg++ /obj/item/device/pda/proc/setup_chatrooms() //this can't be done on New() because the messaging server needs to be instanced first diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index 503608f6663..24eae9b83a9 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -62,7 +62,7 @@ if(href_list["request"]) src.looking_for_personality = 1 - paiController.findPAI(src, usr) + SSpai.findPAI(src, usr) if(pai) if(href_list["setdna"]) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 976bdb5b3c7..1c665893f85 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -151,8 +151,8 @@ MASS SPECTROMETER if(!(D.visibility_flags & HIDDEN_SCANNER)) user.show_message("Warning: [D.form] Detected\nName: [D.name].\nType: [D.spread_text].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure_text]", 1) - if (M.reagents && M.reagents.get_reagent_amount("inaprovaline")) - user.show_message("Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals.", 1) + if (M.reagents && M.reagents.get_reagent_amount("epinephrine")) + user.show_message("Bloodstream Analysis located [M.reagents:get_reagent_amount("epinephrine")] units of rejuvenation chemicals.", 1) if (M.getBrainLoss() >= 100 || !M.getorgan(/obj/item/organ/brain)) user.show_message("Subject brain function is non-existant.", 1) else if (M.getBrainLoss() >= 60) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 6e128060017..60f841993df 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -112,7 +112,7 @@ /obj/item/toy/gun name = "cap gun" desc = "Looks almost like the real thing! Ages 8 and up. Please recycle in an autolathe when you're out of caps." - icon = 'icons/obj/gun.dmi' + icon = 'icons/obj/guns/projectile.dmi' icon_state = "revolver" item_state = "gun" flags = CONDUCT @@ -189,8 +189,8 @@ /obj/item/toy/crossbow name = "foam dart crossbow" desc = "A weapon favored by many overactive children. Ages 8 and up." - icon = 'icons/obj/gun.dmi' - icon_state = "crossbow" + icon = 'icons/obj/guns/energy.dmi' + icon_state = "crossbow100" item_state = "crossbow" w_class = 2.0 attack_verb = list("attacked", "struck", "hit") diff --git a/code/game/objects/items/weapons/RPD.dm b/code/game/objects/items/weapons/RPD.dm index 67e34d91428..b16acd7a48e 100644 --- a/code/game/objects/items/weapons/RPD.dm +++ b/code/game/objects/items/weapons/RPD.dm @@ -528,33 +528,18 @@ var/global/list/RPD_recipes=list( user << "Building Pipes..." playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1) if(do_after(user, 20)) + var/obj/structure/disposalconstruct/C = new (A,p_type+1) + + if(!C.can_place()) + user << "There's not enough room to build that here!" + qdel(C) + return 0 + activate() - var/obj/structure/disposalconstruct/C = new (A) // This may still produce runtimes, but I checked and /obj/structure/disposalconstruct // DOES have a dir property, inherited from /obj/structure. - N3X C.dir=p_dir - switch(p_type) - if(0) - C.ptype = 0 - if(1) - C.ptype = 1 - if(2) - C.ptype = 2 - if(3) - C.ptype = 4 - if(4) - C.ptype = 5 - if(5) - C.ptype = 6 - C.density = 1 - if(6) - C.ptype = 7 - C.density = 1 - if(7) - C.ptype = 8 - C.density = 1 - if(8) - C.ptype = 9 + C.add_fingerprint(usr) C.update() return 1 diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index f60e88d11e4..6cb72c98d44 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -190,6 +190,37 @@ update_label("John Doe", "Clowny") New() access = get_all_centcom_access() ..() +/obj/item/weapon/card/id/ertsCommand + name = "\improper Centcom ID" + desc = "A ERT ID card" + icon_state = "centcom" + registered_name = "Emergency Response Team Commander" + assignment = "Emergency Response Team Commander" + access = list(access_sec_doors, access_engine, access_medical) + +/obj/item/weapon/card/id/ertsSecurity + name = "\improper Centcom ID" + desc = "A ERT ID card" + icon_state = "centcom" + registered_name = "Security Response Officer" + assignment = "Security Response Officer" + access = list(access_sec_doors) + +/obj/item/weapon/card/id/ertsEngineer + name = "\improper Centcom ID" + desc = "A ERT ID card" + icon_state = "centcom" + registered_name = "Engineer Response Officer" + assignment = "Engineer Response Officer" + access = list(access_engine) + +/obj/item/weapon/card/id/ertsMedical + name = "\improper Centcom ID" + desc = "A ERT ID card" + icon_state = "centcom" + registered_name = "Medical Response Officer" + assignment = "Medical Response Officer" + access = list(access_medical) /obj/item/weapon/card/id/prisoner name = "prisoner ID card" diff --git a/code/game/objects/items/weapons/chrono_eraser.dm b/code/game/objects/items/weapons/chrono_eraser.dm new file mode 100644 index 00000000000..bcf7d80f5c5 --- /dev/null +++ b/code/game/objects/items/weapons/chrono_eraser.dm @@ -0,0 +1,264 @@ +#define CHRONO_BEAM_RANGE 3 +#define CHRONO_FRAME_COUNT 22 +/obj/item/weapon/chrono_eraser + name = "Timestream Eradication Device" + desc = "The result of outlawed time-bluespace research, this device is capable of wiping a being from the timestream. They never are, they never were, they never will be." + icon = 'icons/obj/chronos.dmi' + icon_state = "chronobackpack" + item_state = "backpack" + w_class = 4.0 + slot_flags = SLOT_BACK + slowdown = 1 + action_button_name = "Equip/Unequip TED Gun" + var/obj/item/weapon/gun/energy/chrono_gun/PA = null + var/list/erased_minds = list() //a collection of minds from the dead + +/obj/item/weapon/chrono_eraser/proc/pass_mind(var/datum/mind/M) + erased_minds += M + +/obj/item/weapon/chrono_eraser/dropped() + if(PA) + qdel(PA) + +/obj/item/weapon/chrono_eraser/Destroy() + dropped() + ..() + +/obj/item/weapon/chrono_eraser/ui_action_click() + var/mob/living/carbon/user = src.loc + if(iscarbon(user) && (user.back == src)) + if(PA) + qdel(PA) + else + PA = new(src) + user.put_in_hands(PA) + + + +/obj/item/weapon/gun/energy/chrono_gun + name = "T.E.D. Projection Apparatus" + desc = "It's as if they never existed in the first place." + icon = 'icons/obj/chronos.dmi' + icon_state = "chronogun" + item_state = "chronogun" + w_class = 3.0 + flags = NODROP + ammo_type = list(/obj/item/ammo_casing/energy/chrono_beam) + fire_delay = 50 + var/obj/item/weapon/chrono_eraser/TED = null + var/obj/effect/chrono_field/field = null + var/turf/startpos = null + +/obj/item/weapon/gun/energy/chrono_gun/New(var/obj/item/weapon/chrono_eraser/T) + . = ..() + if(istype(T)) + TED = T + else //admin must have spawned it + TED = new(src.loc) + qdel(src) + +/obj/item/weapon/gun/energy/chrono_gun/dropped() + qdel(src) + +/obj/item/weapon/gun/energy/chrono_gun/update_icon() + return + +/obj/item/weapon/gun/energy/chrono_gun/process_fire() + if(field) + field_disconnect(field) + ..() + +/obj/item/weapon/gun/energy/chrono_gun/Destroy() + if(TED) + TED.PA = null + TED = null + if(field) + field_disconnect(field) + ..() + +/obj/item/weapon/gun/energy/chrono_gun/proc/field_connect(var/obj/effect/chrono_field/F) + var/mob/living/user = src.loc + if(F.gun) + if(isliving(user) && F.captured) + user << "FAIL: [F.captured] already has an existing connection." + src.field_disconnect(F) + else + startpos = get_turf(src) + field = F + F.gun = src + if(isliving(user) && F.captured) + user << "Connection established with target: [F.captured]" + + +/obj/item/weapon/gun/energy/chrono_gun/proc/field_disconnect(var/obj/effect/chrono_field/F) + if(F && field == F) + var/mob/living/user = src.loc + if(F.gun == src) + F.gun = null + if(isliving(user) && F.captured) + user << "Disconnected from target: [F.captured]" + field = null + startpos = null + +/obj/item/weapon/gun/energy/chrono_gun/proc/field_check(var/obj/effect/chrono_field/F) + if(F) + if(field == F) + var/turf/currentpos = get_turf(src) + var/mob/living/user = src.loc + if((currentpos == startpos) && (field in view(CHRONO_BEAM_RANGE, currentpos)) && !user.lying && (user.stat == CONSCIOUS)) + return 1 + field_disconnect(F) + return 0 + +/obj/item/weapon/gun/energy/chrono_gun/proc/pass_mind(var/datum/mind/M) + if(TED) + TED.pass_mind(M) + + +/obj/item/projectile/energy/chrono_beam + name = "eradication beam" + icon_state = "chronobolt" + range = CHRONO_BEAM_RANGE + color = null + nodamage = 1 + var/obj/item/weapon/gun/energy/chrono_gun/gun = null + +/obj/item/projectile/energy/chrono_beam/fire() + gun = firer.get_active_hand() + if(istype(gun)) + return ..() + else + return 0 + +/obj/item/projectile/energy/chrono_beam/on_hit(var/atom/target) + if(target && gun && isliving(target)) + var/obj/effect/chrono_field/F = new(target.loc, target, gun) + gun.field_connect(F) + + +/obj/item/ammo_casing/energy/chrono_beam + name = "eradication beam" + projectile_type = /obj/item/projectile/energy/chrono_beam + icon_state = "chronobolt" + e_cost = 0 + + +/obj/effect/chrono_field + name = "eradication field" + desc = "An aura of time-bluespace energy." + icon = 'icons/effects/effects.dmi' + icon_state = "chronofield" + density = 1 + anchored = 1 + unacidable = 1 + blend_mode = BLEND_MULTIPLY + var/mob/living/captured = null + var/obj/item/weapon/gun/energy/chrono_gun/gun = null + var/tickstokill = 30 + var/image/mob_underlay = null + var/preloaded = 0 + var/RPpos = null + +/obj/effect/chrono_field/New(loc, var/mob/living/target, var/obj/item/weapon/gun/energy/chrono_gun/G) + if(target && isliving(target) && G) + target.loc = src + src.captured = target + var/icon/mob_snapshot = getFlatIcon(target) + var/icon/cached_icon = new() + + for(var/i=1, i<=CHRONO_FRAME_COUNT, i++) + var/icon/removing_frame = icon('icons/obj/chronos.dmi', "erasing", SOUTH, i) + var/icon/mob_icon = icon(mob_snapshot) + mob_icon.Blend(removing_frame, ICON_MULTIPLY) + cached_icon.Insert(mob_icon, "frame[i]") + + mob_underlay = new(cached_icon, "frame1") + update_icon() + + desc = initial(desc) + "
It appears to contain [target.name]." + SSobj.processing.Add(src) + +/obj/effect/chrono_field/Destroy() + if(gun && gun.field_check(src)) + gun.field_disconnect(src) + ..() + +/obj/effect/chrono_field/update_icon() + var/ttk_frame = 1 - (tickstokill / initial(tickstokill)) + ttk_frame = Clamp(Ceiling(ttk_frame * CHRONO_FRAME_COUNT), 1, CHRONO_FRAME_COUNT) + if(ttk_frame != RPpos) + RPpos = ttk_frame + mob_underlay.icon_state = "frame[RPpos]" + underlays = list() //hack: BYOND refuses to update the underlay to match the icon_state otherwise + underlays += mob_underlay + +/obj/effect/chrono_field/process() + if(captured) + if(tickstokill > initial(tickstokill)) + for(var/atom/movable/AM in contents) + AM.loc = loc + qdel(src) + else if(tickstokill <= 0) + captured << "As the last essence of your being is erased from time, you begin to re-experience your most enjoyable memory. You feel happy..." + var/mob/dead/observer/ghost = captured.ghostize(1) + if(captured.mind) + if(ghost) + ghost.mind = null + if(gun) + gun.pass_mind(captured.mind) + qdel(captured) + qdel(src) + else + captured.Paralyse(4) + if(captured.reagents) + captured.reagents.del_reagent("synaptizine") //you pesky thing you + if(captured.loc != src) //If they manage to escape, immediately kill them, this is so that even if there IS a way to get out, they won't use it + captured.loc = src + tickstokill = 0 + return .() + update_icon() + if(gun) + if(gun.field_check(src)) + tickstokill-- + else + gun = null + return .() + else + tickstokill++ + else + qdel(src) + +/obj/effect/chrono_field/bullet_act(var/obj/item/projectile/P) + if(istype(P, /obj/item/projectile/energy/chrono_beam)) + var/obj/item/projectile/energy/chrono_beam/beam = P + var/obj/item/weapon/gun/energy/chrono_gun/Pgun = beam.gun + if(Pgun && istype(Pgun)) + Pgun.field_connect(src) + else + return 0 + +/obj/effect/chrono_field/assume_air() + return 0 + +/obj/effect/chrono_field/return_air() //we always have nominal air and temperature + var/datum/gas_mixture/GM = new + GM.oxygen = MOLES_O2STANDARD + GM.nitrogen = MOLES_N2STANDARD + GM.temperature = T20C + return GM + +/obj/effect/chrono_field/Move() + return + +/obj/effect/chrono_field/singularity_act() + return + +/obj/effect/chrono_field/ex_act() + return + +/obj/effect/chrono_field/blob_act() + return + + +#undef CHRONO_BEAM_RANGE +#undef CHRONO_FRAME_COUNT \ No newline at end of file diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index c3eb29eea81..ded1bc0db3f 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -249,4 +249,149 @@ desc = "Will make you...less hairy." New() ..() - remove_mutations.Add(mutations_list[RACEMUT]) \ No newline at end of file + remove_mutations.Add(mutations_list[RACEMUT]) + +/obj/item/weapon/dnainjector/antistealth + name = "\improper DNA injector (Anti-Cloak Of Darkness)" + New() + ..() + remove_mutations.Add(mutations_list[STEALTH]) + +/obj/item/weapon/dnainjector/stealthmut + name = "\improper DNA injector (Cloak of Darkness)" + desc = "Enables the subject to bend low levels of light around themselves, creating a cloaking effect." + New() + ..() + add_mutations.Add(mutations_list[STEALTH]) + +/obj/item/weapon/dnainjector/antichameleon + name = "\improper DNA injector (Anti-Chameleon)" + New() + ..() + remove_mutations.Add(mutations_list[CHAMELEON]) + +/obj/item/weapon/dnainjector/chameleonmut + name = "\improper DNA injector (Chameleon)" + New() + ..() + add_mutations.Add(mutations_list[CHAMELEON]) + +/obj/item/weapon/dnainjector/antiwacky + name = "\improper DNA injector (Anti-Wacky)" + New() + ..() + remove_mutations.Add(mutations_list[WACKY]) + +/obj/item/weapon/dnainjector/wackymut + name = "\improper DNA injector (Wacky)" + New() + ..() + add_mutations.Add(mutations_list[WACKY]) + +/obj/item/weapon/dnainjector/antijoke + name = "\improper DNA injector (Anti-joke)" + New() + ..() + remove_mutations.Add(mutations_list[JOKE]) + +/obj/item/weapon/dnainjector/jokemut + name = "\improper DNA injector (Joke)" + New() + ..() + add_mutations.Add(mutations_list[JOKE]) + +/obj/item/weapon/dnainjector/antipapyrus + name = "\improper DNA injector (Anti-Papyrus)" + New() + ..() + remove_mutations.Add(mutations_list[PAPYRUS]) + +/obj/item/weapon/dnainjector/papyrusmut + name = "\improper DNA injector (Papyrus)" + New() + ..() + add_mutations.Add(mutations_list[PAPYRUS]) + +/obj/item/weapon/dnainjector/antivineta + name = "\improper DNA injector (Anti-Vineta)" + New() + ..() + remove_mutations.Add(mutations_list[VINETA]) + +/obj/item/weapon/dnainjector/vinetamut + name = "\improper DNA injector (Vineta)" + New() + ..() + add_mutations.Add(mutations_list[VINETA]) + +/obj/item/weapon/dnainjector/antimute + name = "\improper DNA injector (Anti-Mute)" + New() + ..() + remove_mutations.Add(mutations_list[MUT_MUTE]) + +/obj/item/weapon/dnainjector/mutemut + name = "\improper DNA injector (Mute)" + New() + ..() + add_mutations.Add(mutations_list[MUT_MUTE]) + +/obj/item/weapon/dnainjector/antismile + name = "\improper DNA injector (Anti-Smile)" + New() + ..() + remove_mutations.Add(mutations_list[SMILE]) + +/obj/item/weapon/dnainjector/smilemut + name = "\improper DNA injector (Smile)" + New() + ..() + add_mutations.Add(mutations_list[SMILE]) + +/obj/item/weapon/dnainjector/unintelligablemut + name = "\improper DNA injector (Unintelligable)" + New() + ..() + add_mutations.Add(mutations_list[UNINTELLIGABLE]) + +/obj/item/weapon/dnainjector/antiunintelligable + name = "\improper DNA injector (Anti-Unintelligable)" + New() + ..() + remove_mutations.Add(mutations_list[UNINTELLIGABLE]) + +/obj/item/weapon/dnainjector/swedishmut + name = "\improper DNA injector (Swedish)" + New() + ..() + add_mutations.Add(mutations_list[SWEDISH]) + +/obj/item/weapon/dnainjector/antiswedish + name = "\improper DNA injector (Anti-Swedish)" + New() + ..() + remove_mutations.Add(mutations_list[SWEDISH]) + +/obj/item/weapon/dnainjector/chavmut + name = "\improper DNA injector (Chav)" + New() + ..() + add_mutations.Add(mutations_list[CHAV]) + +/obj/item/weapon/dnainjector/antichav + name = "\improper DNA injector (Anti-Chav)" + New() + ..() + remove_mutations.Add(mutations_list[CHAV]) + +/obj/item/weapon/dnainjector/elvismut + name = "\improper DNA injector (Elvis)" + New() + ..() + add_mutations.Add(mutations_list[ELVIS]) + +/obj/item/weapon/dnainjector/antielvis + name = "\improper DNA injector (Anti-Elvis)" + New() + ..() + remove_mutations.Add(mutations_list[ELVIS]) \ No newline at end of file diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index f28044bff28..c56027936ce 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -36,6 +36,7 @@ message_admins("[key_name(usr)]? has primed a [name] for detonation at [A.name] (JMP).") log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]).") user << "You prime the [name]! [det_time / 10] second\s!" + playsound(user.loc, 'sound/weapons/armbomb.ogg', 60, 1) active = 1 icon_state = initial(icon_state) + "_active" if(iscarbon(user)) diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm index aa0f5052714..66c649c9b72 100644 --- a/code/game/objects/items/weapons/grenades/flashbang.dm +++ b/code/game/objects/items/weapons/grenades/flashbang.dm @@ -69,7 +69,10 @@ if (M.ear_damage >= 5) M << "Your ears start to ring!" -/obj/item/weapon/grenade/flashbang/clusterbang//Created by Polymorph, fixed by Sieve +//////////////////// +//Clusterbang +//////////////////// +/obj/item/weapon/grenade/flashbang/clusterbang desc = "Use of this weapon may constiute a war crime in your area, consult your local captain." name = "clusterbang" icon = 'icons/obj/grenade.dmi' @@ -79,60 +82,60 @@ update_mob() var/numspawned = rand(4,8) var/again = 0 + for(var/more = numspawned,more > 0,more--) if(prob(35)) again++ - numspawned -- + numspawned-- - for(,numspawned > 0, numspawned--) - spawn(0) - new /obj/item/weapon/grenade/flashbang/cluster(src.loc)//Launches flashbangs - playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) + for(var/loop = numspawned, loop > 0, loop--) + new /obj/item/weapon/grenade/flashbang/cluster(loc)//Launches flashbangs + + for(var/loop = again ,loop > 0, loop--) + new /obj/item/weapon/grenade/flashbang/clusterbang/segment(loc)//Creates a 'segment' that launches a few more flashbangs + + playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) - for(,again > 0, again--) - spawn(0) - new /obj/item/weapon/grenade/flashbang/clusterbang/segment(src.loc)//Creates a 'segment' that launches a few more flashbangs - playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) qdel(src) + +////////////////////// +//Clusterbang segment +////////////////////// /obj/item/weapon/grenade/flashbang/clusterbang/segment desc = "A smaller segment of a clusterbang. Better run." name = "clusterbang segment" icon = 'icons/obj/grenade.dmi' icon_state = "clusterbang_segment" -/obj/item/weapon/grenade/flashbang/clusterbang/segment/New()//Segments should never exist except part of the clusterbang, since these immediately 'do their thing' and asplode +/obj/item/weapon/grenade/flashbang/clusterbang/segment/New() + ..() icon_state = "clusterbang_segment_active" active = 1 - var/stepdist = rand(1,4)//How far to step - var/temploc = src.loc//Saves the current location to know where to step away from - walk_away(src,temploc,stepdist)//I must go, my people need me - var/dettime = rand(15,60) - spawn(dettime) + walk_away(src,loc,rand(1,4)) + spawn(rand(15,60)) prime() - ..() + /obj/item/weapon/grenade/flashbang/clusterbang/segment/prime() update_mob() var/numspawned = rand(4,8) - for(var/more = numspawned,more > 0,more--) - if(prob(35)) - numspawned -- - for(,numspawned > 0, numspawned--) - spawn(0) - new /obj/item/weapon/grenade/flashbang/cluster(src.loc) - playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) + for(var/loop = numspawned ,loop > 0, loop--) + new /obj/item/weapon/grenade/flashbang/cluster(loc) + + playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) + qdel(src) -/obj/item/weapon/grenade/flashbang/cluster/New()//Same concept as the segments, so that all of the parts don't become reliant on the clusterbang +//////////////////////////////// +//Clusterbang spwaned flashbang +//////////////////////////////// +/obj/item/weapon/grenade/flashbang/cluster/New() ..() icon_state = "flashbang_active" active = 1 banglet = 1 - var/stepdist = rand(1,3) - var/temploc = src.loc - walk_away(src,temploc,stepdist) - var/dettime = rand(15,60) - spawn(dettime) - prime() + walk_away(src,loc,rand(1,3)) + spawn(rand(15,60)) + prime() diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm index dcc30b68420..eb815c35be9 100644 --- a/code/game/objects/items/weapons/grenades/grenade.dm +++ b/code/game/objects/items/weapons/grenades/grenade.dm @@ -58,6 +58,7 @@ if(!active) if(clown_check(user)) user << "You prime the [name]! [det_time/10] seconds!" + playsound(user.loc, 'sound/weapons/armbomb.ogg', 60, 1) active = 1 icon_state = initial(icon_state) + "_active" add_fingerprint(user) diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index cd048e95adb..d3206907230 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -64,7 +64,18 @@ Implant Specifics:
"} return dat +/obj/item/weapon/implant/weapons_auth + name = "firearms authentication implant" + desc = "Lets you shoot your guns" + icon_state = "auth" +/obj/item/weapon/implant/tracking/get_data() + var/dat = {"Implant Specifications:
+ Name: Firearms Authentication Implant
+ Life: 4 hours after death of host
+ Implant Details:
+ Function: Allows operation of implant-locked weaponry, preventing equipment from falling into enemy hands."} + return dat /obj/item/weapon/implant/explosive name = "explosive implant" @@ -91,7 +102,7 @@ if(!cause || !imp_in) return 0 if(cause == "action_button" && alert(imp_in, "Are you sure you want to activate your explosive implant? This will cause you to explode and gib!", "Explosive Implant Confirmation", "Yes", "No") != "Yes") return 0 - explosion(src, -1, 0, 2, 3, 0) //This might be a bit much, dono will have to see. + explosion(src,0,1,5,7,10, flame_range = 5) if(imp_in) imp_in.gib() @@ -195,8 +206,8 @@ imp_in.update_canmove() imp_in.reagents.add_reagent("synaptizine", 10) - imp_in.reagents.add_reagent("tricordrazine", 10) - imp_in.reagents.add_reagent("hyperzine", 10) + imp_in.reagents.add_reagent("omnizine", 10) + imp_in.reagents.add_reagent("morphine", 10) /obj/item/weapon/implant/emp diff --git a/code/game/objects/items/weapons/implants/implantfreedom.dm b/code/game/objects/items/weapons/implants/implantfreedom.dm index db9f3a17c06..5c3982ab885 100644 --- a/code/game/objects/items/weapons/implants/implantfreedom.dm +++ b/code/game/objects/items/weapons/implants/implantfreedom.dm @@ -17,6 +17,8 @@ if (C_imp_in.handcuffed) var/obj/item/weapon/W = C_imp_in.handcuffed C_imp_in.handcuffed = null + if(C_imp_in.buckled && C_imp_in.buckled.buckle_requires_restraints) + C_imp_in.buckled.unbuckle_mob() C_imp_in.update_inv_handcuffed(0) if (C_imp_in.client) C_imp_in.client.screen -= W diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm index 67dae86b254..d39fbf35fc7 100644 --- a/code/game/objects/items/weapons/manuals.dm +++ b/code/game/objects/items/weapons/manuals.dm @@ -150,7 +150,7 @@

How to Clone People

- So there’s 50 dead people lying on the floor, chairs are spinning like no tomorrow and you haven’t the foggiest idea of what to do? Not to worry! This guide is intended to teach you how to clone people and how to do it right, in a simple step-by-step process! If at any point of the guide you have a mental meltdown, genetics probably isn’t for you and you should get a job-change as soon as possible before you’re sued for malpractice. + So there’s 50 dead people lying on the floor, chairs are spinning like no tomorrow and you haven’t the foggiest idea of what to do? Not to worry! This guide is intended to teach you how to clone people and how to do it right, in a simple step-by-step process! If at any point of the guide you have a mental meltdown, genetics probably isn’t for you and you should get a job-change as soon as possible before you’re sued for malpractice.
  1. Acquire body
  2. @@ -170,36 +170,36 @@ This is pretty much vital for the process because without a body, you cannot clone it. Usually, bodies will be brought to you, so you do not need to worry so much about this step. If you already have a body, great! Move on to the next step.

    Step 2: Strip body

    - The cloning machine does not like abiotic items. What this means is you can’t clone anyone if they’re wearing clothes, so take all of it off. If it’s just one person, it’s courteous to put their possessions in the closet. If you have about seven people awaiting cloning, just leave the piles where they are, but don’t mix them around and for God’s sake don’t let the Clown in to steal them. + The cloning machine does not like abiotic items. What this means is you can’t clone anyone if they’re wearing clothes, so take all of it off. If it’s just one person, it’s courteous to put their possessions in the closet. If you have about seven people awaiting cloning, just leave the piles where they are, but don’t mix them around and for God’s sake don’t let the Clown in to steal them.

    Step 3: Put body in cloning machine

    Grab the body and then put it inside the DNA modifier. If you cannot do this, then you messed up at Step 2. Go back and check you took EVERYTHING off - a commonly missed item is their headset.

    Step 4: Scan body

    - Go onto the computer and scan the body by pressing ‘Scan - ’. If you’re successful, they will be added to the records (note that this can be done at any time, even with living people, so that they can be cloned without a body in the event that they are lying dead on port solars and didn‘t turn on their suit sensors)! If not, and it says “Error: Mental interface failure.”, then they have left their bodily confines and are one with the spirits. If this happens, just shout at them to get back in their body, click ‘Refresh‘ and try scanning them again. If there’s no success, threaten them with gibbing. Still no success? Skip over to Step 7 and don‘t continue after it, as you have an unresponsive body and it cannot be cloned. If you got “Error: Unable to locate valid genetic data.“, you are trying to clone a monkey - start over. + Go onto the computer and scan the body by pressing ‘Scan - ’. If you’re successful, they will be added to the records (note that this can be done at any time, even with living people, so that they can be cloned without a body in the event that they are lying dead on port solars and didn‘t turn on their suit sensors)! If not, and it says “Error: Mental interface failure.â€, then they have left their bodily confines and are one with the spirits. If this happens, just shout at them to get back in their body, click ‘Refresh‘ and try scanning them again. If there’s no success, threaten them with gibbing. Still no success? Skip over to Step 7 and don‘t continue after it, as you have an unresponsive body and it cannot be cloned. If you got “Error: Unable to locate valid genetic data.“, you are trying to clone a monkey - start over.

    Step 5: Clone body

    - Now that the body has a record, click ’View Records’, click the subject’s name, and then click ‘Clone’ to start the cloning process. Congratulations! You’re halfway there. Remember not to ‘Eject’ the cloning pod as this will kill the developing clone and you’ll have to start the process again. + Now that the body has a record, click ’View Records’, click the subject’s name, and then click ‘Clone’ to start the cloning process. Congratulations! You’re halfway there. Remember not to ‘Eject’ the cloning pod as this will kill the developing clone and you’ll have to start the process again.

    Step 6: Get clean SEs for body

    - Cloning is a finicky and unreliable process. Whilst it will most certainly bring someone back from the dead, they can have any number of nasty disabilities given to them during the cloning process! For this reason, you need to prepare a clean, defect-free Structural Enzyme (SE) injection for when they’re done. If you’re a competent Geneticist, you will already have one ready on your working computer. If, for any reason, you do not, then eject the body from the DNA modifier (NOT THE CLONING POD) and take it next door to the Genetics research room. Put the body in one of those DNA modifiers and then go onto the console. Go into View/Edit/Transfer Buffer, find an open slot and click “SE“ to save it. Then click ‘Injector’ to get the SEs in syringe form. Put this in your pocket or something for when the body is done. + Cloning is a finicky and unreliable process. Whilst it will most certainly bring someone back from the dead, they can have any number of nasty disabilities given to them during the cloning process! For this reason, you need to prepare a clean, defect-free Structural Enzyme (SE) injection for when they’re done. If you’re a competent Geneticist, you will already have one ready on your working computer. If, for any reason, you do not, then eject the body from the DNA modifier (NOT THE CLONING POD) and take it next door to the Genetics research room. Put the body in one of those DNA modifiers and then go onto the console. Go into View/Edit/Transfer Buffer, find an open slot and click “SE“ to save it. Then click ‘Injector’ to get the SEs in syringe form. Put this in your pocket or something for when the body is done.

    Step 7: Put body in morgue

    - Now that the cloning process has been initiated and you have some clean Structural Enzymes, you no longer need the body! Drag it to the morgue and tell the Chef over the radio that they have some fresh meat waiting for them in there. To put a body in a morgue bed, simply open the tray, grab the body, put it on the open tray, then close the tray again. Use one of the nearby pens to label the bed “CHEF MEAT” in order to avoid confusion. + Now that the cloning process has been initiated and you have some clean Structural Enzymes, you no longer need the body! Drag it to the morgue and tell the Chef over the radio that they have some fresh meat waiting for them in there. To put a body in a morgue bed, simply open the tray, grab the body, put it on the open tray, then close the tray again. Use one of the nearby pens to label the bed “CHEF MEAT†in order to avoid confusion.

    Step 8: Await cloned body

    - Now go back to the lab and wait for your patient to be cloned. It won’t be long now, I promise. + Now go back to the lab and wait for your patient to be cloned. It won’t be long now, I promise.

    Step 9: Use the clean SE injector on person

    - Has your body been cloned yet? Great! As soon as the guy pops out, grab your injector and jab it in them. Once you’ve injected them, they now have clean Structural Enzymes and their defects, if any, will disappear in a short while. + Has your body been cloned yet? Great! As soon as the guy pops out, grab your injector and jab it in them. Once you’ve injected them, they now have clean Structural Enzymes and their defects, if any, will disappear in a short while.

    Step 10: Give person clothes back

    - Obviously the person will be naked after they have been cloned. Provided you weren’t an irresponsible little shit, you should have protected their possessions from thieves and should be able to give them back to the patient. No matter how cruel you are, it’s simply against protocol to force your patients to walk outside naked. + Obviously the person will be naked after they have been cloned. Provided you weren’t an irresponsible little shit, you should have protected their possessions from thieves and should be able to give them back to the patient. No matter how cruel you are, it’s simply against protocol to force your patients to walk outside naked.

    Step 11: Send person on their way

    - Give the patient one last check-over - make sure they don’t still have any defects and that they have all their possessions. Ask them how they died, if they know, so that you can report any foul play over the radio. Once you’re done, your patient is ready to go back to work! Chances are they do not have Medbay access, so you should let them out of Genetics and the Medbay main entrance. + Give the patient one last check-over - make sure they don’t still have any defects and that they have all their possessions. Ask them how they died, if they know, so that you can report any foul play over the radio. Once you’re done, your patient is ready to go back to work! Chances are they do not have Medbay access, so you should let them out of Genetics and the Medbay main entrance. -

    If you’ve gotten this far, congratulations! You have mastered the art of cloning. Now, the real problem is how to resurrect yourself after that traitor had his way with you for cloning his target. +

    If you’ve gotten this far, congratulations! You have mastered the art of cloning. Now, the real problem is how to resurrect yourself after that traitor had his way with you for cloning his target. @@ -283,6 +283,136 @@ Coming soon... "} +/obj/item/weapon/book/manual/experimentor + name = "Mentoring your Experiments" + icon_state = "rdbook" + author = "Dr. H.P. Kritz" + dat = {" + + + + +

    THE E.X.P.E.R.I-MENTOR

    + The Enhanced Xenobiological Period Extraction (and) Restoration Instructor is a machine designed to discover the secrets behind every item in existence. + With advanced technology, it can process 99.95% of items, and discover their uses and secrets. + The E.X.P.E.R.I-MENTOR is a Research apparatus that takes items, and through a process of elimination, it allows you to deduce new technological designs from them. + Due to the volatile nature of the E.X.P.E.R.I-MENTOR, there is a slight chance for malfunction, potentially causing irreparable damage to you or your environment. + However, upgrading the apparatus has proven to decrease the chances of undesirable, potentially life-threatening outcomes. + Please note that the E.X.P.E.R.I-MENTOR uses a state-of-the-art random generator, which has a larger entropy than the observable universe, + therefore it can generate wildly different results each day, therefore it is highly suggested to re-scan objects of interests frequently (e.g. each shift). + +

    BASIC PROCESS

    + The usage of the E.X.P.E.R.I-MENTOR is quite simple: +
      +
    1. Find an item with a technological background
    2. +
    3. Insert the item into the E.X.P.E.R.I-MENTOR
    4. +
    5. Cycle through each processing method of the device.
    6. +
    7. Stand back, even in case of a successful experiment, as the machine might produce undesired behaviour.
    8. +
    + +

    ADVANCED USAGE

    + The E.X.P.E.R.I-MENTOR has a variety of uses, beyond menial research work. The different results can be used to combat localised events, or even to get special items. + + The E.X.P.E.R.I-MENTOR's OBLITERATE function has the added use of transferring the destroyed item's material into a linked lathe. + + The IRRADIATE function can be used to transform items into other items, resulting in potential upgrades (or downgrades). + + Users should remember to always wear appropriate protection when using the machine, because malfunction can occur at any moment! + +

    EVENTS

    +

    GLOBAL (happens at any time):

    +
      +
    1. DETECTION MALFUNCTION - The machine's onboard sensors have malfunctioned, causing it to redefine the item's experiment type. + Produces the message: The E.X.P.E.R.I-MENTOR's onboard detection system has malfunctioned!
    2. + +
    3. IANIZATION - The machine's onboard corgi-filter has malfunctioned, causing it to produce a corgi from.. somewhere. + Produces the message: The E.X.P.E.R.I-MENTOR melts the banana, ian-izing the air around it!
    4. + +
    5. RUNTIME ERROR - The machine's onboard C4T-P processor has encountered a critical error, causing it to produce a cat from.. somewhere. + Produces the message: The E.X.P.E.R.I-MENTOR encounters a run-time error!
    6. + +
    7. B100DG0D.EXE - The machine has encountered an unknown subroutine, which has been injected into it's runtime. It upgrades the held item! + Produces the message: The E.X.P.E.R.I-MENTOR improves the banana, drawing the life essence of those nearby!
    8. + +
    9. POWERSINK - The machine's PSU has tripped the charging mechanism! It consumes massive amounts of power! + Produces the message: The E.X.P.E.R.I-MENTOR begins to smoke and hiss, shaking violently!
    10. +
    +

    FAIL:

    + This event is produced when the item mismatches the selected experiment. + Produces a random message similar to: "the Banana rumbles, and shakes, the experiment was a failure!" + +

    POKE:

    +
      +
    1. WILD ARMS - The machine's gryoscopic processors malfunction, causing it to lash out at nearby people with it's arms. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions and destroys the banana, lashing it's arms out at nearby people!
    2. + +
    3. MISTYPE - The machine's interface has been garbled, and it switches to OBLITERATE. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions!
    4. + +
    5. THROW - The machine's spatial recognition device has shifted several meters across the room, causing it to try and repostion the item there. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, throwing the banana!
    6. +
    +

    IRRADIATE:

    +
      +
    1. RADIATION LEAK - The machine's shield has failed, resulting in a toxic radiation leak. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, melting the banana and leaking radiation!
    2. + +
    3. RADIATION DUMP - The machine's recycling and containment functions have failed, resulting in a dump of toxic waste around it + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, spewing toxic waste!
    4. + +
    5. MUTATION - The machine's radio-isotope level meter has malfunctioned, causing it over-irradiate the item, making it transform. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, transforming the banana!
    6. +
    +

    GAS:

    +
      +
    1. TOXIN LEAK - The machine's filtering and vent systems have failed, resulting in a cloud of toxic gas being expelled. + Produces the message: The E.X.P.E.R.I-MENTOR destroys the banana, leaking dangerous gas!
    2. + +
    3. GAS LEAK - The machine's vent systems have failed, resulting in a cloud of harmless, but obscuring gas. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, spewing harmless gas!
    4. + +
    5. ELECTROMAGNETIC IONS - The machine's electrolytic scanners have failed, causing a dangerous Electromagnetic reaction. + Produces the message: The E.X.P.E.R.I-MENTOR melts the banana, ionizing the air around it!
    6. +
    +

    HEAT:

    +
      +
    1. TOASTER - The machine's heating coils have come into contact with the machine's gas storage, causing a large, sudden blast of flame. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, melting the banana and releasing a burst of flame!
    2. + +
    3. SAUNA - The machine's vent loop has sprung a leak, resulting in a large amount of superheated air being dumped around it. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, melting the banana and leaking hot air!
    4. + +
    5. EMERGENCY VENT - The machine's temperature gauge has malfunctioned, resulting in it attempting to cool the area around it, but instead, dumping a cloud of steam. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, activating it's emergency coolant systems!
    6. +
    +

    COLD:

    +
      +
    1. FREEZER - The machine's cooling loop has sprung a leak, resulting in a cloud of super-cooled liquid being blasted into the air. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, shattering the banana and releasing a dangerous cloud of coolant!
    2. + +
    3. FRIDGE - The machine's cooling loop has been exposed to the outside air, resulting in a large decrease in temperature. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, shattering the banana and leaking cold air!
    4. + +
    5. SNOWSTORM - The machine's cooling loop has come into contact with the heating coils, resulting in a sudden blast of cool air. + Produces the message: The E.X.P.E.R.I-MENTOR malfunctions, releasing a flurry of chilly air as the banana pops out!
    6. +
    +

    OBLITERATE:

    +
      +
    1. IMPLOSION - The machine's pressure leveller has malfunctioned, causing it to pierce the space-time momentarily, making everything in the area fly towards it. + Produces the message: The E.X.P.E.R.I-MENTOR's crusher goes way too many levels too high, crushing right through space-time!
    2. + +
    3. DISTORTION - The machine's pressure leveller has completely disabled, resulting in a momentary space-time distortion, causing everything to fly around. + Produces the message: The E.X.P.E.R.I-MENTOR's crusher goes one level too high, crushing right into space-time!
    4. +
    + + + "} /obj/item/weapon/book/manual/research_and_development name = "Research and Development 101" @@ -787,4 +917,4 @@ icon_state ="bookHacking" author = "Engineering Encyclopedia" title = "Hacking" - page_link = "Hacking" \ No newline at end of file + page_link = "Hacking" diff --git a/code/game/objects/items/weapons/scrolls.dm b/code/game/objects/items/weapons/scrolls.dm index b7ec18568ad..521f5ab64e7 100644 --- a/code/game/objects/items/weapons/scrolls.dm +++ b/code/game/objects/items/weapons/scrolls.dm @@ -77,7 +77,7 @@ return if(user && user.buckled) - user.buckled.unbuckle() + user.buckled.unbuckle_mob() var/list/tempL = L.Copy() var/attempt = null diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 0f13d3db284..a91c7a55df4 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -96,7 +96,7 @@ /obj/item/weapon/melee/classic_baton/telescopic ) -/obj/item/weapon/storage/belt/security/New() +/obj/item/weapon/storage/belt/security/full/New() ..() new /obj/item/device/flashlight/seclite(src) @@ -184,3 +184,14 @@ can_hold = list( /obj/item/ammo_casing/shotgun ) + +/obj/item/weapon/storage/belt/holster + name = "shoulder holster" + desc = "A holster to conceal a carried handgun. WARNING: Badasses only." + icon_state = "holster" + item_state = "bandolier" + storage_slots = 1 + can_hold = list( + /obj/item/weapon/gun/projectile/automatic/pistol, + /obj/item/weapon/gun/projectile/revolver/detective + ) \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 3995d527137..467ca497767 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -124,7 +124,7 @@ /obj/item/weapon/storage/box/medipens name = "box of medipens" - desc = "A box full of inaprovaline MediPens." + desc = "A box full of epinephrine MediPens." icon_state = "syringe" /obj/item/weapon/storage/box/medipens/New() @@ -433,6 +433,21 @@ new /obj/item/weapon/cartridge/security(src) new /obj/item/weapon/cartridge/security(src) +/obj/item/weapon/storage/box/firingpins + name = "box of standard firing pins" + desc = "A box full of standard firing pins, to allow newly-developed firearms to operate." + icon_state = "id" + +/obj/item/weapon/storage/box/firingpins/New() + ..() + new /obj/item/device/firing_pin(src) + new /obj/item/device/firing_pin(src) + new /obj/item/device/firing_pin(src) + new /obj/item/device/firing_pin(src) + new /obj/item/device/firing_pin(src) + new /obj/item/device/firing_pin(src) + new /obj/item/device/firing_pin(src) + /obj/item/weapon/storage/box/handcuffs name = "box of spare handcuffs" desc = "A box full of handcuffs." diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index ec4770e255d..063b565b512 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -29,13 +29,13 @@ icon_state = pick("ointment","firefirstaid") - new /obj/item/device/healthanalyzer( src ) - new /obj/item/weapon/reagent_containers/hypospray/medipen( src ) - new /obj/item/stack/medical/ointment( src ) - new /obj/item/stack/medical/ointment( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) //Replaced ointment with these since they actually work --Errorage + new /obj/item/device/healthanalyzer(src) + new /obj/item/weapon/reagent_containers/hypospray/medipen(src) + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) return @@ -45,11 +45,11 @@ /obj/item/weapon/storage/firstaid/regular/New() ..() if (empty) return - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/ointment(src) - new /obj/item/stack/medical/ointment(src) + new /obj/item/weapon/reagent_containers/pill/patch/styptic(src) + new /obj/item/weapon/reagent_containers/pill/patch/styptic(src) + new /obj/item/weapon/reagent_containers/pill/patch/styptic(src) + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src) new /obj/item/device/healthanalyzer(src) new /obj/item/weapon/reagent_containers/hypospray/medipen( src ) return @@ -66,12 +66,12 @@ icon_state = pick("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3") - new /obj/item/weapon/reagent_containers/syringe/antitoxin( src ) - new /obj/item/weapon/reagent_containers/syringe/antitoxin( src ) - new /obj/item/weapon/reagent_containers/syringe/antitoxin( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) + new /obj/item/weapon/reagent_containers/syringe/charcoal( src ) + new /obj/item/weapon/reagent_containers/syringe/charcoal( src ) + new /obj/item/weapon/reagent_containers/syringe/charcoal( src ) + new /obj/item/weapon/reagent_containers/pill/charcoal( src ) + new /obj/item/weapon/reagent_containers/pill/charcoal( src ) + new /obj/item/weapon/reagent_containers/pill/charcoal( src ) new /obj/item/device/healthanalyzer( src ) return @@ -84,10 +84,10 @@ /obj/item/weapon/storage/firstaid/o2/New() ..() if (empty) return - new /obj/item/weapon/reagent_containers/pill/dexalin( src ) - new /obj/item/weapon/reagent_containers/pill/dexalin( src ) - new /obj/item/weapon/reagent_containers/pill/dexalin( src ) - new /obj/item/weapon/reagent_containers/pill/dexalin( src ) + new /obj/item/weapon/reagent_containers/pill/salbutamol( src ) + new /obj/item/weapon/reagent_containers/pill/salbutamol( src ) + new /obj/item/weapon/reagent_containers/pill/salbutamol( src ) + new /obj/item/weapon/reagent_containers/pill/salbutamol( src ) new /obj/item/weapon/reagent_containers/hypospray/medipen( src ) new /obj/item/weapon/reagent_containers/hypospray/medipen( src ) new /obj/item/device/healthanalyzer( src ) @@ -105,8 +105,8 @@ new /obj/item/clothing/tie/stethoscope( src ) new /obj/item/weapon/surgicaldrill ( src ) new /obj/item/weapon/reagent_containers/hypospray/combat( src ) - new /obj/item/weapon/reagent_containers/pill/bicaridine( src ) - new /obj/item/weapon/reagent_containers/pill/dermaline( src ) + new /obj/item/weapon/reagent_containers/pill/patch/styptic( src ) + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src ) new /obj/item/weapon/reagent_containers/syringe/lethal/choral( src ) new /obj/item/clothing/glasses/hud/health/night( src ) return @@ -149,47 +149,48 @@ return return -/obj/item/weapon/storage/pill_bottle/kelotane - name = "bottle of kelotane pills" - desc = "Contains pills used to treat burns." +/obj/item/weapon/storage/box/silver_sulf + name = "box of silver sulfadiazine patches" + desc = "Contains patches used to treat burns." -/obj/item/weapon/storage/pill_bottle/kelotane/New() +/obj/item/weapon/storage/box/silver_sulf/New() ..() - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src ) + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src ) + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src ) + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src ) + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src ) + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src ) + new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf( src ) -/obj/item/weapon/storage/pill_bottle/antitox - name = "bottle of anti-toxin pills" + +/obj/item/weapon/storage/pill_bottle/charcoal + name = "bottle of charcoal pills" desc = "Contains pills used to counter toxins." -/obj/item/weapon/storage/pill_bottle/antitox/New() +/obj/item/weapon/storage/pill_bottle/charcoal/New() ..() - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) + new /obj/item/weapon/reagent_containers/pill/charcoal( src ) + new /obj/item/weapon/reagent_containers/pill/charcoal( src ) + new /obj/item/weapon/reagent_containers/pill/charcoal( src ) + new /obj/item/weapon/reagent_containers/pill/charcoal( src ) + new /obj/item/weapon/reagent_containers/pill/charcoal( src ) + new /obj/item/weapon/reagent_containers/pill/charcoal( src ) + new /obj/item/weapon/reagent_containers/pill/charcoal( src ) -/obj/item/weapon/storage/pill_bottle/inaprovaline - name = "bottle of inaprovaline pills" +/obj/item/weapon/storage/pill_bottle/epinephrine + name = "bottle of epinephrine pills" desc = "Contains pills used to stabilize patients." -/obj/item/weapon/storage/pill_bottle/inaprovaline/New() +/obj/item/weapon/storage/pill_bottle/epinephrine/New() ..() - new /obj/item/weapon/reagent_containers/pill/inaprovaline( src ) - new /obj/item/weapon/reagent_containers/pill/inaprovaline( src ) - new /obj/item/weapon/reagent_containers/pill/inaprovaline( src ) - new /obj/item/weapon/reagent_containers/pill/inaprovaline( src ) - new /obj/item/weapon/reagent_containers/pill/inaprovaline( src ) - new /obj/item/weapon/reagent_containers/pill/inaprovaline( src ) - new /obj/item/weapon/reagent_containers/pill/inaprovaline( src ) + new /obj/item/weapon/reagent_containers/pill/epinephrine( src ) + new /obj/item/weapon/reagent_containers/pill/epinephrine( src ) + new /obj/item/weapon/reagent_containers/pill/epinephrine( src ) + new /obj/item/weapon/reagent_containers/pill/epinephrine( src ) + new /obj/item/weapon/reagent_containers/pill/epinephrine( src ) + new /obj/item/weapon/reagent_containers/pill/epinephrine( src ) + new /obj/item/weapon/reagent_containers/pill/epinephrine( src ) /obj/item/weapon/storage/pill_bottle/stimulant name = "bottle of stimulant pills" diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 0858856ab77..dbbd74dbd19 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -276,7 +276,7 @@ add_fingerprint(usr) - if(!prevent_warning && !istype(W, /obj/item/weapon/gun/projectile/automatic/crossbow)) + if(!prevent_warning && !istype(W, /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow)) for(var/mob/M in viewers(usr, null)) if(M == usr) usr << "You put [W] [preposition]to [src]." diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index e3ed3af1d42..57d7d3ce50d 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -13,7 +13,7 @@ return if("stealth") - new /obj/item/weapon/gun/projectile/automatic/crossbow(src) + new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow(src) new /obj/item/weapon/pen/sleepy(src) new /obj/item/device/chameleon(src) return @@ -103,21 +103,21 @@ /*/obj/item/weapon/storage/box/syndie_kit/imp_compress name = "Compressed Matter Implant (with injector)" -/obj/item/weapon/storage/syndie_kit/imp_compress/New() +/obj/item/weapon/storage/box/syndie_kit/imp_compress/New() new /obj/item/weapon/implanter/compressed(src) ..() return +*/ -/obj/item/weapon/storage/syndie_kit/imp_explosive +/obj/item/weapon/storage/box/syndie_kit/imp_explosive name = "Explosive Implant (with injector)" -/obj/item/weapon/storage/syndie_kit/imp_explosive/New() - var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src) +/obj/item/weapon/storage/box/syndie_kit/imp_explosive/New() + var/obj/item/weapon/implanter/O = new(src) O.imp = new /obj/item/weapon/implant/explosive(O) - O.name = "(BIO-HAZARD) BIO-detpack" O.update_icon() ..() - return*/ + return /obj/item/weapon/storage/box/syndie_kit/imp_uplink name = "boxed uplink implant (with injector)" @@ -152,6 +152,7 @@ new /obj/item/clothing/head/helmet/space/syndicate/black/red(src) return + /obj/item/weapon/storage/box/syndie_kit/emp name = "boxed EMP kit" diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 7f2eeed9b43..58b32e8abde 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -119,6 +119,8 @@ user.visible_message("[user] cuts [C]'s restraints with [src]!") qdel(C.handcuffed) C.handcuffed = null + if(C.buckled && C.buckled.buckle_requires_restraints) + C.buckled.unbuckle_mob() C.update_inv_handcuffed(0) return else 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 26cff767227..6ebd72cae79 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm @@ -16,7 +16,6 @@ new /obj/item/clothing/gloves/fingerless(src) new /obj/item/clothing/head/soft(src) // new /obj/item/weapon/cartridge/quartermaster(src) - new /obj/item/clothing/suit/toggle/wintercoat/cargo(src) return /obj/structure/closet/secure_closet/quartermaster @@ -31,6 +30,7 @@ /obj/structure/closet/secure_closet/quartermaster/New() ..() + new /obj/item/clothing/suit/toggle/wintercoat/cargo(src) 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) @@ -41,5 +41,4 @@ new /obj/item/clothing/mask/gas(src) new /obj/item/clothing/glasses/meson(src) new /obj/item/clothing/head/soft(src) - new /obj/item/clothing/suit/toggle/wintercoat/cargo(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 8a3aad19172..04d11bf0c7a 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -11,6 +11,8 @@ /obj/structure/closet/secure_closet/engineering_chief/New() ..() + new /obj/item/clothing/suit/toggle/wintercoat/engineering(src) + new /obj/item/clothing/suit/toggle/wintercoat/engineering/atmos(src) if(prob(50)) new /obj/item/weapon/storage/backpack/industrial(src) else @@ -30,7 +32,6 @@ new /obj/item/clothing/mask/gas(src) new /obj/item/device/multitool(src) new /obj/item/device/flash/handheld(src) - new /obj/item/clothing/suit/toggle/wintercoat/engineering(src) return /obj/structure/closet/secure_closet/engineering_electrical @@ -109,7 +110,6 @@ new /obj/item/clothing/suit/hazardvest(src) new /obj/item/clothing/mask/gas(src) new /obj/item/clothing/glasses/meson(src) - new /obj/item/clothing/suit/toggle/wintercoat/engineering(src) return /obj/structure/closet/secure_closet/atmospherics @@ -133,5 +133,4 @@ new /obj/item/weapon/watertank/atmos(src) new /obj/item/clothing/suit/fire/atmos(src) new /obj/item/clothing/head/hardhat/atmos(src) - new /obj/item/clothing/suit/toggle/wintercoat/engineering/atmos(src) return \ No newline at end of file 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 aed121ce321..ccfb8914254 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm @@ -11,6 +11,7 @@ New() ..() + new /obj/item/clothing/suit/toggle/wintercoat/hydro(src) switch(rand(1,2)) if(1) new /obj/item/clothing/suit/apron(src) @@ -23,5 +24,4 @@ new /obj/item/clothing/mask/bandana(src) new /obj/item/weapon/minihoe(src) new /obj/item/weapon/hatchet(src) - new /obj/item/clothing/suit/toggle/wintercoat/hydro(src) return \ 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 247ee620425..1f5c68f51bc 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -17,10 +17,10 @@ new /obj/item/weapon/reagent_containers/dropper(src) new /obj/item/weapon/reagent_containers/glass/beaker(src) new /obj/item/weapon/reagent_containers/glass/beaker(src) - new /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline(src) - new /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline(src) - new /obj/item/weapon/reagent_containers/glass/bottle/antitoxin(src) - new /obj/item/weapon/reagent_containers/glass/bottle/antitoxin(src) + new /obj/item/weapon/reagent_containers/glass/bottle/epinephrine(src) + new /obj/item/weapon/reagent_containers/glass/bottle/epinephrine(src) + new /obj/item/weapon/reagent_containers/glass/bottle/charcoal(src) + new /obj/item/weapon/reagent_containers/glass/bottle/charcoal(src) return @@ -73,7 +73,6 @@ new /obj/item/clothing/gloves/color/latex/nitrile(src) new /obj/item/weapon/storage/belt/medical(src) new /obj/item/clothing/glasses/hud/health(src) - new /obj/item/clothing/suit/toggle/wintercoat/medical(src) return @@ -90,6 +89,7 @@ /obj/structure/closet/secure_closet/CMO/New() ..() + new /obj/item/clothing/suit/toggle/wintercoat/medical(src) if(prob(50)) new /obj/item/weapon/storage/backpack/medic(src) else @@ -105,7 +105,6 @@ new /obj/item/clothing/gloves/color/latex/nitrile(src) new /obj/item/weapon/storage/belt/medical(src) new /obj/item/device/flash/handheld(src) - new /obj/item/clothing/suit/toggle/wintercoat/medical(src) new /obj/item/weapon/reagent_containers/hypospray/CMO(src) return 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 2e8db2032be..1c56b4c27e4 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/personal.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/personal.dm @@ -51,8 +51,6 @@ contents = list() new /obj/item/weapon/storage/backpack/satchel/withwallet( src ) new /obj/item/device/radio/headset( src ) - new /obj/item/clothing/suit/toggle/wintercoat(src) - new /obj/item/clothing/head/santa(src) return /obj/structure/closet/secure_closet/personal/attackby(obj/item/W as obj, mob/user as mob) 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 174f2e748c9..99da71e8f6d 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -17,7 +17,6 @@ new /obj/item/device/radio/headset/headset_sci(src) new /obj/item/weapon/tank/air(src) new /obj/item/clothing/mask/gas(src) - new /obj/item/clothing/suit/toggle/wintercoat/science(src) return @@ -34,6 +33,7 @@ /obj/structure/closet/secure_closet/RD/New() ..() + new /obj/item/clothing/suit/toggle/wintercoat/science(src) new /obj/item/clothing/suit/bio_suit/scientist(src) new /obj/item/clothing/head/bio_hood/scientist(src) new /obj/item/clothing/suit/toggle/labcoat(src) @@ -49,5 +49,4 @@ new /obj/item/clothing/suit/armor/reactive(src) new /obj/item/device/flash/handheld(src) new /obj/item/device/laser_pointer(src) - new /obj/item/clothing/suit/toggle/wintercoat/science(src) return 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 3c347b9dae7..3b9bc3a3388 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -10,6 +10,7 @@ /obj/structure/closet/secure_closet/captains/New() ..() + new /obj/item/clothing/suit/toggle/wintercoat/captain(src) if(prob(50)) new /obj/item/weapon/storage/backpack/captain(src) else @@ -23,8 +24,6 @@ new /obj/item/clothing/shoes/sneakers/brown(src) new /obj/item/device/radio/headset/heads/captain/alt(src) new /obj/item/clothing/gloves/color/captain(src) - new /obj/item/clothing/suit/toggle/wintercoat/captain(src) - new /obj/item/clothing/head/santa(src) new /obj/item/weapon/gun/energy/gun(src) return @@ -40,6 +39,7 @@ /obj/structure/closet/secure_closet/hop/New() ..() + new /obj/item/clothing/suit/toggle/wintercoat/cargo(src) new /obj/item/clothing/under/rank/head_of_personnel(src) new /obj/item/clothing/head/hopcap(src) new /obj/item/weapon/cartridge/hop(src) @@ -52,8 +52,6 @@ new /obj/item/device/flash/handheld(src) new /obj/item/clothing/glasses/sunglasses(src) new /obj/item/weapon/mining_voucher(src) - new /obj/item/clothing/suit/toggle/wintercoat/cargo(src) - new /obj/item/clothing/head/hardhat/reindeer() return @@ -70,6 +68,7 @@ /obj/structure/closet/secure_closet/hos/New() ..() + new /obj/item/clothing/suit/toggle/wintercoat/security(src) new /obj/item/weapon/cartridge/hos(src) new /obj/item/device/radio/headset/heads/hos(src) new /obj/item/clothing/under/hosparadefem(src) @@ -83,8 +82,7 @@ new /obj/item/weapon/shield/riot/tele(src) new /obj/item/weapon/melee/baton/loaded(src) new /obj/item/weapon/gun/energy/gun/advtaser(src) - new /obj/item/weapon/storage/belt/security(src) - new /obj/item/clothing/suit/toggle/wintercoat/security(src) + new /obj/item/weapon/storage/belt/security/full(src) return @@ -113,8 +111,7 @@ new /obj/item/weapon/reagent_containers/spray/pepper(src) new /obj/item/weapon/melee/baton/loaded(src) new /obj/item/weapon/gun/energy/gun/advtaser(src) - new /obj/item/weapon/storage/belt/security(src) - new /obj/item/clothing/suit/toggle/wintercoat/security(src) + new /obj/item/weapon/storage/belt/security/full(src) return @@ -137,9 +134,8 @@ new /obj/item/weapon/reagent_containers/spray/pepper(src) new /obj/item/device/flash/handheld(src) new /obj/item/weapon/grenade/flashbang(src) - new /obj/item/weapon/storage/belt/security(src) + new /obj/item/weapon/storage/belt/security/full(src) new /obj/item/clothing/glasses/hud/security/sunglasses(src) - new /obj/item/clothing/suit/toggle/wintercoat/security(src) return @@ -209,9 +205,9 @@ new /obj/item/device/radio/headset/headset_sec/alt(src) new /obj/item/device/detective_scanner(src) new /obj/item/clothing/suit/armor/vest/det_suit(src) - new /obj/item/clothing/suit/toggle/wintercoat(src) new /obj/item/ammo_box/c38(src) 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 diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm index 4522ee5f51e..08f3cf4c2aa 100644 --- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm +++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm @@ -5,6 +5,36 @@ icon_closed = "syndicate" icon_opened = "syndicateopen" +/obj/structure/closet/syndicate/ertCom/New() + name = "commanders closet" + desc = "Emergency Response Team equipment locker" + new /obj/item/weapon/card/id/ertsCommand(src) + new /obj/item/weapon/storage/backpack/security(src) + return + +/obj/structure/closet/syndicate/ertSec/New() + name = "security closet" + desc = "Emergency Response Team equipment locker" + new /obj/item/weapon/gun/energy/pulse_rifle/pulse_pistol(src) + new /obj/item/weapon/card/id/ertsSecurity(src) + new /obj/item/weapon/storage/backpack/security(src) + return + +/obj/structure/closet/syndicate/ertMed/New() + name = "medical closet" + desc = "Emergency Response Team equipment locker" + new /obj/item/weapon/gun/energy/pulse_rifle/pulse_pistol(src) + new /obj/item/weapon/card/id/ertsMedical(src) + new /obj/item/weapon/storage/backpack/medic(src) + return + +/obj/structure/closet/syndicate/ertEngi/New() + name = "engineer closet" + desc = "Emergency Response Team equipment locker" + new /obj/item/weapon/gun/energy/pulse_rifle/pulse_pistol(src) + new /obj/item/weapon/card/id/ertsEngineer(src) + new /obj/item/weapon/storage/backpack/industrial(src) + return /obj/structure/closet/syndicate/personal desc = "It's a personal storage unit for operative gear." diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index f85f4aa5f80..f6a968576db 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -273,7 +273,6 @@ new /obj/item/clothing/gloves/fingerless(src) new /obj/item/clothing/head/soft/black(src) new /obj/item/clothing/head/soft/black(src) - new /obj/item/clothing/suit/toggle/wintercoat/science(src) if(prob(40)) new /obj/item/clothing/mask/bandana/skull(src) if(prob(40)) @@ -293,7 +292,6 @@ new /obj/item/clothing/shoes/sneakers/white(src) new /obj/item/clothing/suit/toggle/labcoat/chemist(src) new /obj/item/clothing/suit/toggle/labcoat/chemist(src) - new /obj/item/clothing/suit/toggle/wintercoat/medical(src) return @@ -309,7 +307,6 @@ new /obj/item/clothing/shoes/sneakers/white(src) new /obj/item/clothing/suit/toggle/labcoat/genetics(src) new /obj/item/clothing/suit/toggle/labcoat/genetics(src) - new /obj/item/clothing/suit/toggle/wintercoat/medical(src) return @@ -327,7 +324,6 @@ new /obj/item/clothing/suit/toggle/labcoat/virologist(src) new /obj/item/clothing/mask/surgical(src) new /obj/item/clothing/mask/surgical(src) - new /obj/item/clothing/suit/toggle/wintercoat/medical(src) return @@ -353,10 +349,9 @@ new /obj/item/clothing/under/assistantformal(src) if(prob(40)) new /obj/item/clothing/under/assistantformal(src) - if(prob(50)) + if(prob(30)) new /obj/item/clothing/suit/toggle/wintercoat(src) new /obj/item/clothing/shoes/winterboots(src) - new /obj/item/clothing/head/santa(src) return @@ -394,8 +389,7 @@ new /obj/item/clothing/shoes/sneakers/black(src) new /obj/item/clothing/shoes/sneakers/brown(src) new /obj/item/clothing/shoes/sneakers/white(src) - if(prob(50)) + if(prob(30)) new /obj/item/clothing/suit/toggle/wintercoat(src) new /obj/item/clothing/shoes/winterboots(src) - new /obj/item/clothing/head/santa(src) return diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index af0b71415dd..f03050f5b7d 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -228,7 +228,7 @@ /obj/structure/stool/bed/chair/janicart/relaymove(mob/user, direction) if(user.stat || user.stunned || user.weakened || user.paralysis) - unbuckle() + unbuckle_mob() if(istype(user.l_hand, keytype) || istype(user.r_hand, keytype)) if(!Process_Spacemove(direction) || !has_gravity(src.loc) || move_delay) return @@ -241,7 +241,7 @@ playsound(src, 'sound/misc/slip.ogg', 50, 1, -3) buckled_mob.Stun(7) buckled_mob.Weaken(7) - unbuckle() + unbuckle_mob() step(src, dir) move_delay = 1 spawn(2) @@ -250,15 +250,16 @@ user << "You'll need the keys in one of your hands to drive this [callme]." -/obj/structure/stool/bed/chair/janicart/buckle_mob(mob/M, mob/user) +/obj/structure/stool/bed/chair/janicart/user_buckle_mob(mob/M, mob/user) if(M != user || !ismob(M) || get_dist(src, user) > 1 || user.restrained() || user.lying || user.stat || M.buckled || istype(user, /mob/living/silicon)) return - unbuckle() + unbuckle_mob() M.visible_message(\ "[M] climbs onto the [callme]!",\ "You climb onto the [callme]!") + M.buckled = src M.loc = loc M.dir = dir @@ -267,7 +268,7 @@ update_mob() add_fingerprint(user) -/obj/structure/stool/bed/chair/janicart/unbuckle() +/obj/structure/stool/bed/chair/janicart/unbuckle_mob() if(buckled_mob) buckled_mob.pixel_x = 0 buckled_mob.pixel_y = 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 24614a6849e..7efa0020aa2 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 @@ -7,6 +7,7 @@ icon_state = "nest" var/health = 100 +/* /obj/structure/stool/bed/nest/unbuckle_other(mob/user as mob) buckled_mob.visible_message(\ "[user.name] pulls [buckled_mob.name] free from the sticky nest!",\ @@ -22,8 +23,9 @@ spawn(600) if(user && buckled_mob && user.buckled == src) unbuckle() +*/ -/obj/structure/stool/bed/nest/buckle_mob(mob/M as mob, mob/user as mob) +/obj/structure/stool/bed/nest/user_buckle_mob(mob/M as mob, mob/user as mob) if ( !ismob(M) || (get_dist(src, user) > 1) || (M.loc != src.loc) || user.restrained() || usr.stat || M.buckled || istype(user, /mob/living/silicon/pai) ) return @@ -32,7 +34,7 @@ if(!istype(user,/mob/living/carbon/alien/humanoid)) return - unbuckle() + unbuckle_mob() if(M == usr) return @@ -41,24 +43,19 @@ "[user.name] secretes a thick vile goo, securing [M.name] into [src]!",\ "[user.name] drenches you in a foul-smelling resin, trapping you in [src]!",\ "You hear squelching...") - M.buckled = src - M.loc = src.loc - M.dir = src.dir - M.update_canmove() - M.pixel_y += 1 - M.pixel_x += 2 - M.anchored = anchored - src.buckled_mob = M - src.add_fingerprint(user) - src.overlays += image('icons/mob/alien.dmi', "nestoverlay", layer=6) return -/obj/structure/stool/bed/nest/unbuckle() - if(buckled_mob) +/obj/structure/stool/bed/nest/post_buckle_mob(mob/living/M) + if(M == buckled_mob) + M.pixel_y += 1 + M.pixel_x += 2 + overlays += image('icons/mob/alien.dmi', "nestoverlay", layer=6) + else buckled_mob.pixel_y -= 1 buckled_mob.pixel_x -= 2 - overlays.Cut() - ..() + overlays.Cut() + + /obj/structure/stool/bed/nest/attackby(obj/item/weapon/W as obj, mob/user as mob) var/aforce = W.force 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 98384f7348c..60dd955df4f 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -11,17 +11,14 @@ name = "bed" desc = "This is used to lie in, sleep in or strap on." icon_state = "bed" - var/mob/living/buckled_mob + can_buckle = 1 + buckle_lying = 1 /obj/structure/stool/bed/alien name = "resting contraption" desc = "This looks similar to contraptions from earth. Could aliens be stealing our technology?" icon_state = "abed" -/obj/structure/stool/bed/Destroy() - unbuckle() - ..() - /obj/structure/stool/bed/Move(atom/newloc, direct) //Some bed children move . = ..() if(buckled_mob) @@ -47,99 +44,12 @@ /obj/structure/stool/bed/attack_paw(mob/user as mob) return src.attack_hand(user) -/obj/structure/stool/bed/attack_hand(mob/user as mob) - manual_unbuckle(user) - return - /obj/structure/stool/bed/attack_animal(var/mob/living/simple_animal/M)//No more buckling hostile mobs to chairs to render them immobile forever if(M.environment_smash) new /obj/item/stack/sheet/metal(src.loc) qdel(src) return - manual_unbuckle(M) -/obj/structure/stool/bed/MouseDrop_T(mob/M as mob, mob/user as mob) - if(!istype(M)) return - buckle_mob(M, user) - return - -/obj/structure/stool/bed/proc/afterbuckle(mob/M as mob) // Called after somebody buckled / unbuckled - return - -/obj/structure/stool/bed/proc/unbuckle() - if(buckled_mob) - if(buckled_mob.buckled == src) //this is probably unneccesary, but it doesn't hurt - buckled_mob.buckled = null - buckled_mob.anchored = initial(buckled_mob.anchored) - buckled_mob.update_canmove() - - var/mob/M = buckled_mob - buckled_mob = null - - M.newtonian_move(inertia_dir) - afterbuckle(M) - return - -/obj/structure/stool/bed/proc/manual_unbuckle(mob/user as mob) - if(buckled_mob) - if(buckled_mob.buckled == src) - if(buckled_mob != user) - if(!(user.buckled)) - unbuckle_other(user) - else - user << "You can't reach [src]!" - else - unbuckle_myself(user) - src.add_fingerprint(user) - return - -/obj/structure/stool/bed/proc/unbuckle_other(mob/user as mob) - buckled_mob.visible_message(\ - "[buckled_mob.name] was unbuckled by [user.name]!",\ - "You were unbuckled from [src] by [user.name].",\ - "You hear metal clanking.") - unbuckle() - - -/obj/structure/stool/bed/proc/unbuckle_myself(mob/user as mob) - buckled_mob.visible_message(\ - "[buckled_mob.name] unbuckled!",\ - "You unbuckle yourself from [src].",\ - "You hear metal clanking.") - unbuckle() - -/obj/structure/stool/bed/proc/buckle_mob(mob/M as mob, mob/user as mob) - if (!ticker) - user << "You can't buckle anyone in before the game starts." - if ( !ismob(M) || (get_dist(src, user) > 1) || (M.loc != src.loc) || user.restrained() || user.lying || user.stat || M.buckled || istype(user, /mob/living/silicon/pai) || M.anchored) - return - - if (istype(M, /mob/living/carbon/slime) || istype(M, /mob/living/simple_animal/slime)) - user << "\The [M] is too squishy to buckle in." - return - - unbuckle() - - if (M == usr) - M.visible_message(\ - "[M.name] buckles in!",\ - "You buckle yourself to [src].",\ - "You hear metal clanking") - else - M.visible_message(\ - "[M.name] is buckled in to [src] by [user.name]!",\ - "You are buckled in to [src] by [user.name].",\ - "You hear metal clanking") - M.buckled = src - M.anchored = anchored - M.loc = src.loc - M.dir = src.dir - M.update_canmove() - src.buckled_mob = M - src.add_fingerprint(user) - - afterbuckle(M) - return /* * Roller beds @@ -151,18 +61,19 @@ anchored = 0 var/const/buckled_pixel_y_offset = 6 //Mobs buckled will have their pixel_y offset by this much -/obj/structure/stool/bed/roller/afterbuckle(mob/M as mob) - if(buckled_mob) + +/obj/structure/stool/bed/roller/post_buckle_mob(mob/M) + if(M == buckled_mob) density = 1 icon_state = "up" M.pixel_y = initial(M.pixel_y) else density = 0 icon_state = "down" - M.pixel_y = initial(M.pixel_y) - if(M.lying) - M.pixel_y -= buckled_pixel_y_offset - + if(buckled_mob) + buckled_mob.pixel_y = initial(buckled_mob.pixel_y) + if(buckled_mob.lying) + buckled_mob.pixel_y -= buckled_pixel_y_offset /obj/item/roller diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index bbe3dd51bd3..d73dba16439 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -2,6 +2,7 @@ name = "chair" desc = "You sit in this. Either by will or force." icon_state = "chair" + buckle_lying = 0 //you sit in a chair, not lay /obj/structure/stool/bed/chair/New() ..() @@ -68,10 +69,6 @@ return spin() -/obj/structure/stool/bed/chair/MouseDrop_T(mob/M as mob, mob/user as mob) - if(!istype(M)) return - buckle_mob(M, user) - return // Chair types /obj/structure/stool/bed/chair/wood/normal @@ -105,12 +102,13 @@ return ..() -/obj/structure/stool/bed/chair/comfy/afterbuckle() +/obj/structure/stool/bed/chair/comfy/post_buckle_mob(mob/living/M) if(buckled_mob) overlays += armrest else overlays -= armrest + /obj/structure/stool/bed/chair/comfy/brown color = rgb(255,113,0) diff --git a/code/game/objects/structures/table_frames.dm b/code/game/objects/structures/table_frames.dm index 5e4e26cbabd..9955c1c7b4b 100644 --- a/code/game/objects/structures/table_frames.dm +++ b/code/game/objects/structures/table_frames.dm @@ -17,6 +17,8 @@ density = 0 anchored = 0 layer = 2.8 + var/framestack = /obj/item/stack/rods + var/framestackamount = 2 /obj/structure/table_frame/attackby(var/obj/item/I, mob/user) if(istype(I, /obj/item/weapon/wrench)) @@ -24,7 +26,8 @@ playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) if(do_after(user, 30)) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - new /obj/item/stack/rods(src.loc) + for(var/i = 1, i <= framestackamount, i++) + new framestack(get_turf(src)) qdel(src) return if(istype(I, /obj/item/stack/sheet/plasteel)) @@ -60,16 +63,12 @@ name = "wooden table frame" desc = "Four wooden legs with four framing wooden rods for a wooden table. You could easily pass through this." icon_state = "wood_frame" + framestack = /obj/item/stack/sheet/mineral/wood + framestackamount = 2 /obj/structure/table_frame/wood/attackby(var/obj/item/I, mob/user) if(istype(I, /obj/item/weapon/wrench)) - user << "Now disassembling [src]." - playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) - if(do_after(user, 30)) - playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - new /obj/item/stack/sheet/mineral/wood(src.loc) - qdel(src) - return + ..() if(istype(I, /obj/item/stack/sheet/mineral/wood)) var/obj/item/stack/sheet/mineral/wood/W = I user << "Now adding [W] to [src]." diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 30317abac0e..3042fc6c383 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -25,6 +25,8 @@ var/framestack = /obj/item/stack/rods var/buildstack = /obj/item/stack/sheet/metal var/busy = 0 + var/buildstackamount = 1 + var/framestackamount = 2 /obj/structure/table/New() ..() @@ -333,8 +335,10 @@ /obj/structure/table/proc/table_destroy(var/destroy_type, var/mob/user) if(destroy_type == TBL_DESTROY) - new framestack(src.loc) - new buildstack(src.loc) + for(var/i = 1, i <= framestackamount, i++) + new framestack(get_turf(src)) + for(var/i = 1, i <= buildstackamount, i++) + new buildstack(get_turf(src)) qdel(src) return @@ -343,7 +347,8 @@ playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) if(do_after(user, 20)) new frame(src.loc) - new buildstack(src.loc) + for(var/i = 1, i <= buildstackamount, i++) + new buildstack(get_turf(src)) qdel(src) return @@ -351,8 +356,10 @@ user << "Now deconstructing [src]." playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) if(do_after(user, 40)) - new framestack(src.loc) - new buildstack(src.loc) + for(var/i = 1, i <= framestackamount, i++) + new framestack(get_turf(src)) + for(var/i = 1, i <= buildstackamount, i++) + new buildstack(get_turf(src)) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) qdel(src) return diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 2f494c39c28..72a1f94595a 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -112,6 +112,7 @@ update_nearby_icons() /obj/structure/window/attack_tk(mob/user as mob) + user.changeNext_move(CLICK_CD_MELEE) user.visible_message("Something knocks on [src].") add_fingerprint(user) playsound(loc, 'sound/effects/Glassknock.ogg', 50, 1) diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 348c9d6b21f..d96113a638c 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -172,7 +172,7 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3"," if(istype(A,/mob/living/carbon)) var/mob/living/carbon/M = A if(M.lying) return - if(prob(50)) + if(prob(80)) dirt++ var/obj/effect/decal/cleanable/dirt/dirtoverlay = locate(/obj/effect/decal/cleanable/dirt, src) if(dirt >= 100) diff --git a/code/game/verbs/suicide.dm b/code/game/verbs/suicide.dm index f8ec5a90b5d..f743889fcf9 100644 --- a/code/game/verbs/suicide.dm +++ b/code/game/verbs/suicide.dm @@ -169,6 +169,20 @@ updatehealth() +/mob/living/simple_animal/verb/suicide() + set hidden = 1 + if(!canSuicide()) + return + var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") + if(!canSuicide()) + return + if(confirm == "Yes") + suiciding = 1 + visible_message("[src] begins to fall down. It looks like \he's lost the will to live.", \ + "[src] begins to fall down. It looks like \he's lost the will to live.") + death(0) + + /mob/living/proc/canSuicide() if(stat == CONSCIOUS) return 1 diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index fd368ead395..49119c0109c 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -66,7 +66,11 @@ log_admin("[key_name(usr)] started a gang war.") if(!src.makeGangsters()) usr << "Unfortunatly there were not enough candidates available." - + if("13") + message_admins("[key_name(usr)] created a emergency response team.") + log_admin("[key_name(usr)] created a emergency response team.") + if(!src.makeEmergencyresponseteam()) + usr << "Unfortunatly there were not enough candidates available." else if(href_list["forceevent"]) var/datum/round_event_control/E = locate(href_list["forceevent"]) in SSevent.control diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index f6a8d2ef349..b1a1a6eb9ed 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -226,9 +226,9 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that pai.real_name = pai.name pai.key = choice.key card.setPersonality(pai) - for(var/datum/paiCandidate/candidate in paiController.pai_candidates) + for(var/datum/paiCandidate/candidate in SSpai.candidates) if(candidate.key == choice.key) - paiController.pai_candidates.Remove(candidate) + SSpai.candidates.Remove(candidate) feedback_add_details("admin_verb","MPAI") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_alienize(var/mob/M in mob_list) @@ -796,7 +796,7 @@ var/global/list/g_fancy_list_of_types = null qdel(briefcase_item) for(var/i=3, i>0, i--) sec_briefcase.contents += new /obj/item/weapon/spacecash/c1000 - sec_briefcase.contents += new /obj/item/weapon/gun/projectile/automatic/crossbow + sec_briefcase.contents += new /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow sec_briefcase.contents += new /obj/item/weapon/gun/projectile/revolver/mateba sec_briefcase.contents += new /obj/item/ammo_box/a357 sec_briefcase.contents += new /obj/item/weapon/c4 @@ -819,6 +819,9 @@ var/global/list/g_fancy_list_of_types = null if("death commando") equip_deathsquad(M) + if("emergency response officer") + equip_emergencyresponsesquad(M) + if("centcom official") M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(M), slot_shoes) @@ -1054,6 +1057,7 @@ var/global/list/g_fancy_list_of_types = null usr << browse(dat, "window=dellog") +//Deathsquad /proc/equip_deathsquad(var/mob/living/carbon/human/M, var/officer) var/obj/item/device/radio/R = new /obj/item/device/radio/headset(M) R.set_frequency(1441) @@ -1101,3 +1105,25 @@ var/global/list/g_fancy_list_of_types = null W.registered_name = M.real_name W.update_label(M.real_name) M.equip_to_slot_or_del(W, slot_wear_id) + +//Emergency Response Team +/proc/equip_emergencyresponsesquad(var/mob/living/carbon/human/M, var/officer) + var/obj/item/device/radio/R = new /obj/item/device/radio/headset(M) + R.set_frequency(1441) + M.equip_to_slot_or_del(R, slot_ears) + + if(officer) + M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat/swat(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves) + M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(M), slot_back) + M.equip_to_slot_or_del(new /obj/item/weapon/card/id/ertsCommand(M), slot_wear_id) + else + M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform) + M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat/swat(M), slot_shoes) + M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves) + + var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(M) + L.imp_in = M + L.implanted = 1 + M.sec_hud_set_implants() diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 8b9e6e3ccf6..cfac035390e 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -21,6 +21,7 @@ client/proc/one_click_antag()
    Make Wizard (Requires Ghosts)
    Make Nuke Team (Requires Ghosts)
    Make Deathsquad (Requires Ghosts)
    + Make Emergency Response Team (Requires Ghosts)
    "} /* These dont work just yet Ninja, aliens and deathsquad I have not looked into yet @@ -427,6 +428,83 @@ client/proc/one_click_antag() return 0 +// EMERGENCY RESPONSE TEAM +/datum/admins/proc/makeEmergencyresponseteam() + var/list/mob/dead/observer/candidates = list() + var/time_passed = world.time + var/mission = input("Assign a mission to the Emergency Response Team", "Assign Mission", "Assist the station.") + + //Generates a list of officers from active ghosts. Then the user picks which characters to respawn as the officers. + for(var/mob/dead/observer/G in player_list) + spawn(0) + switch(alert(G,"Do you wish to be considered for an elite Nanotrasen Emergency Response Team being sent in?","Please answer in 30 seconds!","Yes","No")) + if("Yes") + if((world.time-time_passed)>300)//If more than 30 game seconds passed. + return + candidates += G + if("No") + return + else + return + sleep(300) + + for(var/mob/dead/observer/G in candidates) + if(!G.key) + candidates.Remove(G) + + if(candidates.len >= 4) //Minimum 4 to be considered a squad + //Pick the (un)lucky players + var/numagents = min(7,candidates.len) //How many officers to spawn + var/list/spawnpoints = emergencyresponseteamspawn + while(numagents && spawnpoints.len && candidates.len) + var/spawnloc = spawnpoints[1] + var/mob/dead/observer/chosen_candidate = pick(candidates) + candidates -= chosen_candidate + if(!chosen_candidate.key) + continue + + //Spawn and equip the officer + var/mob/living/carbon/human/ERTOperative = new(spawnloc) + chosen_candidate.client.prefs.copy_to(ERTOperative) + ready_dna(ERTOperative) + if(numagents == 1) //If Squad Leader + ERTOperative.real_name = "Commander [pick(ERTOperative.real_name)]" + equip_emergencyresponsesquad(ERTOperative, 1) + else + ERTOperative.real_name = "Officer [pick(ERTOperative.real_name)]" + equip_emergencyresponsesquad(ERTOperative) + ERTOperative.key = chosen_candidate.key + ERTOperative.mind.assigned_role = "ERT" + + //Assign antag status and the mission + ticker.mode.traitors += ERTOperative.mind + ERTOperative.mind.special_role = "ert" + var/datum/objective/missionobj = new + missionobj.owner = ERTOperative.mind + missionobj.explanation_text = mission + missionobj.completed = 1 + ERTOperative.mind.objectives += missionobj + + //Greet the commando + ERTOperative << "You are the [numagents==1?"Emergency Response Team Commander":"Emergency Response Officer"]." + var/missiondesc = "Your squad is being sent on a mission to [station_name()] by Nanotrasen's Security Division." + if(numagents == 1) //If Squad Leader + missiondesc += " Lead your squad to ensure the completion of the mission. Avoid civilian casualites when possible. Board the shuttle when your team is ready." + else + missiondesc += " Follow orders given to you by your commander. Avoid civilian casualites when possible." + missiondesc += "
    Your Mission: [mission]" + ERTOperative << missiondesc + + //Logging and cleanup + if(numagents == 1) + message_admins("The emergency response team has spawned with the mission: [mission].") + log_game("[key_name(ERTOperative)] has been selected as a Emergency Response Officer") + spawnpoints -= spawnloc + numagents-- + + return 1 + + return /datum/admins/proc/makeBody(var/mob/dead/observer/G_found) // Uses stripped down and bastardized code from respawn character if(!G_found || !G_found.key) return diff --git a/code/modules/assembly/infrared.dm b/code/modules/assembly/infrared.dm index 6bff38a67b2..d196d8eeacf 100644 --- a/code/modules/assembly/infrared.dm +++ b/code/modules/assembly/infrared.dm @@ -88,8 +88,7 @@ if((!secured)||(!on)||(cooldown > 0)) return 0 pulse(0) - if(src.loc) - src.loc.audible_message("\icon[src] *beep* *beep*", null, 3) + audible_message("\icon[src] *beep* *beep*", null, 3) cooldown = 2 spawn(10) process_cooldown() diff --git a/code/modules/assembly/proximity.dm b/code/modules/assembly/proximity.dm index ca779ce83d6..e74d95c1efd 100644 --- a/code/modules/assembly/proximity.dm +++ b/code/modules/assembly/proximity.dm @@ -48,8 +48,7 @@ /obj/item/device/assembly/prox_sensor/sense() if((!secured)||(!scanning)||(cooldown > 0)) return 0 pulse(0) - if(src.loc) - src.loc.audible_message("\icon[src] *beep* *beep*", null, 3) + audible_message("\icon[src] *beep* *beep*", null, 3) cooldown = 2 spawn(10) process_cooldown() diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 667cb17c3f3..ef245f1c0b1 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -139,8 +139,7 @@ Code: if(signal.encryption != code) return 0 if(!(src.wires & WIRE_RADIO_RECEIVE)) return 0 pulse(1) - if(src.loc) - src.loc.audible_message("\icon[src] *beep* *beep*", null, 1) + audible_message("\icon[src] *beep* *beep*", null, 1) return diff --git a/code/modules/assembly/timer.dm b/code/modules/assembly/timer.dm index 5008629e2c5..3fe26476392 100644 --- a/code/modules/assembly/timer.dm +++ b/code/modules/assembly/timer.dm @@ -38,8 +38,7 @@ if((!secured)||(cooldown > 0)) return 0 pulse(0) - if(src.loc) - src.loc.audible_message("\icon[src] *beep* *beep*", null, 3) + audible_message("\icon[src] *beep* *beep*", null, 3) cooldown = 2 spawn(10) process_cooldown() diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index 07fab03cfdc..9a51ef9737c 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -244,6 +244,7 @@ var/next_external_rsc = 0 'nano/css/shared.css', 'nano/css/icons.css', 'nano/templates/chem_dispenser.tmpl', + 'nano/templates/chem_heater.tmpl', 'nano/templates/smes.tmpl', 'nano/templates/apc.tmpl', 'nano/templates/cryo.tmpl', diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm new file mode 100644 index 00000000000..fdefdefd12f --- /dev/null +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -0,0 +1,213 @@ +/obj/item/clothing/head/helmet/space/chronos + name = "Chronosuit Helmet" + desc = "A white helmet with an opaque blue visor." + icon_state = "chronohelmet" + item_state = "chronohelmet" + slowdown = 1 + armor = list(melee = 60, bullet = 30/*bullet through the visor*/, laser = 60, energy = 60, bomb = 30, bio = 90, rad = 90) + var/obj/item/clothing/suit/space/chronos/suit = null + +/obj/item/clothing/head/helmet/space/chronos/dropped() + if(suit) + suit.deactivate() + ..() + +/obj/item/clothing/head/helmet/space/chronos/Destroy() + dropped() + ..() + + +/obj/item/clothing/suit/space/chronos + name = "Chronosuit" + desc = "An advanced spacesuit equipped with teleportation and anti-compression technology" + icon_state = "chronosuit" + item_state = "chronosuit" + action_button_name = "Toggle Chronosuit" + slowdown = 2 + armor = list(melee = 60, bullet = 60, laser = 60, energy = 60, bomb = 30, bio = 90, rad = 90) + var/obj/item/clothing/head/helmet/space/chronos/helmet = null + var/obj/effect/chronos_cam/camera = null + var/activating = 0 + var/activated = 0 + var/cooldowntime = 50 //deciseconds + var/cooldown = 0 + var/teleporting = 0 + + +/obj/item/clothing/suit/space/chronos/proc/new_camera(var/mob/user) + if(camera) + qdel(camera) + camera = new /obj/effect/chronos_cam(get_turf(user)) + camera.holder = user + user.remote_control = camera + +/obj/item/clothing/suit/space/chronos/ui_action_click() + if((cooldown <= world.time) && !teleporting && !activating) + if(!activated) + activate() + else + deactivate() + +/obj/item/clothing/suit/space/chronos/dropped() + if(activated) + deactivate() + ..() + +/obj/item/clothing/suit/space/chronos/Destroy() + dropped() + ..() + +/obj/item/clothing/suit/space/chronos/emp_act(severity) + var/mob/living/carbon/human/user = src.loc + switch(severity) + if(1) + if(user && ishuman(user) && (user.wear_suit == src)) + user << "Elecrtromagnetic pulse detected, shutting down systems to preserve integrity..." + deactivate() + +/obj/item/clothing/suit/space/chronos/proc/chronowalk(var/mob/living/carbon/human/user) + if(!teleporting && user && (user.stat == CONSCIOUS)) + teleporting = 1 + var/turf/from_turf = get_turf(user) + if(!from_turf) //sanity, things happen + teleporting = 0 + return + var/turf/to_turf = from_turf + var/atom/movable/overlay/phaseanim = new(from_turf) + var/obj/holder = new(camera) + phaseanim.name = "phasing [user.name]" + phaseanim.icon = 'icons/mob/mob.dmi' + phaseanim.icon_state = "chronostuck" + phaseanim.density = 1 + phaseanim.layer = FLY_LAYER + phaseanim.master = user + user.ExtinguishMob() + if(user.buckled) + user.buckled.unbuckle_mob() + user.loc = holder + flick("chronophase", phaseanim) + spawn(7) + if(user) + if(phaseanim) + if(camera && camera.loc) + to_turf = camera.loc + flick("chronounphase", phaseanim) + else + flick("chronostuck", phaseanim) + phaseanim.loc = to_turf + sleep(7) + if(holder) + if(user && user in holder.contents) + user.loc = to_turf + if(user.client) + if(camera) + user.client.eye = camera + else + user.client.eye = user + qdel(holder) + else if(user) + user.loc = from_turf + if(phaseanim) + qdel(phaseanim) + teleporting = 0 + if(user && !user.loc) //ubersanity + user.loc = locate(0,0,1) + user.gib() + +/obj/item/clothing/suit/space/chronos/process() + if(activated) + var/mob/living/carbon/human/user = src.loc + if(user && ishuman(user) && (user.wear_suit == src)) + if(camera && (user.remote_control == camera)) + if(!teleporting && !((camera.x == user.x) && (camera.y == user.y) && (camera.z == user.z))) //cheaper than a couple get_turf calls??? + chronowalk(user) + else + new_camera(user) + else + SSobj.processing.Remove(src) + +/obj/item/clothing/suit/space/chronos/proc/activate() + if(!activating && !activated && !teleporting) + activating = 1 + var/mob/living/carbon/human/user = src.loc + if(user && ishuman(user)) + if(user.wear_suit == src) + user << "\nChronosuitMK4 login: root" + user << "Password:\n" + user << "root@ChronosuitMK4# chronowalk4 --start\n" + if(user.head && istype(user.head, /obj/item/clothing/head/helmet/space/chronos)) + user << "\[ ok \] Mounting /dev/helmet" + helmet = user.head + helmet.flags |= NODROP + helmet.suit = src + src.flags |= NODROP + user << "\[ ok \] Starting brainwave scanner" + user << "\[ ok \] Starting ui display driver" + user << "\[ ok \] Initializing chronowalk4-view" + new_camera(user) + SSobj.processing.Add(src) + activated = 1 + else + user << "\[ fail \] Mounting /dev/helmet" + user << "FATAL: Unable to locate /dev/helmet. Aborting..." + cooldown = world.time + cooldowntime + activating = 0 + return 0 + +/obj/item/clothing/suit/space/chronos/proc/deactivate() + if(activated) + activating = 1 + var/mob/living/carbon/human/user = src.loc + if(user && ishuman(user)) + if(user.wear_suit == src) + user << "\nroot@ChronosuitMK4# chronowalk4 --stop\n" + if(camera) + user << "\[ ok \] Sending TERM signal to chronowalk4-view" //yes I know they aren't a different color when shutting down, but they were too similar at a glance + qdel(camera) + if(helmet) + user << "\[ ok \] Stopping ui display driver" + user << "\[ ok \] Stopping brainwave scanner" + user << "\[ ok \] Unmounting /dev/helmet" + helmet.flags &= ~NODROP + helmet.suit = null + helmet = null + user << "logout" + src.flags &= ~NODROP + cooldown = world.time + cooldowntime * 1.5 + activated = 0 + activating = 0 + + +/obj/effect/chronos_cam + name = "Chronosuit View" + density = 0 + anchored = 1 + invisibility = 101 + opacity = 0 + mouse_opacity = 0 + var/mob/holder = null + +/obj/effect/chronos_cam/relaymove(var/mob/user, direction) + if(holder) + if(user == holder) + if(user.client && user.client.eye != src) + src.loc = get_turf(user) + user.client.eye = src + var/step = get_step(src, direction) + if(step) + if(istype(step, /turf/space)) + if(!src.Move(step)) + src.loc = step + else + src.loc = step + else + qdel(src) + +/obj/effect/chronos_cam/Destroy() + if(holder) + if(holder.remote_control == src) + holder.remote_control = null + if(holder.client && (holder.client.eye == src)) + holder.client.eye = holder + ..() + diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 10aa34f3771..5e4f5b97571 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -115,3 +115,56 @@ armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) strip_delay = 40 put_on_delay = 20 + + //Emergency Response Team suits +/obj/item/clothing/head/helmet/space/hardsuit/ert + name = "emergency response unit helmet" + desc = "Standard issue command helmet for the ERT" + icon_state = "hardsuit0-ert_commander" + item_state = "hardsuit0-ert_commander" + item_color = "ert_commander" + armor = list(melee = 65, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100) + strip_delay = 130 + +/obj/item/clothing/head/helmet/space/hardsuit/ert/sec + desc = "Standard issue security helmet for the ERT" + icon_state = "hardsuit0-ert_security" + item_state = "hardsuit0-ert_security" + item_color = "ert_security" + +/obj/item/clothing/head/helmet/space/hardsuit/ert/engi + desc = "Standard issue engineer helmet for the ERT" + icon_state = "hardsuit0-ert_engineer" + item_state = "hardsuit0-ert_engineer" + item_color = "ert_engineer" + +/obj/item/clothing/head/helmet/space/hardsuit/ert/med + desc = "Standard issue medical helmet for the ERT" + icon_state = "hardsuit0-ert_medical" + item_state = "hardsuit0-ert_medical" + item_color = "ert_medical" + +/obj/item/clothing/suit/space/ert + name = "emergency response team suit" + desc = "Standard issue command suit for the ERT." + icon_state = "ert_command" + item_state = "ert_command" + 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/emergency_oxygen) + armor = list(melee = 65, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100) + slowdown = 1 + strip_delay = 130 + +/obj/item/clothing/suit/space/ert/sec + desc = "Standard issue security suit for the ERT." + icon_state = "ert_security" + item_state = "ert_security" + +/obj/item/clothing/suit/space/ert/engi + desc = "Standard issue engineer suit for the ERT." + icon_state = "ert_engineer" + item_state = "ert_engineer" + +/obj/item/clothing/suit/space/ert/med + desc = "Standard issue medical suit for the ERT." + icon_state = "ert_medical" + item_state = "ert_medical" \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/ninja.dm b/code/modules/clothing/spacesuits/ninja.dm index 47d2d3aede6..93b9129c189 100644 --- a/code/modules/clothing/spacesuits/ninja.dm +++ b/code/modules/clothing/spacesuits/ninja.dm @@ -23,7 +23,7 @@ var/mob/living/carbon/affecting = null//The wearer. var/obj/item/weapon/stock_parts/cell/cell//Starts out with a high-capacity cell using New(). var/datum/effect/effect/system/spark_spread/spark_system//To create sparks. - var/reagent_list[] = list("tricordrazine","dexalinp","spaceacillin","anti_toxin","nutriment","radium","hyronalin")//The reagents ids which are added to the suit at New(). + var/reagent_list[] = list("omnizine","salbutamol","spaceacillin","charcoal","nutriment","radium","potass_iodide")//The reagents ids which are added to the suit at New(). var/stored_research[]//For stealing station research. var/obj/item/weapon/disk/tech_disk/t_disk//To copy design onto disk. diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index e75d03cb4d8..53e796746ed 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -54,20 +54,6 @@ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT -/obj/item/clothing/suit/greatcoat - name = "greatcoat" - desc = "A Nazi greatcoat." - icon_state = "nazi" - item_state = "nazi" - - -/obj/item/clothing/suit/johnny_coat - name = "johnny~~ coat" - desc = "Johnny~~" - icon_state = "johnny" - item_state = "johnny" - - /obj/item/clothing/suit/justice name = "justice suit" desc = "this pretty much looks ridiculous" //Needs no fixing @@ -214,7 +200,7 @@ name = "bomber jacket" desc = "Aviators not included." icon_state = "bomberjacket" - item_state = "johnny" + item_state = "brownjsuit" allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter) body_parts_covered = CHEST|GROIN|ARMS cold_protection = CHEST|GROIN|ARMS diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 58d5cb563e1..581cb073d03 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -13,7 +13,7 @@ name = "emergency firesuit" desc = "A suit that helps protect against fire and heat." icon_state = "fire" - item_state = "fire_suit" + item_state = "ro_suit" w_class = 4 gas_transfer_coefficient = 0.90 permeability_coefficient = 0.50 diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index 28ad8e42ad1..2753980a5f1 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -3,9 +3,9 @@ /obj/item/clothing/under/rank/bartender desc = "It looks like it could use some more flair." name = "bartender's uniform" - icon_state = "ba_suit" - item_state = "ba_suit" - item_color = "ba_suit" + icon_state = "bar_suit" + item_state = "bar_suit" + item_color = "bar_suit" /obj/item/clothing/under/rank/captain //Alright, technically not a 'civilian' but its better then giving a .dm file for a single define. @@ -136,7 +136,7 @@ name = "black suit" desc = "A professional black suit. Nanotrasen Investigation Bureau approved!" icon_state = "blacksuit" - item_state = "ba_suit" + item_state = "bar_suit" item_color = "blacksuit" can_adjust = 1 diff --git a/code/modules/clothing/under/jobs/medsci.dm b/code/modules/clothing/under/jobs/medsci.dm index 5947065bf55..3fd2cc664f7 100644 --- a/code/modules/clothing/under/jobs/medsci.dm +++ b/code/modules/clothing/under/jobs/medsci.dm @@ -117,48 +117,3 @@ icon_state = "scrubspurple" item_color = "scrubspurple" can_adjust = 0 - - - -/* - * Medsci, unused (i think) stuff - */ -/obj/item/clothing/under/rank/geneticist_new - desc = "It's made of a special fiber that provides minor protection against biohazards." - name = "geneticist's jumpsuit" - icon_state = "genetics_new" - item_state = "w_suit" - item_color = "genetics_new" - permeability_coefficient = 0.50 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - can_adjust = 0 - -/obj/item/clothing/under/rank/chemist_new - desc = "It's made of a special fiber that provides minor protection against biohazards." - name = "chemist's jumpsuit" - icon_state = "chemist_new" - item_state = "w_suit" - item_color = "chemist_new" - permeability_coefficient = 0.50 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - can_adjust = 0 - -/obj/item/clothing/under/rank/scientist_new - desc = "Made of a special fiber that gives special protection against biohazards and small explosions." - name = "scientist's jumpsuit" - icon_state = "scientist_new" - item_state = "w_suit" - item_color = "scientist_new" - permeability_coefficient = 0.50 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0) - can_adjust = 0 - -/obj/item/clothing/under/rank/virologist_new - desc = "Made of a special fiber that gives increased protection against biohazards." - name = "virologist's jumpsuit" - icon_state = "virologist_new" - item_state = "w_suit" - item_color = "virologist_new" - permeability_coefficient = 0.50 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - can_adjust = 0 diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 88cc52f77bd..97dde6868a0 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -134,13 +134,6 @@ fitted = 0 can_adjust = 0 -/obj/item/clothing/under/johnny - name = "johnny~~ jumpsuit" - desc = "Johnny~~" - icon_state = "johnny" - item_color = "johnny" - can_adjust = 0 - /obj/item/clothing/under/rainbow name = "rainbow" desc = "rainbow" @@ -186,7 +179,6 @@ icon_state = "really_black_suit" item_state = "bl_suit" item_color = "black_suit" - can_adjust = 0 /obj/item/clothing/under/suit_jacket/female name = "executive suit" @@ -201,7 +193,6 @@ icon_state = "red_suit" item_state = "r_suit" item_color = "red_suit" - can_adjust = 0 /obj/item/clothing/under/suit_jacket/charcoal name = "charcoal suit" @@ -209,7 +200,6 @@ icon_state = "charcoal_suit" item_state = "charcoal_suit" item_color = "charcoal_suit" - can_adjust = 0 /obj/item/clothing/under/suit_jacket/navy name = "navy suit" @@ -217,7 +207,6 @@ icon_state = "navy_suit" item_state = "navy_suit" item_color = "navy_suit" - can_adjust = 0 /obj/item/clothing/under/suit_jacket/burgundy name = "burgundy suit" @@ -225,7 +214,6 @@ icon_state = "burgundy_suit" item_state = "burgundy_suit" item_color = "burgundy_suit" - can_adjust = 0 /obj/item/clothing/under/suit_jacket/checkered name = "checkered suit" @@ -233,7 +221,6 @@ icon_state = "checkered_suit" item_state = "checkered_suit" item_color = "checkered_suit" - can_adjust = 0 /obj/item/clothing/under/suit_jacket/tan name = "tan suit" @@ -241,7 +228,13 @@ icon_state = "tan_suit" item_state = "tan_suit" item_color = "tan_suit" - can_adjust = 0 + +/obj/item/clothing/under/suit_jacket/white + name = "white suit" + desc = "A white suit and jacket with a black shirt. You wanna play rough? OKAY!." + icon_state = "white_suit" + item_state = "white_suit" + item_color = "white_suit" /obj/item/clothing/under/blackskirt name = "black skirt" diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm index db060397c5a..15e4aa194a5 100644 --- a/code/modules/clothing/under/pants.dm +++ b/code/modules/clothing/under/pants.dm @@ -52,12 +52,6 @@ icon_state = "tanpants" item_color = "tanpants" -/obj/item/clothing/under/pants/blue - name = "blue pants" - desc = "Stylish blue pants. These go well with a lot of clothes." - icon_state = "bluepants" - item_color = "bluepants" - /obj/item/clothing/under/pants/track name = "track pants" desc = "A pair of track pants, for the athletic." diff --git a/code/modules/events/ninja.dm b/code/modules/events/ninja.dm index 29c7f0e613b..055204702ac 100644 --- a/code/modules/events/ninja.dm +++ b/code/modules/events/ninja.dm @@ -1555,7 +1555,7 @@ ________________________________________________________________________________ P.tnote += "← From [!s_control?(A):"an unknown source"]:
    [t]
    " if (!P.silent) playsound(P.loc, 'sound/machines/twobeep.ogg', 50, 1) - P.loc.audible_message("\icon[P] *[P.ttone]*", null, 3) + P.audible_message("\icon[P] *[P.ttone]*", null, 3) P.overlays.Cut() P.overlays += image('icons/obj/pda.dmi', "pda-r") diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 8e44f384c2c..e1d9486c63c 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -211,7 +211,6 @@ pass_flags = PASSTABLE | PASSGRILLE var/energy = 0 var/obj/effect/spacevine_controller/master = null - var/mob/living/buckled_mob var/list/mutations = list() /obj/effect/spacevine/New() @@ -285,7 +284,7 @@ var/obj/item/weapon/weldingtool/WT = W if(WT.remove_fuel(0, user)) qdel(src) else - manual_unbuckle(user) + user_unbuckle_mob(user,user) return //Plant-b-gone damage is handled in its entry in chemistry-reagents.dm ..() @@ -298,46 +297,16 @@ /obj/effect/spacevine/attack_hand(mob/user as mob) for(var/datum/spacevine_mutation/SM in mutations) SM.on_hit(src, user) - manual_unbuckle(user) + user_unbuckle_mob(user, user) /obj/effect/spacevine/attack_paw(mob/living/user as mob) user.do_attack_animation(src) for(var/datum/spacevine_mutation/SM in mutations) SM.on_hit(src, user) - manual_unbuckle(user) + user_unbuckle_mob(user,user) -/obj/effect/spacevine/proc/unbuckle() - if(buckled_mob) - if(buckled_mob.buckled == src) //this is probably unneccesary, but it doesn't hurt - buckled_mob.buckled = null - buckled_mob.anchored = initial(buckled_mob.anchored) - buckled_mob.update_canmove() - buckled_mob = null - return -/obj/effect/spacevine/proc/manual_unbuckle(mob/user as mob) - if(buckled_mob) - if(prob(50)) - if(buckled_mob.buckled == src) - if(buckled_mob != user) - buckled_mob.visible_message(\ - "[user.name] frees [buckled_mob.name] from the vines.",\ - "[user.name] frees you from the vines.",\ - "You hear shredding and ripping.") - else - buckled_mob.visible_message(\ - "[buckled_mob.name] struggles free of the vines.",\ - "You untangle the vines from around yourself.",\ - "You hear shredding and ripping.") - unbuckle() - else - var/text = pick("rip","tear","pull") - user.visible_message(\ - "[user.name] [text]s at the vines.",\ - "You [text] at the vines.",\ - "You hear shredding and ripping.") - return /obj/effect/spacevine_controller var/list/obj/effect/spacevine/vines = list() @@ -446,18 +415,15 @@ for(var/datum/spacevine_mutation/SM in mutations) SM.on_grow(src) -/obj/effect/spacevine/proc/buckle_mob() +/obj/effect/spacevine/buckle_mob() if(!buckled_mob && prob(25)) for(var/mob/living/carbon/V in src.loc) for(var/datum/spacevine_mutation/SM in mutations) SM.on_buckle(src, V) - if((V.stat != DEAD) && (V.buckled != src)) //if mob not dead or captured - V.buckled = src - V.loc = src.loc - V.update_canmove() - src.buckled_mob = V + if((V.stat != DEAD) && (V.buckled != src)) //not dead or captured V << "The vines [pick("wind", "tangle", "tighten")] around you!" - break //only capture one mob at a time. + ..(V) + break //only capture one mob at a time /obj/effect/spacevine/proc/spread() var/direction = pick(cardinal) diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm index 9c50288dd9a..6037b853a90 100644 --- a/code/modules/events/vent_clog.dm +++ b/code/modules/events/vent_clog.dm @@ -28,7 +28,7 @@ var/obj/vent = pick_n_take(vents) if(vent && vent.loc) var/list/gunk = list("water","carbon","flour","radium","toxin","cleaner","nutriment","condensedcapsaicin","mushroomhallucinogen","lube", - "plantbgone","banana","anti_toxin","space_drugs","hyperzine","holywater","ethanol","hot_coco","pacid") + "plantbgone","banana","charcoal","space_drugs","morphine","holywater","ethanol","hot_coco","pacid") var/datum/reagents/R = new/datum/reagents(50) R.my_atom = vent R.add_reagent(pick(gunk), 50) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 521b6595861..645260c3ec2 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -51,7 +51,7 @@ mob/living/carbon/proc/handle_hallucinations() halitem.layer = 50 switch(rand(1,6)) if(1) //revolver - halitem.icon = 'icons/obj/gun.dmi' + halitem.icon = 'icons/obj/guns/projectile.dmi' halitem.icon_state = "revolver" halitem.name = "Revolver" if(2) //c4 @@ -342,7 +342,7 @@ mob/living/carbon/proc/handle_hallucinations() return var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/item/ammo_box/a357,\ - /obj/item/weapon/gun/projectile/automatic/crossbow, /obj/item/weapon/melee/energy/sword/saber,\ + /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow, /obj/item/weapon/melee/energy/sword/saber,\ /obj/item/weapon/storage/box/syndicate, /obj/item/weapon/storage/box/emps,\ /obj/item/weapon/cartridge/syndicate, /obj/item/clothing/under/chameleon,\ /obj/item/clothing/shoes/syndigaloshes, /obj/item/weapon/card/id/syndicate,\ diff --git a/code/modules/food&drinks/drinks/drinks.dm b/code/modules/food&drinks/drinks/drinks.dm index 9f064b53481..f2dbb503bf9 100644 --- a/code/modules/food&drinks/drinks/drinks.dm +++ b/code/modules/food&drinks/drinks/drinks.dm @@ -41,10 +41,10 @@ playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1) return 1 - M.visible_message("[user] attempts to feed [src] to [M].", "You attempt to feed [src] to [M].") + user.visible_message("[user] attempts to feed [src] to [M].", "You attempt to feed [src] to [M].") if(!do_mob(user, M)) return if(!reagents.total_volume) return // The drink might be empty after the delay, such as by spam-feeding - M.visible_message("[user] feeds [src] to [M].", "You feed [src] to [M].") + user.visible_message("[user] feeds [src] to [M].", "You feed [src] to [M].") add_logs(user, M, "fed", object="[reagentlist(src)]") if(reagents.total_volume) reagents.reaction(M, INGEST) diff --git a/code/modules/food&drinks/food/snacks.dm b/code/modules/food&drinks/food/snacks.dm index a48ad6eba8b..5a1d222bda7 100644 --- a/code/modules/food&drinks/food/snacks.dm +++ b/code/modules/food&drinks/food/snacks.dm @@ -205,7 +205,7 @@ //Notes by Darem: Food in the "snacks" subtype can hold a maximum of 50 units Generally speaking, you don't want to go over 40 // total for the item because you want to leave space for extra condiments. If you want effect besides healing, add a reagent for -// it. Try to stick to existing reagents when possible (so if you want a stronger healing effect, just use Tricordrazine). On use +// it. Try to stick to existing reagents when possible (so if you want a stronger healing effect, just use omnizine). On use // effect (such as the old officer eating a donut code) requires a unique reagent (unless you can figure out a better way). //The nutriment reagent and bitesize variable replace the old heal_amt and amount variables. Each unit of nutriment is equal to diff --git a/code/modules/food&drinks/food/snacks_cake.dm b/code/modules/food&drinks/food/snacks_cake.dm index e74d7a0d951..d72dec3a3f3 100644 --- a/code/modules/food&drinks/food/snacks_cake.dm +++ b/code/modules/food&drinks/food/snacks_cake.dm @@ -9,7 +9,7 @@ /obj/item/weapon/reagent_containers/food/snacks/sliceable/store/carrotcake/New() ..() reagents.add_reagent("nutriment", 20) - reagents.add_reagent("imidazoline", 10) + reagents.add_reagent("oculine", 10) reagents.add_reagent("vitamin", 5) bitesize = 2 diff --git a/code/modules/food&drinks/food/snacks_meat.dm b/code/modules/food&drinks/food/snacks_meat.dm index fa03921b1e2..191739db7da 100644 --- a/code/modules/food&drinks/food/snacks_meat.dm +++ b/code/modules/food&drinks/food/snacks_meat.dm @@ -83,7 +83,7 @@ /obj/item/weapon/reagent_containers/food/snacks/bearmeat/New() ..() reagents.add_reagent("nutriment", 12) - reagents.add_reagent("hyperzine", 5) + reagents.add_reagent("morphine", 5) reagents.add_reagent("vitamin", 2) src.bitesize = 3 @@ -278,7 +278,7 @@ eatverb = pick("slurp","sip","suck","inhale","drink") reagents.add_reagent("nutriment", 10) reagents.add_reagent("tomatojuice", 5) - reagents.add_reagent("imidazoline", 5) + reagents.add_reagent("oculine", 5) reagents.add_reagent("water", 5) bitesize = 10 diff --git a/code/modules/food&drinks/food/snacks_other.dm b/code/modules/food&drinks/food/snacks_other.dm index ce6a4650934..f8b392e0e61 100644 --- a/code/modules/food&drinks/food/snacks_other.dm +++ b/code/modules/food&drinks/food/snacks_other.dm @@ -165,7 +165,7 @@ /obj/item/weapon/reagent_containers/food/snacks/carrotfries/New() ..() reagents.add_reagent("nutriment", 3) - reagents.add_reagent("imidazoline", 3) + reagents.add_reagent("oculine", 3) reagents.add_reagent("vitamin", 2) bitesize = 2 diff --git a/code/modules/food&drinks/food/snacks_pastry.dm b/code/modules/food&drinks/food/snacks_pastry.dm index 4860f4fd103..85b5231cf78 100644 --- a/code/modules/food&drinks/food/snacks_pastry.dm +++ b/code/modules/food&drinks/food/snacks_pastry.dm @@ -51,7 +51,7 @@ if(9) reagents.add_reagent("berryjuice", 3) if(10) - reagents.add_reagent("tricordrazine", 3) + reagents.add_reagent("omnizine", 3) if(prob(30)) icon_state = "donut2" name = "frosted chaos donut" @@ -249,7 +249,7 @@ name = "exceptional plump helmet biscuit" desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump helmet biscuit!" reagents.add_reagent("nutriment", 3) - reagents.add_reagent("tricordrazine", 5) + reagents.add_reagent("omnizine", 5) reagents.add_reagent("nutriment", 5) reagents.add_reagent("vitamin", 1) bitesize = 2 diff --git a/code/modules/food&drinks/food/snacks_pie.dm b/code/modules/food&drinks/food/snacks_pie.dm index 7894ea3c301..2937ee70a55 100644 --- a/code/modules/food&drinks/food/snacks_pie.dm +++ b/code/modules/food&drinks/food/snacks_pie.dm @@ -78,7 +78,7 @@ if(prob(10)) name = "exceptional plump pie" desc = "Microwave is taken by a fey mood! It has cooked an exceptional plump pie!" - reagents.add_reagent("tricordrazine", 5) + reagents.add_reagent("omnizine", 5) reagents.add_reagent("nutriment", 8) reagents.add_reagent("vitamin", 4) diff --git a/code/modules/food&drinks/food/snacks_pizza.dm b/code/modules/food&drinks/food/snacks_pizza.dm index 2469d35fbb1..6b370d5dcb2 100644 --- a/code/modules/food&drinks/food/snacks_pizza.dm +++ b/code/modules/food&drinks/food/snacks_pizza.dm @@ -74,7 +74,7 @@ ..() reagents.add_reagent("nutriment", 25) reagents.add_reagent("tomatojuice", 6) - reagents.add_reagent("imidazoline", 12) + reagents.add_reagent("oculine", 12) reagents.add_reagent("vitamin", 5) bitesize = 2 diff --git a/code/modules/food&drinks/food/snacks_salad.dm b/code/modules/food&drinks/food/snacks_salad.dm index 3b0ad13e3cb..35d5a0f66ac 100644 --- a/code/modules/food&drinks/food/snacks_salad.dm +++ b/code/modules/food&drinks/food/snacks_salad.dm @@ -11,7 +11,7 @@ ..() eatverb = pick("crunch","devour","nibble","gnaw","gobble","chomp") reagents.add_reagent("nutriment", 8) - reagents.add_reagent("tricordrazine", 8) + reagents.add_reagent("omnizine", 8) reagents.add_reagent("vitamin", 6) bitesize = 3 diff --git a/code/modules/food&drinks/food/snacks_soup.dm b/code/modules/food&drinks/food/snacks_soup.dm index f9aa75f6eb9..92fbe50250b 100644 --- a/code/modules/food&drinks/food/snacks_soup.dm +++ b/code/modules/food&drinks/food/snacks_soup.dm @@ -79,7 +79,7 @@ eatverb = pick("slurp","sip","suck","inhale","drink") reagents.add_reagent("nutriment", 8) reagents.add_reagent("water", 5) - reagents.add_reagent("tricordrazine", 5) + reagents.add_reagent("omnizine", 5) reagents.add_reagent("vitamin", 5) bitesize = 5 @@ -104,7 +104,7 @@ if(3) reagents.add_reagent("nutriment", 5) reagents.add_reagent("water", 5) - reagents.add_reagent("tricordrazine", 5) + reagents.add_reagent("omnizine", 5) if(4) reagents.add_reagent("nutriment", 5) reagents.add_reagent("water", 10) @@ -126,7 +126,7 @@ if(10) reagents.add_reagent("nutriment", 6) reagents.add_reagent("tomatojuice", 5) - reagents.add_reagent("imidazoline", 5) + reagents.add_reagent("oculine", 5) bitesize = 5 /obj/item/weapon/reagent_containers/food/snacks/wishsoup diff --git a/code/modules/food&drinks/kitchen machinery/smartfridge.dm b/code/modules/food&drinks/kitchen machinery/smartfridge.dm index 014669ec4ad..8e344d54189 100644 --- a/code/modules/food&drinks/kitchen machinery/smartfridge.dm +++ b/code/modules/food&drinks/kitchen machinery/smartfridge.dm @@ -310,8 +310,8 @@ obj/machinery/smartfridge/drying_rack/load() //For updating the filled overlay /obj/machinery/smartfridge/chemistry name = "smart chemical storage" desc = "A refrigerated storage unit for medicine storage." - var/list/spawn_meds = list(/obj/item/weapon/reagent_containers/pill/inaprovaline = 12,/obj/item/weapon/reagent_containers/pill/antitox = 1, - /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline = 1, /obj/item/weapon/reagent_containers/glass/bottle/antitoxin = 1) + var/list/spawn_meds = list(/obj/item/weapon/reagent_containers/pill/epinephrine = 12,/obj/item/weapon/reagent_containers/pill/charcoal = 1, + /obj/item/weapon/reagent_containers/glass/bottle/epinephrine = 1, /obj/item/weapon/reagent_containers/glass/bottle/charcoal = 1) /obj/machinery/smartfridge/chemistry/New() ..() diff --git a/code/modules/food&drinks/recipes/drinks_recipes.dm b/code/modules/food&drinks/recipes/drinks_recipes.dm index 27d18b40ac9..cd97b0eccc8 100644 --- a/code/modules/food&drinks/recipes/drinks_recipes.dm +++ b/code/modules/food&drinks/recipes/drinks_recipes.dm @@ -178,7 +178,7 @@ name = "The Doctor's Delight" id = "doctordelight" result = "doctorsdelight" - required_reagents = list("limejuice" = 1, "tomatojuice" = 1, "orangejuice" = 1, "cream" = 1, "tricordrazine" = 1) + required_reagents = list("limejuice" = 1, "tomatojuice" = 1, "orangejuice" = 1, "cream" = 1, "omnizine" = 1) result_amount = 5 /datum/chemical_reaction/irish_cream @@ -441,7 +441,7 @@ name = "Neurotoxin" id = "neurotoxin" result = "neurotoxin" - required_reagents = list("gargleblaster" = 1, "stoxin" = 1) + required_reagents = list("gargleblaster" = 1, "morphine" = 1) result_amount = 2 /datum/chemical_reaction/snowwhite diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index 511c5807572..3849d5aa4d8 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -135,15 +135,19 @@ dat += "ActivateDetach Container" dat += "

    Food:

    " dat += "
    " - dat += "10 milk: Make ([20/efficiency])
    " - dat += "10 cream: Make ([30/efficiency])
    " - dat += "Monkey cube: Make ([250/efficiency])" + dat += "10 milk: Makex5 ([20/efficiency])
    " + dat += "10 cream: Makex5 ([30/efficiency])
    " + dat += "Milk Carton: Makex5 ([100/efficiency])
    " + dat += "Cream Carton: Makex5 ([300/efficiency])
    " + dat += "Monkey cube: Makex5 ([250/efficiency])" dat += "
    " - dat += "

    Nutrients:

    " + dat += "

    Botany Chemicals:

    " dat += "
    " dat += "E-Z-Nutrient: Makex5 ([10/efficiency])
    " dat += "Left 4 Zed: Makex5 ([20/efficiency])
    " dat += "Robust Harvest: Makex5 ([25/efficiency])
    " + dat += "Weed Killer: Makex5 ([50/efficiency])
    " + dat += "Pest Killer: Makex5 ([50/efficiency])
    " dat += "
    " dat += "

    Leather:

    " dat += "
    " @@ -153,6 +157,10 @@ dat += "Mining satchel: Make ([200/efficiency])
    " dat += "Botanical gloves: Make ([250/efficiency])
    " dat += "Utility belt: Make ([300/efficiency])
    " + dat += "Security belt: Make ([300/efficiency])
    " + dat += "Medical belt: Make ([300/efficiency])
    " + dat += "Janitorial belt: Make ([300/efficiency])
    " + dat += "Bandolier belt: Make ([300/efficiency])
    " dat += "Leather Satchel: Make ([400/efficiency])
    " dat += "Leather Jacket: Make ([500/efficiency])
    " dat += "
    " @@ -221,6 +229,12 @@ if(check_container_volume(10)) return 0 else if (check_cost(30/efficiency)) return 0 else beaker.reagents.add_reagent("cream",10) + if("cmilk") + if (check_cost(100/efficiency)) return 0 + else new/obj/item/weapon/reagent_containers/food/drinks/milk(src.loc) + if("ccream") + if (check_cost(300/efficiency)) return 0 + else new/obj/item/weapon/reagent_containers/food/drinks/bottle/cream(src.loc) if("meat") if (check_cost(250/efficiency)) return 0 else new/obj/item/weapon/reagent_containers/food/snacks/monkeycube(src.loc) @@ -233,6 +247,12 @@ if("rh") if (check_cost(25/efficiency)) return 0 else new/obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh(src.loc) + if("wk") + if (check_cost(50/efficiency)) return 0 + else new/obj/item/weapon/reagent_containers/glass/bottle/weedkiller(src.loc) + if("pk") + if (check_cost(50/efficiency)) return 0 + else new/obj/item/weapon/reagent_containers/glass/bottle/pestkiller(src.loc) if("wallet") if (check_cost(100/efficiency)) return 0 else new/obj/item/weapon/storage/wallet(src.loc) @@ -251,6 +271,18 @@ if("tbelt") if (check_cost(300/efficiency)) return 0 else new/obj/item/weapon/storage/belt/utility(src.loc) + if("sbelt") + if (check_cost(300/efficiency)) return 0 + else new/obj/item/weapon/storage/belt/security(src.loc) + if("mbelt") + if (check_cost(300/efficiency)) return 0 + else new/obj/item/weapon/storage/belt/medical(src.loc) + if("jbelt") + if (check_cost(300/efficiency)) return 0 + else new/obj/item/weapon/storage/belt/janitor(src.loc) + if("bbelt") + if (check_cost(300/efficiency)) return 0 + else new/obj/item/weapon/storage/belt/bandolier(src.loc) if("satchel") if (check_cost(400/efficiency)) return 0 else new/obj/item/weapon/storage/backpack/satchel(src.loc) diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 54f4d2e3df1..b757827c5da 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -131,7 +131,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/poppy/add_juice() if(..()) reagents.add_reagent("nutriment", 1 + round((potency / 20), 1)) - reagents.add_reagent("bicaridine", 1 + round((potency / 10), 1)) + reagents.add_reagent("salglu_solution", 1 + round((potency / 10), 1)) bitesize = 1 + round(reagents.total_volume / 3, 1) @@ -199,7 +199,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/grapes/green/add_juice() ..() - reagents.add_reagent("kelotane", 3 + round((potency / 5), 1)) + reagents.add_reagent("salglu_solution", 3 + round((potency / 5), 1)) /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage @@ -320,8 +320,8 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/vulgaris/add_juice() ..() reagents.add_reagent("space_drugs", 1 + round(potency / 8, 1)) - reagents.add_reagent("kelotane", 1 + round(potency / 8, 1)) - reagents.add_reagent("bicaridine", 1 + round(potency / 10, 1)) + reagents.add_reagent("salglu_solution", 1 + round(potency / 8, 1)) + reagents.add_reagent("salglu_solution", 1 + round(potency / 10, 1)) reagents.add_reagent("toxin", 1 + round(potency / 10, 1)) reagents.add_reagent("vitamin", 1 + round((potency / 20), 1)) @@ -334,9 +334,9 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosia/deus/add_juice() ..() - reagents.add_reagent("bicaridine", 1 + round(potency / 8, 1)) + reagents.add_reagent("omnizine", 1 + round(potency / 8, 1)) reagents.add_reagent("synaptizine", 1 + round(potency / 8, 1)) - reagents.add_reagent("hyperzine", 1 + round(potency / 10, 1)) + reagents.add_reagent("morphine", 1 + round(potency / 10, 1)) reagents.add_reagent("space_drugs", 1 + round(potency / 10, 1)) reagents.add_reagent("vitamin", 1 + round((potency / 10), 1)) @@ -816,7 +816,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice() /obj/item/weapon/reagent_containers/food/snacks/grown/kudzupod/add_juice() if(..()) reagents.add_reagent("nutriment", 1 + round((potency / 50), 1)) - reagents.add_reagent("anti_toxin", 1 + round((potency / 25), 1)) + reagents.add_reagent("charcoal", 1 + round((potency / 25), 1)) bitesize = 1 + round(reagents.total_volume / 2, 1) @@ -830,7 +830,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice() if(..()) reagents.add_reagent("nutriment", 1 + round((potency / 20), 1)) reagents.add_reagent("vitamin", 1 + round((potency / 20), 1)) - reagents.add_reagent("imidazoline", 3+round(potency / 5, 1)) + reagents.add_reagent("oculine", 3+round(potency / 5, 1)) bitesize = 1 + round(reagents.total_volume / 2, 1) @@ -843,15 +843,15 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice() /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/reishi/add_juice() ..() reagents.add_reagent("nutriment", 1) - reagents.add_reagent("anti_toxin", 3+round(potency / 3, 1)) - reagents.add_reagent("stoxin", 3+round(potency / 3, 1)) + reagents.add_reagent("charcoal", 3+round(potency / 3, 1)) + reagents.add_reagent("morphine", 3+round(potency / 3, 1)) bitesize = 1 + round(reagents.total_volume / 2, 1) /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/reishi/attackby(var/obj/item/O as obj, var/mob/user as mob) . = ..() if (istype(O, /obj/item/device/analyzer/plant_analyzer)) - user << "- Anti-Toxin: [reagents.get_reagent_amount("anti_toxin")]%" - user << "- Sleep Toxin: [reagents.get_reagent_amount("stoxin")]%" + user << "- Anti-Toxin: [reagents.get_reagent_amount("charcoal")]%" + user << "- Morphine: [reagents.get_reagent_amount("morphine")]%" /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita seed = /obj/item/seeds/amanitamycelium @@ -1080,7 +1080,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice() /obj/item/weapon/reagent_containers/food/snacks/grown/coffee/robusta/add_juice(var/loc, var/potency = 20) ..() - reagents.add_reagent("hyperzine", 1 + round((potency / 20), 1)) + reagents.add_reagent("morphine", 1 + round((potency / 20), 1)) /obj/item/weapon/reagent_containers/food/snacks/grown/tobacco seed = /obj/item/seeds/tobacco_seed @@ -1102,7 +1102,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice() /obj/item/weapon/reagent_containers/food/snacks/grown/tobacco/space/add_juice() ..() - reagents.add_reagent("dexalin", 1 + round((potency / 20), 1)) + reagents.add_reagent("salbutamol", 1 + round((potency / 20), 1)) /obj/item/weapon/reagent_containers/food/snacks/grown/tea //abstract type @@ -1130,4 +1130,4 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice() /obj/item/weapon/reagent_containers/food/snacks/grown/tea/astra/add_juice() ..() - reagents.add_reagent("kelotane", 1 + round((potency / 20), 1)) \ No newline at end of file + reagents.add_reagent("salglu_solution", 1 + round((potency / 20), 1)) \ No newline at end of file diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index ad113e110ba..98e669c7399 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -17,7 +17,7 @@ /obj/item/weapon/reagent_containers/spray/weedspray // -- Skie desc = "It's a toxic mixture, in spray form, to kill small weeds." icon = 'icons/obj/hydroponics.dmi' - name = "weed-spray" + name = "weed spray" icon_state = "weedspray" item_state = "spray" volume = 100 @@ -39,7 +39,7 @@ /obj/item/weapon/reagent_containers/spray/pestspray // -- Skie desc = "It's some pest eliminator spray! Do not inhale!" icon = 'icons/obj/hydroponics.dmi' - name = "pest-spray" + name = "pest spray" icon_state = "pestspray" item_state = "spray" volume = 100 @@ -118,3 +118,21 @@ /obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh/New() ..() reagents.add_reagent("robustharvestnutriment", 50) + +/obj/item/weapon/reagent_containers/glass/bottle/weedkiller + name = "bottle of weed killer" + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle19" + +/obj/item/weapon/reagent_containers/glass/bottle/weedkiller/New() + ..() + reagents.add_reagent("weedkiller", 50) + +/obj/item/weapon/reagent_containers/glass/bottle/pestkiller + name = "bottle of pest spray" + icon = 'icons/obj/chemical.dmi' + icon_state = "bottle20" + +/obj/item/weapon/reagent_containers/glass/bottle/pestkiller/New() + ..() + reagents.add_reagent("pestkiller", 50) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 394c9036da6..b414d2b6c25 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -445,8 +445,8 @@ obj/machinery/hydroponics/proc/applyChemicals(var/datum/reagents/S) adjustNutri(round(S.get_reagent_amount("robustharvestnutriment") *1 )) // Antitoxin binds shit pretty well. So the tox goes significantly down - if(S.has_reagent("anti_toxin", 1)) - adjustToxic(-round(S.get_reagent_amount("anti_toxin") * 2)) + if(S.has_reagent("charcoal", 1)) + adjustToxic(-round(S.get_reagent_amount("charcoal") * 2)) // NIGGA, YOU JUST WENT ON FULL RETARD. if(S.has_reagent("toxin", 1)) @@ -708,13 +708,25 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob) return if(!anchored && !isinspace()) + user.visible_message("[user] begins to wrench [src] into place.", \ + "You begin to wrench [src] in place.") playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) - anchored = 1 - user << "You wrench [src] in place." + if (do_after(user, 20)) + if(anchored) + return + anchored = 1 + user.visible_message("[user] wrenches [src] into place.", \ + "You wrench [src] in place.") else if(anchored) + user.visible_message("[user] begins to unwrench [src].", \ + "You begin to unwrench [src].") playsound(loc, 'sound/items/Ratchet.ogg', 50, 1) - anchored = 0 - user << "You unwrench [src]." + if (do_after(user, 20)) + if(!anchored) + return + anchored = 0 + user.visible_message("[user] unwrenches [src].", \ + "You unwrench [src].") else if(istype(O, /obj/item/weapon/screwdriver) && unwrenchable) //THIS NEED TO BE DONE DIFFERENTLY, SOMEONE REFACTOR THE TRAY CODE ALREADY if(anchored) diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index b82a14f6d36..3a4fec5c359 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -281,7 +281,7 @@ throw_speed = 3 throw_range = 5 w_class = 1.0 - var/obj/machinery/librarycomp/computer //Associated computer - Modes 1 to 3 use this + var/obj/machinery/computer/libraryconsole/bookmanagement/computer //Associated computer - Modes 1 to 3 use this var/obj/item/weapon/book/book //Currently scanned book var/mode = 0 //0 - Scan only, 1 - Scan and Set Buffer, 2 - Scan and Attempt to Check In, 3 - Scan and Attempt to Add to Inventory diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 7e35e7cf0fe..af13630407a 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -17,23 +17,28 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f var/getdate var/duedate + /* * Library Public Computer */ -/obj/machinery/librarypubliccomp +/obj/machinery/computer/libraryconsole name = "library visitor console" - icon = 'icons/obj/library.dmi' - icon_state = "computer" - anchored = 1 - density = 1 + icon = 'icons/obj/computer.dmi' + icon_state = "library" + circuit = /obj/item/weapon/circuitboard/libraryconsole var/screenstate = 0 var/title var/category = "Any" var/author var/SQLquery -/obj/machinery/librarypubliccomp/attack_hand(var/mob/user as mob) - usr.set_machine(src) +/obj/machinery/computer/libraryconsole/attack_hand(var/mob/user as mob) + if(..()) + return + interact(user) + +/obj/machinery/computer/libraryconsole/interact(mob/user) + user.set_machine(src) var/dat = "" // switch(screenstate) if(0) @@ -63,14 +68,13 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f dat += "
" dat += "

Name

Vitals

Position

[I.registered_name] ([I.assignment])
Unknown
[author][title][category][id]

" dat += "\[Go Back\]
" - //user << browse(dat, "window=publiclibrary") - //onclose(user, "publiclibrary") var/datum/browser/popup = new(user, "publiclibrary", name, 600, 400) popup.set_content(dat) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() -/obj/machinery/librarypubliccomp/Topic(href, href_list) +/obj/machinery/computer/libraryconsole/Topic(href, href_list) + . = ..() if(..()) usr << browse(null, "window=publiclibrary") onclose(usr, "publiclibrary") @@ -115,17 +119,12 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f /* * Library Computer + * After 860 days, it's finally a buildable computer. */ -// TODO: Make this an actual /obj/machinery/computer that can be crafted from circuit boards and such -// It is August 22nd, 2012... This TODO has already been here for months.. I wonder how long it'll last before someone does something about it. -/obj/machinery/librarycomp +/obj/machinery/computer/libraryconsole/bookmanagement name = "book inventory management console" - icon = 'icons/obj/library.dmi' - icon_state = "computer" - anchored = 1 - density = 1 var/arcanecheckout = 0 - var/screenstate = 0 // 0 - Main Menu, 1 - Inventory, 2 - Checked Out, 3 - Check Out a Book + screenstate = 0 // 0 - Main Menu, 1 - Inventory, 2 - Checked Out, 3 - Check Out a Book var/buffer_book var/buffer_mob var/upload_category = "Fiction" @@ -134,10 +133,16 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f var/checkoutperiod = 5 // In minutes var/obj/machinery/libraryscanner/scanner // Book scanner that will be used when uploading books to the Archive - var/bibledelay = 0 // LOL NO SPAM (1 minute delay) -- Doohl + var/bibledelay = 0 -/obj/machinery/librarycomp/attack_hand(var/mob/user as mob) - usr.set_machine(src) +/obj/machinery/computer/libraryconsole/bookmanagement/New() + ..() + if(circuit) + circuit.name = "circuit board (Book Inventory Management Console)" + circuit.build_path = /obj/machinery/computer/libraryconsole/bookmanagement + +/obj/machinery/computer/libraryconsole/bookmanagement/interact(mob/user) + user.set_machine(src) var/dat = "" // switch(screenstate) if(0) @@ -237,15 +242,12 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f dat += "Yes.
" dat += "No.
" - //dat += "Close

" - //user << browse(dat, "window=library") - //onclose(user, "library") var/datum/browser/popup = new(user, "library", name, 600, 400) popup.set_content(dat) popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open() -/obj/machinery/librarycomp/attackby(obj/item/weapon/W as obj, mob/user as mob) +/obj/machinery/computer/libraryconsole/bookmanagement/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/barcodescanner)) var/obj/item/weapon/barcodescanner/scanner = W scanner.computer = src @@ -254,11 +256,11 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f else ..() -/obj/machinery/librarycomp/emag_act(mob/user as mob) +/obj/machinery/computer/libraryconsole/bookmanagement/emag_act(mob/user as mob) if(density && !emagged) emagged = 1 -/obj/machinery/librarycomp/Topic(href, href_list) +/obj/machinery/computer/libraryconsole/bookmanagement/Topic(href, href_list) if(..()) usr << browse(null, "window=library") onclose(usr, "library") @@ -394,7 +396,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f src.updateUsrDialog() return -/obj/machinery/librarycomp/say_quote(text) +/obj/machinery/computer/libraryconsole/bookmanagement/say_quote(text) return "flashes, \"[text]\"" 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 3239daad08d..312f0b30f51 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -95,6 +95,9 @@ /mob/living/carbon/alien/humanoid/hunter/throw_impact(A) var/msg = "" + if(!leaping) + return ..() + if(A) if(istype(A, /mob/living)) var/mob/living/L = A @@ -162,7 +165,5 @@ src.throwing = 0 - if(isobj(src)) - src.throw_impact(get_turf(src)) return 1 diff --git a/code/modules/mob/living/carbon/alien/humanoid/emote.dm b/code/modules/mob/living/carbon/alien/humanoid/emote.dm index 384f405b03f..73157d41c63 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/emote.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/emote.dm @@ -81,5 +81,5 @@ if (m_type & 1) visible_message(message) else - src.loc.audible_message(message) + audible_message(message) return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm index 9fbb635bb06..98379053235 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/life.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm @@ -99,7 +99,7 @@ if( health <= 20 && prob(1) ) spawn(0) emote("gasp") - if(!reagents.has_reagent("inaprovaline")) + if(!reagents.has_reagent("epinephrine")) adjustOxyLoss(1) Paralyse(3) diff --git a/code/modules/mob/living/carbon/alien/larva/emote.dm b/code/modules/mob/living/carbon/alien/larva/emote.dm index 9e502353e03..1533fa673a8 100644 --- a/code/modules/mob/living/carbon/alien/larva/emote.dm +++ b/code/modules/mob/living/carbon/alien/larva/emote.dm @@ -107,5 +107,5 @@ if (m_type & 1) visible_message(message) else - src.loc.audible_message(message) + audible_message(message) return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm index 955ca3030f9..b7da388c50c 100644 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ b/code/modules/mob/living/carbon/alien/larva/life.dm @@ -77,7 +77,7 @@ //if( health <= 20 && prob(1) ) // spawn(0) // emote("gasp") - if(!reagents.has_reagent("inaprovaline")) + if(!reagents.has_reagent("epinephrine")) adjustOxyLoss(1) Paralyse(3) diff --git a/code/modules/mob/living/carbon/brain/emote.dm b/code/modules/mob/living/carbon/brain/emote.dm index 6f7e884fb11..4c1f2e55271 100644 --- a/code/modules/mob/living/carbon/brain/emote.dm +++ b/code/modules/mob/living/carbon/brain/emote.dm @@ -69,4 +69,4 @@ if (m_type & 1) visible_message(message) else if (m_type & 2) - src.loc.audible_message(message) \ No newline at end of file + audible_message(message) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index db452bdd564..3ed06021ef6 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -314,6 +314,8 @@ update_inv_wear_mask(0) else if(I == handcuffed) handcuffed = null + if(buckled && buckled.buckle_requires_restraints) + buckled.unbuckle_mob() update_inv_handcuffed(0) else if(I == legcuffed) legcuffed = null diff --git a/code/modules/mob/living/carbon/emote.dm b/code/modules/mob/living/carbon/emote.dm index cb7783dceff..a67f683174c 100644 --- a/code/modules/mob/living/carbon/emote.dm +++ b/code/modules/mob/living/carbon/emote.dm @@ -195,4 +195,4 @@ if (m_type & 1) visible_message(message) else if (m_type & 2) - src.loc.audible_message(message) + audible_message(message) diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 504727a4584..53eaa53884f 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -184,19 +184,6 @@ else message = "[src] hugs \himself." - if ("johnny") - var/M - if (param) - M = param - if (!M) - param = null - else - if(miming) - message = "[src] takes a drag from a cigarette and blows \"[M]\" out in smoke." - else - message = "[src] says, \"[M], please. He had a family.\" [src.name] takes a drag from a cigarette and blows \his name out in smoke." - m_type = 2 - if ("me") if(silent) return @@ -316,7 +303,7 @@ m_type = 2 if ("help") //This can stay at the bottom. - src << "Help for human emotes. You can use these emotes with say \"*emote\":\n\naflap, airguitar, blink, blink_r, blush, bow-(none)/mob, burp, choke, chuckle, clap, collapse, cough, cry, custom, dance, dap, deathgasp, drool, eyebrow, faint, flap, frown, gasp, giggle, glare-(none)/mob, grin, groan, grumble, handshake, hug-(none)/mob, johnny, jump, laugh, look-(none)/mob, me, moan, mumble, nod, pale, point-(atom), raise, salute, scream, shake, shiver, shrug, sigh, signal-#1-10, sit, smile, sneeze, sniff, snore, stare-(none)/mob, sulk, sway, tremble, twitch, twitch_s, wave, whimper, wink, yawn" + src << "Help for human emotes. You can use these emotes with say \"*emote\":\n\naflap, airguitar, blink, blink_r, blush, bow-(none)/mob, burp, choke, chuckle, clap, collapse, cough, cry, custom, dance, dap, deathgasp, drool, eyebrow, faint, flap, frown, gasp, giggle, glare-(none)/mob, grin, groan, grumble, handshake, hug-(none)/mob, jump, laugh, look-(none)/mob, me, moan, mumble, nod, pale, point-(atom), raise, salute, scream, shake, shiver, shrug, sigh, signal-#1-10, sit, smile, sneeze, sniff, snore, stare-(none)/mob, sulk, sway, tremble, twitch, twitch_s, wave, whimper, wink, yawn" else ..(act) @@ -342,5 +329,5 @@ if (m_type & 1) visible_message(message) else if (m_type & 2) - src.loc.audible_message(message) + audible_message(message) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index b1ae7e55db6..b489cb31652 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -114,7 +114,7 @@ emp_act var/turf/picked = pick(turfs) if(!isturf(picked)) return if(buckled) - buckled.unbuckle() + buckled.unbuckle_mob() src.loc = picked return 1 return 0 diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 2cc62c8c24a..01a14d53a6d 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -38,6 +38,8 @@ if(shoes) if(!lying) if(loc == NewLoc) + if(!has_gravity(loc)) + return var/obj/item/clothing/shoes/S = shoes S.step_action() diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index 3da77b6b76f..71b54ef8970 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -21,9 +21,7 @@ /mob/living/carbon/human/treat_message(message) if(dna) message = dna.species.handle_speech(message,src) - - if (dna.check_mutation(HULK)) - message = "[uppertext(replacetext(message, ".", "!"))]!!" //because I don't know how to code properly in getting vars from other files -Bro + message = dna.mutations_say_mods(message) if(viruses.len) for(var/datum/disease/pierrot_throat/D in viruses) @@ -38,7 +36,6 @@ temp_message[H] = "HONK" pick_list -= H //Make sure that you dont HONK the same word twice message = list2text(temp_message, " ") - message = ..(message) return message diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index c55d0783b7c..f0dff8e7523 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -498,15 +498,17 @@ if(H.tinttotal >= TINT_IMPAIR) if(tinted_weldhelh) if(H.tinttotal >= TINT_BLIND) - H.eye_blind = max(H.eye_blind, 1) // You get the sudden urge to learn to play keyboard - H.client.screen += global_hud.darkMask - else + H.eye_blind = max(H.eye_blind, 1) + if(H.client) H.client.screen += global_hud.darkMask if(H.blind) if(H.eye_blind) H.blind.layer = 18 else H.blind.layer = 0 + if(!H.client)//no client, no screen to update + return 1 + if( H.disabilities & NEARSIGHT && !istype(H.glasses, /obj/item/clothing/glasses/regular) ) H.client.screen += global_hud.vimpaired if(H.eye_blurry) H.client.screen += global_hud.blurry @@ -1075,7 +1077,7 @@ return if(!breath || (breath.total_moles() == 0)) - if(H.reagents.has_reagent("inaprovaline")) + if(H.reagents.has_reagent("epinephrine")) return if(H.health >= config.health_threshold_crit) if(NOBREATH in specflags) return 1 diff --git a/code/modules/mob/living/carbon/monkey/emote.dm b/code/modules/mob/living/carbon/monkey/emote.dm index dd3b837a38c..eef8f22fcd1 100644 --- a/code/modules/mob/living/carbon/monkey/emote.dm +++ b/code/modules/mob/living/carbon/monkey/emote.dm @@ -77,5 +77,5 @@ if (m_type & 1) visible_message(message) else - src.loc.audible_message(message) + audible_message(message) return diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 689d0314d95..fea7ac70960 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -359,7 +359,7 @@ if( health <= 20 && prob(1) ) spawn(0) emote("gasp") - if(!reagents.has_reagent("inaprovaline")) + if(!reagents.has_reagent("epinephrine")) adjustOxyLoss(1) Paralyse(3) diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 00cd806ec0f..7bdbfb459da 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -36,7 +36,7 @@ /mob/living/carbon/monkey/movement_delay() var/tally = 0 if(reagents) - if(reagents.has_reagent("hyperzine")) return -1 + if(reagents.has_reagent("morphine")) return -1 if(reagents.has_reagent("nuka_cola")) return -1 diff --git a/code/modules/mob/living/carbon/slime/emote.dm b/code/modules/mob/living/carbon/slime/emote.dm index 60d22ffb6db..d8d70595333 100644 --- a/code/modules/mob/living/carbon/slime/emote.dm +++ b/code/modules/mob/living/carbon/slime/emote.dm @@ -82,7 +82,7 @@ if (m_type & 1) visible_message(message) else - src.loc.audible_message(message) + audible_message(message) if (regenerate_icons) regenerate_icons() diff --git a/code/modules/mob/living/carbon/slime/life.dm b/code/modules/mob/living/carbon/slime/life.dm index e4122c9e01a..90db25b54d0 100644 --- a/code/modules/mob/living/carbon/slime/life.dm +++ b/code/modules/mob/living/carbon/slime/life.dm @@ -174,9 +174,9 @@ if (reagents.get_reagent_amount("plasma")>=5) mutation_chance = min(mutation_chance + 5,50) //Prevents mutation chance going >50% reagents.remove_reagent("plasma", 5) - if (reagents.get_reagent_amount("inaprovaline")>=5) + if (reagents.get_reagent_amount("epinephrine")>=5) mutation_chance = max(mutation_chance - 5,0) //Prevents muation chance going <0% - reagents.remove_reagent("inaprovaline", 5) + reagents.remove_reagent("epinephrine", 5) src.updatehealth() return //TODO: DEFERRED @@ -194,7 +194,7 @@ else if(src.health < config.health_threshold_crit) - if(!src.reagents.has_reagent("inaprovaline")) + if(!src.reagents.has_reagent("epinephrine")) src.adjustOxyLoss(10) if(src.stat != DEAD) diff --git a/code/modules/mob/living/carbon/slime/slime.dm b/code/modules/mob/living/carbon/slime/slime.dm index 4e7020c3f3b..d0703c45ccd 100644 --- a/code/modules/mob/living/carbon/slime/slime.dm +++ b/code/modules/mob/living/carbon/slime/slime.dm @@ -87,7 +87,7 @@ tally += (283.222 - bodytemperature) / 10 * 1.75 if(reagents) - if(reagents.has_reagent("hyperzine")) // Hyperzine slows slimes down + if(reagents.has_reagent("morphine")) // morphine slows slimes down tally *= 2 if(reagents.has_reagent("frostoil")) // Frostoil also makes them move VEEERRYYYYY slow diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index cb4c51e3618..9adb0fd4188 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -275,4 +275,4 @@ if (m_type & 1) visible_message(message) else if (m_type & 2) - src.loc.audible_message(message) + audible_message(message) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 6484310e1da..7a6348c833a 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -588,6 +588,8 @@ Sorry Giacom. Please don't be mad :( 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) @@ -646,13 +648,13 @@ Sorry Giacom. Please don't be mad :( return C.visible_message("[C] manages to unbuckle themself!", \ "You successfully unbuckle yourself.") - C.buckled.manual_unbuckle(C) + C.buckled.user_unbuckle_mob(C,C) else C << "You fail to unbuckle yourself!" else - L.buckled.manual_unbuckle(L) + L.buckled.user_unbuckle_mob(L,L) else - L.buckled.manual_unbuckle(L) + L.buckled.user_unbuckle_mob(L,L) //Breaking out of a container (Locker, sleeper, cryo...) else if(loc && istype(loc, /obj) && !isturf(loc)) diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm index 5056ba2222c..9c4913dd830 100644 --- a/code/modules/mob/living/silicon/robot/emote.dm +++ b/code/modules/mob/living/silicon/robot/emote.dm @@ -205,5 +205,5 @@ if (m_type & 1) visible_message(message) else - src.loc.audible_message(message) + audible_message(message) return 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 42d05eb5d08..fa45d328e39 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -65,7 +65,7 @@ melee_damage_upper = 10 poison_per_bite = 10 var/atom/cocoon_target - poison_type = "stoxin" + poison_type = "morphine" var/fed = 0 //hunters have the most poison and move the fastest, so they can find prey diff --git a/code/modules/mob/living/simple_animal/hostile/russian.dm b/code/modules/mob/living/simple_animal/hostile/russian.dm index 82c8bedcf65..3f143ea19fe 100644 --- a/code/modules/mob/living/simple_animal/hostile/russian.dm +++ b/code/modules/mob/living/simple_animal/hostile/russian.dm @@ -46,6 +46,10 @@ projectilesound = 'sound/weapons/Gunshot.ogg' casingtype = /obj/item/ammo_casing/a357 +/mob/living/simple_animal/hostile/russian/ranged/New() + if(prob(50) && ispath(weapon1,/obj/item/weapon/gun/projectile/revolver/mateba)) //to preserve varedits + weapon1 = /obj/item/weapon/gun/projectile/shotgun/boltaction + casingtype = /obj/item/ammo_casing/a762 /mob/living/simple_animal/hostile/russian/Die() ..() @@ -54,4 +58,4 @@ if(weapon1) new weapon1 (src.loc) qdel(src) - return \ No newline at end of file + return diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 28b8530e7d8..9a1f9689eac 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -768,11 +768,12 @@ var/list/slot_equipment_priority = list( \ if(restrained()) return 0 return 1 + //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 /mob/proc/update_canmove() var/ko = weakened || paralysis || stat || (status_flags & FAKEDEATH) - var/bed = !(buckled && istype(buckled, /obj/structure/stool/bed/chair)) + var/buckle_lying = !(buckled && !buckled.buckle_lying) if(ko || resting || stunned) drop_r_hand() drop_l_hand() @@ -780,7 +781,7 @@ var/list/slot_equipment_priority = list( \ lying = 0 canmove = 1 if(buckled) - lying = 90 * bed + lying = 90*buckle_lying else if((ko || resting) && !lying) fall(ko) @@ -793,6 +794,7 @@ var/list/slot_equipment_priority = list( \ regenerate_icons() return canmove + /mob/proc/fall(var/forced) drop_l_hand() drop_r_hand() diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index d48d0456900..94b6d8b68f1 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -157,5 +157,7 @@ var/force_compose = 0 //If this is nonzero, the mob will always compose it's own hear message instead of using the one given in the arguments. var/obj/control_object //Used by admins to possess objects. All mobs should have this var + var/atom/movable/remote_control //Calls relaymove() to whatever it is var/turf/listed_turf = null //the current turf being examined in the stat panel + var/last_movement = 0 // Last world.time the mob actually moved of its own accord. \ No newline at end of file diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 0c26dc9a84b..e528a81b7ca 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -116,6 +116,9 @@ if(mob.buckled) //if we're buckled to something, tell it we moved. return mob.buckled.relaymove(mob, direct) + if(mob.remote_control) //we're controlling something, our movement is relayed to it + return mob.remote_control.relaymove(mob, direct) + if(!mob.canmove) return 0 @@ -196,6 +199,7 @@ step(mob, pick(cardinal)) else . = ..() + mob.last_movement=world.time moving = 0 if(mob && .) diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 02e8befd05e..7d26a965f30 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -85,7 +85,7 @@ else if(backbag == 3) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY) if(BARTENDER) - clothes_s = new /icon('icons/mob/uniform.dmi', "ba_suit_s") + clothes_s = new /icon('icons/mob/uniform.dmi', "bar_suit_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/suit.dmi', "armoralt"), ICON_OVERLAY) if(backbag == 2) @@ -134,7 +134,7 @@ if(backbag == 3) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY) if(CARGOTECH) - clothes_s = new /icon('icons/mob/uniform.dmi', "cargo_s") + clothes_s = new /icon('icons/mob/uniform.dmi', "cargotech_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) if(backbag == 2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index fe87d9dc4ba..8b42ef1bcb8 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -274,7 +274,7 @@ icon_state = "hair_reversemohawk" /datum/sprite_accessory/hair/jensen - name = "Adam Jensen Hair" + name = "Jensen Hair" icon_state = "hair_jensen" /datum/sprite_accessory/hair/gelled @@ -542,7 +542,7 @@ icon_state = "facial_gt" /datum/sprite_accessory/facial_hair/jensen - name = "Adam Jensen Beard" + name = "Jensen Beard" icon_state = "facial_jensen" /datum/sprite_accessory/facial_hair/dwarf diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 2d5ead77aff..bbc692383da 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -322,7 +322,7 @@ /obj/item/weapon/paper/Toxin name = "paper- 'Chemical Information'" - info = "Known Onboard Toxins:
\n\tGrade A Semi-Liquid Plasma:
\n\t\tHighly poisonous. You cannot sustain concentrations above 15 units.
\n\t\tA gas mask fails to filter plasma after 50 units.
\n\t\tWill attempt to diffuse like a gas.
\n\t\tFiltered by scrubbers.
\n\t\tThere is a bottled version which is very different
\n\t\t\tfrom the version found in canisters!
\n
\n\t\tWARNING: Highly Flammable. Keep away from heat sources
\n\t\texcept in a enclosed fire area!
\n\t\tWARNING: It is a crime to use this without authorization.
\nKnown Onboard Anti-Toxin:
\n\tAnti-Toxin Type 01P: Works against Grade A Plasma.
\n\t\tBest if injected directly into bloodstream.
\n\t\tA full injection is in every regular Med-Kit.
\n\t\tSpecial toxin Kits hold around 7.
\n
\nKnown Onboard Chemicals (other):
\n\tRejuvenation T#001:
\n\t\tEven 1 unit injected directly into the bloodstream
\n\t\t\twill cure paralysis and sleep toxins.
\n\t\tIf administered to a dying patient it will prevent
\n\t\t\tfurther damage for about units*3 seconds.
\n\t\t\tit will not cure them or allow them to be cured.
\n\t\tIt can be administeredd to a non-dying patient
\n\t\t\tbut the chemicals disappear just as fast.
\n\tSleep Toxin T#054:
\n\t\t5 units wilkl induce precisely 1 minute of sleep.
\n\t\t\tThe effect are cumulative.
\n\t\tWARNING: It is a crime to use this without authorization" + info = "Known Onboard Toxins:
\n\tGrade A Semi-Liquid Plasma:
\n\t\tHighly poisonous. You cannot sustain concentrations above 15 units.
\n\t\tA gas mask fails to filter plasma after 50 units.
\n\t\tWill attempt to diffuse like a gas.
\n\t\tFiltered by scrubbers.
\n\t\tThere is a bottled version which is very different
\n\t\t\tfrom the version found in canisters!
\n
\n\t\tWARNING: Highly Flammable. Keep away from heat sources
\n\t\texcept in a enclosed fire area!
\n\t\tWARNING: It is a crime to use this without authorization.
\nKnown Onboard Anti-Toxin:
\n\tAnti-Toxin Type 01P: Works against Grade A Plasma.
\n\t\tBest if injected directly into bloodstream.
\n\t\tA full injection is in every regular Med-Kit.
\n\t\tSpecial toxin Kits hold around 7.
\n
\nKnown Onboard Chemicals (other):
\n\tRejuvenation T#001:
\n\t\tEven 1 unit injected directly into the bloodstream
\n\t\t\twill cure paralysis and sleep toxins.
\n\t\tIf administered to a dying patient it will prevent
\n\t\t\tfurther damage for about units*3 seconds.
\n\t\t\tit will not cure them or allow them to be cured.
\n\t\tIt can be administeredd to a non-dying patient
\n\t\t\tbut the chemicals disappear just as fast.
\n\tMorphine T#054:
\n\t\t5 units wilkl induce precisely 1 minute of sleep.
\n\t\t\tThe effect are cumulative.
\n\t\tWARNING: It is a crime to use this without authorization" /obj/item/weapon/paper/courtroom name = "paper- 'A Crash Course in Legal SOP on SS13'" diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index df2f366af0e..e37f7ecfa38 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -70,7 +70,7 @@ /obj/item/weapon/pen/sleepy/New() create_reagents(55) - reagents.add_reagent("stoxin", 30) + reagents.add_reagent("morphine", 30) reagents.add_reagent("mutetoxin", 15) reagents.add_reagent("tirizene", 10) ..() diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm index ea569bfd9c2..3e82df3d402 100644 --- a/code/modules/power/turbine.dm +++ b/code/modules/power/turbine.dm @@ -84,7 +84,7 @@ inturf = get_step(src, dir) spawn(5) - turbine = locate() in get_step(src, get_dir(inturf, src)) + locate_machinery() if(!turbine) stat |= BROKEN @@ -98,6 +98,13 @@ // /obj/machinery/power/compressor/CanPass(atom/movable/mover, turf/target, height=0) // return !density +/obj/machinery/power/compressor/locate_machinery() + if(turbine) + return + turbine = locate() in get_step(src, get_dir(inturf, src)) + if(turbine) + turbine.locate_machinery() + /obj/machinery/power/compressor/RefreshParts() var/E = 0 for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) @@ -111,7 +118,7 @@ if(default_change_direction_wrench(user, I)) turbine = null inturf = get_step(src, dir) - turbine = locate() in get_step(src, get_dir(inturf, src)) + locate_machinery() if(turbine) user << "Turbine connected." stat &= ~BROKEN @@ -129,14 +136,14 @@ return !density /obj/machinery/power/compressor/process() + if(!turbine) + stat = BROKEN + if(stat & BROKEN || panel_open) + return if(!starter) return overlays.Cut() - if(stat & BROKEN) - return - if(!turbine) - stat |= BROKEN - return + rpm = 0.9* rpm + 0.1 * rpmtarget var/datum/gas_mixture/environment = inturf.return_air() @@ -199,7 +206,7 @@ // compressor is found in the opposite direction - compressor = locate() in get_step(src, get_dir(outturf, src)) + locate_machinery() if(!compressor) stat |= BROKEN @@ -218,15 +225,22 @@ P += C.rating productivity = P / 6 +/obj/machinery/power/turbine/locate_machinery() + if(compressor) + return + compressor = locate() in get_step(src, get_dir(outturf, src)) + if(compressor) + compressor.locate_machinery() + /obj/machinery/power/turbine/CanAtmosPass(var/turf/T) return !density /obj/machinery/power/turbine/process() - if(stat & BROKEN) - return if(!compressor) - stat |= BROKEN + stat = BROKEN + + if((stat & BROKEN) || panel_open) return if(!compressor.starter) return @@ -274,7 +288,7 @@ if(default_change_direction_wrench(user, I)) compressor = null outturf = get_step(src, dir) - compressor = locate() in get_step(src, get_dir(outturf, src)) + locate_machinery() if(compressor) user << "Compressor connected." stat &= ~BROKEN @@ -341,9 +355,9 @@ /obj/machinery/computer/turbine_computer/New() ..() spawn(5) - search_turbine() + locate_machinery() -/obj/machinery/computer/turbine_computer/proc/search_turbine() +/obj/machinery/computer/turbine_computer/locate_machinery() compressor = locate(/obj/machinery/power/compressor) in range(5) /obj/machinery/computer/turbine_computer/attack_hand(var/mob/user as mob) @@ -356,17 +370,20 @@ var/dat if(compressor && compressor.turbine) - dat += {"
Gas turbine remote control system
- \nTurbine status: [ src.compressor.starter ? "Off On" : "Off On"] - \n
- \nTurbine speed: [src.compressor.rpm]rpm
- \nPower currently being generated: [src.compressor.turbine.lastgen]W
- \nInternal gas temperature: [src.compressor.gas_contained.temperature]K
- \n
Close - \n
- \n"} + dat += "
Gas turbine remote control system
" + if(compressor.stat || compressor.turbine.stat) + dat += "[compressor.stat ? "Compressor is inoperable
" : "Turbine is inoperable"]" + else + dat += {"Turbine status: [ src.compressor.starter ? "Off On" : "Off On"] + \n
+ \nTurbine speed: [src.compressor.rpm]rpm
+ \nPower currently being generated: [src.compressor.turbine.lastgen]W
+ \nInternal gas temperature: [src.compressor.gas_contained.temperature]K
+ \n
Close + \n
+ \n"} else - dat += "There is [!compressor ? "no compressor" : " compressor[!compressor.turbine ? " and no turbine" : ""]"].
" + dat += "There is [!compressor ? "no compressor" : " compressor[!compressor.turbine ? " but no turbine" : ""]"].
" if(!compressor) dat += "Search for compressor" @@ -380,14 +397,14 @@ return else if( href_list["str"] ) - if(compressor) + if(compressor && compressor.turbine) compressor.starter = !compressor.starter else if( href_list["close"] ) usr << browse(null, "window=turbinecomputer") usr.unset_machine(src) return else if(href_list["search"]) - search_turbine() + locate_machinery() src.updateUsrDialog() return diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm index 0234f53051d..00cda09da83 100644 --- a/code/modules/projectiles/ammunition/ammo_casings.dm +++ b/code/modules/projectiles/ammunition/ammo_casings.dm @@ -133,6 +133,7 @@ /obj/item/ammo_casing/a762 desc = "A 7.62mm bullet casing." + icon_state = "762-casing" caliber = "a762" projectile_type = /obj/item/projectile/bullet @@ -165,10 +166,11 @@ icon_state = "40mmHE" projectile_type = /obj/item/projectile/bullet/a40mm -/obj/item/ammo_casing/caseless/bolt //xbow - name = "poison crossbow bolt" - desc = "A reusable crossbow bolt tipped with specialized carpotoxin." - projectile_type = /obj/item/projectile/energy/bolt - caliber = "crossbow" - icon = 'icons/obj/projectiles.dmi' - icon_state = "cbbolt" \ No newline at end of file +/obj/item/ammo_casing/caseless/magspear + name = "magnetic spear" + desc = "A reusable spear that is typically loaded into kinetic spearguns." + projectile_type = /obj/item/projectile/bullet/magspear + caliber = "speargun" + icon_state = "magspear" + throwforce = 15 //still deadly when thrown + throw_speed = 3 diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm index f9d940c3bfb..59076dc6da8 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/ammunition/boxes.dm @@ -40,8 +40,10 @@ max_ammo = 4 multiple_sprites = 1 -/obj/item/ammo_box/crossbow - name = "ammo box (crossbow bolts)" - icon_state = "xbow" - ammo_type = /obj/item/ammo_casing/caseless/bolt - max_ammo = 4 \ No newline at end of file +/obj/item/ammo_box/a762 + name = "stripper clip (7.62mm)" + desc = "A stripper clip." + icon_state = "762" + ammo_type = /obj/item/ammo_casing/a762 + max_ammo = 5 + multiple_sprites = 1 diff --git a/code/modules/projectiles/ammunition/energy.dm b/code/modules/projectiles/ammunition/energy.dm index 9658df36be9..92e11f0d24c 100644 --- a/code/modules/projectiles/ammunition/energy.dm +++ b/code/modules/projectiles/ammunition/energy.dm @@ -38,6 +38,24 @@ select_name = "DESTROY" fire_sound = 'sound/weapons/pulse.ogg' +/obj/item/ammo_casing/energy/laser/pulse/carbine + e_cost = 1000 + +/obj/item/ammo_casing/energy/laser/carbine + e_cost = 1000 + +/obj/item/ammo_casing/energy/electrode/carbine + e_cost = 1000 + +/obj/item/ammo_casing/energy/laser/pulse/pistol + e_cost = 2000 + +/obj/item/ammo_casing/energy/laser/pistol + e_cost = 1000 + +/obj/item/ammo_casing/energy/electrode/pistol + e_cost = 1000 + /obj/item/ammo_casing/energy/laser/bluetag projectile_type = /obj/item/projectile/lasertag/bluetag select_name = "bluetag" @@ -124,4 +142,14 @@ /obj/item/ammo_casing/energy/wormhole/orange projectile_type = /obj/item/projectile/beam/wormhole/orange - select_name = "orange" \ No newline at end of file + select_name = "orange" + +/obj/item/ammo_casing/energy/bolt + projectile_type = /obj/item/projectile/energy/bolt + select_name = "bolt" + e_cost = 500 + fire_sound = 'sound/weapons/Genhit.ogg' + +/obj/item/ammo_casing/energy/bolt/large + projectile_type = /obj/item/projectile/energy/bolt/large + select_name = "heavy bolt" diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index ff130fc53ae..67b56042c19 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -90,14 +90,19 @@ ammo_type = /obj/item/ammo_casing/a40mm max_ammo = 6 -/obj/item/ammo_box/magazine/internal/cylinder/crossbow - name = "autocrossbow internal magazine" - ammo_type = /obj/item/ammo_casing/caseless/bolt - caliber = "crossbow" - max_ammo = 10 +/obj/item/ammo_box/magazine/internal/cylinder/speargun + name = "speargun internal magazine" + ammo_type = /obj/item/ammo_casing/caseless/magspear + caliber = "speargun" + max_ammo = 1 -/obj/item/ammo_box/magazine/internal/cylinder/crossbow/large - max_ammo = 15 +/obj/item/ammo_box/magazine/internal/boltaction + name = "bolt action rifle internal magazine" + desc = "Oh god, this shouldn't be here" + ammo_type = /obj/item/ammo_casing/a762 + caliber = "a762" + max_ammo = 5 + multiload = 1 ///////////EXTERNAL MAGAZINES//////////////// @@ -211,4 +216,4 @@ obj/item/ammo_box/magazine/tommygunm45 /obj/item/ammo_box/magazine/m12g/dragon name = "shotgun magazine (12g dragon's breath)" icon_state = "m12gf" - ammo_type = /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath \ No newline at end of file + ammo_type = /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 98fa0bad3dc..e60a2ca95c4 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -5,7 +5,7 @@ /obj/item/weapon/gun name = "gun" desc = "It's a gun. It's pretty terrible, though." - icon = 'icons/obj/gun.dmi' + icon = 'icons/obj/guns/projectile.dmi' icon_state = "detective" item_state = "gun" flags = CONDUCT @@ -30,25 +30,43 @@ var/sawn_state = SAWN_INTACT var/burst_size = 1 var/fire_delay = 0 + + var/obj/item/device/firing_pin/pin = /obj/item/device/firing_pin //standard firing pin for most guns + var/obj/item/device/flashlight/F = null var/can_flashlight = 0 + +/obj/item/weapon/gun/New() + ..() + if(pin) + pin = new pin(src) + + +/obj/item/weapon/gun/examine(mob/user) + ..() + if(pin) + user << "It has a [pin] installed." + else + user << "It doesn't have a firing pin installed, and won't fire." + + /obj/item/weapon/gun/proc/process_chamber() return 0 -/obj/item/weapon/gun/proc/special_check(var/mob/M) //Placeholder for any special checks, like detective's revolver. - return 1 //check if there's enough ammo/energy/whatever to shoot one time //i.e if clicking would make it shoot /obj/item/weapon/gun/proc/can_shoot() return 1 + /obj/item/weapon/gun/proc/shoot_with_empty_chamber(mob/living/user as mob|obj) user << "*click*" playsound(user, 'sound/weapons/empty.ogg', 100, 1) return + /obj/item/weapon/gun/proc/shoot_live_shot(mob/living/user as mob|obj, var/pointblank = 0, var/mob/pbtarget = null, var/message = 1) if(recoil) spawn() @@ -65,10 +83,12 @@ else user.visible_message("[user] fires [src]!", "You fire [src]!", "You hear a [istype(src, /obj/item/weapon/gun/energy) ? "laser blast" : "gunshot"]!") + /obj/item/weapon/gun/emp_act(severity) for(var/obj/O in contents) O.emp_act(severity) + /obj/item/weapon/gun/afterattack(atom/target as mob|obj|turf, mob/living/carbon/human/user as mob|obj, flag, params)//TODO: go over this if(flag) //It's adjacent, is the user, or is on the user's person if(istype(target, /mob/) && target != user && !(target in user.contents)) //We make sure that it is a mob, it's not us or part of us. @@ -94,11 +114,13 @@ process_fire(target,user,1,params) + /obj/item/weapon/gun/proc/can_trigger_gun(mob/living/carbon/user) if (!user.IsAdvancedToolUser()) user << "You don't have the dexterity to do this!" return 0 + if(trigger_guard) if(istype(user) && user.dna) if(user.dna.check_mutation(HULK)) @@ -109,12 +131,24 @@ return 0 return 1 -/obj/item/weapon/gun/proc/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, var/message = 1, params) +/obj/item/weapon/gun/proc/handle_pins(mob/living/user) + if(pin) + if(pin.pin_auth(user) || pin.emagged) + return 1 + else + user << "INVALID USER." + return 0 + else + user << "\The [src]'s trigger is locked. This weapon doesn't have a firing pin installed!" + return 0 + + +/obj/item/weapon/gun/proc/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, var/message = 1, params) add_fingerprint(user) - if(!special_check(user)) - return + if(!handle_pins(user)) + return 0 for(var/i = 1 to burst_size) if(!issilicon(user)) @@ -125,8 +159,6 @@ shoot_with_empty_chamber(user) break else - if(!special_check(user)) - return if(get_dist(user, target) <= 1) //Making sure whether the target is in vicinity for the pointblank shot shoot_live_shot(user, 1, target, message) else @@ -143,6 +175,7 @@ else user.update_inv_r_hand(0) + /obj/item/weapon/gun/attack(mob/M as mob, mob/user) if(user.a_intent == "harm") //Flogging ..() diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index c1a6700caba..4474aa5a6cc 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -2,6 +2,7 @@ icon_state = "energy" name = "energy gun" desc = "A basic energy-based gun." + icon = 'icons/obj/guns/energy.dmi' var/obj/item/weapon/stock_parts/cell/power_supply //What type of power cell this uses var/cell_type = /obj/item/weapon/stock_parts/cell diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index f30ce4493de..d0bacd57617 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -84,7 +84,7 @@ obj/item/weapon/gun/energy/laser/retro slot_flags = SLOT_BACK origin_tech = "combat=4;materials=3;powerstorage=3" ammo_type = list(/obj/item/ammo_casing/energy/laser/heavy) - + pin = null /obj/item/weapon/gun/energy/xray name = "xray laser gun" @@ -93,7 +93,7 @@ obj/item/weapon/gun/energy/laser/retro item_state = "laser" origin_tech = "combat=5;materials=3;magnets=2;syndicate=2" ammo_type = list(/obj/item/ammo_casing/energy/xray) - + pin = null ////////Laser Tag//////////////////// @@ -105,24 +105,16 @@ obj/item/weapon/gun/energy/laser/retro origin_tech = "combat=1;magnets=2" clumsy_check = 0 var/charge_tick = 0 - -/obj/item/weapon/gun/energy/laser/bluetag/special_check(var/mob/living/carbon/human/M) - if(ishuman(M)) - if(istype(M.wear_suit, /obj/item/clothing/suit/bluetag)) - return 1 - M << "You need to be wearing your laser tag vest!" - return 0 + pin = /obj/item/device/firing_pin/tag/blue /obj/item/weapon/gun/energy/laser/bluetag/New() ..() SSobj.processing.Add(src) - /obj/item/weapon/gun/energy/laser/bluetag/Destroy() SSobj.processing.Remove(src) ..() - /obj/item/weapon/gun/energy/laser/bluetag/process() charge_tick++ if(charge_tick < 4) @@ -135,7 +127,6 @@ obj/item/weapon/gun/energy/laser/retro return 1 - /obj/item/weapon/gun/energy/laser/redtag name = "laser tag gun" icon_state = "redtag" @@ -144,24 +135,16 @@ obj/item/weapon/gun/energy/laser/retro origin_tech = "combat=1;magnets=2" clumsy_check = 0 var/charge_tick = 0 - -/obj/item/weapon/gun/energy/laser/redtag/special_check(var/mob/living/carbon/human/M) - if(ishuman(M)) - if(istype(M.wear_suit, /obj/item/clothing/suit/redtag)) - return 1 - M << "You need to be wearing your laser tag vest!" - return 0 + pin = /obj/item/device/firing_pin/tag/red /obj/item/weapon/gun/energy/laser/redtag/New() ..() SSobj.processing.Add(src) - /obj/item/weapon/gun/energy/laser/redtag/Destroy() SSobj.processing.Remove(src) ..() - /obj/item/weapon/gun/energy/laser/redtag/process() charge_tick++ if(charge_tick < 4) diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index 53c9644f6a3..60cd40d6f44 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -22,6 +22,7 @@ modifystate = 0 ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser) can_flashlight = 0 + pin = null /obj/item/weapon/gun/energy/gun/nuclear/New() ..() @@ -110,4 +111,4 @@ /obj/item/weapon/gun/energy/gun/turret name = "hybrid turret gun" desc = "A basic hybrid energy gun with two settings: Stun and kill." - ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser) + ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser) diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index fcf35cf32a4..744b3e5e6f5 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -14,6 +14,22 @@ /obj/item/weapon/gun/energy/pulse_rifle/attack_self(mob/living/user as mob) select_fire(user) +/obj/item/weapon/gun/energy/pulse_rifle/pulse_carbine + name = "pulse carbine" + desc = "A ligther weight varient of the pulse rifle, a multifaceted energy carbine with three modes." + w_class = 3.0 + icon_state = "pulse_carbine" + item_state = "pulse" + ammo_type = list(/obj/item/ammo_casing/energy/laser/pulse/carbine, /obj/item/ammo_casing/energy/electrode/carbine, /obj/item/ammo_casing/energy/laser/carbine) + +/obj/item/weapon/gun/energy/pulse_rifle/pulse_pistol + name = "pulse pistol" + desc = "A ligther weight varient of the pulse rifle, a multifaceted energy pistol with three modes." + w_class = 2.0 + icon_state = "pulse_pistol" + item_state = "pulse" + ammo_type = list(/obj/item/ammo_casing/energy/laser/pulse/pistol, /obj/item/ammo_casing/energy/electrode/pistol, /obj/item/ammo_casing/energy/laser/pistol) + /obj/item/weapon/gun/energy/pulse_rifle/destroyer name = "pulse destroyer" desc = "A heavy-duty energy rifle built for pure destruction." diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 69b5049f25e..23285cb0987 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -8,6 +8,7 @@ flags = CONDUCT slot_flags = SLOT_BACK ammo_type = list(/obj/item/ammo_casing/energy/ion) + pin = null /obj/item/weapon/gun/energy/ionrifle/emp_act(severity) @@ -19,6 +20,7 @@ icon_state = "decloner" origin_tech = "combat=5;materials=4;powerstorage=3" ammo_type = list(/obj/item/ammo_casing/energy/declone) + pin = null /obj/item/weapon/gun/energy/floragun name = "floral somatoray" @@ -119,15 +121,39 @@ recent_reload = 0 ..() -/obj/item/weapon/gun/energy/kinetic_accelerator/attack_self(var/mob/living/user/L) +/obj/item/weapon/gun/energy/kinetic_accelerator/attack_self(mob/living/user) if(overheat || recent_reload) return power_supply.give(500) - playsound(src.loc, 'sound/weapons/kenetic_reload.ogg', 60, 1) + if(!suppressed) + playsound(src.loc, 'sound/weapons/kenetic_reload.ogg', 60, 1) + else + playsound(user, 'sound/weapons/kenetic_reload.ogg', 60, 1) recent_reload = 1 update_icon() return +/obj/item/weapon/gun/energy/kinetic_accelerator/crossbow + name = "mini energy crossbow" + desc = "A weapon favored by syndicate stealth specialists." + icon_state = "crossbow" + item_state = "crossbow" + w_class = 2 + m_amt = 2000 + origin_tech = "combat=2;magnets=2;syndicate=5" + suppressed = 1 + ammo_type = list(/obj/item/ammo_casing/energy/bolt) + +/obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/large + name = "energy crossbow" + desc = "A reverse engineered weapon using syndicate technology." + icon_state = "crossbowlarge" + w_class = 3 + m_amt = 4000 + origin_tech = "combat=2;magnets=2;syndicate=3" //can be further researched for more syndie tech + suppressed = 0 + ammo_type = list(/obj/item/ammo_casing/energy/bolt/large) + /obj/item/weapon/gun/energy/disabler name = "disabler" desc = "A self-defense weapon that exhausts organic targets, weakening them until they collapse." diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 47e53984c4f..9933294f86a 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -13,6 +13,7 @@ origin_tech = "combat=3;materials=3;powerstorage=2" ammo_type = list(/obj/item/ammo_casing/energy/electrode/gun) can_flashlight = 0 + pin = null /obj/item/weapon/gun/energy/gun/advtaser name = "hybrid taser" diff --git a/code/modules/projectiles/guns/energy/temperature.dm b/code/modules/projectiles/guns/energy/temperature.dm index d2c42a56b2b..0db80cb561e 100644 --- a/code/modules/projectiles/guns/energy/temperature.dm +++ b/code/modules/projectiles/guns/energy/temperature.dm @@ -5,6 +5,7 @@ origin_tech = "combat=3;materials=4;powerstorage=3;magnets=2" ammo_type = list(/obj/item/ammo_casing/energy/temp, /obj/item/ammo_casing/energy/temp/hot) cell_type = "/obj/item/weapon/stock_parts/cell/high" + pin = null /obj/item/weapon/gun/energy/temperature/attack_self(mob/living/user as mob) diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm index 063e135516a..7a73d260ca8 100644 --- a/code/modules/projectiles/guns/magic.dm +++ b/code/modules/projectiles/guns/magic.dm @@ -1,7 +1,7 @@ /obj/item/weapon/gun/magic name = "staff of nothing" desc = "This staff is boring to watch because even though it came first you've seen everything it can do in other staves for years." - icon = 'icons/obj/gun.dmi' + icon = 'icons/obj/guns/magic.dmi' icon_state = "staffofnothing" item_state = "staff" fire_sound = 'sound/weapons/emitter.ogg' diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index b1540df35b9..db55594fa4d 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -135,7 +135,7 @@ /obj/item/weapon/suppressor name = "suppressor" desc = "A universal syndicate small-arms suppressor for maximum espionage." - icon = 'icons/obj/gun.dmi' + icon = 'icons/obj/guns/projectile.dmi' icon_state = "suppressor" w_class = 2 var/oldsound = null diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 52fafa9fa6e..16ac5796a48 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -8,7 +8,7 @@ var/alarmed = 0 can_suppress = 1 burst_size = 3 - fire_delay = 1 + fire_delay = 2 var/select = 1 action_button_name = "Toggle Firemode" @@ -47,7 +47,7 @@ /obj/item/weapon/gun/projectile/automatic/proc/burst_select() var/mob/living/carbon/human/user = usr select = !select - if(select) + if(!select) burst_size = 1 fire_delay = 0 user << "You switch to semi-automatic." @@ -80,6 +80,7 @@ fire_sound = 'sound/weapons/Gunshot_smg.ogg' fire_delay = 2 burst_size = 2 + pin = /obj/item/device/firing_pin/implant/pindicate /obj/item/weapon/gun/projectile/automatic/c20r/New() ..() @@ -112,6 +113,7 @@ can_suppress = 0 burst_size = 5 fire_delay = 3 + pin = /obj/item/device/firing_pin/implant/pindicate /obj/item/weapon/gun/projectile/automatic/l6_saw/attack_self(mob/user as mob) cover_open = !cover_open @@ -165,6 +167,7 @@ var/obj/item/weapon/gun/projectile/revolver/grenadelauncher/underbarrel burst_size = 3 fire_delay = 2 + pin = /obj/item/device/firing_pin/implant/pindicate /obj/item/weapon/gun/projectile/automatic/m90/New() ..() @@ -230,4 +233,5 @@ mag_type = /obj/item/ammo_box/magazine/tommygunm45 fire_sound = 'sound/weapons/Gunshot_smg.ogg' can_suppress = 0 - burst_size = 4 \ No newline at end of file + burst_size = 4 + fire_delay = 1 diff --git a/code/modules/projectiles/guns/projectile/launchers.dm b/code/modules/projectiles/guns/projectile/launchers.dm index 50220780acd..d5929c607e4 100644 --- a/code/modules/projectiles/guns/projectile/launchers.dm +++ b/code/modules/projectiles/guns/projectile/launchers.dm @@ -44,44 +44,33 @@ icon_state = "[initial(icon_state)][magazine ? "loaded" : ""]" return -/obj/item/weapon/gun/projectile/automatic/crossbow - name = "mini auto-crossbow" - desc = "A weapon favored by syndicate stealth specialists. Fires specialized poison bolts." - icon_state = "crossbow" - item_state = "crossbow" - w_class = 2 - m_amt = 2000 - origin_tech = "combat=2;magnets=2;syndicate=5" - suppressed = 1 - mag_type = /obj/item/ammo_box/magazine/internal/cylinder/crossbow - fire_sound = 'sound/weapons/genhit.ogg' +/obj/item/weapon/gun/projectile/automatic/speargun + name = "kinetic speargun" + desc = "A weapon favored by carp hunters. Fires specialized spears using kinetic energy." + icon_state = "speargun" + item_state = "speargun" + w_class = 4 + force = 10 + can_suppress = 0 + mag_type = /obj/item/ammo_box/magazine/internal/cylinder/speargun + fire_sound = 'sound/weapons/grenadelaunch.ogg' burst_size = 1 fire_delay = 0 select = 0 action_button_name = null -/obj/item/weapon/gun/projectile/automatic/crossbow/update_icon() +/obj/item/weapon/gun/projectile/automatic/speargun/update_icon() return -/obj/item/weapon/gun/projectile/automatic/crossbow/attack_self() +/obj/item/weapon/gun/projectile/automatic/speargun/attack_self() return -/obj/item/weapon/gun/projectile/automatic/crossbow/process_chamber(var/eject_casing = 0, var/empty_chamber = 1) +/obj/item/weapon/gun/projectile/automatic/speargun/process_chamber(var/eject_casing = 0, var/empty_chamber = 1) ..() -/obj/item/weapon/gun/projectile/automatic/crossbow/attackby(var/obj/item/A, mob/user) +/obj/item/weapon/gun/projectile/automatic/speargun/attackby(var/obj/item/A, mob/user) var/num_loaded = magazine.attackby(A, user, 1) if(num_loaded) - user << "You load [num_loaded] bolt\s into \the [src]." + user << "You load [num_loaded] spear\s into \the [src]." update_icon() - chamber_round() - -/obj/item/weapon/gun/projectile/automatic/crossbow/large //holds twice the ammo of mini crossbows but can't be pocketed - name = "auto crossbow" - desc = "A weapon favored by carp hunters. Fires specialized poison bolts." - icon_state = "crossbowlarge" - w_class = 3 - force = 10 - m_amt = 4000 - suppressed = 0 - mag_type = /obj/item/ammo_box/magazine/internal/cylinder/crossbow/large \ No newline at end of file + chamber_round() \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm index 11c7bc823d8..7e3635defc1 100644 --- a/code/modules/projectiles/guns/projectile/pistol.dm +++ b/code/modules/projectiles/guns/projectile/pistol.dm @@ -21,6 +21,7 @@ icon_state = "m1911" w_class = 3 mag_type = /obj/item/ammo_box/magazine/m45 + can_suppress = 0 /obj/item/weapon/gun/projectile/automatic/pistol/deagle name = "desert eagle" @@ -28,6 +29,7 @@ icon_state = "deagle" force = 14 mag_type = /obj/item/ammo_box/magazine/m50 + can_suppress = 0 /obj/item/weapon/gun/projectile/automatic/pistol/deagle/update_icon() ..() diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index c829cff0c4a..2e7f07102ee 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -58,17 +58,17 @@ origin_tech = "combat=2;materials=2" mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev38 -/obj/item/weapon/gun/projectile/revolver/detective/special_check(var/mob/living/carbon/human/M) - if(magazine.caliber == initial(magazine.caliber)) - return 1 - if(prob(70 - (magazine.ammo_count() * 10))) //minimum probability of 10, maximum of 60 - playsound(M, fire_sound, 50, 1) - M << "[src] blows up in your face!" - M.take_organ_damage(0,20) - M.drop_item() - qdel(src) - return 0 - return 1 +/obj/item/weapon/gun/projectile/revolver/detective/process_fire(atom/target as mob|obj|turf, mob/living/user as mob|obj, var/message = 1, params) + if(magazine.caliber != initial(magazine.caliber)) + if(prob(70 - (magazine.ammo_count() * 10))) //minimum probability of 10, maximum of 60 + playsound(user, fire_sound, 50, 1) + user << "[src] blows up in your face!" + user.take_organ_damage(0,20) + user.drop_item() + qdel(src) + return 0 + ..() + /obj/item/weapon/gun/projectile/revolver/detective/verb/rename_gun() set name = "Name Gun" diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index cef3dcdd269..c24288d84b8 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -10,7 +10,6 @@ origin_tech = "combat=4;materials=2" mag_type = /obj/item/ammo_box/magazine/internal/shot var/recentpump = 0 // to prevent spammage - var/pumped = 0 /obj/item/weapon/gun/projectile/shotgun/attackby(var/obj/item/A as obj, mob/user as mob) var/num_loaded = magazine.attackby(A, user, 1) @@ -41,22 +40,30 @@ /obj/item/weapon/gun/projectile/shotgun/proc/pump(mob/M) playsound(M, 'sound/weapons/shotgunpump.ogg', 60, 1) - pumped = 0 + pump_unload(M) + pump_reload(M) + update_icon() //I.E. fix the desc + return 1 + +/obj/item/weapon/gun/projectile/shotgun/proc/pump_unload(mob/M) if(chambered)//We have a shell in the chamber chambered.loc = get_turf(src)//Eject casing chambered.SpinAnimation(5, 1) chambered = null + +/obj/item/weapon/gun/projectile/shotgun/proc/pump_reload(mob/M) if(!magazine.ammo_count()) return 0 var/obj/item/ammo_casing/AC = magazine.get_round() //load next casing. chambered = AC - update_icon() //I.E. fix the desc - return 1 + /obj/item/weapon/gun/projectile/shotgun/examine(mob/user) ..() if (chambered) user << "A [chambered.BB ? "live" : "spent"] one is in the chamber." +// COMBAT SHOTGUN // + /obj/item/weapon/gun/projectile/shotgun/combat name = "combat shotgun" desc = "A traditional shotgun with tactical furniture and an eight-shell capacity underneath." @@ -65,6 +72,8 @@ mag_type = /obj/item/ammo_box/magazine/internal/shotcom w_class = 5 +// RIOT SHOTGUN // + /obj/item/weapon/gun/projectile/shotgun/riot //for spawn in the armory name = "riot shotgun" desc = "A sturdy shotgun with a longer magazine and a fixed tactical stock designed for non-lethal riot control." @@ -81,6 +90,43 @@ if(W.active) sawoff(user) +/////////////////////// +// BOLT ACTION RIFLE // +/////////////////////// + +/obj/item/weapon/gun/projectile/shotgun/boltaction + name = "bolt action rifle" + desc = "This piece of junk looks like something that could have been used 700 years ago." + icon_state = "moistnugget" + item_state = "moistnugget" + slot_flags = 0 //no SLOT_BACK sprite, alas + mag_type = /obj/item/ammo_box/magazine/internal/boltaction + var/bolt_open = 0 + +/obj/item/weapon/gun/projectile/shotgun/boltaction/pump(mob/M) + playsound(M, 'sound/weapons/shotgunpump.ogg', 60, 1) + if(bolt_open) + pump_reload(M) + else + pump_unload(M) + bolt_open = !bolt_open + update_icon() //I.E. fix the desc + return 1 + +/obj/item/weapon/gun/projectile/shotgun/boltaction/attackby(var/obj/item/A as obj, mob/user as mob) + if(!bolt_open) + user << "The bolt is closed!" + return + . = ..() + +/obj/item/weapon/gun/projectile/shotgun/boltaction/examine(mob/user) + ..() + user << "The bolt is [bolt_open ? "open" : "closed"]." + +///////////////////////////// +// DOUBLE BARRELED SHOTGUN // +///////////////////////////// + /obj/item/weapon/gun/projectile/revolver/doublebarrel name = "double-barreled shotgun" desc = "A true classic." @@ -196,7 +242,7 @@ /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog name = "syndicate shotgun" - desc = "A compact, mag-fed burst-fire shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines." + desc = "A semi-auto, mag-fed shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines." icon_state = "bulldog" item_state = "bulldog" w_class = 3.0 @@ -206,22 +252,27 @@ can_suppress = 0 burst_size = 1 fire_delay = 0 + pin = /obj/item/device/firing_pin/implant/pindicate + action_button_name = null /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/New() ..() update_icon() return + /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/proc/update_magazine() if(magazine) src.overlays = 0 overlays += "[magazine.icon_state]" return + /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/update_icon() src.overlays = 0 update_magazine() icon_state = "bulldog[chambered ? "" : "-e"]" return + /obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/afterattack() ..() empty_alarm() - return \ No newline at end of file + return diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm new file mode 100644 index 00000000000..2754265e876 --- /dev/null +++ b/code/modules/projectiles/pins.dm @@ -0,0 +1,86 @@ +/obj/item/device/firing_pin + name = "electronic firing pin" + desc = "A small authentication device, to be inserted into a firearm reciever to allow operation. NT safety regulations require all new designs to incorporate one." + icon = 'icons/obj/device.dmi' + icon_state = "firing_pin" + item_state = "pen" + flags = CONDUCT + w_class = 1 + attack_verb = list("poked") + var/emagged = 0 + +/obj/item/device/firing_pin/afterattack(atom/target, mob/user, proximity_flag) + if(proximity_flag) + if(istype(target, /obj/item/weapon/gun)) + var/obj/item/weapon/gun/G = target + if(!G.pin) + user.drop_item() + G.pin = src + loc = G + else + user << "This firearm already has a firing pin installed." + +/obj/item/device/firing_pin/emag_act(mob/user) + if(!emagged) + emagged = 1 + user << "You override the authentication mechanism." + +/obj/item/device/firing_pin/proc/pin_auth(mob/living/user) + return 1 + +/obj/item/device/firing_pin/test_range + name = "test-range firing pin" + desc = "This safety firing pin allows weapons to be fired within proximity to a firing range." + +/obj/item/device/firing_pin/test_range/pin_auth(mob/living/user) + for(var/obj/machinery/magnetic_controller/M in range(user, 3)) + return 1 + return 0 + + +/obj/item/device/firing_pin/implant + name = "implant-keyed firing pin" + desc = "This is a security firing pin which only authorizes users who are implanted with a certain device." + var/obj/item/weapon/implant/req_implant = null + +/obj/item/device/firing_pin/implant/pin_auth(mob/living/user) + for(req_implant in user) + if(req_implant && req_implant.imp_in == user) + return 1 + return 0 + +/obj/item/device/firing_pin/implant/loyalty + name = "loyalty firing pin" + desc = "This is a security firing pin which only authorizes users who are loyalty-implanted." + icon_state = "firing_pin_loyalty" + req_implant = /obj/item/weapon/implant/loyalty + +/obj/item/device/firing_pin/implant/pindicate + name = "syndicate firing pin" + icon_state = "firing_pin_pindi" + req_implant = /obj/item/weapon/implant/weapons_auth + + +//muh laser tag +/obj/item/device/firing_pin/tag + name = "laser tag firing pin" + desc = "A recreational firing pin, used in laser tag units to ensure users have their vests on." + var/obj/item/clothing/suit/suit_requirement = null + +/obj/item/device/firing_pin/tag/pin_auth(mob/living/user) + if(ishuman(user)) + var/mob/living/carbon/human/M = user + if(istype(M.wear_suit, suit_requirement)) + return 1 + user << "You need to be wearing [suit_requirement.name]!" + return 0 + +/obj/item/device/firing_pin/tag/red + name = "red laser tag firing pin" + icon_state = "firing_pin_red" + suit_requirement = /obj/item/clothing/suit/redtag + +/obj/item/device/firing_pin/tag/blue + name = "blue laser tag firing pin" + icon_state = "firing_pin_blue" + suit_requirement = /obj/item/clothing/suit/bluetag diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index 6ff5d42fc22..7ca29b5fed5 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -51,7 +51,7 @@ weaken = 5 range = 7 -/obj/item/projectile/energy/bolt //xbow bolts +/obj/item/projectile/energy/bolt //ebow bolts name = "bolt" icon_state = "cbbolt" damage = 15 @@ -61,13 +61,5 @@ stutter = 5 range = 7 -/obj/item/projectile/energy/bolt/on_hit(var/atom/target, var/blocked = 0) //drop a bolt on hitting basically anything - if(!proj_hit) - proj_hit = 1 - new /obj/item/ammo_casing/caseless/bolt(src.loc) - ..() - -/obj/item/projectile/energy/bolt/on_range() //drop a bolt after 7 tiles - if(!proj_hit) - new /obj/item/ammo_casing/caseless/bolt(src.loc) - ..() \ No newline at end of file +/obj/item/projectile/energy/bolt/large + damage = 20 \ No newline at end of file diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index 7b78b6ad120..597ca6550ca 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -178,3 +178,20 @@ obj/item/projectile/kinetic/New() name ="explosive slug" damage = 25 weaken = 5 + +/obj/item/projectile/bullet/magspear + name = "magnetic spear" + desc = "WHITE WHALE, HOLY GRAIL" + damage = 30 //takes 3 spears to kill a mega carp, one to kill a normal carp + icon_state = "magspear" + +/obj/item/projectile/bullet/magspear/on_hit(var/atom/target, var/blocked = 0) + if(!proj_hit) + proj_hit = 1 + new /obj/item/ammo_casing/caseless/magspear(src.loc) + ..() + +/obj/item/projectile/bullet/magspear/on_range() + if(!proj_hit) + new /obj/item/ammo_casing/caseless/magspear(src.loc) + ..() \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Goon-420BlazeIt.dm b/code/modules/reagents/Chemistry-Goon-420BlazeIt.dm index 3a8a0e7f449..aacabb4a04d 100644 --- a/code/modules/reagents/Chemistry-Goon-420BlazeIt.dm +++ b/code/modules/reagents/Chemistry-Goon-420BlazeIt.dm @@ -10,6 +10,8 @@ datum/reagent/nicotine description = "Stun reduction per cycle, slight stamina regeneration buff. Overdoses become rapidly deadly." reagent_state = LIQUID color = "#60A584" // rgb: 96, 165, 132 + overdose_threshold = 35 + addiction_threshold = 30 datum/reagent/nicotine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom @@ -18,10 +20,14 @@ datum/reagent/nicotine/on_mob_life(var/mob/living/M as mob) M << "[smoke_message]" M.AdjustStunned(-1) M.adjustStaminaLoss(-1*REM) - if(volume > 35) + ..() + return + +datum/reagent/nicotine/overdose_process(var/mob/living/M as mob) + if(prob(20)) M << "You feel like you smoked too much." - M.adjustToxLoss(2*REM) - M.adjustOxyLoss(2*REM) + M.adjustToxLoss(1*REM) + M.adjustOxyLoss(1*REM) ..() return @@ -31,6 +37,8 @@ datum/reagent/crank description = "2x stun reduction per cycle. Warms you up, makes you jittery as hell." reagent_state = LIQUID color = "#60A584" // rgb: 96, 165, 132 + overdose_threshold = 20 + addiction_threshold = 10 datum/reagent/crank/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom @@ -40,13 +48,33 @@ datum/reagent/crank/on_mob_life(var/mob/living/M as mob) M.AdjustParalysis(-2) M.AdjustStunned(-2) M.AdjustWeakened(-2) - if(volume > 20) - M.adjustBrainLoss(rand(1,10)*REM) - M.adjustToxLoss(rand(1,10)*REM) - M.adjustBruteLoss(rand(1,10)*REM) + ..() + return +datum/reagent/crank/overdose_process(var/mob/living/M as mob) + M.adjustBrainLoss(rand(1,10)*REM) + M.adjustToxLoss(rand(1,10)*REM) + M.adjustBruteLoss(rand(1,10)*REM) ..() return +datum/reagent/crank/addiction_act_stage1(var/mob/living/M as mob) + M.adjustBrainLoss(rand(1,10)*REM) + ..() + return +datum/reagent/crank/addiction_act_stage2(var/mob/living/M as mob) + M.adjustToxLoss(rand(1,10)*REM) + ..() + return +datum/reagent/crank/addiction_act_stage3(var/mob/living/M as mob) + M.adjustBruteLoss(rand(1,10)*REM) + ..() + return +datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob) + M.adjustBrainLoss(rand(1,10)*REM) + M.adjustToxLoss(rand(1,10)*REM) + M.adjustBruteLoss(rand(1,10)*REM) + ..() + return /datum/chemical_reaction/crank name = "Crank" id = "crank" @@ -62,8 +90,8 @@ datum/reagent/crank/on_mob_life(var/mob/living/M as mob) description = "Cools and calms you down, occasional BRAIN and TOX damage." reagent_state = LIQUID color = "#60A584" // rgb: 96, 165, 132 - var/cycle_count = 0 - var/overdosed + overdose_threshold = 20 + addiction_threshold = 15 /datum/reagent/krokodil/on_mob_life(var/mob/living/M as mob) @@ -71,22 +99,40 @@ datum/reagent/crank/on_mob_life(var/mob/living/M as mob) var/high_message = pick("You feel calm.", "You feel collected.", "You feel like you need to relax.") if(prob(5)) M << "[high_message]" + ..() + return + +/datum/reagent/krokodil/overdose_process(var/mob/living/M as mob) if(prob(10)) M.adjustBrainLoss(rand(1,5)*REM) M.adjustToxLoss(rand(1,5)*REM) - if(cycle_count == 10) - M.adjustBrainLoss(rand(1,10)*REM) - M.adjustToxLoss(rand(1,10)*REM) - if(cycle_count == 20) + ..() + return + + +/datum/reagent/krokodil/addiction_act_stage1(var/mob/living/M as mob) + M.adjustBrainLoss(rand(1,5)*REM) + M.adjustToxLoss(rand(1,5)*REM) + ..() + return +/datum/reagent/krokodil/addiction_act_stage2(var/mob/living/M as mob) + if(prob(25)) M << "Your skin feels loose..." - if(cycle_count == 50) - M << "Your skin falls off!" - M.adjustBruteLoss(rand(10,30)*REM) + ..() + return +/datum/reagent/krokodil/addiction_act_stage3(var/mob/living/M as mob) + if(prob(25)) + M << "Your skin starts to peel away..." + M.adjustBruteLoss(3*REM) + ..() + return +/datum/reagent/krokodil/addiction_act_stage4(var/mob/living/carbon/human/M as mob) + if(!istype(M.dna.species, /datum/species/skeleton)) + M << "Your skin falls off! Holy shit!" + M.adjustBruteLoss(rand(50,80)*REM) // holy shit your skin just FELL THE FUCK OFF hardset_dna(M, null, null, null, null, /datum/species/skeleton) - if(volume > 20) - overdosed = 1 - if(overdosed) - cycle_count++ + else + M.adjustBruteLoss(5*REM) ..() return @@ -94,7 +140,7 @@ datum/reagent/crank/on_mob_life(var/mob/living/M as mob) name = "Krokodil" id = "krokodil" result = "krokodil" - required_reagents = list("diphenhydramine" = 1, "morphine" = 1, "cleaner" = 1, "potassium" = 1, "phosphorous" = 1, "fuel" = 1) + required_reagents = list("diphenhydramine" = 1, "morphine" = 1, "cleaner" = 1, "potassium" = 1, "phosphorus" = 1, "fuel" = 1) result_amount = 6 mix_message = "The mixture dries into a pale blue powder." required_temp = 380 \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Goon-Medicine.dm b/code/modules/reagents/Chemistry-Goon-Medicine.dm index 4c83e5a1187..db68b5cbaa0 100644 --- a/code/modules/reagents/Chemistry-Goon-Medicine.dm +++ b/code/modules/reagents/Chemistry-Goon-Medicine.dm @@ -59,16 +59,15 @@ datum/reagent/styptic_powder/on_mob_life(var/mob/living/M as mob) datum/reagent/salglu_solution name = "Saline-Glucose Solution" id = "salglu_solution" - description = "100% chance per cycle of healing 1 point each of OXY and TOX damage." + description = "33% chance per cycle of healing 3 point each of BRUTE and BURN damage." reagent_state = LIQUID color = "#C8A5DC" // rgb: 200, 165, 220 datum/reagent/salglu_solution/on_mob_life(var/mob/living/M as mob) - if(M.stat == DEAD) - return if(!M) M = holder.my_atom - if(M.getOxyLoss()) M.adjustOxyLoss(-1*REM) - if(M.getToxLoss()) M.adjustToxLoss(-1*REM) + if(prob(50)) + M.adjustBruteLoss(-3*REM) + M.adjustFireLoss(-3*REM) ..() return @@ -82,8 +81,8 @@ datum/reagent/synthflesh datum/reagent/synthflesh/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume) if(!M) M = holder.my_atom if(method == TOUCH) - M.heal_organ_damage(volume*REM,0) - M.adjustFireLoss((volume-(volume*2)*REM)) + M.adjustBruteLoss(-(1*volume)*REM) + M.adjustFireLoss(-(1*volume)*REM) M << "You feel your burns healing and your flesh knitting together!" ..() return @@ -91,16 +90,16 @@ datum/reagent/synthflesh/reaction_mob(var/mob/living/M, var/method=TOUCH, var/vo datum/reagent/charcoal name = "Charcoal" id = "charcoal" - description = "Heals 2 TOX damage per cycle." + description = "Heals 3 TOX damage per cycle and purges other chemicals slowly." reagent_state = LIQUID color = "#C8A5DC" // rgb: 200, 165, 220 datum/reagent/charcoal/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - M.adjustToxLoss(-1.5*REM) - for(var/datum/reagent/R in M.reagents) - if(M != src) - M.reagents.remove_reagent(R.id,0.5) + M.adjustToxLoss(-3*REM) + for(var/datum/reagent/R in M.reagents.reagent_list) + if(R != src) + M.reagents.remove_reagent(R.id,1) ..() return @@ -149,6 +148,7 @@ datum/reagent/omnizine reagent_state = LIQUID color = "#C8A5DC" // rgb: 200, 165, 220 metabolization_rate = 0.2 + overdose_threshold = 30 datum/reagent/omnizine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom @@ -159,6 +159,14 @@ datum/reagent/omnizine/on_mob_life(var/mob/living/M as mob) ..() return +datum/reagent/omnizine/overdose_process(var/mob/living/M as mob) + M.adjustToxLoss(3*REM) + M.adjustOxyLoss(3*REM) + M.adjustBruteLoss(3*REM) + M.adjustFireLoss(3*REM) + ..() + return + datum/reagent/calomel name = "Calomel" id = "calomel" @@ -168,8 +176,8 @@ datum/reagent/calomel datum/reagent/calomel/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - for(var/datum/reagent/R in M.reagents) - if(M != src) + for(var/datum/reagent/R in M.reagents.reagent_list) + if(R != src) M.reagents.remove_reagent(R.id,5) if(M.health > 20) M.adjustToxLoss(5*REM) @@ -224,8 +232,8 @@ datum/reagent/pen_acid/on_mob_life(var/mob/living/M as mob) M.adjustBruteLoss(1*REM) if(M.radiation < 0) M.radiation = 0 - for(var/datum/reagent/R in M.reagents) - if(M != src) + for(var/datum/reagent/R in M.reagents.reagent_list) + if(R != src) M.reagents.remove_reagent(R.id,4) ..() return @@ -243,6 +251,7 @@ datum/reagent/sal_acid description = "If BRUTE damage is under 50, 50% chance to heal one unit." reagent_state = LIQUID color = "#C8A5DC" // rgb: 200, 165, 220 + overdose_threshold = 25 datum/reagent/sal_acid/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom @@ -252,6 +261,13 @@ datum/reagent/sal_acid/on_mob_life(var/mob/living/M as mob) ..() return +datum/reagent/sal_acid/overdose_process(var/mob/living/M as mob) + if(M.getBruteLoss() < 50) + if(prob(50)) + M.adjustBruteLoss(2*REM) + ..() + return + /datum/chemical_reaction/sal_acid name = "Salicyclic Acid" id = "sal_acid" @@ -316,12 +332,12 @@ datum/reagent/ephedrine reagent_state = LIQUID color = "#C8A5DC" // rgb: 200, 165, 220 metabolization_rate = 0.3 + overdose_threshold = 45 + addiction_threshold = 30 datum/reagent/ephedrine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.status_flags |= GOTTAGOFAST - if(M.losebreath >= 10) - M.losebreath = max(10, M.losebreath-5) M.AdjustParalysis(-1) M.AdjustStunned(-1) M.AdjustWeakened(-1) @@ -329,6 +345,38 @@ datum/reagent/ephedrine/on_mob_life(var/mob/living/M as mob) ..() return +datum/reagent/ephedrine/overdose_process(var/mob/living/M as mob) + if(prob(33)) + M.adjustToxLoss(1*REM) + M.losebreath++ + ..() + return + +datum/reagent/ephedrine/addiction_act_stage1(var/mob/living/M as mob) + if(prob(33)) + M.adjustToxLoss(2*REM) + M.losebreath += 2 + ..() + return +datum/reagent/ephedrine/addiction_act_stage2(var/mob/living/M as mob) + if(prob(33)) + M.adjustToxLoss(3*REM) + M.losebreath += 3 + ..() + return +datum/reagent/ephedrine/addiction_act_stage3(var/mob/living/M as mob) + if(prob(33)) + M.adjustToxLoss(4*REM) + M.losebreath += 4 + ..() + return +datum/reagent/ephedrine/addiction_act_stage4(var/mob/living/M as mob) + if(prob(33)) + M.adjustToxLoss(5*REM) + M.losebreath += 5 + ..() + return + /datum/chemical_reaction/ephedrine name = "Ephedrine" id = "ephedrine" @@ -366,16 +414,373 @@ datum/reagent/morphine reagent_state = LIQUID color = "#C8A5DC" // rgb: 200, 165, 220 var/cycle_count = 0 + overdose_threshold = 30 + addiction_threshold = 25 + datum/reagent/morphine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.status_flags |= GOTTAGOFAST if(cycle_count == 36) - M.sleeping += 1 - if(volume > 20) + M.drowsyness += 1 + cycle_count++ + ..() + return + +datum/reagent/morphine/overdose_process(var/mob/living/M as mob) + if(prob(33)) var/obj/item/I = M.get_active_hand() if(I) M.drop_item() - cycle_count++ + M.Dizzy(1) + M.Jitter(1) ..() - return \ No newline at end of file + return + +datum/reagent/morphine/addiction_act_stage1(var/mob/living/M as mob) + if(prob(33)) + var/obj/item/I = M.get_active_hand() + if(I) + M.drop_item() + M.Dizzy(2) + M.Jitter(2) + ..() + return +datum/reagent/morphine/addiction_act_stage2(var/mob/living/M as mob) + if(prob(33)) + var/obj/item/I = M.get_active_hand() + if(I) + M.drop_item() + M.adjustToxLoss(1*REM) + M.Dizzy(3) + M.Jitter(3) + ..() + return +datum/reagent/morphine/addiction_act_stage3(var/mob/living/M as mob) + if(prob(33)) + var/obj/item/I = M.get_active_hand() + if(I) + M.drop_item() + M.adjustToxLoss(2*REM) + M.Dizzy(4) + M.Jitter(4) + ..() + return +datum/reagent/morphine/addiction_act_stage4(var/mob/living/M as mob) + if(prob(33)) + var/obj/item/I = M.get_active_hand() + if(I) + M.drop_item() + M.adjustToxLoss(3*REM) + M.Dizzy(5) + M.Jitter(5) + ..() + return + +datum/reagent/oculine/on_mob_life(var/mob/living/M as mob) + if(!M) M = holder.my_atom + cycle_amount++ + if(M.eye_blind > 0 && cycle_amount > 20) + if(prob(30)) + M.eye_blind = 0 + else if(prob(80)) + M.eye_blind = 0 + M.eye_blurry = 1 + if(M.eye_blurry > 0) + if(prob(80)) + M.eye_blurry = 0 + ..() + return + +/datum/chemical_reaction/oculine + name = "Oculine" + id = "oculine" + result = "oculine" + required_reagents = list("atropine" = 1, "spaceacillin" = 1, "salglu_solution" = 1) + result_amount = 3 + mix_message = "The mixture sputters loudly and becomes a pale pink color." + +datum/reagent/oculine + name = "Oculine" + id = "oculine" + description = "30% chance to remove blindness, 80% chance to slightly reduce eye damage." + reagent_state = LIQUID + color = "#C8A5DC" // rgb: 200, 165, 220 + metabolization_rate = 0.4 + var/cycle_amount = 0 + +datum/reagent/atropine + name = "Atropine" + id = "atropine" + description = "1 TOX damage if used over -60 health. Causes dizziness and confusion. If under -25 health, heals 3 BRUTE + 3 BURN. Attempts to cap OXY damage at 65 and LOSEBREATH at 5." + reagent_state = LIQUID + color = "#C8A5DC" // rgb: 200, 165, 220 + metabolization_rate = 0.2 + overdose_threshold = 35 + +datum/reagent/atropine/on_mob_life(var/mob/living/M as mob) + if(!M) M = holder.my_atom + if(M.health > -60) + M.adjustToxLoss(1*REM) + if(M.health < -25) + M.adjustBruteLoss(-3*REM) + M.adjustFireLoss(-3*REM) + if(M.oxyloss > 65) + M.setOxyLoss(65) + if(M.losebreath > 5) + M.losebreath = 5 + if(prob(30)) + M.Dizzy(5) + M.Jitter(5) + ..() + return + +datum/reagent/atropine/overdose_process(var/mob/living/M as mob) + if(prob(50)) + M.adjustToxLoss(2*REM) + M.Dizzy(1) + M.Jitter(1) + ..() + return + +/datum/chemical_reaction/atropine + name = "Atropine" + id = "atropine" + result = "atropine" + required_reagents = list("ethanol" = 1, "acetone" = 1, "diethylamine" = 1, "phenol" = 1, "sacid" = 1) + result_amount = 5 + +datum/reagent/epinephrine + name = "Epinephrine" + id = "epinephrine" + description = "Reduces most of the knockout/stun effects, minor stamina regeneration buff. Attempts to cap OXY damage at 35 and LOSEBREATH at 3. If health is between -10 to -65, heals 1 TOX, 1 BRUTE, 1 BURN." + reagent_state = LIQUID + color = "#C8A5DC" // rgb: 200, 165, 220 + metabolization_rate = 0.2 + overdose_threshold = 30 + +datum/reagent/epinephrine/on_mob_life(var/mob/living/M as mob) + if(!M) M = holder.my_atom + if(M.health < -10 && M.health > -65) + M.adjustToxLoss(-1*REM) + M.adjustBruteLoss(-1*REM) + M.adjustFireLoss(-1*REM) + if(M.oxyloss > 35) + M.setOxyLoss(35) + if(M.losebreath > 3) + M.losebreath = 3 + M.adjustStaminaLoss(-1*REM) + if(prob(30)) + M.AdjustParalysis(-1) + M.AdjustStunned(-1) + M.AdjustWeakened(-1) + M.sleeping = 0 + ..() + return + +datum/reagent/epinephrine/overdose_process(var/mob/living/M as mob) + if(prob(33)) + M.adjustStaminaLoss(5*REM) + M.adjustToxLoss(2*REM) + M.losebreath++ + ..() + return + +/datum/chemical_reaction/epinephrine + name = "Epinephrine" + id = "epinephrine" + result = "epinephrine" + required_reagents = list("phenol" = 1, "acetone" = 1, "diethylamine" = 1, "oxygen" = 1, "chlorine" = 1, "hydrogen" = 1) + result_amount = 6 + +datum/reagent/strange_reagent + name = "Strange Reagent" + id = "strange_reagent" + description = "A miracle medical chem, this little beauty can bring the dead back to life! ...Well, if you're careful that is. If the cadaver is rotten or has too much BRUTE/BURN damage, SR will gib them on use." + reagent_state = LIQUID + color = "#C8A5DC" // rgb: 200, 165, 220 + metabolization_rate = 0.2 + +datum/reagent/strange_reagent/reaction_mob(var/mob/living/carbon/human/M as mob, var/method=TOUCH, var/volume) + if(M.bruteloss > 80 || M.fireloss > 80) + if(ishuman(M) || ismonkey(M)) + var/mob/living/carbon/C_target = M + var/obj/item/organ/brain/B = C_target.getorgan(/obj/item/organ/brain) + if(B) + B.loc = get_turf(C_target) + B.transfer_identity(C_target) + C_target.internal_organs -= B + M.gib() + else if(M.stat == DEAD) + var/mob/dead/observer/ghost = M.get_ghost() + M.visible_message("[M]'s body convulses a bit.") + if(M.health <= config.health_threshold_dead && !M.suiciding && !ghost && !(NOCLONE in M.mutations)) + M.stat = 1 + M.adjustBruteLoss(-10) + M.adjustFireLoss(-10) + M.adjustOxyLoss(-10) + M.adjustToxLoss(-10) + dead_mob_list -= M + living_mob_list |= list(M) + M.emote("gasp") + add_logs(M, M, "revived", object="strange reagent") + hardset_dna(M, null, null, null, null, /datum/species/zombie) + ..() + return + +datum/reagent/strange_reagent/on_mob_life(var/mob/living/M as mob) + if(!M) M = holder.my_atom + if(prob(rand(1,100))) + M.adjustBruteLoss(2*REM) + M.adjustFireLoss(2*REM) + ..() + return + +/datum/chemical_reaction/strange_reagent + name = "Strange Reagent" + id = "strange_reagent" + result = "strange_reagent" + required_reagents = list("omnizine" = 1, "holywater" = 1, "mutagen" = 1) + result_amount = 3 + +datum/reagent/life + name = "Life" + id = "life" + description = "" + reagent_state = LIQUID + color = "#C8A5DC" // rgb: 200, 165, 220 + metabolization_rate = 0.2 + +/datum/chemical_reaction/life + name = "Life" + id = "life" + result = "life" + required_reagents = list("strange_reagent" = 1, "synthflesh" = 1, "blood" = 1) + result_amount = 3 + required_temp = 374 + +/datum/chemical_reaction/life/on_reaction(var/datum/reagents/holder, var/created_volume) + chemical_mob_spawn(holder, 1, "Life") + +proc/chemical_mob_spawn(var/datum/reagents/holder, var/amount_to_spawn, var/reaction_name) + if(holder && holder.my_atom) + var/blocked = list(/mob/living/simple_animal/hostile, + /mob/living/simple_animal/hostile/pirate, + /mob/living/simple_animal/hostile/pirate/ranged, + /mob/living/simple_animal/hostile/russian, + /mob/living/simple_animal/hostile/russian/ranged, + /mob/living/simple_animal/hostile/syndicate, + /mob/living/simple_animal/hostile/syndicate/melee, + /mob/living/simple_animal/hostile/syndicate/melee/space, + /mob/living/simple_animal/hostile/syndicate/ranged, + /mob/living/simple_animal/hostile/syndicate/ranged/space, + /mob/living/simple_animal/hostile/alien/queen/large, + /mob/living/simple_animal/hostile/retaliate, + /mob/living/simple_animal/hostile/retaliate/clown, + /mob/living/simple_animal/hostile/mushroom, + /mob/living/simple_animal/hostile/asteroid, + /mob/living/simple_animal/hostile/asteroid/basilisk, + /mob/living/simple_animal/hostile/asteroid/goldgrub, + /mob/living/simple_animal/hostile/asteroid/goliath, + /mob/living/simple_animal/hostile/asteroid/hivelord, + /mob/living/simple_animal/hostile/asteroid/hivelordbrood, + /mob/living/simple_animal/hostile/carp/holocarp, + /mob/living/simple_animal/hostile/mining_drone + )//exclusion list for things you don't want the reaction to create. + var/list/critters = typesof(/mob/living/simple_animal/hostile) - blocked // list of possible hostile mobs + var/atom/A = holder.my_atom + var/turf/T = get_turf(A) + var/area/my_area = get_area(T) + var/message = "A [reaction_name] reaction has occured in [my_area.name]. (JMP)" + message += " (VV)" + + var/mob/M = get(A, /mob) + if(M) + message += " - Carried By: [M.real_name] ([M.key]) (PP) (?)" + else + message += " - Last Fingerprint: [(A.fingerprintslast ? A.fingerprintslast : "N/A")]" + + message_admins(message, 0, 1) + + playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1) + + for(var/mob/living/carbon/human/H in viewers(get_turf(holder.my_atom), null)) + if(H:eyecheck() <= 0) + flick("e_flash", H.flash) + for(var/i = 1, i <= amount_to_spawn, i++) + var/chosen = pick(critters) + var/mob/living/simple_animal/hostile/C = new chosen + C.faction |= "chemicalsummon" + C.loc = get_turf(holder.my_atom) + if(prob(50)) + for(var/j = 1, j <= rand(1, 3), j++) + step(C, pick(NORTH,SOUTH,EAST,WEST)) + +/datum/reagent/mannitol/on_mob_life(mob/living/M as mob) + M.adjustBrainLoss(-3) + ..() + return + +/datum/chemical_reaction/mannitol + name = "Mannitol" + id = "mannitol" + result = "mannitol" + required_reagents = list("sugar" = 1, "hydrogen" = 1, "water" = 1) + result_amount = 3 + mix_message = "The solution slightly bubbles, becoming thicker." + +/datum/reagent/mannitol + name = "Mannitol" + id = "mannitol" + description = "Heals 3 BRAIN damage." + color = "#C8A5DC" // rgb: 200, 165, 220 + +/datum/reagent/mutadone/on_mob_life(var/mob/living/carbon/human/M as mob) + M.jitteriness = 0 + if(istype(M) && M.dna) + M.dna.remove_all_mutations() + ..() + return + +/datum/chemical_reaction/mutadone + name = "Mutadone" + id = "mutadone" + result = "mutadone" + required_reagents = list("mutagen" = 1, "acetone" = 1, "bromine" = 1) + result_amount = 3 + + +/datum/reagent/mutadone + name = "Mutadone" + id = "mutadone" + description = "Chance to remove genetic disabilities." + color = "#C8A5DC" // rgb: 200, 165, 220 + +datum/reagent/antihol + name = "Antihol" + id = "antihol" + description = "A powerful oxidizer that reacts with ethanol." + color = "#C8A5DC" // rgb: 200, 165, 220 + +datum/reagent/antihol/on_mob_life(var/mob/living/M as mob) + M.dizziness = 0 + M.drowsyness = 0 + M.stuttering = 0 + M.confused = 0 + M.reagents.remove_reagent("ethanol", 8) + M.adjustToxLoss(-0.2*REM) + ..() + +/datum/chemical_reaction/antihol + name = "antihol" + id = "antihol" + result = "antihol" + required_reagents = list("ethanol" = 1, "charcoal" = 1) + result_amount = 2 + +/datum/chemical_reaction/cryoxadone + name = "Cryoxadone" + id = "cryoxadone" + result = "cryoxadone" + required_reagents = list("stable_plasma" = 1, "acetone" = 1, "mutagen" = 1) + result_amount = 3 diff --git a/code/modules/reagents/Chemistry-Goon-Other.dm b/code/modules/reagents/Chemistry-Goon-Other.dm index 33752902ea8..62b5a848c9a 100644 --- a/code/modules/reagents/Chemistry-Goon-Other.dm +++ b/code/modules/reagents/Chemistry-Goon-Other.dm @@ -101,4 +101,50 @@ datum/reagent/acetone result = "ash" required_reagents = list("oil" = 1) result_amount = 1 - required_temp = 480 \ No newline at end of file + required_temp = 480 + +datum/reagent/colorful_reagent + name = "Colorful Reagent" + id = "colorful_reagent" + description = "A solution." + reagent_state = LIQUID + color = "#C8A5DC" // rgb: 200, 165, 220 + var/list/potential_colors = list("#FF0000","#0000FF","#008000","#FFFF00") + +/datum/chemical_reaction/colorful_reagent + name = "colorful_reagent" + id = "colorful_reagent" + result = "colorful_reagent" + required_reagents = list("stable_plasma" = 1, "radium" = 1, "space_drugs" = 1, "cryoxadone" = 1, "triple_citrus" = 1) + result_amount = 5 + +datum/reagent/colorful_reagent/reaction_mob(var/mob/M, var/volume) + if(M) + M.color = pick(potential_colors) + ..() + return +datum/reagent/colorful_reagent/reaction_obj(var/obj/O, var/volume) + if(O) + O.color = pick(potential_colors) + ..() + return +datum/reagent/colorful_reagent/reaction_turf(var/turf/T, var/volume) + if(T) + T.color = pick(potential_colors) + ..() + return + + +datum/reagent/triple_citrus + name = "Triple Citrus" + id = "triple_citrus" + description = "A solution." + reagent_state = LIQUID + color = "#C8A5DC" // rgb: 200, 165, 220 + +/datum/chemical_reaction/triple_citrus + name = "triple_citrus" + id = "triple_citrus" + result = "triple_citrus" + required_reagents = list("lemonjuice" = 1, "limejuice" = 1, "orangejuice" = 1) + result_amount = 5 \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm b/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm index 6edcc664817..dc8268a2d51 100644 --- a/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm +++ b/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm @@ -25,9 +25,15 @@ result_amount = 4 required_temp = 424 +datum/reagent/clf3/on_mob_life(var/mob/living/M as mob) + if(!M) M = holder.my_atom + M.adjustFireLoss(1*REM) + ..() + return + /datum/chemical_reaction/clf3/on_reaction(var/datum/reagents/holder, var/created_volume) var/turf/simulated/T = get_turf(holder.my_atom) - for(var/turf/simulated/turf in orange(1,T)) + for(var/turf/simulated/turf in range(1,T)) new /obj/effect/hotspot(turf) return @@ -38,6 +44,12 @@ F.make_plating() if(prob(11)) F.ChangeTurf(/turf/space) + if(istype(F, /turf/simulated/floor/)) + new /obj/effect/hotspot(F) + if(istype(T, /turf/simulated/wall/)) + var/turf/simulated/wall/W = T + if(prob(11)) + W.ChangeTurf(/turf/simulated/floor) return /datum/reagent/clf3/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume) @@ -45,6 +57,8 @@ return if(method == TOUCH) M.adjust_fire_stacks(20) + M.IgniteMob() + new /obj/effect/hotspot(M.loc) return /datum/reagent/sorium @@ -110,10 +124,12 @@ proc/goonchem_vortex(var/turf/simulated/T, var/setting_type, var/range, var/pull_times) for(var/atom/movable/X in orange(range, T)) + if(istype(X, /obj/effect)) + continue // stop pulling smoke and hotspots please if(istype(X, /atom/movable)) - if((X)) + if((X) && !X.anchored) if(setting_type) for(var/i = 0, i < pull_times, i++) - step_towards(X,T) + step_away(X,T) else X.throw_at(T) \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Goon-Toxins.dm b/code/modules/reagents/Chemistry-Goon-Toxins.dm index 3361df63c77..6423c1571eb 100644 --- a/code/modules/reagents/Chemistry-Goon-Toxins.dm +++ b/code/modules/reagents/Chemistry-Goon-Toxins.dm @@ -26,25 +26,27 @@ datum/reagent/histamine reagent_state = LIQUID color = "#CF3600" // rgb: 207, 54, 0 metabolization_rate = 0.2 + overdose_threshold = 30 datum/reagent/histamine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - if(volume >= 20) - M.adjustOxyLoss(pick(5,10)*REM) - M.adjustBruteLoss(pick(5,10)*REM) - M.adjustToxLoss(pick(5,10)*REM) - if(volume < 20) - switch(pick(1, 2, 3)) - if(1) - M << "You are unable to look straight!" - M.Dizzy(10) - if(2) - M.emote("cough") - var/obj/item/I = M.get_active_hand() - if(I) - M.drop_item() - if(3) - M.adjustBruteLoss(5*REM) + switch(pick(1, 2, 3)) + if(1) + M << "You are unable to look straight!" + M.Dizzy(10) + if(2) + M.emote("cough") + var/obj/item/I = M.get_active_hand() + if(I) + M.drop_item() + if(3) + M.adjustBruteLoss(1*REM) + ..() + return +datum/reagent/histamine/overdose_process(var/mob/living/M as mob) + M.adjustOxyLoss(pick(2,5)*REM) + M.adjustBruteLoss(pick(2,5)*REM) + M.adjustToxLoss(pick(2,5)*REM) ..() return @@ -101,7 +103,7 @@ datum/reagent/neurotoxin2 datum/reagent/neurotoxin2/on_mob_life(var/mob/living/M as mob) cycle_count++ if(!M) M = holder.my_atom - if(!(M.brainloss + M.toxloss) >= 60) + if(M.brainloss + M.toxloss <= 60) M.adjustBrainLoss(1*REM) M.adjustToxLoss(1*REM) if(cycle_count == 17) @@ -132,7 +134,7 @@ datum/reagent/cyanide/on_mob_life(var/mob/living/M as mob) M.adjustOxyLoss(1*REM) if(prob(8)) M.sleeping += 1 - M.adjustToxLoss(4*REM) + M.adjustToxLoss(2*REM) ..() return @@ -156,4 +158,41 @@ datum/reagent/questionmark/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjustToxLoss(1*REM) ..() - return \ No newline at end of file + return + +datum/reagent/itching_powder + name = "Itching Powder" + id = "itching_powder" + description = "Lots of annoying random effects, chances to do BRUTE damage from scratching. 6% chance to decay into 1-3 units of histamine." + reagent_state = LIQUID + color = "#CF3600" // rgb: 207, 54, 0 + metabolization_rate = 0.3 + +/datum/reagent/itching_powder/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume) + if(method == TOUCH) + M.reagents.add_reagent("itching_powder", volume) + return + +datum/reagent/itching_powder/on_mob_life(var/mob/living/M as mob) + if(!M) M = holder.my_atom + if(prob(rand(5,50))) + M << "You scratch at your head." + M.adjustBruteLoss(0.2*REM) + if(prob(rand(5,50))) + M << "You scratch at your leg." + M.adjustBruteLoss(0.2*REM) + if(prob(rand(5,50))) + M << "You scratch at your arm." + M.adjustBruteLoss(0.2*REM) + if(prob(6)) + M.reagents.add_reagent("histamine",rand(1,3)) + M.reagents.remove_reagent("itching_powder",1) + ..() + return + +/datum/chemical_reaction/itching_powder + name = "Itching Powder" + id = "itching_powder" + result = "itching_powder" + required_reagents = list("fuel" = 1, "ammonia" = 1) + result_amount = 2 \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index dde04bfbc43..17e51b1f63d 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -11,6 +11,9 @@ datum/reagents var/maximum_volume = 100 var/atom/my_atom = null var/chem_temp = 150 + var/last_tick = 1 + var/addiction_tick = 1 + var/list/datum/reagent/addiction_list = new/list() datum/reagents/New(maximum=100) maximum_volume = maximum @@ -195,12 +198,48 @@ datum/reagents/proc/trans_id_to(var/obj/target, var/reagent, var/amount=1, var/p */ datum/reagents/proc/metabolize(var/mob/M) - for(var/A in reagent_list) - var/datum/reagent/R = A - if(M && R) - if(M.reagent_check(R) != 1) - R.on_mob_life(M) - + if(last_tick == 3) + last_tick = 1 + for(var/A in reagent_list) + var/datum/reagent/R = A + if(M && R) + if(M.reagent_check(R) != 1) + if(R.volume >= R.overdose_threshold && !R.overdosed && R.overdose_threshold > 0) + R.overdosed = 1 + M << "You feel like you took too much of [R.name]!" + if(R.volume >= R.addiction_threshold && !is_type_in_list(R, addiction_list) && R.addiction_threshold > 0) + var/datum/reagent/new_reagent = new R.type() + addiction_list.Add(new_reagent) + if(R.overdosed) + R.overdose_process(M) + if(is_type_in_list(R,addiction_list)) + for(var/datum/reagent/addicted_reagent in addiction_list) + if(istype(R, addicted_reagent)) + addicted_reagent.addiction_stage = -15 // you're satisfied for a good while. + R.on_mob_life(M) + if(addiction_tick == 6) + addiction_tick = 1 + for(var/A in addiction_list) + var/datum/reagent/R = A + if(M && R) + if(R.addiction_stage < 0) + R.addiction_stage++ + if(R.addiction_stage >= 0 && R.addiction_stage <= 10) + R.addiction_act_stage1(M) + R.addiction_stage++ + if(R.addiction_stage >= 10 && R.addiction_stage <= 20) + R.addiction_act_stage2(M) + R.addiction_stage++ + if(R.addiction_stage >= 20 && R.addiction_stage <= 30) + R.addiction_act_stage3(M) + R.addiction_stage++ + if(R.addiction_stage > 30 && R.addiction_stage <= 40) + R.addiction_act_stage4(M) + if(R.addiction_stage > 40) + M << "You feel like you've gotten over your need for [R.name]." + addiction_list.Remove(R) + addiction_tick++ + last_tick++ update_total() datum/reagents/proc/conditional_update_move(var/atom/A, var/Running = 0) @@ -324,7 +363,7 @@ datum/reagents/proc/del_reagent(var/reagent) datum/reagents/proc/check_gofast(var/mob/M) if(istype(M, /mob)) - if(M.reagents.has_reagent("hyperzine")||M.reagents.has_reagent("unholywater")||M.reagents.has_reagent("nuka_cola")) + if(M.reagents.has_reagent("morphine")||M.reagents.has_reagent("unholywater")||M.reagents.has_reagent("nuka_cola")) return 1 else M.status_flags &= ~GOTTAGOFAST diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 9821c71e5b7..3533e2f79ef 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -878,9 +878,9 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime) //Grinder stuff, but only if dry /obj/item/weapon/reagent_containers/food/snacks/grown/coffee/arabica = list("coffeepowder" = 0), - /obj/item/weapon/reagent_containers/food/snacks/grown/coffee/robusta = list("coffeepowder" = 0, "hyperzine" = 0), + /obj/item/weapon/reagent_containers/food/snacks/grown/coffee/robusta = list("coffeepowder" = 0, "morphine" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/tea/aspera = list("teapowder" = 0), - /obj/item/weapon/reagent_containers/food/snacks/grown/tea/astra = list("teapowder" = 0, "kelotane" = 0), + /obj/item/weapon/reagent_containers/food/snacks/grown/tea/astra = list("teapowder" = 0, "salglu_solution" = 0), @@ -908,9 +908,9 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime) //Grinder stuff, but only if dry /obj/item/weapon/reagent_containers/food/snacks/grown/coffee/arabica = list("coffeepowder" = 0), - /obj/item/weapon/reagent_containers/food/snacks/grown/coffee/robusta = list("coffeepowder" = 0, "hyperzine" = 0), + /obj/item/weapon/reagent_containers/food/snacks/grown/coffee/robusta = list("coffeepowder" = 0, "morphine" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/tea/aspera = list("teapowder" = 0), - /obj/item/weapon/reagent_containers/food/snacks/grown/tea/astra = list("teapowder" = 0, "kelotane" = 0), + /obj/item/weapon/reagent_containers/food/snacks/grown/tea/astra = list("teapowder" = 0, "salglu_solution" = 0), ) var/list/holdingitems = list() @@ -1267,54 +1267,133 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime) icon_state = "mixer0b" use_power = 1 idle_power_usage = 40 - var/energy = 50 - var/max_energy = 50 - var/amount = 30 var/obj/item/weapon/reagent_containers/beaker = null - var/set_temp - var/temperature + var/temperature = 300 + var/rate = 10 //heating/cooling rate, default is 10 kelvin per tick var/on = FALSE +/obj/machinery/chem_heater/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/chem_heater(null) + component_parts += new /obj/item/weapon/stock_parts/manipulator(null) + component_parts += new /obj/item/weapon/stock_parts/console_screen(null) + RefreshParts() + +/obj/machinery/chem_heater/RefreshParts() + rate = 10 + for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) + rate *= M.rating + /obj/machinery/chem_heater/process() ..() + if(stat & NOPOWER) + return + var/state_change = 0 if(on) if(beaker) if(beaker.reagents.chem_temp > temperature) - beaker.reagents.chem_temp -= 2 - if(beaker.reagents.chem_temp < temperature) - beaker.reagents.chem_temp += 2 - if(beaker.reagents.chem_temp == temperature) - beaker.loc = get_turf(src) + beaker.reagents.chem_temp = max(beaker.reagents.chem_temp-rate, temperature) beaker.reagents.handle_reactions() - beaker = null - icon_state = "mixer0b" - on = FALSE + state_change = 1 + else if(beaker.reagents.chem_temp < temperature) + beaker.reagents.chem_temp = min(beaker.reagents.chem_temp+rate, temperature) + beaker.reagents.handle_reactions() + state_change = 1 + if(state_change) + SSnano.update_uis(src) +/obj/machinery/chem_heater/proc/eject_beaker() + if(beaker) + beaker.loc = get_turf(src) + beaker.reagents.handle_reactions() + beaker = null + icon_state = "mixer0b" + SSnano.update_uis(src) -/obj/machinery/chem_heater/attackby(var/obj/item/weapon/reagent_containers/glass/B as obj, var/mob/user as mob) +/obj/machinery/chem_heater/power_change() + if(powered()) + stat &= ~NOPOWER + else + spawn(rand(0, 15)) + stat |= NOPOWER + SSnano.update_uis(src) + +/obj/machinery/chem_heater/attackby(var/obj/item/I as obj, var/mob/user as mob) if(isrobot(user)) return - if(!istype(B, /obj/item/weapon/reagent_containers/glass)) + if(istype(I, /obj/item/weapon/reagent_containers/glass)) + if(beaker) + user << "A beaker is already loaded into the machine." + return + + if(user.drop_item()) + beaker = I + I.loc = src + user << "You add the beaker to the machine!" + icon_state = "mixer1b" + SSnano.update_uis(src) + + if(default_deconstruction_screwdriver(user, "mixer0b", "mixer0b", I)) return - if(src.beaker) - user << "A beaker is already loaded into the machine." + if(exchange_parts(user, I)) return - src.beaker = B - user.drop_item() - B.loc = src - user << "You add the beaker to the machine!" - icon_state = "mixer1b" + if(panel_open) + if(istype(I, /obj/item/weapon/crowbar)) + eject_beaker() + default_deconstruction_crowbar(I) + return 1 /obj/machinery/chem_heater/attack_hand(var/mob/user as mob) - if(!beaker) - user << "Please insert a beaker." - return - temperature = input("Please input desired temperature between 1 and 3000.", name, set_temp) as num - if(temperature > 3000 || temperature < 1) - user << "Invalid temperature." - return - user << "Adjusting chemical temperature..." - on = TRUE + ui_interact(user) + +/obj/machinery/chem_heater/Topic(href, href_list) + if(..()) + return 0 + + if(href_list["toggle_on"]) + on = !on + . = 1 + + if(href_list["adjust_temperature"]) + var/val = href_list["adjust_temperature"] + if(isnum(val)) + temperature = Clamp(temperature+val, 0, 1000) + else if(val == "input") + temperature = Clamp(input("Please input the target temperature", name) as num, 0, 1000) + else + return 0 + . = 1 + + if(href_list["eject_beaker"]) + eject_beaker() + . = 0 //updated in eject_beaker() already + +/obj/machinery/chem_heater/ui_interact(var/mob/user, ui_key = "main", var/datum/nanoui/ui = null) + if(user.stat || user.restrained()) return + + var/data[0] + data["targetTemp"] = temperature + data["isActive"] = on + data["isBeakerLoaded"] = beaker ? 1 : 0 + + data["currentTemp"] = beaker ? beaker.reagents.chem_temp : null + data["beakerCurrentVolume"] = beaker ? beaker.reagents.total_volume : null + data["beakerMaxVolume"] = beaker ? beaker.volume : null + + //copy-pasted from chem dispenser + var beakerContents[0] + if(beaker) + for(var/datum/reagent/R in beaker.reagents.reagent_list) + beakerContents.Add(list(list("name" = R.name, "volume" = R.volume))) // list in a list because Byond merges the first list... + data["beakerContents"] = beakerContents + + // update the ui if it exists, returns null if no ui is passed/found + ui = SSnano.try_update_ui(user, src, ui_key, ui, data) + if (!ui) + ui = new(user, src, ui_key, "chem_heater.tmpl", "ChemHeater", 350, 270) + ui.set_initial_data(data) + ui.open() diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm index d8f1fd0d318..1f1c086844e 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm @@ -24,6 +24,10 @@ datum/reagent var/color = "#000000" // rgb: 0, 0, 0 (does not support alpha channels - yet!) var/metabolization_rate = REAGENTS_METABOLISM var/overrides_metab = 0 + var/overdose_threshold = 0 + var/addiction_threshold = 0 + var/addiction_stage = 0 + var/overdosed = 0 // You fucked up and this is now triggering it's overdose effects, purge that shit quick. datum/reagent/proc/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) //By default we have a chance to transfer some if(!istype(M, /mob/living)) @@ -88,6 +92,31 @@ datum/reagent/proc/on_merge(var/data) datum/reagent/proc/on_update(var/atom/A) 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 + +datum/reagent/proc/addiction_act_stage1(var/mob/living/M as mob) + if(prob(30)) + M << "You feel like some [name] right about now." + return + +datum/reagent/proc/addiction_act_stage2(var/mob/living/M as mob) + if(prob(30)) + M << "You feel like you need [name]. You just can't get enough." + return + +datum/reagent/proc/addiction_act_stage3(var/mob/living/M as mob) + if(prob(30)) + M << "You have an intense craving for [name]." + return + +datum/reagent/proc/addiction_act_stage4(var/mob/living/M as mob) + if(prob(30)) + M << "You're not feeling good at all! You really need some [name]." + return + + datum/reagent/blood data = list("donor"=null,"viruses"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null) name = "Blood" 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 8b8d02eb124..978390a256a 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 @@ -399,22 +399,6 @@ 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/doctor_delight/on_mob_life(var/mob/living/M as mob) - if(M.getOxyLoss() && prob(80)) - M.adjustOxyLoss(-2) - if(M.getBruteLoss() && prob(80)) - M.heal_organ_damage(2,0) - if(M.getFireLoss() && prob(80)) - M.heal_organ_damage(0,2) - if(M.getToxLoss() && prob(80)) - M.adjustToxLoss(-2) - if(M.dizziness !=0) - M.dizziness = max(0,M.dizziness-15) - if(M.confused !=0) - M.confused = max(0,M.confused - 5) - holder.remove_reagent(id, metabolization_rate/M.metabolism_efficiency) - return - //////////////////////////////////////////////The ten friggen million reagents that get you drunk////////////////////////////////////////////// diff --git a/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm index b05bf89826d..8d1a446a249 100644 --- a/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm @@ -44,21 +44,6 @@ datum/reagent/medicine/lipozine/on_mob_life(var/mob/living/M as mob) ..() return -datum/reagent/medicine/hyperzine - name = "Hyperzine" - id = "hyperzine" - description = "Hyperzine is a highly effective, long lasting, muscle stimulant." - color = "#C8A5DC" // rgb: 200, 165, 220 - metabolization_rate = 0.5 * REAGENTS_METABOLISM - -datum/reagent/medicine/hyperzine/on_mob_life(var/mob/living/M as mob) - if(M.stat != DEAD) - if(prob(5)) - M.emote(pick("twitch","blink_r","shiver")) - M.status_flags |= GOTTAGOFAST - ..() - return - datum/reagent/medicine/leporazine name = "Leporazine" id = "leporazine" @@ -72,121 +57,6 @@ datum/reagent/medicine/leporazine/on_mob_life(var/mob/living/M as mob) M.bodytemperature = min(310, M.bodytemperature + (40 * TEMPERATURE_DAMAGE_COEFFICIENT)) ..() -datum/reagent/medicine/inaprovaline - name = "Inaprovaline" - id = "inaprovaline" - description = "Inaprovaline is a synaptic stimulant and cardiostimulant. Commonly used to stabilize patients." - color = "#C8A5DC" // rgb: 200, 165, 220 - metabolization_rate = 0.5 * REAGENTS_METABOLISM - -datum/reagent/medicine/inaprovaline/on_mob_life(var/mob/living/M as mob) - if(M.losebreath >= 10) - M.losebreath = max(10, M.losebreath-5) - ..() - return - -datum/reagent/medicine/ryetalyn - name = "Ryetalyn" - id = "ryetalyn" - description = "Ryetalyn can cure all genetic abnomalities." - reagent_state = SOLID - color = "#C8A5DC" // rgb: 200, 165, 220 - -datum/reagent/medicine/ryetalyn/on_mob_life(mob/living/carbon/human/M) - M.jitteriness = 0 - - // Might need to update appearance for hulk etc. - if(istype(M) && M.dna) - M.dna.remove_all_mutations() - ..() - return - -datum/reagent/medicine/kelotane - name = "Kelotane" - id = "kelotane" - description = "Kelotane is a drug used to treat burns." - color = "#C8A5DC" // rgb: 200, 165, 220 - -datum/reagent/medicine/kelotane/on_mob_life(var/mob/living/M as mob) - if(M.stat != DEAD) - M.heal_organ_damage(0,2*REM) - ..() - return - -datum/reagent/medicine/dermaline - name = "Dermaline" - id = "dermaline" - description = "Dermaline is the next step in burn medication. Works twice as good as kelotane and enables the body to restore even the direst heat-damaged tissue." - color = "#C8A5DC" // rgb: 200, 165, 220 - -datum/reagent/medicine/dermaline/on_mob_life(var/mob/living/M as mob) - if(M.stat != DEAD) //THE GUY IS **DEAD**! BEREFT OF ALL LIFE HE RESTS IN PEACE etc etc. He does NOT metabolise shit anymore, god DAMN - M.heal_organ_damage(0,3*REM) - ..() - return - -datum/reagent/medicine/dexalin - name = "Dexalin" - id = "dexalin" - description = "Dexalin is used in the treatment of oxygen deprivation." - color = "#C8A5DC" // rgb: 200, 165, 220 - -datum/reagent/medicine/dexalin/on_mob_life(var/mob/living/M as mob) - if(M.stat != DEAD) - M.adjustOxyLoss(-2*REM) - if(holder.has_reagent("lexorin")) - holder.remove_reagent("lexorin", 2*REM) - ..() - return - -datum/reagent/medicine/dexalinp - name = "Dexalin Plus" - id = "dexalinp" - description = "Dexalin Plus is used in the treatment of oxygen deprivation. Its highly effective." - color = "#C8A5DC" // rgb: 200, 165, 220 - -datum/reagent/medicine/dexalinp/on_mob_life(var/mob/living/M as mob) - if(M.stat != DEAD) - M.adjustOxyLoss(-M.getOxyLoss()) - if(holder.has_reagent("lexorin")) - holder.remove_reagent("lexorin", 2*REM) - ..() - return - -datum/reagent/medicine/tricordrazine - name = "Tricordrazine" - id = "tricordrazine" - description = "Tricordrazine is a highly potent stimulant, originally derived from cordrazine. Can be used to treat a wide range of injuries." - color = "#C8A5DC" // rgb: 200, 165, 220 - -datum/reagent/medicine/tricordrazine/on_mob_life(var/mob/living/M as mob) - if(M.stat != DEAD) - if(M.getOxyLoss() && prob(80)) - M.adjustOxyLoss(-1*REM) - if(M.getBruteLoss() && prob(80)) - M.heal_organ_damage(1*REM,0) - if(M.getFireLoss() && prob(80)) - M.heal_organ_damage(0,1*REM) - if(M.getToxLoss() && prob(80)) - M.adjustToxLoss(-1*REM) - ..() - return - -datum/reagent/medicine/anti_toxin - name = "Anti-Toxin (Dylovene)" - id = "anti_toxin" - description = "Dylovene is a broad-spectrum antitoxin." - color = "#C8A5DC" // rgb: 200, 165, 220 - -datum/reagent/medicine/anti_toxin/on_mob_life(var/mob/living/M as mob) - if(M.stat != DEAD) - M.reagents.remove_all_type(/datum/reagent/toxin, 1*REM, 0, 1) - M.drowsyness = max(M.drowsyness-2*REM, 0) - M.hallucination = max(0, M.hallucination - 5*REM) - M.adjustToxLoss(-2*REM) - ..() - return - datum/reagent/medicine/adminordrazine //An OP chemical for admins name = "Adminordrazine" id = "adminordrazine" @@ -226,6 +96,11 @@ datum/reagent/medicine/adminordrazine/on_mob_life(var/mob/living/carbon/M as mob ..() return +datum/reagent/medicine/adminordrazine/nanites + name = "Nanites" + id = "nanites" + description = "Tiny machines capable of rapid cellular regeneration." + datum/reagent/medicine/synaptizine name = "Synaptizine" id = "synaptizine" @@ -244,59 +119,6 @@ datum/reagent/medicine/synaptizine/on_mob_life(var/mob/living/M as mob) M.adjustToxLoss(1) ..() return - -datum/reagent/medicine/hyronalin - name = "Hyronalin" - id = "hyronalin" - description = "Hyronalin is a medicinal drug used to counter the effect of radiation poisoning." - color = "#C8A5DC" // rgb: 200, 165, 220 - -datum/reagent/medicine/hyronalin/on_mob_life(var/mob/living/M as mob) - M.radiation = max(M.radiation-3*REM,0) - ..() - return - -datum/reagent/medicine/arithrazine - name = "Arithrazine" - id = "arithrazine" - description = "Arithrazine is an unstable medication used for the most extreme cases of radiation poisoning." - color = "#C8A5DC" // rgb: 200, 165, 220 - -datum/reagent/medicine/arithrazine/on_mob_life(var/mob/living/M as mob) - if(M.stat != DEAD) - M.radiation = max(M.radiation-7*REM,0) - M.adjustToxLoss(-1*REM) - if(prob(15)) - M.take_organ_damage(1, 0) - ..() - return - -datum/reagent/medicine/alkysine - name = "Alkysine" - id = "alkysine" - description = "Alkysine is a drug used to lessen the damage to neurological tissue after a catastrophic injury. Can heal brain tissue." - color = "#C8A5DC" // rgb: 200, 165, 220 - -datum/reagent/medicine/alkysine/on_mob_life(var/mob/living/M as mob) - if(M != DEAD) - M.adjustBrainLoss(-3*REM) - ..() - return - -datum/reagent/medicine/imidazoline - name = "Imidazoline" - id = "imidazoline" - description = "Heals eye damage." - color = "#C8A5DC" // rgb: 200, 165, 220 - -datum/reagent/medicine/imidazoline/on_mob_life(var/mob/living/M as mob) - M.eye_blurry = max(M.eye_blurry-5 , 0) - M.eye_blind = max(M.eye_blind-5 , 0) - M.disabilities &= ~NEARSIGHT - M.eye_stat = max(M.eye_stat-5, 0) - ..() - return - datum/reagent/medicine/inacusiate name = "Inacusiate" id = "inacusiate" @@ -308,18 +130,6 @@ datum/reagent/medicine/inacusiate/on_mob_life(var/mob/living/M as mob) ..() return -datum/reagent/medicine/bicaridine - name = "Bicaridine" - id = "bicaridine" - description = "Bicaridine is an analgesic medication and can be used to treat blunt trauma." - color = "#C8A5DC" // rgb: 200, 165, 220 - -datum/reagent/medicine/bicaridine/on_mob_life(var/mob/living/M as mob) - if(M.stat != DEAD) - M.heal_organ_damage(2*REM,0) - ..() - return - datum/reagent/medicine/cryoxadone name = "Cryoxadone" id = "cryoxadone" @@ -327,27 +137,15 @@ datum/reagent/medicine/cryoxadone color = "#C8A5DC" // rgb: 200, 165, 220 datum/reagent/medicine/cryoxadone/on_mob_life(var/mob/living/M as mob) - if(M.stat != DEAD && M.bodytemperature < 170) - M.adjustCloneLoss(-1) - M.adjustOxyLoss(-3) - M.heal_organ_damage(3,3) - M.adjustToxLoss(-3) - ..() - return - -datum/reagent/medicine/clonexadone - name = "Clonexadone" - id = "clonexadone" - description = "A liquid compound similar to that used in the cloning process. Can be used to 'finish' clones that get ejected early when used in conjunction with a cryo tube." - color = "#C8A5DC" // rgb: 200, 165, 220 - -datum/reagent/medicine/clonexadone/on_mob_life(var/mob/living/M as mob) - if(M.stat != DEAD && M.bodytemperature < 170) + if(M.stat != DEAD && M.bodytemperature < 270) M.adjustCloneLoss(-3) - M.adjustOxyLoss(-3) + M.adjustOxyLoss(-10) M.heal_organ_damage(3,3) + M.adjustBruteLoss(-3) + M.adjustFireLoss(-3) M.adjustToxLoss(-3) M.status_flags &= ~DISFIGURED + ..() return diff --git a/code/modules/reagents/Chemistry-Reagents/Toxin-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Toxin-Reagents.dm index 9dccb444c59..fef938a2ab3 100644 --- a/code/modules/reagents/Chemistry-Reagents/Toxin-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents/Toxin-Reagents.dm @@ -61,8 +61,8 @@ datum/reagent/toxin/plasma toxpwr = 3 datum/reagent/toxin/plasma/on_mob_life(var/mob/living/M as mob) - if(holder.has_reagent("inaprovaline")) - holder.remove_reagent("inaprovaline", 2*REM) + if(holder.has_reagent("epinephrine")) + holder.remove_reagent("epinephrine", 2*REM) ..() return @@ -222,30 +222,6 @@ datum/reagent/toxin/pestkiller/reaction_mob(var/mob/living/M, var/method=TOUCH, if(!C.wear_mask) // If not wearing a mask C.adjustToxLoss(2) // 4 toxic damage per application, doubled for some reason -datum/reagent/toxin/stoxin - name = "Sleep Toxin" - id = "stoxin" - description = "An effective hypnotic used to treat insomnia." - color = "#E895CC" // rgb: 232, 149, 204 - toxpwr = 0 - -datum/reagent/toxin/stoxin/on_mob_life(var/mob/living/M as mob) - if(!data) data = 1 - switch(data) - if(1 to 12) - if(prob(5)) M.emote("yawn") - if(12 to 15) - M.eye_blurry = max(M.eye_blurry, 10) - if(15 to 25) - M.drowsyness = max(M.drowsyness, 20) - if(25 to INFINITY) - M.Paralyse(20) - M.drowsyness = max(M.drowsyness, 30) - data++ - ..() - return - - datum/reagent/toxin/spore name = "Spore Toxin" id = "spore" diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 4b06fe9e1e6..3350a40de13 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -69,21 +69,7 @@ silicate name = "Sterilizine" id = "sterilizine" result = "sterilizine" - required_reagents = list("ethanol" = 1, "anti_toxin" = 1, "chlorine" = 1) - result_amount = 3 - -/datum/chemical_reaction/inaprovaline - name = "Inaprovaline" - id = "inaprovaline" - result = "inaprovaline" - required_reagents = list("oxygen" = 1, "carbon" = 1, "sugar" = 1) - result_amount = 3 - -/datum/chemical_reaction/anti_toxin - name = "Anti-Toxin (Dylovene)" - id = "anti_toxin" - result = "anti_toxin" - required_reagents = list("silicon" = 1, "potassium" = 1, "nitrogen" = 1) + required_reagents = list("ethanol" = 1, "charcoal" = 1, "chlorine" = 1) result_amount = 3 /datum/chemical_reaction/mutagen @@ -142,20 +128,6 @@ silicate required_reagents = list("sugar" = 1, "lithium" = 1, "water" = 1) result_amount = 3 -/datum/chemical_reaction/hyronalin - name = "Hyronalin" - id = "hyronalin" - result = "hyronalin" - required_reagents = list("radium" = 1, "anti_toxin" = 1) - result_amount = 2 - -/datum/chemical_reaction/arithrazine - name = "Arithrazine" - id = "arithrazine" - result = "arithrazine" - required_reagents = list("hyronalin" = 1, "hydrogen" = 1) - result_amount = 2 - /datum/chemical_reaction/impedrezene name = "Impedrezene" id = "impedrezene" @@ -163,13 +135,6 @@ silicate required_reagents = list("mercury" = 1, "oxygen" = 1, "sugar" = 1) result_amount = 2 -/datum/chemical_reaction/kelotane - name = "Kelotane" - id = "kelotane" - result = "kelotane" - required_reagents = list("silicon" = 1, "carbon" = 1) - result_amount = 2 - /datum/chemical_reaction/leporazine name = "Leporazine" id = "leporazine" @@ -185,111 +150,18 @@ silicate required_reagents = list("potassium" = 1, "oxygen" = 1, "sugar" = 1) result_amount = 3 -/datum/chemical_reaction/tricordrazine - name = "Tricordrazine" - id = "tricordrazine" - result = "tricordrazine" - required_reagents = list("inaprovaline" = 1, "anti_toxin" = 1) - result_amount = 2 - -/datum/chemical_reaction/alkysine - name = "Alkysine" - id = "alkysine" - result = "alkysine" - required_reagents = list("chlorine" = 1, "nitrogen" = 1, "anti_toxin" = 1) - result_amount = 2 - -/datum/chemical_reaction/dexalin - name = "Dexalin" - id = "dexalin" - result = "dexalin" - required_reagents = list("oxygen" = 2) - required_catalysts = list("plasma" = 5) - result_amount = 1 - -/datum/chemical_reaction/dermaline - name = "Dermaline" - id = "dermaline" - result = "dermaline" - required_reagents = list("oxygen" = 1, "phosphorus" = 1, "kelotane" = 1) - result_amount = 3 - -/datum/chemical_reaction/dexalinp - name = "Dexalin Plus" - id = "dexalinp" - result = "dexalinp" - required_reagents = list("dexalin" = 1, "carbon" = 1, "iron" = 1) - result_amount = 3 - -/datum/chemical_reaction/bicaridine - name = "Bicaridine" - id = "bicaridine" - result = "bicaridine" - required_reagents = list("inaprovaline" = 1, "carbon" = 1) - result_amount = 2 - -/datum/chemical_reaction/hyperzine - name = "Hyperzine" - id = "hyperzine" - result = "hyperzine" - required_reagents = list("sugar" = 1, "phosphorus" = 1, "sulfur" = 1,) - result_amount = 3 - -/datum/chemical_reaction/ryetalyn - name = "Ryetalyn" - id = "ryetalyn" - result = "ryetalyn" - required_reagents = list("arithrazine" = 1, "carbon" = 1) - result_amount = 2 - -/datum/chemical_reaction/cryoxadone - name = "Cryoxadone" - id = "cryoxadone" - result = "cryoxadone" - required_reagents = list("dexalin" = 1, "water" = 1, "oxygen" = 1) - result_amount = 3 - -/datum/chemical_reaction/clonexadone - name = "Clonexadone" - id = "clonexadone" - result = "clonexadone" - required_reagents = list("cryoxadone" = 1, "sodium" = 1) - required_catalysts = list("plasma" = 5) - result_amount = 2 - /datum/chemical_reaction/spaceacillin name = "Spaceacillin" id = "spaceacillin" result = "spaceacillin" - required_reagents = list("cryptobiolin" = 1, "inaprovaline" = 1) - result_amount = 2 - -/datum/chemical_reaction/imidazoline - name = "imidazoline" - id = "imidazoline" - result = "imidazoline" - required_reagents = list("carbon" = 1, "hydrogen" = 1, "anti_toxin" = 1) + required_reagents = list("cryptobiolin" = 1, "epinephrine" = 1) result_amount = 2 /datum/chemical_reaction/inacusiate name = "inacusiate" id = "inacusiate" result = "inacusiate" - required_reagents = list("water" = 1, "carbon" = 1, "anti_toxin" = 1) - result_amount = 2 - -/datum/chemical_reaction/ethylredoxrazine - name = "Ethylredoxrazine" - id = "ethylredoxrazine" - result = "ethylredoxrazine" - required_reagents = list("oxygen" = 1, "anti_toxin" = 1, "carbon" = 1) - result_amount = 3 - -/datum/chemical_reaction/ethanoloxidation - name = "ethanoloxidation" //Kind of a placeholder in case someone ever changes it so that chemicals - id = "ethanoloxidation" // react in the body. Also it would be silly if it didn't exist. - result = "water" - required_reagents = list("ethylredoxrazine" = 1, "ethanol" = 1) + required_reagents = list("water" = 1, "carbon" = 1, "charcoal" = 1) result_amount = 2 /datum/chemical_reaction/glycerol @@ -437,7 +309,7 @@ silicate name = "Mindbreaker Toxin" id = "mindbreaker" result = "mindbreaker" - required_reagents = list("silicon" = 1, "hydrogen" = 1, "anti_toxin" = 1) + required_reagents = list("silicon" = 1, "hydrogen" = 1, "charcoal" = 1) result_amount = 5 /datum/chemical_reaction/lipozine @@ -964,9 +836,9 @@ datum/chemical_reaction/pestkiller S.loc = get_turf(holder.my_atom) /datum/chemical_reaction/slimeinaprov - name = "Slime Inaprovaline" + name = "Slime epinephrine" id = "m_inaprov" - result = "inaprovaline" + result = "epinephrine" required_reagents = list("water" = 5) result_amount = 3 required_other = 1 @@ -1033,61 +905,7 @@ datum/chemical_reaction/pestkiller O.show_message(text("The slime extract begins to vibrate violently !"), 1) spawn(50) - if(holder && holder.my_atom) - - var/blocked = list(/mob/living/simple_animal/hostile, - /mob/living/simple_animal/hostile/pirate, - /mob/living/simple_animal/hostile/pirate/ranged, - /mob/living/simple_animal/hostile/russian, - /mob/living/simple_animal/hostile/russian/ranged, - /mob/living/simple_animal/hostile/syndicate, - /mob/living/simple_animal/hostile/syndicate/melee, - /mob/living/simple_animal/hostile/syndicate/melee/space, - /mob/living/simple_animal/hostile/syndicate/ranged, - /mob/living/simple_animal/hostile/syndicate/ranged/space, - /mob/living/simple_animal/hostile/alien/queen/large, - /mob/living/simple_animal/hostile/retaliate, - /mob/living/simple_animal/hostile/retaliate/clown, - /mob/living/simple_animal/hostile/mushroom, - /mob/living/simple_animal/hostile/asteroid, - /mob/living/simple_animal/hostile/asteroid/basilisk, - /mob/living/simple_animal/hostile/asteroid/goldgrub, - /mob/living/simple_animal/hostile/asteroid/goliath, - /mob/living/simple_animal/hostile/asteroid/hivelord, - /mob/living/simple_animal/hostile/asteroid/hivelordbrood, - /mob/living/simple_animal/hostile/carp/holocarp, - /mob/living/simple_animal/hostile/mining_drone - )//exclusion list for things you don't want the reaction to create. - var/list/critters = typesof(/mob/living/simple_animal/hostile) - blocked // list of possible hostile mobs - - var/atom/A = holder.my_atom - var/turf/T = get_turf(A) - var/area/my_area = get_area(T) - var/message = "A gold slime reaction has occured in [my_area.name]. (JMP)" - message += " (VV)" - - var/mob/M = get(A, /mob) - if(M) - message += " - Carried By: [M.real_name] ([M.key]) (PP) (?)" - else - message += " - Last Fingerprint: [(A.fingerprintslast ? A.fingerprintslast : "N/A")]" - - message_admins(message, 0, 1) - - playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1) - - for(var/mob/living/carbon/human/H in viewers(get_turf(holder.my_atom), null)) - if(H:eyecheck() <= 0) - flick("e_flash", H.flash) - - for(var/i = 1, i <= 5, i++) - var/chosen = pick(critters) - var/mob/living/simple_animal/hostile/C = new chosen - C.faction |= "slimesummon" - C.loc = get_turf(holder.my_atom) - if(prob(50)) - for(var/j = 1, j <= rand(1, 3), j++) - step(C, pick(NORTH,SOUTH,EAST,WEST)) + chemical_mob_spawn(holder, 1, "Gold Slime") /datum/chemical_reaction/slimecritlesser name = "Slime Crit Lesser" @@ -1103,43 +921,7 @@ datum/chemical_reaction/pestkiller O.show_message(text("The slime extract begins to vibrate violently !"), 1) spawn(50) - if(holder && holder.my_atom) - - var/blocked = list(/mob/living/simple_animal/hostile, - /mob/living/simple_animal/hostile/pirate, - /mob/living/simple_animal/hostile/pirate/ranged, - /mob/living/simple_animal/hostile/russian, - /mob/living/simple_animal/hostile/russian/ranged, - /mob/living/simple_animal/hostile/syndicate, - /mob/living/simple_animal/hostile/syndicate/melee, - /mob/living/simple_animal/hostile/syndicate/melee/space, - /mob/living/simple_animal/hostile/syndicate/ranged, - /mob/living/simple_animal/hostile/syndicate/ranged/space, - /mob/living/simple_animal/hostile/alien/queen/large, - /mob/living/simple_animal/hostile/retaliate, - /mob/living/simple_animal/hostile/retaliate/clown, - /mob/living/simple_animal/hostile/mushroom, - /mob/living/simple_animal/hostile/asteroid, - /mob/living/simple_animal/hostile/asteroid/basilisk, - /mob/living/simple_animal/hostile/asteroid/goldgrub, - /mob/living/simple_animal/hostile/asteroid/goliath, - /mob/living/simple_animal/hostile/asteroid/hivelord, - /mob/living/simple_animal/hostile/asteroid/hivelordbrood, - /mob/living/simple_animal/hostile/carp/holocarp, - /mob/living/simple_animal/hostile/mining_drone - )//exclusion list for things you don't want the reaction to create. - var/list/critters = typesof(/mob/living/simple_animal/hostile) - blocked // list of possible hostile mobs - - playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1) - - for(var/mob/living/carbon/human/M in viewers(get_turf(holder.my_atom), null)) - if(M:eyecheck() <= 0) - flick("e_flash", M.flash) - - var/chosen = pick(critters) - var/mob/living/simple_animal/hostile/C = new chosen - C.faction |= "neutral" - C.loc = get_turf(holder.my_atom) + chemical_mob_spawn(holder, 1, "Lesser Gold Slime") //Silver /datum/chemical_reaction/slimebork diff --git a/code/modules/reagents/grenade_launcher.dm b/code/modules/reagents/grenade_launcher.dm index 15e8f7ef51c..ffe53c751d5 100644 --- a/code/modules/reagents/grenade_launcher.dm +++ b/code/modules/reagents/grenade_launcher.dm @@ -1,7 +1,7 @@ /obj/item/weapon/gun/grenadelauncher name = "grenade launcher" desc = "a terrible, terrible thing. it's really awful!" - icon = 'icons/obj/gun.dmi' + icon = 'icons/obj/guns/projectile.dmi' icon_state = "riotgun" item_state = "riotgun" w_class = 4.0 diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index b4a3825e249..0c4388b31e9 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -23,8 +23,8 @@ Borg Hypospray var/recharge_time = 5 //Time it takes for shots to recharge (in seconds) var/list/datum/reagents/reagent_list = list() - var/list/reagent_ids = list("doctorsdelight", "inaprovaline", "spaceacillin") - //var/list/reagent_ids = list("dexalin", "kelotane", "bicaridine", "anti_toxin", "inaprovaline", "spaceacillin") + var/list/reagent_ids = list("omnizine", "epinephrine", "spaceacillin") + //var/list/reagent_ids = list("salbutamol", "salglu_solution", "salglu_solution", "charcoal", "ephedrine", "spaceacillin") var/list/modes = list() //Basically the inverse of reagent_ids. Instead of having numbers as "keys" and strings as values it has strings as keys and numbers as values. //Used as list for input() in shakers. diff --git a/code/modules/reagents/reagent_containers/glass/bottle.dm b/code/modules/reagents/reagent_containers/glass/bottle.dm index 3092bd960dc..8257a2b38c7 100644 --- a/code/modules/reagents/reagent_containers/glass/bottle.dm +++ b/code/modules/reagents/reagent_containers/glass/bottle.dm @@ -24,11 +24,11 @@ reagents.add_reagent("[spawned_reagent]", spawned_amount) -/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline - name = "inaprovaline bottle" - desc = "A small bottle. Contains inaprovaline - used to stabilize patients." +/obj/item/weapon/reagent_containers/glass/bottle/epinephrine + name = "epinephrine bottle" + desc = "A small bottle. Contains epinephrine - used to stabilize patients." icon_state = "bottle16" - spawned_reagent = "inaprovaline" + spawned_reagent = "epinephrine" /obj/item/weapon/reagent_containers/glass/bottle/toxin name = "toxin bottle" @@ -42,11 +42,11 @@ icon_state = "bottle12" spawned_reagent = "cyanide" -/obj/item/weapon/reagent_containers/glass/bottle/stoxin +/obj/item/weapon/reagent_containers/glass/bottle/morphine name = "sleep-toxin bottle" desc = "A small bottle of sleep toxins. Just the fumes make you sleepy." icon_state = "bottle20" - spawned_reagent = "stoxin" + spawned_reagent = "morphine" /obj/item/weapon/reagent_containers/glass/bottle/morphine name = "morphine bottle" @@ -62,11 +62,11 @@ spawned_reagent = "chloralhydrate" spawned_amount = 15 -/obj/item/weapon/reagent_containers/glass/bottle/antitoxin - name = "anti-toxin bottle" - desc = "A small bottle of Anti-toxins. Counters poisons, and repairs damage, a wonder drug." +/obj/item/weapon/reagent_containers/glass/bottle/charcoal + name = "charcoal bottle" + desc = "A small bottle of charcoal." icon_state = "bottle17" - spawned_reagent = "anti_toxin" + spawned_reagent = "charcoal" /obj/item/weapon/reagent_containers/glass/bottle/mutagen name = "unstable mutagen bottle" diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 9dd614905e5..164ab3c9112 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -42,7 +42,7 @@ /obj/item/weapon/reagent_containers/hypospray/CMO/New() ..() - reagents.add_reagent("doctorsdelight", 30) + reagents.add_reagent("omnizine", 30) /obj/item/weapon/reagent_containers/hypospray/combat name = "combat stimulant injector" @@ -54,14 +54,22 @@ /obj/item/weapon/reagent_containers/hypospray/combat/New() ..() - reagents.add_reagent("synaptizine", 30) + reagents.add_reagent("epinephrine", 15) + reagents.add_reagent("salglu_solution", 15) +obj/item/weapon/reagent_containers/hypospray/combat/nanites + desc = "A modified air-needle autoinjector for use in combat situations. Prefilled with expensive medical nanites for rapid healing." + volume = 100 +/obj/item/weapon/reagent_containers/hypospray/combat/nanites/New() + ..() + reagents.remove_reagent("synaptizine", 30) + reagents.add_reagent("nanites", 100) //MediPens /obj/item/weapon/reagent_containers/hypospray/medipen - name = "inaprovaline medipen" //lol epipen is copyrighted + name = "epinephrine medipen" desc = "A rapid and safe way to stabilize patients in critical condition for personnel without advanced medical knowledge." icon_state = "medipen" item_state = "medipen" @@ -69,7 +77,7 @@ volume = 10 ignore_flags = 1 //so you can medipen through hardsuits flags = null - var/starting_reagent = "inaprovaline" + var/starting_reagent = "epinephrine" var/starting_amount = 10 /obj/item/weapon/reagent_containers/hypospray/medipen/New() @@ -115,7 +123,7 @@ name = "stimpack medipen" desc = "A rapid way to stimulate your body's adrenaline, allowing for freer movement in restrictive armor at the cost of some shortness of breath." icon_state = "stimpen" - starting_reagent = "hyperzine" + starting_reagent = "ephedrine" starting_amount = 9 /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack/New() @@ -129,9 +137,3 @@ desc = "A rapid way to get you out of a tight situation and fast! You'll feel rather drowsy, though." icon_state = "medipen" starting_reagent = "morphine" - -/obj/item/weapon/reagent_containers/hypospray/medipen/ephedrine - name = "ephedrine medipen" - desc = "A rapid way to get you up and out of a tight situation and fast!" - icon_state = "medipen" - starting_reagent = "ephedrine" \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/patch.dm b/code/modules/reagents/reagent_containers/patch.dm index dae7d54156a..32bea05008c 100644 --- a/code/modules/reagents/reagent_containers/patch.dm +++ b/code/modules/reagents/reagent_containers/patch.dm @@ -14,4 +14,25 @@ icon_state = "bandaid" // thanks inheritance /obj/item/weapon/reagent_containers/pill/patch/afterattack(obj/target, mob/user , proximity) - return // thanks inheritance again \ No newline at end of file + return // thanks inheritance again + +/obj/item/weapon/reagent_containers/pill/patch/canconsume(mob/eater, mob/user) + if(!eater.SpeciesCanConsume()) + return 0 + return 1 // Masks were stopping people from "eating" patches. Thanks, inheritance. + +/obj/item/weapon/reagent_containers/pill/patch/styptic + name = "styptic powder patch" + desc = "Helps with brute injuries." + +/obj/item/weapon/reagent_containers/pill/patch/styptic/New() + ..() + reagents.add_reagent("styptic_powder", 50) + +/obj/item/weapon/reagent_containers/pill/patch/silver_sulf + name = "silver sulfadiazine patch" + desc = "Helps with burn injuries." + +/obj/item/weapon/reagent_containers/pill/patch/silver_sulf/New() + ..() + reagents.add_reagent("silver_sulfadiazine", 50) \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 14bf4ac5a7f..9bafa5d06ed 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -74,14 +74,6 @@ //////////////////////////////////////////////////////////////////////////////// //Pills -/obj/item/weapon/reagent_containers/pill/antitox - name = "anti-toxins pill" - desc = "Neutralizes many common toxins." - icon_state = "pill17" - -/obj/item/weapon/reagent_containers/pill/antitox/New() - ..() - reagents.add_reagent("anti_toxin", 50) /obj/item/weapon/reagent_containers/pill/tox @@ -114,64 +106,13 @@ reagents.add_reagent("adminordrazine", 50) -/obj/item/weapon/reagent_containers/pill/stox - name = "sleeping pill" +/obj/item/weapon/reagent_containers/pill/morphine + name = "morphine pill" desc = "Commonly used to treat insomnia." icon_state = "pill8" -/obj/item/weapon/reagent_containers/pill/stox/New() +/obj/item/weapon/reagent_containers/pill/morphine/New() ..() - reagents.add_reagent("stoxin", 30) - - -/obj/item/weapon/reagent_containers/pill/kelotane - name = "kelotane pill" - desc = "Used to treat burns." - icon_state = "pill11" - -/obj/item/weapon/reagent_containers/pill/kelotane/New() - ..() - reagents.add_reagent("kelotane", 30) - - -/obj/item/weapon/reagent_containers/pill/dermaline - name = "dermaline pill" - desc = "Used to treat severe burns." - icon_state = "pill12" - -/obj/item/weapon/reagent_containers/pill/dermaline/New() - ..() - reagents.add_reagent("dermaline", 30) - - -/obj/item/weapon/reagent_containers/pill/inaprovaline - name = "inaprovaline pill" - desc = "Used to stabilize patients." - icon_state = "pill20" - -/obj/item/weapon/reagent_containers/pill/inaprovaline/New() - ..() - reagents.add_reagent("inaprovaline", 30) - - -/obj/item/weapon/reagent_containers/pill/dexalin - name = "dexalin pill" - desc = "Used to treat oxygen deprivation." - icon_state = "pill16" - -/obj/item/weapon/reagent_containers/pill/dexalin/New() - ..() - reagents.add_reagent("dexalin", 30) - - -/obj/item/weapon/reagent_containers/pill/bicaridine - name = "bicaridine pill" - desc = "Used to treat physical injuries." - icon_state = "pill18" - -/obj/item/weapon/reagent_containers/pill/bicaridine/New() - ..() - reagents.add_reagent("bicaridine", 30) - + reagents.add_reagent("morphine", 30) /obj/item/weapon/reagent_containers/pill/stimulant name = "stimulant pill" @@ -180,6 +121,33 @@ /obj/item/weapon/reagent_containers/pill/stimulant/New() ..() - reagents.add_reagent("hyperzine", 10) + reagents.add_reagent("ephedrine", 10) reagents.add_reagent("ethylredoxrazine", 10) - reagents.add_reagent("coffee", 30) \ No newline at end of file + reagents.add_reagent("coffee", 30) + +/obj/item/weapon/reagent_containers/pill/salbutamol + name = "salbutamol pill" + desc = "Used to treat oxygen deprivation." + icon_state = "pill18" + +/obj/item/weapon/reagent_containers/pill/salbutamol/New() + ..() + reagents.add_reagent("salbutamol", 30) + +/obj/item/weapon/reagent_containers/pill/charcoal + name = "charcoal pill" + desc = "Neutralizes many common toxins." + icon_state = "pill17" + +/obj/item/weapon/reagent_containers/pill/charcoal/New() + ..() + reagents.add_reagent("charcoal", 50) + +/obj/item/weapon/reagent_containers/pill/epinephrine + name = "epinephrine pill" + desc = "Used to stabilize patients." + icon_state = "pill17" + +/obj/item/weapon/reagent_containers/pill/epinephrine/New() + ..() + reagents.add_reagent("epinephrine", 50) \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 421f4c72ffe..02393741d6a 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -143,7 +143,7 @@ /obj/item/weapon/reagent_containers/spray/chemsprayer name = "chem sprayer" desc = "A utility used to spray large amounts of reagents in a given area." - icon = 'icons/obj/gun.dmi' + icon = 'icons/obj/guns/projectile.dmi' icon_state = "chemsprayer" item_state = "chemsprayer" throwforce = 0 diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 83e0f65a320..55809262260 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -233,21 +233,21 @@ -/obj/item/weapon/reagent_containers/syringe/inaprovaline - name = "syringe (inaprovaline)" - desc = "Contains inaprovaline - used to stabilize patients." +/obj/item/weapon/reagent_containers/syringe/epinephrine + name = "syringe (epinephrine)" + desc = "Contains epinephrine - used to stabilize patients." New() ..() - reagents.add_reagent("inaprovaline", 15) + reagents.add_reagent("epinephrine", 15) mode = SYRINGE_INJECT update_icon() -/obj/item/weapon/reagent_containers/syringe/antitoxin - name = "syringe (anti-toxin)" - desc = "Contains anti-toxins." +/obj/item/weapon/reagent_containers/syringe/charcoal + name = "syringe (charcoal)" + desc = "Contains charcoal." New() ..() - reagents.add_reagent("anti_toxin", 15) + reagents.add_reagent("charcoal", 15) mode = SYRINGE_INJECT update_icon() @@ -270,30 +270,30 @@ //Robot syringes //Not special in any way, code wise. They don't have added variables or procs. -/obj/item/weapon/reagent_containers/syringe/robot/antitoxin - name = "syringe (anti-toxin)" - desc = "Contains anti-toxins." +/obj/item/weapon/reagent_containers/syringe/robot/charcoal + name = "syringe (charcoal)" + desc = "Contains charcoal." New() ..() - reagents.add_reagent("anti_toxin", 15) + reagents.add_reagent("charcoal", 15) mode = SYRINGE_INJECT update_icon() -/obj/item/weapon/reagent_containers/syringe/robot/inoprovaline - name = "syringe (inoprovaline)" - desc = "Contains inaprovaline - used to stabilize patients." +/obj/item/weapon/reagent_containers/syringe/robot/epinephrine + name = "syringe (epinephrine)" + desc = "Contains epinephrine - used to stabilize patients." New() ..() - reagents.add_reagent("inaprovaline", 15) + reagents.add_reagent("epinephrine", 15) mode = SYRINGE_INJECT update_icon() /obj/item/weapon/reagent_containers/syringe/robot/mixed name = "syringe (mixed)" - desc = "Contains inaprovaline & anti-toxins." + desc = "Contains epinephrine & charcoal solution." New() ..() - reagents.add_reagent("inaprovaline", 7) - reagents.add_reagent("anti_toxin", 8) + reagents.add_reagent("epinephrine", 7) + reagents.add_reagent("charcoal", 8) mode = SYRINGE_INJECT update_icon() diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm index de04a918ec0..5e6c22a9533 100644 --- a/code/modules/recycling/disposal-construction.dm +++ b/code/modules/recycling/disposal-construction.dm @@ -17,7 +17,14 @@ var/dpdir = 0 // directions as disposalpipe var/base_state = "pipe-s" - // update iconstate and dpdir due to dir and type +/obj/structure/disposalconstruct/New(var/loc, var/pipe_type) + ..(loc) + if(pipe_type) + ptype = pipe_type + if(!is_pipe()) // bins/chutes/outlets are dense + density = 1 + +// update iconstate and dpdir due to dir and type /obj/structure/disposalconstruct/proc/update() var/flip = turn(dir, 180) var/left = turn(dir, 90) @@ -66,7 +73,7 @@ dpdir = dir | left | flip - if(ptype<6 || ptype>8) + if(is_pipe()) icon_state = "con[base_state]" else icon_state = base_state @@ -148,7 +155,7 @@ /obj/structure/disposalconstruct/attackby(var/obj/item/I, var/mob/user) var/nicetype = "pipe" - var/ispipe = 0 // Indicates if we should change the level of this pipe + var/ispipe = is_pipe() // Indicates if we should change the level of this pipe src.add_fingerprint(user) switch(ptype) if(6) @@ -159,10 +166,8 @@ nicetype = "delivery chute" if(9, 10) nicetype = "sorting pipe" - ispipe = 1 else nicetype = "pipe" - ispipe = 1 var/turf/T = src.loc if(T.intact) @@ -181,7 +186,7 @@ density = 1 user << "You detach the [nicetype] from the underfloor." else - if(ptype>=6 && ptype <= 8) // Disposal or outlet + if(!is_pipe()) // Disposal or outlet if(CP) // There's something there if(!istype(CP,/obj/structure/disposalpipe/trunk)) user << "The [nicetype] requires a trunk underneath it in order to work." @@ -247,7 +252,7 @@ var/obj/structure/disposalpipe/trunk/Trunk = CP Trunk.linked = P - else if(ptype==8) // Disposal outlet + else if(ptype==8) // Disposal chute var/obj/machinery/disposal/deliveryChute/P = new /obj/machinery/disposal/deliveryChute(src.loc) src.transfer_fingerprints_to(P) @@ -258,3 +263,20 @@ else user << "You need to attach it to the plating first!" return + +/obj/structure/disposalconstruct/proc/is_pipe() + return !(ptype >=6 && ptype <= 8) + +//helper proc that makes sure you can place the construct (i.e no dense objects stacking) +/obj/structure/disposalconstruct/proc/can_place() + if(is_pipe()) + return 1 + + for(var/obj/structure/disposalconstruct/DC in get_turf(src)) + if(DC == src) + continue + + if(!DC.is_pipe()) //there's already a chute/outlet/bin there + return 0 + + return 1 diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 4ba51c93667..ecc7e0cc484 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -27,7 +27,7 @@ // find the attached trunk (if present) and init gas resvr. /obj/machinery/disposal/New() ..() - stored = new /obj/structure/disposalconstruct(0,0,0) + stored = new /obj/structure/disposalconstruct(0,6) // 6 = disposal unit trunk_check() air_contents = new/datum/gas_mixture() @@ -462,7 +462,6 @@ var/turf/T = loc stored.loc = T src.transfer_fingerprints_to(stored) - stored.ptype = 6 // 6 = disposal unit stored.anchored = 0 stored.density = 1 stored.update() @@ -1273,9 +1272,8 @@ if(do_after(user,20)) if(!src || !W.isOn()) return user << "You've sliced the floorweld off \the [src]." - var/obj/structure/disposalconstruct/C = new (src.loc) + var/obj/structure/disposalconstruct/C = new (src.loc, 7) // 7 = outlet src.transfer_fingerprints_to(C) - C.ptype = 7 // 7 = outlet C.update() C.anchored = 1 C.density = 1 diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index 0229323eea1..8e88eb4d0a0 100644 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -239,6 +239,7 @@ /obj/machinery/disposal/deliveryChute/New() ..() + stored.ptype = 8 // 8 = Delivery chute spawn(5) trunk = locate() in loc if(trunk) @@ -332,18 +333,14 @@ return else if(istype(I,/obj/item/weapon/weldingtool) && c_mode==1) var/obj/item/weapon/weldingtool/W = I + if(W.remove_fuel(0,user)) playsound(loc, 'sound/items/Welder2.ogg', 100, 1) user << "You start slicing the floorweld off the delivery chute." if(do_after(user,20)) if(!src || !W.isOn()) return + Deconstruct() user << "You sliced the floorweld off the delivery chute." - var/obj/structure/disposalconstruct/C = new (loc) - C.ptype = 8 // 8 = Delivery chute - C.update() - C.anchored = 1 - C.density = 1 - qdel(src) return else return diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index d67da5e6504..41c7d2f53ee 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -39,7 +39,6 @@ datum/design //Datum for object designs, used in construction var/list/materials = list() //List of materials. Format: "id" = amount. var/construction_time //Amount of time required for building the object var/build_path = "" //The file path of the object that gets created - var/locked = 0 //If true it will spawn inside a lockbox with currently sec access var/list/category = null //Primarily used for Mech Fabricators, but can be used for anything diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm index 297a1eaa353..04b64b81778 100644 --- a/code/modules/research/designs/comp_board_designs.dm +++ b/code/modules/research/designs/comp_board_designs.dm @@ -369,3 +369,13 @@ materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/aifixer category = list("Computer Boards") + +/datum/design/libraryconsole + name = "Computer Design (Library Console)" + desc = "Allows for the construction of circuit boards used to build a new library console." + id = "libraryconsole" + req_tech = list("programming" = 1) + build_type = IMPRINTER + materials = list("$glass" = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/libraryconsole + category = list("Computer Boards") \ No newline at end of file diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index f984e47c32c..ff5e33b0ef3 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -112,6 +112,16 @@ build_path = /obj/item/weapon/circuitboard/chem_dispenser category = list ("Medical Machinery") +/datum/design/chem_heater + name = "Machine Design (Chemical Heater Board)" + desc = "The circuit board for a chemical heater." + id = "chem_heater" + req_tech = list("engineering" = 2, "materials" = 2) + build_type = IMPRINTER + materials = list("$glass" = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/chem_heater + category = list ("Medical Machinery") + /datum/design/biogenerator name = "Machine Design (Biogenerator Board)" desc = "The circuit board for a biogenerator." @@ -271,4 +281,4 @@ build_type = IMPRINTER materials = list("$glass" = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/mining_equipment_vendor - category = list ("Misc. Machinery") \ No newline at end of file + category = list ("Misc. Machinery") diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index fd90822a838..bee7bdac738 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -2,6 +2,26 @@ /////////////////Weapons///////////////// ///////////////////////////////////////// +/datum/design/pin_testing + name = "test-range firing pin" + desc = "This safety firing pin allows firearms to be operated within proximity to a firing range." + id = "pin_testing" + req_tech = list("combat" = 1, "materials" = 2) + build_type = PROTOLATHE + materials = list("$metal" = 500, "$glass" = 300) + build_path = /obj/item/device/firing_pin/test_range + category = list("Firing Pins") + +/datum/design/pin_loyalty + name = "loyalty firing pin" + desc = "This is a security firing pin which only authorizes users who are loyalty-implanted." + id = "pin_loyalty" + req_tech = list("combat" = 10, "materials" = 3, "powerstorage" = 3) + build_type = PROTOLATHE + materials = list("$silver" = 600, "$diamond" = 600, "$uranium" = 200) + build_path = /obj/item/device/firing_pin/implant/loyalty + category = list("Firing Pins") + /datum/design/nuclear_gun name = "Advanced Energy Gun" desc = "An energy gun with an experimental miniaturized reactor." @@ -11,18 +31,16 @@ materials = list("$metal" = 5000, "$glass" = 1000, "$uranium" = 2000) reliability = 76 build_path = /obj/item/weapon/gun/energy/gun/nuclear - locked = 1 category = list("Weapons") /datum/design/stunrevolver name = "Stun Revolver" - desc = "A high-tech revolver that fires internal, reusable stun cartidges in a revolving cylinder. The stun cartridges can be recharged using a conventional energy weapon recharger." + desc = "A high-tech revolver that fires internal, reusable stun cartridges in a revolving cylinder. The stun cartridges can be recharged using a conventional energy weapon recharger." id = "stunrevolver" req_tech = list("combat" = 3, "materials" = 3, "powerstorage" = 2) build_type = PROTOLATHE materials = list("$metal" = 4000) build_path = /obj/item/weapon/gun/energy/stunrevolver - locked = 1 category = list("Weapons") /datum/design/tele_shield @@ -33,7 +51,6 @@ build_type = PROTOLATHE materials = list("$metal" = 4000, "$glass" = 5000, "$silver" = 300) build_path = /obj/item/weapon/shield/riot/tele - locked = 1 category = list("Weapons") /datum/design/lasercannon @@ -44,7 +61,6 @@ build_type = PROTOLATHE materials = list("$metal" = 10000, "$glass" = 2000, "$diamond" = 2000) build_path = /obj/item/weapon/gun/energy/lasercannon - locked = 1 category = list("Weapons") /datum/design/decloner @@ -55,7 +71,6 @@ build_type = PROTOLATHE materials = list("$gold" = 5000,"$uranium" = 10000, "mutagen" = 40) build_path = /obj/item/weapon/gun/energy/decloner - locked = 1 category = list("Weapons") /datum/design/rapidsyringe @@ -75,9 +90,9 @@ req_tech = list("combat" = 5, "materials" = 5, "engineering" = 3, "biotech" = 4, "syndicate" = 3) build_type = PROTOLATHE materials = list("$metal" = 5000, "$glass" = 1500, "$uranium" = 1500, "$silver" = 1500) - build_path = /obj/item/weapon/gun/projectile/automatic/crossbow/large - locked = 1 + build_path = /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/large category = list("Weapons") + reliability = 76 /datum/design/temp_gun name = "Temperature Gun" @@ -87,7 +102,6 @@ build_type = PROTOLATHE materials = list("$metal" = 5000, "$glass" = 500, "$silver" = 3000) build_path = /obj/item/weapon/gun/energy/temperature - locked = 1 category = list("Weapons") /datum/design/flora_gun @@ -119,7 +133,6 @@ build_type = PROTOLATHE materials = list("$metal" = 8000, "$silver" = 2000, "$diamond" = 1000) build_path = /obj/item/weapon/gun/projectile/automatic - locked = 1 category = list("Weapons") /datum/design/xray @@ -130,7 +143,6 @@ build_type = PROTOLATHE materials = list("$gold" = 5000,"$uranium" = 10000, "$metal" = 4000) build_path = /obj/item/weapon/gun/energy/xray - locked = 1 category = list("Weapons") /datum/design/ionrifle @@ -141,7 +153,6 @@ build_type = PROTOLATHE materials = list("$silver" = 4000, "$metal" = 6000, "$uranium" = 1000) build_path = /obj/item/weapon/gun/energy/ionrifle - locked = 1 category = list("Weapons") /datum/design/wormhole_projector @@ -152,7 +163,6 @@ build_type = PROTOLATHE materials = list("$silver" = 1000, "$metal" = 5000, "$diamond" = 3000) build_path = /obj/item/weapon/gun/energy/wormhole_projector - locked = 1 category = list("Weapons") /datum/design/reciever diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 2bafbeb8472..12573d44897 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -21,12 +21,18 @@ density = 1 anchored = 1 use_power = 1 + var/recentlyExperimented = 0 + var/mob/trackedIan + var/mob/trackedRuntime var/obj/item/loaded_item = null /// var/badThingCoeff = 0 var/resetTime = 15 + var/cloneMode = FALSE + var/cloneCount = 0 var/list/item_reactions = list() - var/list/valid_items = list() + var/list/valid_items = list() //valid items for special reactions like transforming + var/list/critical_items = list() //items that can cause critical reactions /obj/machinery/r_n_d/experimentor/proc/ConvertReqString2List(var/list/source_list) var/list/temp_list = params2list(source_list) @@ -34,13 +40,49 @@ temp_list[O] = text2num(temp_list[O]) return temp_list +/obj/machinery/r_n_d/experimentor/proc/ConvertReqList2String(var/list/source_list) + var/returnString = "" + for(var/O in source_list) + returnString += "[O];" + return returnString + +/* //uncomment to enable forced reactions. +/obj/machinery/r_n_d/experimentor/verb/forceReaction() + set name = "Force Experimentor Reaction" + set category = "Debug" + set src in oview(1) + var/reaction = input(usr,"What reaction?") in list(SCANTYPE_POKE,SCANTYPE_IRRADIATE,SCANTYPE_GAS,SCANTYPE_HEAT,SCANTYPE_COLD,SCANTYPE_OBLITERATE) + var/oldReaction = item_reactions["[loaded_item.type]"] + item_reactions["[loaded_item.type]"] = reaction + experiment(item_reactions["[loaded_item.type]"],loaded_item) + spawn(10) + if(loaded_item) + item_reactions["[loaded_item.type]"] = oldReaction +*/ + /obj/machinery/r_n_d/experimentor/proc/SetTypeReactions() + var/probWeight = 0 for(var/I in typesof(/obj/item)) item_reactions["[I]"] = pick(SCANTYPE_POKE,SCANTYPE_IRRADIATE,SCANTYPE_GAS,SCANTYPE_HEAT,SCANTYPE_COLD,SCANTYPE_OBLITERATE) - if(ispath(I,/obj/item/weapon/reagent_containers/food) || ispath(I,/obj/item/weapon/stock_parts) || ispath(I,/obj/item/weapon/grenade/chem_grenade) || ispath(I,/obj/item/weapon/kitchen)) + if(ispath(I,/obj/item/weapon/stock_parts) || ispath(I,/obj/item/weapon/grenade/chem_grenade) || ispath(I,/obj/item/weapon/kitchen)) var/obj/item/tempCheck = new I() if(tempCheck.icon_state != null) //check it's an actual usable item, in a hacky way + valid_items += 15 valid_items += I + probWeight++ + qdel(tempCheck) + + if(ispath(I,/obj/item/weapon/reagent_containers/food)) + var/obj/item/tempCheck = new I() + if(tempCheck.icon_state != null) //check it's an actual usable item, in a hacky way + valid_items += rand(1,max(2,35-probWeight)) + valid_items += I + qdel(tempCheck) + + if(ispath(I,/obj/item/weapon/rcd) || ispath(I,/obj/item/weapon/grenade) || ispath(I,/obj/item/device/aicard) || ispath(I,/obj/item/weapon/storage/backpack/holding) || ispath(I,/obj/item/slime_extract) || ispath(I,/obj/item/device/onetankbomb) || ispath(I,/obj/item/device/transfer_valve)) + var/obj/item/tempCheck = new I() + if(tempCheck.icon_state != null) + critical_items += I qdel(tempCheck) @@ -53,6 +95,8 @@ component_parts += new /obj/item/weapon/stock_parts/manipulator(src) component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) + trackedIan = locate(/mob/living/simple_animal/corgi/Ian) in mob_list + trackedRuntime = locate(/mob/living/simple_animal/cat/Runtime) in mob_list SetTypeReactions() RefreshParts() @@ -65,35 +109,33 @@ for(var/obj/item/weapon/stock_parts/micro_laser/M in component_parts) badThingCoeff += M.rating +/obj/machinery/r_n_d/experimentor/proc/checkCircumstances(var/obj/item/O as obj) + //snowflake check to only take "made" bombs + if(istype(O,/obj/item/device/transfer_valve)) + var/obj/item/device/transfer_valve/T = O + if(!T.tank_one || !T.tank_two || !T.attached_device) + return FALSE + return TRUE + /obj/machinery/r_n_d/experimentor/attackby(var/obj/item/O as obj, var/mob/user as mob) if (shocked) shock(user,50) - if (istype(O, /obj/item/weapon/screwdriver)) - if (!panel_open) - panel_open = 1 - if(linked_console) - linked_console.linked_destroy = null - linked_console = null - icon_state = "h_lathe_maint" - user << "You open the maintenance hatch of [src]." - else - panel_open = 0 - icon_state = "h_lathe" - user << "You close the maintenance hatch of [src]." + + if (default_deconstruction_screwdriver(user, "h_lathe_maint", "h_lathe", O)) + if(linked_console) + linked_console.linked_destroy = null + linked_console = null return - if (panel_open) - if(istype(O, /obj/item/weapon/crowbar)) - playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1) - var/obj/machinery/constructable_frame/machine_frame/M = new /obj/machinery/constructable_frame/machine_frame(src.loc) - M.state = 2 - M.icon_state = "box_1" - for(var/obj/I in component_parts) - I.loc = src.loc - del(src) - return 1 - else - user << "You can't load the [src.name] while it's opened." - return 1 + + if(exchange_parts(user, O)) + return + + default_deconstruction_crowbar(O) + + if(!checkCircumstances(O)) + user << "The [O] is not yet valid for the [src] and must be completed!" + return + if (disabled) return if (!linked_console) @@ -119,8 +161,7 @@ O.loc = src user << "You add the [O.name] to the machine!" flick("h_lathe_load", src) - spawn(15) - icon_state = "h_lathe_wloop" + return @@ -130,21 +171,25 @@ if(!linked_console) dat += "Scan for R&D Console
" if(loaded_item) - dat += "Loaded Item: [loaded_item]
" - dat += "Technology:
" - var/list/D = ConvertReqString2List(loaded_item.origin_tech) - for(var/T in D) - dat += "[T]
" - dat += "

Available tests:" - dat += "
Poke" - dat += "
Irradiate" - dat += "
Gas" - dat += "
Burn" - dat += "
Freeze" - dat += "
Destroy
" - dat += "
Eject" + if(recentlyExperimented) + dat += "The [src] is still resetting!" + else + dat += "Loaded Item: [loaded_item]
" + dat += "Technology:
" + var/list/D = ConvertReqString2List(loaded_item.origin_tech) + for(var/T in D) + dat += "[T]
" + dat += "

Available tests:" + dat += "
Poke" + dat += "
Irradiate" + dat += "
Gas" + dat += "
Burn" + dat += "
Freeze" + dat += "
Destroy
" + dat += "
Eject" else dat += "Nothing loaded." + dat += "
Refresh
" dat += "
Close
" var/datum/browser/popup = new(user, "experimentor","Experimentor", 700, 400, src) popup.set_content(dat) @@ -167,10 +212,35 @@ return FAIL /obj/machinery/r_n_d/experimentor/proc/ejectItem(var/delete=FALSE) - loaded_item.loc = src.loc - if(delete) - qdel(loaded_item) - loaded_item = null + if(loaded_item) + if(cloneMode && cloneCount > 0) + visible_message("A duplicate [loaded_item] pops out!") + new loaded_item(pick(oview(1,src))) + --cloneCount + if(cloneCount == 0) + cloneMode = FALSE + loaded_item.loc = pick(oview(1,src)) + if(delete) + qdel(loaded_item) + loaded_item = null + +/obj/machinery/r_n_d/experimentor/proc/throwSmoke(var/turf/where) + var/datum/effect/effect/system/harmless_smoke_spread/smoke = new + smoke.set_up(1,0, where, 0) + smoke.start() + +/obj/machinery/r_n_d/experimentor/proc/pickWeighted(var/list/from) + var/result = FALSE + var/counter = 1 + while(!result) + var/probtocheck = from[counter] + if(prob(probtocheck)) + result = TRUE + return from[counter+1] + if(counter + 2 < from.len) + counter = counter + 2 + else + counter = 1 /* #define EFFECT_PROB_VERYLOW 10 @@ -180,9 +250,15 @@ #define EFFECT_PROB_VERYHIGH 85 */ /obj/machinery/r_n_d/experimentor/proc/experiment(var/exp,var/obj/item/exp_on) + recentlyExperimented = 1 + icon_state = "h_lathe_wloop" + var/criticalReaction = locate(exp_on) in critical_items ? TRUE : FALSE //////////////////////////////////////////////////////////////////////////////////////////////// if(exp == SCANTYPE_POKE) visible_message("[src] prods at [exp_on] with mechanical arms.") + if(prob(EFFECT_PROB_LOW) && criticalReaction) + visible_message("[exp_on] is gripped in just the right way, enhancing it's focus.") + badThingCoeff++ if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) visible_message("[src] malfunctions and destroys [exp_on], lashing it's arms out at nearby people!.") for(var/mob/living/m in oview(1)) @@ -201,6 +277,11 @@ //////////////////////////////////////////////////////////////////////////////////////////////// if(exp == SCANTYPE_IRRADIATE) visible_message("[src] reflects radioactive rays at [exp_on]!") + if(prob(EFFECT_PROB_LOW) && criticalReaction) + visible_message("[exp_on] has activated an unknown subroutine!") + cloneMode = TRUE + cloneCount = badThingCoeff + ejectItem() if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) visible_message("[src] malfunctions, melting [exp_on] and leaking radiation!.") for(var/mob/living/m in oview(1)) @@ -213,10 +294,11 @@ if(prob(EFFECT_PROB_VERYHIGH)) new /obj/effect/decal/cleanable/greenglow(T) else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff)) - visible_message("[src] malfunctions, transforming the [exp_on]!.") + var/savedName = "[exp_on]" ejectItem(TRUE) - var/newPath = pick(valid_items) + var/newPath = pickWeighted(valid_items) loaded_item = new newPath(src) + visible_message("[src] malfunctions, transforming [savedName] into [loaded_item]!.") if(istype(loaded_item,/obj/item/weapon/grenade/chem_grenade)) var/obj/item/weapon/grenade/chem_grenade/CG = loaded_item CG.prime() @@ -224,6 +306,9 @@ //////////////////////////////////////////////////////////////////////////////////////////////// if(exp == SCANTYPE_GAS) visible_message("[src] fills it's chamber with gas, [exp_on] included.") + if(prob(EFFECT_PROB_LOW) && criticalReaction) + visible_message("[exp_on] achieves the perfect mix!") + new /obj/item/stack/sheet/mineral/plasma(pick(oview(1,src))) if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) visible_message("[src] destroys [exp_on], leaking dangerous gas!.") var/list/chems = list("carbon","radium","toxin","condensedcapsaicin","mushroomhallucinogen","space_drugs","ethanol","beepskysmash") @@ -238,9 +323,7 @@ ejectItem(TRUE) else if(prob(EFFECT_PROB_LOW-badThingCoeff)) visible_message("[src] malfunctions, spewing harmless gas!.") - var/datum/effect/effect/system/harmless_smoke_spread/smoke = new - smoke.set_up(1,0, src.loc, 0) - smoke.start() + throwSmoke(src.loc) else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff)) visible_message("[src] melts [exp_on], ionizing the air around it!.") empulse(src.loc, 8, 10) @@ -248,6 +331,14 @@ //////////////////////////////////////////////////////////////////////////////////////////////// if(exp == SCANTYPE_HEAT) visible_message("[src] raises [exp_on]'s temperature.") + if(prob(EFFECT_PROB_LOW) && criticalReaction) + visible_message("[src]'s emergency coolant system gives off a small beep!") + var/obj/item/weapon/reagent_containers/food/drinks/coffee/C = new /obj/item/weapon/reagent_containers/food/drinks/coffee(pick(oview(1,src))) + var/list/chems = list("plasma","capsaicin","ethanol") + C.reagents.remove_any(25) + C.reagents.add_reagent(pick(chems),25) + C.name = "Cup of Suspicious Liquid" + C.desc = "It has a large hazard symbol printed on the side in fading ink." if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) visible_message("[src] malfunctions, melting [exp_on] and releasing a burst of flame!.") explosion(src.loc, -1, 0, 0, 0, 0, flame_range = 2) @@ -267,15 +358,21 @@ ejectItem(TRUE) else if(prob(EFFECT_PROB_MEDIUM-badThingCoeff)) visible_message("[src] malfunctions, activating it's emergency coolant systems!.") - var/datum/effect/effect/system/harmless_smoke_spread/smoke = new - smoke.set_up(1,0, src.loc, 0) - smoke.start() + throwSmoke(src.loc) for(var/mob/living/m in oview(1)) m.apply_damage(5,"burn",pick("head","chest","groin")) ejectItem() //////////////////////////////////////////////////////////////////////////////////////////////// if(exp == SCANTYPE_COLD) visible_message("[src] lowers [exp_on]'s temperature.") + if(prob(EFFECT_PROB_LOW) && criticalReaction) + visible_message("[src]'s emergency coolant system gives off a small ping!") + var/obj/machinery/vending/coffee/C = new /obj/machinery/vending/coffee(pick(oview(1,src))) + var/list/chems = list("uranium","frostoil","hyperzine") + C.reagents.remove_any(25) + C.reagents.add_reagent(pick(chems),25) + C.name = "Cup of Suspicious Liquid" + C.desc = "It has a large hazard symbol printed on the side in fading ink." if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) visible_message("[src] malfunctions, shattering [exp_on] and releasing a dangerous cloud of coolant!") var/datum/reagents/R = new/datum/reagents(50) @@ -309,6 +406,9 @@ //////////////////////////////////////////////////////////////////////////////////////////////// if(exp == SCANTYPE_OBLITERATE) visible_message("[exp_on] activates the crushing mechanism, [exp_on] is destroyed!") + if(prob(EFFECT_PROB_LOW) && criticalReaction) + visible_message("[src]'s crushing mechanism slowly and smoothly descends, flattening the [exp_on]!") + new /obj/item/stack/sheet/plasteel(pick(oview(1,src))) if(linked_console.linked_lathe) linked_console.linked_lathe.m_amount += min((linked_console.linked_lathe.max_material_storage - linked_console.linked_lathe.TotalMaterials()), (exp_on.m_amt)) linked_console.linked_lathe.g_amount += min((linked_console.linked_lathe.max_material_storage - linked_console.linked_lathe.TotalMaterials()), (exp_on.g_amt)) @@ -342,9 +442,49 @@ var/b = pick("crushes","spins","viscerates","smashes","insults") visible_message("[exp_on] [a], and [b], the experiment was a failiure!") + + //Global reactions + if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) + var/globalMalf = rand(1,100) + if(globalMalf < 15) + visible_message("[src]'s onboard detection system has malfunctioned!.") + item_reactions["[exp_on.type]"] = pick(SCANTYPE_POKE,SCANTYPE_IRRADIATE,SCANTYPE_GAS,SCANTYPE_HEAT,SCANTYPE_COLD,SCANTYPE_OBLITERATE) + ejectItem() + if(globalMalf > 16 && globalMalf < 35) + visible_message("[src] melts [exp_on], ian-izing the air around it!.") + throwSmoke(src.loc) + if(trackedIan) + throwSmoke(trackedIan.loc) + trackedIan.loc = src.loc + else + new /mob/living/simple_animal/corgi(src.loc) + ejectItem(TRUE) + if(globalMalf > 36 && globalMalf < 50) + visible_message("[src] improves [exp_on], drawing the life essence of those nearby!") + for(var/mob/living/m in view(4,src)) + m << "You feel your flesh being torn from you, mists of blood drifting to [src]!" + m.apply_damage(50,"brute","chest") + var/list/reqs = ConvertReqString2List(exp_on.origin_tech) + for(var/T in reqs) + T = T + 1 + exp_on.origin_tech = ConvertReqList2String(reqs) + if(globalMalf > 51 && globalMalf < 75) + visible_message("[src] encounters a run-time error!") + throwSmoke(src.loc) + if(trackedRuntime) + throwSmoke(trackedRuntime.loc) + trackedRuntime.loc = src.loc + else + new /mob/living/simple_animal/cat(src.loc) + ejectItem(TRUE) + if(globalMalf > 76) + visible_message("[src] begins to smoke and hiss, shaking violently!") + use_power(500000) + spawn(resetTime) icon_state = "h_lathe" busy = 0 + recentlyExperimented = 0 /obj/machinery/r_n_d/experimentor/Topic(href, href_list) if(..()) @@ -362,7 +502,12 @@ linked_console = D else if(scantype == "eject") ejectItem() + else if(scantype == "refresh") + src.updateUsrDialog() else + if(recentlyExperimented) + usr << "[src] has been used too recently!" + return var/dotype = matchReaction(process,scantype) experiment(dotype,process) use_power(750) diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm index c6ed0a4f8f3..0a9128fdfb7 100644 --- a/code/modules/research/protolathe.dm +++ b/code/modules/research/protolathe.dm @@ -35,6 +35,7 @@ Note: Must be placed west/left of and R&D console to function. "Electronics", "Weapons", "Ammo", + "Firing Pins" ) reagents = new() diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 7c695ffe718..284bc202c38 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -399,7 +399,6 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/P = being_built.build_path //lets save these values before the spawn() just in case. Nobody likes runtimes. var/R = being_built.reliability - var/O = being_built.locked spawn(32*amount/coeff) if(g2g) //And if we only fail the material requirements, we still spend time and power for(var/i = 0, i +
+

17 January 2015

+

Cheridan updated:

+
    +
  • The lockbox system for R&D has been replaced with a firing pin system. Ask the Warden or HoS for firing pins to allow normal operation of your firearms. Want to test them out at the range? Try printing a test-range pin.
  • +
  • Nuke Ops have used this new technology to lock some of their heavier weapons so that crew cannot use them. These implants replace their explosive implants.
  • +
  • Explosive implants are now purchasable in the uplink, and are much stronger.
  • +
+

Firecage updated:

+
    +
  • NanoTrasen would like to report that our Mechanical Engineers at NTEngiCore has recently upgraded the capacity of the machines known as Biogenerators. They are now have the added ability to create various belts, and also weed/plantkillers and cartons of milk and cream!
  • +
+

Iamgoofball (Look Ma, I didn't mispell my name this time!) updated:

+
    +
  • Replaced Star Trek chemistry with Goon Chemistry.
  • +
  • Emergency Medic's Handbook Tip 1: Styptic Powder = BRUTE, Silver Sulfadiazine = BURN, Charcoal = TOX, Salbutamol = OXY
  • +
  • In recipes that used removed reagents, they have been replaced with their goon chemistry counterpart:
  • +
  • Hyperzine -> Morphine
  • +
  • Inaprovaline -> Epinephrine
  • +
  • Kelotane -> Saline-Glucose Solution
  • +
  • Bicardine -> Saline-Glucose Solution
  • +
  • Dermaline -> Saline-Glucose Solution
  • +
  • Dexalin -> Salbutamol
  • +
  • Dexalin Plus -> Salbutamol
  • +
  • Tricordrazine -> Omnizine
  • +
  • Anti-Toxin -> Charcoal
  • +
  • Hydronalin -> Penetic Acid
  • +
  • Arithrazine -> Penetic Acid
  • +
  • Imidazoline -> Oculine
  • +
  • Mannitol -> Alkysine
  • +
  • Ryetalyn -> Mutadone
  • +
+

Steelpoint updated:

+
    +
  • The Emergency Response Team project has been activated by Nanotrasen. The ERT are a seven man squad that can be deployed by the Central Command (admins) to attempt to rescue the station from a overwhelming threat, or to render assistance in dealing with a significant problem.
  • +
  • The ERT consists of a single Commander, two Security Officers, two Engineering Officers and two Medical Officers. The Commander is preselected when the squad is being spawned in, however the remaining six officers are free to select their role in the squad.
  • +
  • Two new Pulse gun variants have been added to the game. They are the Pulse Carbine and the Pulse Pistol, both have significantly smaller ammunition capacities than the Pulse Rifle, however they both can fit in a backpack and the pistol can fit in a pocket. All ERT Officers have a Pulse Pistol for a sidearm, however the Security Officers get a Pulse Carbine as their primary longarm.
  • +
+

phil235 updated:

+
    +
  • The two library consoles are now real buildable computers. The circuitboard design is available in R&D.
  • +
+

sawu-tg updated:

+
    +
  • Added a new R&D machine, to replace the telescience room. The Machine is based on RND and various interdepartmental creations.
  • +
+
+

14 January 2015

Boggart updated:

diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index c6fe77f8dee..cf0cd9963d3 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -2264,3 +2264,56 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - rscadd: Adds a Traitor Poison Kit! - rscadd: Adds Morphine Medipens! - rscadd: Adds Morphine bottles to Cargo! +2015-01-17: + Cheridan: + - tweak: The lockbox system for R&D has been replaced with a firing pin system. + Ask the Warden or HoS for firing pins to allow normal operation of your firearms. + Want to test them out at the range? Try printing a test-range pin. + - tweak: Nuke Ops have used this new technology to lock some of their heavier weapons + so that crew cannot use them. These implants replace their explosive implants. + - rscadd: Explosive implants are now purchasable in the uplink, and are much stronger. + Firecage: + - rscadd: NanoTrasen would like to report that our Mechanical Engineers at NTEngiCore + has recently upgraded the capacity of the machines known as Biogenerators. They + are now have the added ability to create various belts, and also weed/plantkillers + and cartons of milk and cream! + Iamgoofball (Look Ma, I didn't mispell my name this time!): + - rscadd: Replaced Star Trek chemistry with Goon Chemistry. + - rscadd: 'Emergency Medic''s Handbook Tip 1: Styptic Powder = BRUTE, Silver Sulfadiazine + = BURN, Charcoal = TOX, Salbutamol = OXY' + - rscadd: 'In recipes that used removed reagents, they have been replaced with their + goon chemistry counterpart:' + - rscadd: Hyperzine -> Morphine + - rscadd: Inaprovaline -> Epinephrine + - rscadd: Kelotane -> Saline-Glucose Solution + - rscadd: Bicardine -> Saline-Glucose Solution + - rscadd: Dermaline -> Saline-Glucose Solution + - rscadd: Dexalin -> Salbutamol + - rscadd: Dexalin Plus -> Salbutamol + - rscadd: Tricordrazine -> Omnizine + - rscadd: Anti-Toxin -> Charcoal + - rscadd: Hydronalin -> Penetic Acid + - rscadd: Arithrazine -> Penetic Acid + - rscadd: Imidazoline -> Oculine + - rscadd: Mannitol -> Alkysine + - rscadd: Ryetalyn -> Mutadone + Steelpoint: + - rscadd: The Emergency Response Team project has been activated by Nanotrasen. + The ERT are a seven man squad that can be deployed by the Central Command (admins) + to attempt to rescue the station from a overwhelming threat, or to render assistance + in dealing with a significant problem. + - rscadd: The ERT consists of a single Commander, two Security Officers, two Engineering + Officers and two Medical Officers. The Commander is preselected when the squad + is being spawned in, however the remaining six officers are free to select their + role in the squad. + - rscadd: Two new Pulse gun variants have been added to the game. They are the Pulse + Carbine and the Pulse Pistol, both have significantly smaller ammunition capacities + than the Pulse Rifle, however they both can fit in a backpack and the pistol + can fit in a pocket. All ERT Officers have a Pulse Pistol for a sidearm, however + the Security Officers get a Pulse Carbine as their primary longarm. + phil235: + - rscadd: The two library consoles are now real buildable computers. The circuitboard + design is available in R&D. + sawu-tg: + - rscadd: Added a new R&D machine, to replace the telescience room. The Machine + is based on RND and various interdepartmental creations. diff --git a/html/changelogs/Iamgoofball.yml b/html/changelogs/Iamgoofball.yml new file mode 100644 index 00000000000..262ee8b9468 --- /dev/null +++ b/html/changelogs/Iamgoofball.yml @@ -0,0 +1,6 @@ + +author: Iamgoofball +delete-after: True + +changes: + - rscadd: "Adds 9 new Disabilites and 2 new genetic powers." diff --git a/html/changelogs/iamgoofball-goonchem3.yml b/html/changelogs/iamgoofball-goonchem3.yml new file mode 100644 index 00000000000..ed917f1f27e --- /dev/null +++ b/html/changelogs/iamgoofball-goonchem3.yml @@ -0,0 +1,42 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscdel (general adding of nice things) +# rscadd (general deleting of nice things) +# imageadd +# imagedel +# spellcheck (typo fixes) +# experiment +# tgs (TG-ported fixes?) +################################# +author: Iamgoofball +delete-after: True +changes: + - rscadd: "Addiction and Overdosing has been added to Chemistry." + - rscadd: "Deal with Overdosing by purging the ODing chemical with Calomel or Penetic Acid." + - rscadd: "Deal with Addiction by either going cold turkey on it and weathering the effects, eventually causing the addiction to subside, or by taking more of the addictive substance to keep the effects down." + - rscadd: "Cryoxadane was heavily buffed. Clonex was removed as it was merged into Cryox." + - rscadd: "Fixes a shitton of stuff adding Morphine instead of Ephedrine. Sorry, miners." + - rscadd: "Fixes instances of Alkysine not being replaced with Mannitol. Same with Ryetalyn being replaced with Mutadone." + - rscadd: "Adds Itching Powder. Welding Fuel and Ammonia." + - rscadd: "Adds Antihol. Ethanol and Charcoal." + - rscadd: "Adds Triple Citrus. Lemon Juice, Lime Juice, and Orange Juice." + - rscadd: "Adds Colorful Reagent. Stable Plasma, Triple Citrus, " + - rscadd: "Morphine replaces sleep toxin now, not Hyperzine. Hyperzine is replaced by Ephedrine now." + - rscadd: "Cryotubes will now autoeject you once you are fully healed." + - rscadd: "Synthflesh damage values have been fixed." + - rscadd: "Charcoal has been buffed to heal 3 TOX damage a cycle and it purges other chemicals faster." + - rscadd: "Saline-Glucose Solution has been buffed. It now has a 50% chance per cycle to heal 3 BRUTE and BURN per tick." + - rscadd: "Fixes Strange Reagent revivals dying right after being revived. They'll still need immediate medical treatment, however." + - rscadd: "Cryoxadone has had a recipe change. It is now Stable Plasma, Acetone, and Unstable Mutagen." \ No newline at end of file diff --git a/icons/Chrono_Legionairre.dmi b/icons/Chrono_Legionairre.dmi new file mode 100644 index 00000000000..77f8bdfeeeb Binary files /dev/null and b/icons/Chrono_Legionairre.dmi differ diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 7bf76901789..f1a60e810d8 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ diff --git a/icons/mecha/mech_construct.dmi b/icons/mecha/mech_construct.dmi index 7f275a113f5..6d48367f2a3 100644 Binary files a/icons/mecha/mech_construct.dmi and b/icons/mecha/mech_construct.dmi differ diff --git a/icons/mob/alienleap.dmi b/icons/mob/alienleap.dmi index 3adf4ff7597..da092d4b9bd 100644 Binary files a/icons/mob/alienleap.dmi and b/icons/mob/alienleap.dmi differ diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi index d613dedcefe..e8d4b61b58b 100644 Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi index d4a27a2387c..e2e3408c577 100644 Binary files a/icons/mob/belt.dmi and b/icons/mob/belt.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index e00fdfc7fda..4474ee9dee8 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi index 5acb3cbf1e1..6fd59d0f965 100644 Binary files a/icons/mob/items_lefthand.dmi and b/icons/mob/items_lefthand.dmi differ diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi index 137450b21ce..902ea60b68b 100644 Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ diff --git a/icons/mob/mob.dmi b/icons/mob/mob.dmi index 390f3f00953..99d27ba25c6 100644 Binary files a/icons/mob/mob.dmi and b/icons/mob/mob.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index 371d18c3e6e..f70ce1eafaf 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 43dcda058a5..acb1e00589c 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 33726c6de7c..9be3e8a93ff 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi index c6e7bd5222d..382ea940eaf 100644 Binary files a/icons/obj/chemical.dmi and b/icons/obj/chemical.dmi differ diff --git a/icons/obj/chronos.dmi b/icons/obj/chronos.dmi new file mode 100644 index 00000000000..dcc3984fd02 Binary files /dev/null and b/icons/obj/chronos.dmi differ diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi index fafb6639e3f..1675219fcc3 100644 Binary files a/icons/obj/clothing/belts.dmi and b/icons/obj/clothing/belts.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 24f9048fc45..774e2c7f9c1 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 6a5fbe0e916..65a0027ff4d 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index 9cee4e8a3bb..fdc8ccdd1a8 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/computer.dmi b/icons/obj/computer.dmi index b97f74ca676..4a7846286da 100644 Binary files a/icons/obj/computer.dmi and b/icons/obj/computer.dmi differ diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 819d09b6313..b359a653969 100644 Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi deleted file mode 100644 index d0b8e3ca1c0..00000000000 Binary files a/icons/obj/gun.dmi and /dev/null differ diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi new file mode 100644 index 00000000000..c149fb50bc0 Binary files /dev/null and b/icons/obj/guns/energy.dmi differ diff --git a/icons/obj/guns/magic.dmi b/icons/obj/guns/magic.dmi new file mode 100644 index 00000000000..7ec040764d5 Binary files /dev/null and b/icons/obj/guns/magic.dmi differ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi new file mode 100644 index 00000000000..fe8cd6434d3 Binary files /dev/null and b/icons/obj/guns/projectile.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index ac7af348b0f..166062cd3be 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index f51e7402e03..a1610b9e284 100644 Binary files a/icons/obj/library.dmi and b/icons/obj/library.dmi differ diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index df8b6c1477f..d723b6d6286 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ diff --git a/icons/obj/vehicles.dmi b/icons/obj/vehicles.dmi index 5b546d657f9..e0b13f390a7 100644 Binary files a/icons/obj/vehicles.dmi and b/icons/obj/vehicles.dmi differ diff --git a/interface/stylesheet.dm b/interface/stylesheet.dm index f9153693e70..fdaaea68b82 100644 --- a/interface/stylesheet.dm +++ b/interface/stylesheet.dm @@ -67,6 +67,11 @@ h1.alert, h2.alert {color: #000000;} .interface {color: #330033;} +.sans {font-family: "Comic Sans MS", cursive, sans-serif;} +.papyrus {font-family: "Papyrus", cursive, sans-serif;} +.vineta {font-family: "Vineta BT", cursive, sans-serif;} +.jokerman {font-family: "Jokerman", cursive, sans-serif;} + BIG IMG.icon {width: 32px; height: 32px;} "} diff --git a/nano/templates/chem_heater.tmpl b/nano/templates/chem_heater.tmpl new file mode 100644 index 00000000000..b0ef2058e2f --- /dev/null +++ b/nano/templates/chem_heater.tmpl @@ -0,0 +1,45 @@ + +
+
+ Status: +
+
+ {{:~link(isActive ? 'On' : 'Off', 'power', {'toggle_on' : 1}, isBeakerLoaded ? null : 'disabled')}} +
+
+
+
+ Target: +
+
+ {{:~link(targetTemp + 'K', 'gear', {'adjust_temperature' : 'input'}, null)}} +
+
+
+
+ Beaker +
+
+ {{:~link('Eject', 'eject', {'eject_beaker' : 1}, isBeakerLoaded ? null : 'disabled', 'floatRight')}} +
+
+
+
+
+ {{if isBeakerLoaded}} + Volume: {{:beakerCurrentVolume}} / {{:beakerMaxVolume}}
+ Temperature: {{:currentTemp}} Kelvin
+ {{for beakerContents}} + {{:volume}} units of {{:name}}
+ {{else}} + Beaker is empty + {{/for}} + {{else}} + No beaker loaded + {{/if}} +
+
+
diff --git a/tgstation.dme b/tgstation.dme index 5b616fa2ee8..2ad25b212c9 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -132,6 +132,7 @@ #include "code\controllers\subsystem\mobs.dm" #include "code\controllers\subsystem\nanoUI.dm" #include "code\controllers\subsystem\objects.dm" +#include "code\controllers\subsystem\pai.dm" #include "code\controllers\subsystem\pipenets.dm" #include "code\controllers\subsystem\power.dm" #include "code\controllers\subsystem\radio.dm" @@ -148,6 +149,8 @@ #include "code\datums\datacore.dm" #include "code\datums\datumvars.dm" #include "code\datums\gas_mixture.dm" +#include "code\datums\goon_mutations_disabilities.dm" +#include "code\datums\goon_mutations_powers.dm" #include "code\datums\hud.dm" #include "code\datums\mind.dm" #include "code\datums\mixed.dm" @@ -485,6 +488,7 @@ #include "code\game\mecha\medical\odysseus.dm" #include "code\game\mecha\working\ripley.dm" #include "code\game\mecha\working\working.dm" +#include "code\game\objects\buckling.dm" #include "code\game\objects\empulse.dm" #include "code\game\objects\explosion.dm" #include "code\game\objects\items.dm" @@ -579,6 +583,7 @@ #include "code\game\objects\items\weapons\AI_modules.dm" #include "code\game\objects\items\weapons\airlock_painter.dm" #include "code\game\objects\items\weapons\cards_ids.dm" +#include "code\game\objects\items\weapons\chrono_eraser.dm" #include "code\game\objects\items\weapons\cigs_lighters.dm" #include "code\game\objects\items\weapons\clown_items.dm" #include "code\game\objects\items\weapons\cosmetics.dm" @@ -843,6 +848,7 @@ #include "code\modules\clothing\shoes\colour.dm" #include "code\modules\clothing\shoes\magboots.dm" #include "code\modules\clothing\shoes\miscellaneous.dm" +#include "code\modules\clothing\spacesuits\chronosuit.dm" #include "code\modules\clothing\spacesuits\hardsuit.dm" #include "code\modules\clothing\spacesuits\miscellaneous.dm" #include "code\modules\clothing\spacesuits\ninja.dm" @@ -1130,7 +1136,6 @@ #include "code\modules\mob\living\silicon\pai\life.dm" #include "code\modules\mob\living\silicon\pai\pai.dm" #include "code\modules\mob\living\silicon\pai\personality.dm" -#include "code\modules\mob\living\silicon\pai\recruit.dm" #include "code\modules\mob\living\silicon\pai\say.dm" #include "code\modules\mob\living\silicon\pai\software.dm" #include "code\modules\mob\living\silicon\robot\death.dm" @@ -1241,6 +1246,7 @@ #include "code\modules\projectiles\ammunition.dm" #include "code\modules\projectiles\firing.dm" #include "code\modules\projectiles\gun.dm" +#include "code\modules\projectiles\pins.dm" #include "code\modules\projectiles\projectile.dm" #include "code\modules\projectiles\ammunition\ammo_casings.dm" #include "code\modules\projectiles\ammunition\boxes.dm"