diff --git a/_maps/map_files/MetaStation/MetaStation.v41A.dmm b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm similarity index 93% rename from _maps/map_files/MetaStation/MetaStation.v41A.dmm rename to _maps/map_files/MetaStation/MetaStation.v41A.II.dmm index 40e03729f8e..0aeb1b016c3 100644 --- a/_maps/map_files/MetaStation/MetaStation.v41A.dmm +++ b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm @@ -30,9 +30,9 @@ "aaD" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/space) "aaE" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/space) "aaF" = (/obj/machinery/seed_extractor,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) -"aaG" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/flora/kirbyplants{tag = "icon-plant-17"; icon_state = "plant-17"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) +"aaG" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/flora/kirbyplants{icon_state = "plant-03"; layer = 4.1; tag = "icon-plant-03"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "aaH" = (/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/security/prison) -"aaI" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/flora/kirbyplants{tag = "icon-plant-15"; icon_state = "plant-15"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) +"aaI" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/flora/kirbyplants{layer = 4.1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "aaJ" = (/obj/machinery/biogenerator,/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "Prison Hydroponics"; network = list("SS13","Prison")},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "aaK" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/space) "aaL" = (/obj/structure/stool/bed/chair{dir = 1},/obj/item/device/radio/intercom{pixel_x = 25},/turf/simulated/shuttle/floor,/area/space) @@ -55,17 +55,17 @@ "abc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "abd" = (/obj/machinery/hydroponics/constructable,/obj/item/device/analyzer/plant_analyzer,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "abe" = (/turf/simulated/floor/plating{icon_plating = "warnplate"; icon_state = "warnplate"},/area/security/prison) -"abf" = (/obj/machinery/light/small,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/security/prison) +"abf" = (/obj/machinery/door/poddoor{density = 1; icon_state = "closed"; id = "SecJusticeChamber"; name = "Justice Vent"; opacity = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/prison/solitary{name = "Prisoner Education Chamber"}) "abg" = (/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/security/prison) "abh" = (/obj/machinery/door/airlock/external{name = "Security External Airlock"; req_access_txt = "1"},/turf/simulated/floor/plating,/area/security/prison) -"abi" = (/obj/machinery/light/small{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area/security/prison) +"abi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plasteel{tag = "icon-warndark (NORTH)"; icon_state = "warndark"; dir = 1},/area/prison/solitary{name = "Prisoner Education Chamber"}) "abj" = (/obj/structure/lattice/catwalk,/turf/space,/area/space) "abk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxstarboard) "abl" = (/obj/machinery/door/airlock/glass{id_tag = "permahydro"; name = "Hydroponics Module"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "abm" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/security/prison) "abn" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/security/prison) "abo" = (/turf/simulated/wall/r_wall,/area/prison/solitary{name = "Prisoner Education Chamber"}) -"abp" = (/obj/structure/table,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/computer/libraryconsole/bookmanagement,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) +"abp" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plasteel{tag = "icon-warndark (NORTHWEST)"; icon_state = "warndark"; dir = 9},/area/prison/solitary{name = "Prisoner Education Chamber"}) "abq" = (/obj/machinery/computer/arcade,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "abr" = (/obj/machinery/camera{c_tag = "Prison Chamber"; 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,/area/security/prison) "abs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) @@ -73,28 +73,28 @@ "abu" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/security/prison) "abv" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/security/prison) "abw" = (/obj/machinery/washing_machine,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/security/prison) -"abx" = (/obj/structure/sign/pods{pixel_x = -30; pixel_y = 0},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/security/prison) -"aby" = (/obj/structure/table,/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Prisoner Education Chamber APC"; pixel_y = 24},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_x = -4; pixel_y = 1},/obj/item/weapon/reagent_containers/glass/bottle/chloralhydrate{name = "chloral hydrate bottle"},/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 6; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_x = 5; pixel_y = 1},/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/glass/bottle/facid{name = "fluorosulfuric acid bottle"; pixel_x = -3; pixel_y = 6},/obj/item/weapon/reagent_containers/syringe{pixel_y = 5},/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"abz" = (/obj/structure/closet/secure_closet/injection,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"abA" = (/obj/structure/table,/obj/item/device/electropack,/obj/item/weapon/storage/box/bodybags,/obj/item/device/assembly/signaler,/obj/machinery/light/small{dir = 1},/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = 29},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"abx" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison) +"aby" = (/obj/item/weapon/soap/nanotrasen,/obj/item/weapon/bikehorn/rubberducky,/obj/machinery/shower{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison) +"abz" = (/obj/structure/table,/obj/item/weapon/folder,/obj/item/weapon/paper/hydroponics,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/pen,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) +"abA" = (/obj/structure/table,/obj/machinery/computer/libraryconsole/bookmanagement,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "abB" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "forestarboard"; name = "Fore-Starboard Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/auxstarboard) "abC" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxstarboard) -"abD" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"abE" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/security/prison) -"abF" = (/obj/structure/stool,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) +"abD" = (/obj/structure/stool/bed,/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/glasses/sunglasses/blindfold,/obj/item/clothing/mask/muzzle,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"abE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light/small{dir = 8},/obj/machinery/sparker{dir = 2; id = "executionburn"; pixel_x = -25},/turf/simulated/floor/plasteel{tag = "icon-warndark (WEST)"; icon_state = "warndark"; dir = 8},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"abF" = (/obj/machinery/flasher{id = "justiceflash"; name = "mounted justice flash"; pixel_x = 28},/turf/simulated/floor/plasteel{tag = "icon-warndark (EAST)"; icon_state = "warndark"; dir = 4},/area/prison/solitary{name = "Prisoner Education Chamber"}) "abG" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "abH" = (/obj/structure/table,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 5},/turf/simulated/floor/plasteel,/area/security/prison) -"abI" = (/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) +"abI" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 4; icon_state = "right"; name = "Unisex Showers"; req_access_txt = "0"},/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison) "abJ" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "abK" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "abL" = (/obj/structure/window/reinforced,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/security/prison) "abM" = (/obj/structure/table,/obj/structure/bedsheetbin,/obj/structure/window/reinforced,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/security/prison) -"abN" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/security/prison) -"abO" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 6},/obj/machinery/light_switch{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"abP" = (/obj/machinery/door/window/brigdoor{dir = 8; name = "Atmos Control"; req_access_txt = "3"},/obj/machinery/atmospherics/binary/pump{dir = 8},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"abQ" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"abR" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/prison/solitary{name = "Prisoner Education Chamber"}) -"abS" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10},/obj/machinery/light/small{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/space_heater,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"abN" = (/obj/machinery/shower{dir = 4},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison) +"abO" = (/obj/structure/table,/obj/item/toy/cards/deck,/obj/item/toy/cards/deck,/turf/simulated/floor/plasteel,/area/security/prison) +"abP" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/security/prison) +"abQ" = (/turf/simulated/floor/plating,/area/security/prison) +"abR" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/simulated/floor/plasteel{tag = "icon-warndark"; icon_state = "warndark"; dir = 2},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"abS" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{tag = "icon-warndark (SOUTHWEST)"; icon_state = "warndark"; dir = 10},/area/prison/solitary{name = "Prisoner Education Chamber"}) "abT" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxstarboard) "abU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxstarboard) "abV" = (/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxstarboard) @@ -103,43 +103,43 @@ "abY" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxstarboard) "abZ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxstarboard) "aca" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxport) -"acb" = (/obj/machinery/door/airlock/security{name = "Prisoner Education Chamber"; req_access = null; req_access_txt = "3"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"acc" = (/obj/structure/table,/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/item/weapon/book/manual/chef_recipes{pixel_x = 2; pixel_y = 6},/obj/item/clothing/head/chefhat,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) -"acd" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/security/prison) +"acb" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 2; name = "justice injector"},/turf/simulated/floor/plasteel{tag = "icon-warndark (SOUTHEAST)"; icon_state = "warndark"; dir = 6},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"acc" = (/obj/machinery/door/airlock{name = "Unisex Restroom"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison) +"acd" = (/obj/structure/table,/obj/item/weapon/book/manual/chef_recipes{pixel_x = 2; pixel_y = 6},/obj/item/clothing/head/chefhat,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "ace" = (/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) -"acf" = (/obj/structure/table,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/folder,/obj/item/weapon/paper/hydroponics,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/toy/cards/deck,/turf/simulated/floor/plasteel,/area/security/prison) +"acf" = (/obj/structure/table,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/toy/cards/deck,/obj/item/toy/cards/deck,/turf/simulated/floor/plasteel,/area/security/prison) "acg" = (/obj/structure/table,/obj/item/weapon/storage/pill_bottle/dice,/turf/simulated/floor/plasteel,/area/security/prison) "ach" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/security/prison) "aci" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "acj" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "ack" = (/obj/machinery/vending/sustenance{desc = "A vending machine normally reserved for work camps."; name = "\improper sustenance vendor"; product_slogans = "Enjoy your meal.;Enough calories to support any worker."},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) -"acl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/security/prison) -"acm" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"acl" = (/obj/machinery/light/small,/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/security/prison) +"acm" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/security/prison) "acn" = (/obj/machinery/atmospherics/pipe/simple/general/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"aco" = (/obj/structure/rack,/obj/item/weapon/tank/internals/oxygen/red{pixel_x = -4; pixel_y = -1},/obj/item/weapon/tank/internals/oxygen/red{pixel_x = 4; pixel_y = -1},/obj/item/weapon/tank/internals/anesthetic{pixel_x = 2},/obj/item/weapon/wrench,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aco" = (/obj/machinery/light/small{dir = 1},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/security/prison) "acp" = (/obj/structure/cable,/obj/machinery/power/solar{id = "forestarboard"; name = "Fore-Starboard Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/auxstarboard) -"acq" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 6},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"acr" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 4},/obj/machinery/meter,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"acs" = (/obj/item/weapon/soap/nanotrasen,/obj/item/weapon/bikehorn/rubberducky,/obj/machinery/shower{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison) -"act" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/security/prison) -"acu" = (/obj/machinery/light/small{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison) +"acq" = (/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,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/simulated/floor/plasteel{dir = 4; icon_state = "darkredfull"; tag = "icon-whitehall (WEST)"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"acr" = (/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/plasteel{dir = 4; icon_state = "darkredfull"; tag = "icon-whitehall (WEST)"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"acs" = (/obj/machinery/door/window/brigdoor{dir = 2; name = "Justice Chamber"; req_access_txt = "3"},/obj/machinery/atmospherics/pipe/simple/general/hidden,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/window/brigdoor{dir = 1; name = "Justice Chamber"; req_access_txt = "3"},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/preopen{id = "executionfireblast"; layer = 2.9; name = "blast door"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "darkredfull"; tag = "icon-whitehall (WEST)"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"act" = (/obj/machinery/light/small{dir = 4},/obj/structure/toilet{dir = 4},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison) +"acu" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "acv" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/flora/kirbyplants{tag = "icon-plant-13"; icon_state = "plant-13"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) -"acw" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/security/prison) +"acw" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 2; pixel_y = 1},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/security/prison) "acx" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plasteel,/area/security/prison) "acy" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "acz" = (/obj/machinery/hologram/holopad,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "acA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "acB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) -"acC" = (/obj/structure/stool/bed/chair,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"acD" = (/obj/machinery/atmospherics/pipe/simple/general/hidden,/obj/machinery/flasher_button{id = "justiceflash"; name = "Justice Flash Control"; pixel_x = -26; pixel_y = 5; req_access_txt = "1"},/obj/machinery/door_control{dir = 2; id = "SecJusticeChamber"; layer = 4; name = "Justice Vent Control"; pixel_x = -26; pixel_y = -5; req_access_txt = "3"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"acE" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 1},/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"acF" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"acC" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) +"acD" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/device/taperecorder{pixel_x = -3; pixel_y = 0},/obj/item/weapon/storage/fancy/cigarettes,/obj/item/device/flash/handheld,/obj/item/weapon/reagent_containers/spray/pepper,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkred"; tag = "icon-darkblue"; temperature = 273.15},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"acE" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_x = -4; pixel_y = 1},/obj/item/weapon/reagent_containers/glass/bottle/chloralhydrate{name = "chloral hydrate bottle"},/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 6; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_x = 5; pixel_y = 1},/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/glass/bottle/facid{name = "fluorosulfuric acid bottle"; pixel_x = -3; pixel_y = 6},/obj/item/weapon/reagent_containers/syringe{pixel_y = 5},/obj/item/weapon/reagent_containers/dropper,/obj/machinery/alarm{desc = "This particular atmos control unit appears to have no access restrictions."; dir = 4; icon_state = "alarm0"; locked = 0; name = "all-access air alarm"; pixel_x = -24; req_access = "0"; req_one_access = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/ignition_switch{id = "executionburn"; name = "Justice Ignition Switch"; pixel_x = -25; pixel_y = 36},/obj/machinery/door_control{id = "executionfireblast"; name = "Justice Area Lockdown"; pixel_x = -25; pixel_y = 26; req_access_txt = "2"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkred"; tag = "icon-darkblue"; temperature = 273.15},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"acF" = (/obj/machinery/door_control{dir = 2; id = "SecJusticeChamber"; layer = 4; name = "Justice Vent Control"; pixel_x = 26; pixel_y = 25; req_access_txt = "3"},/obj/machinery/flasher_button{id = "justiceflash"; name = "Justice Flash Control"; pixel_x = 25; pixel_y = 36; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/general/hidden,/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkred"; tag = "icon-darkblue"; temperature = 273.15},/area/prison/solitary{name = "Prisoner Education Chamber"}) "acG" = (/obj/item/stack/cable_coil,/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxstarboard) -"acH" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 1},/obj/machinery/portable_atmospherics/canister/sleeping_agent,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"acH" = (/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/security/prison) "acI" = (/obj/machinery/camera/motion{c_tag = "Armory - External"; dir = 4; network = list("SS13")},/turf/space,/area/space) -"acJ" = (/obj/machinery/shower{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison) -"acK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/security/prison) -"acL" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 4; icon_state = "right"; name = "Unisex Showers"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison) +"acJ" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/security/prison) +"acK" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) +"acL" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 4; pixel_y = 4},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = -5; pixel_y = 6},/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitered"},/area/security/prison) "acM" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light,/turf/simulated/floor/plasteel,/area/security/prison) "acN" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "acO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) @@ -147,31 +147,31 @@ "acQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/security/prison) "acR" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "acS" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/light,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) -"acT" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) -"acU" = (/obj/structure/window/reinforced,/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/device/taperecorder{pixel_x = -3; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4},/obj/item/weapon/storage/fancy/cigarettes,/obj/item/device/flash/handheld,/obj/item/weapon/reagent_containers/spray/pepper,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"acV" = (/obj/machinery/door/window/brigdoor{dir = 2; name = "Justice Chamber"; req_access_txt = "3"},/obj/machinery/atmospherics/pipe/simple/general/hidden,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/window/brigdoor{dir = 1; name = "Justice Chamber"; req_access_txt = "3"},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"acW" = (/obj/structure/table,/obj/structure/window/reinforced,/obj/machinery/alarm{desc = "This particular atmos control unit appears to have no access restrictions."; dir = 8; icon_state = "alarm0"; locked = 0; name = "all-access air alarm"; pixel_x = 24; req_access = "0"; req_one_access = "0"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/clothing/gloves/color/latex,/obj/item/clothing/suit/apron/surgical,/obj/item/clothing/mask/surgical,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/retractor,/obj/item/weapon/hemostat,/obj/item/weapon/circular_saw,/obj/item/device/healthanalyzer,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"acT" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/glass/bottle/morphine{pixel_y = 6},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitered"},/area/security/prison) +"acU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/stool/bed/chair/office/dark{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"acV" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/obj/structure/reagent_dispensers/peppertank{pixel_x = -29; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"acW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "acX" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "acY" = (/turf/simulated/wall,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "acZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxport) "ada" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxport) "adb" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxport) -"adc" = (/obj/machinery/door/airlock{name = "Unisex Restroom"; req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison) -"add" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/security/prison) +"adc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall/r_wall,/area/security/prison) +"add" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Prisoner Education Chamber APC"; pixel_y = 24},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/item/weapon/storage/backpack/dufflebag/sec{contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgical_drapes,/obj/item/clothing/mask/surgical); desc = "A large dufflebag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools."; name = "dufflebag"; pixel_y = 5},/obj/item/clothing/mask/balaclava,/obj/item/weapon/reagent_containers/spray/cleaner{pixel_x = 5},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "ade" = (/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "permacell3"; name = "Cell Shutters"; opacity = 0},/obj/machinery/door/airlock/glass{id_tag = "permabolt3"; name = "Cell 3"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "adf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/security/prison) "adg" = (/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "permacell2"; name = "Cell Shutters"; opacity = 0},/obj/machinery/door/airlock/glass{id_tag = "permabolt2"; name = "Cell 2"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "adh" = (/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "permacell1"; name = "Cell Shutters"; opacity = 0},/obj/machinery/door/airlock/glass{id_tag = "permabolt1"; name = "Cell 1"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) -"adi" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/simulated/floor/plasteel{tag = "icon-warndark (NORTH)"; icon_state = "warndark"; dir = 1},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"adj" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 1},/turf/simulated/floor/plasteel{tag = "icon-warndark (NORTHWEST)"; icon_state = "warndark"; dir = 9},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"adk" = (/obj/machinery/door/poddoor{density = 1; icon_state = "closed"; id = "SecJusticeChamber"; name = "Justice Vent"; opacity = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"adi" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/security/prison) +"adj" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/prison) +"adk" = (/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) "adl" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{tag = "icon-warndark (NORTHEAST)"; icon_state = "warndark"; dir = 5},/area/prison/solitary{name = "Prisoner Education Chamber"}) "adm" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/space) "adn" = (/obj/structure/closet/emcloset,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "ado" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/space) "adp" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/space) -"adq" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/light/small{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison) -"adr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/security/prison) +"adq" = (/obj/structure/stool/bed,/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/glasses/sunglasses/blindfold,/obj/item/clothing/mask/muzzle,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/prison) +"adr" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel{dir = 2; icon_state = "darkred"; tag = "icon-darkblue"; temperature = 273.15},/area/prison/solitary{name = "Prisoner Education Chamber"}) "ads" = (/obj/structure/stool/bed,/obj/machinery/camera{c_tag = "Prison Cell 3"; network = list("SS13","Prison")},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "adt" = (/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) "adu" = (/obj/structure/stool/bed,/obj/machinery/camera{c_tag = "Prison Cell 2"; network = list("SS13","Prison")},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) @@ -179,15 +179,15 @@ "adw" = (/obj/structure/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/door_control{id = "permabolt2"; name = "Cell Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/security/prison) "adx" = (/obj/structure/stool/bed,/obj/machinery/camera{c_tag = "Prison Cell 1"; network = list("SS13","Prison")},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "ady" = (/obj/structure/stool,/obj/machinery/light/small{dir = 1},/obj/machinery/door_control{id = "permabolt1"; 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) -"adz" = (/obj/structure/stool/bed,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/glasses/sunglasses/blindfold,/obj/item/clothing/mask/muzzle,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"adA" = (/obj/machinery/flasher{id = "justiceflash"; name = "mounted justice flash"; pixel_x = -28},/turf/simulated/floor/plasteel{tag = "icon-warndark (WEST)"; icon_state = "warndark"; dir = 8},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"adB" = (/turf/simulated/floor/plasteel{tag = "icon-warndark (EAST)"; icon_state = "warndark"; dir = 4},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"adz" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -28; pixel_y = 0},/obj/structure/table,/obj/item/device/electropack,/obj/item/device/assembly/signaler{pixel_x = -3; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plasteel{dir = 2; icon_state = "darkred"; tag = "icon-darkblue"; temperature = 273.15},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"adA" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/simulated/floor/plasteel{dir = 2; icon_state = "darkred"; tag = "icon-darkblue"; temperature = 273.15},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"adB" = (/obj/machinery/atmospherics/pipe/simple/general/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "darkred"; tag = "icon-darkblue"; temperature = 273.15},/area/prison/solitary{name = "Prisoner Education Chamber"}) "adC" = (/turf/simulated/floor/plating,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "adD" = (/obj/machinery/door/airlock/shuttle{name = "Escape Pod Airlock"},/obj/docking_port/mobile/pod{dir = 4; id = "pod3"; name = "escape pod 3"},/turf/simulated/shuttle/floor,/area/space) "adE" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/shuttle/floor,/area/space) "adF" = (/obj/structure/stool/bed/chair{dir = 4},/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/shuttle/floor,/area/space) -"adG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{icon_plating = "warnplate"; icon_state = "warnplate"},/area/security/prison) -"adH" = (/obj/structure/toilet{dir = 1},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison) +"adG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/firealarm{dir = 4; pixel_x = 28},/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "darkred"; tag = "icon-darkblue"; temperature = 273.15},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"adH" = (/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/security/prison) "adI" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/machinery/flasher{id = "PCell 3"; pixel_x = -28},/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/security/prison) "adJ" = (/obj/structure/table,/obj/item/weapon/paper,/obj/item/weapon/pen,/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) "adK" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/simulated/wall,/area/security/prison) @@ -195,15 +195,15 @@ "adM" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "adN" = (/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) "adO" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/machinery/flasher{id = "PCell 1"; pixel_x = -28},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) -"adP" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{tag = "icon-warndark"; icon_state = "warndark"; dir = 2},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"adQ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/door_control{id = "prisonereducation"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel{tag = "icon-warndark (SOUTHWEST)"; icon_state = "warndark"; dir = 10},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"adP" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/prison) +"adQ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light{dir = 8},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/prison) "adR" = (/turf/simulated/wall/r_wall,/area/security/warden) "adS" = (/turf/simulated/wall/r_wall,/area/security/hos) -"adT" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plasteel{tag = "icon-warndark (SOUTHEAST)"; icon_state = "warndark"; dir = 6},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"adU" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/security/hos) -"adV" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/security/hos) +"adT" = (/obj/machinery/flasher{id = "insaneflash"; pixel_x = 26},/obj/machinery/atmospherics/unary/vent_pump{dir = 7; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/security/prison) +"adU" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 10},/obj/machinery/meter,/obj/machinery/door/window/westleft{base_state = "left"; dir = 1; icon_state = "left"; name = "gas ports"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"adV" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "adW" = (/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) -"adX" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/hos) +"adX" = (/obj/machinery/door_control{id = "prisonereducation"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/structure/closet/secure_closet/injection{name = "educational injections"; pixel_x = 2},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{dir = 4; icon_state = "darkredfull"; tag = "icon-whitehall (WEST)"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "adY" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/space) "adZ" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/space) "aea" = (/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) @@ -213,16 +213,16 @@ "aee" = (/obj/machinery/door/airlock/glass_security{name = "Long-Term Cell 1"; req_access_txt = "2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison) "aef" = (/obj/machinery/door/airlock/external{name = "Escape Pod Two"},/turf/simulated/floor/plating,/area/security/prison) "aeg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/maintenance/auxsolarport) -"aeh" = (/obj/machinery/door/airlock/external{name = "Escape Pod Two"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/security/prison) +"aeh" = (/obj/machinery/atmospherics/binary/pump{dir = 1; name = "justice gas pump"},/obj/machinery/door/window/westleft{base_state = "right"; dir = 1; icon_state = "right"; name = "gas ports"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "aei" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/prison/solitary{name = "Prisoner Education Chamber"}) -"aej" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{aiControlDisabled = 1; id_tag = "prisonereducation"; name = "Prisoner Education Chamber"; req_access = null; req_access_txt = "3"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"aek" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/simulated/wall/r_wall,/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aej" = (/obj/machinery/light_switch{pixel_x = 26; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "darkredfull"; tag = "icon-whitehall (WEST)"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aek" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitered"},/area/security/prison) "ael" = (/obj/machinery/alarm{pixel_y = 28},/obj/structure/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/item/clothing/suit/armor/laserproof,/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) -"aem" = (/obj/structure/closet/secure_closet{name = "contraband locker"; req_access_txt = "3"},/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/obj/effect/spawner/lootdrop/armory_contraband,/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) +"aem" = (/obj/item/weapon/folder/red,/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/glass,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitered"},/area/security/prison) "aen" = (/obj/machinery/computer/security,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) "aeo" = (/obj/machinery/computer/prisoner,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) "aep" = (/obj/machinery/computer/secure_data,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) -"aeq" = (/obj/structure/table/wood,/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = 30},/obj/item/weapon/folder/red,/obj/item/weapon/folder/red,/obj/structure/reagent_dispensers/peppertank{pixel_x = -30; pixel_y = 0},/obj/item/weapon/folder/red,/obj/machinery/keycard_auth{pixel_x = -26; pixel_y = 26},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) +"aeq" = (/obj/structure/stool/bed/roller,/obj/structure/stool/bed/roller,/obj/machinery/iv_drip{density = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/iv_drip{density = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitered"},/area/security/prison) "aer" = (/turf/simulated/wall,/area/security/range) "aes" = (/obj/structure/closet/ammunitionlocker,/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) "aet" = (/obj/structure/table/wood,/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Security's Desk"; departmentType = 5; name = "Head of Security RC"; pixel_x = 0; pixel_y = 30},/obj/machinery/computer/med_data/laptop,/obj/item/weapon/storage/secure/safe/HoS{pixel_x = 36; pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) @@ -233,13 +233,13 @@ "aey" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/effect/landmark{name = "Syndicate Breach Area"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "aez" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plating,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "aeA" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/lattice/catwalk,/turf/space,/area/solar/auxstarboard) -"aeB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/security/prison) -"aeC" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) +"aeB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "hosspace"; name = "space shutters"},/turf/simulated/floor/plating,/area/security/hos) +"aeC" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "hosspace"; name = "space shutters"},/turf/simulated/floor/plating,/area/security/hos) "aeD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/auxsolarport) -"aeE" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/security/processing) -"aeF" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/flora/kirbyplants{tag = "icon-plant-02"; icon_state = "plant-02"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) -"aeG" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) -"aeH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) +"aeE" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "hosspace"; name = "space shutters"},/turf/simulated/floor/plating,/area/security/hos) +"aeF" = (/obj/item/weapon/tank/internals/oxygen/red{pixel_x = -4; pixel_y = -1},/obj/item/weapon/tank/internals/oxygen/red{pixel_x = 4; pixel_y = -1},/obj/item/weapon/tank/internals/anesthetic{pixel_x = 2},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/item/weapon/wrench,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aeG" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister/sleeping_agent,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aeH" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 9},/obj/machinery/space_heater,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "aeI" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) "aeJ" = (/obj/machinery/door_control{id = "permacell3"; name = "Cell 3 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/flasher_button{id = "PCell 3"; pixel_x = 6; pixel_y = 24},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) "aeK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/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 Port"; network = list("SS13","Prison")},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) @@ -252,9 +252,9 @@ "aeR" = (/obj/machinery/door_control{id = "permacell1"; name = "Cell 1 Lockdown"; pixel_x = -4; pixel_y = 25; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/flasher_button{id = "PCell 1"; pixel_x = 6; pixel_y = 24},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) "aeS" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Prison Wing APC"; pixel_x = 1; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/camera{c_tag = "Prison Hallway Starboard"; dir = 2; network = list("SS13","Prison")},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) "aeT" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/sign/pods{pixel_y = 30},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) -"aeU" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/processing) -"aeV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/processing) -"aeW" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/flora/kirbyplants{tag = "icon-plant-05"; icon_state = "plant-05"},/turf/simulated/floor/plasteel,/area/security/processing) +"aeU" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{aiControlDisabled = 1; id_tag = "prisonereducation"; name = "Prisoner Education Chamber"; req_access = null; req_access_txt = "3"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"aeV" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Insanity Ward"; req_access_txt = "2"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/prison) +"aeW" = (/obj/structure/closet/secure_closet{name = "contraband locker"; req_access_txt = "3"},/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/obj/effect/spawner/lootdrop/armory_contraband{loot = list(/obj/item/weapon/gun/projectile/automatic/pistol = 5, /obj/item/weapon/gun/projectile/shotgun/combat = 5, /obj/item/weapon/gun/projectile/revolver/mateba, /obj/item/weapon/gun/projectile/automatic/pistol/deagle, /obj/item/weapon/storage/box/throwing_stars = 3)},/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) "aeX" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "aeY" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/secure/safe{name = "armory safe A"; pixel_x = 6; pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden) "aeZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden) @@ -266,7 +266,7 @@ "aff" = (/obj/structure/stool/bed/chair/comfy/black,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) "afg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) "afh" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 32},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) -"afi" = (/obj/machinery/light{dir = 4},/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 29},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) +"afi" = (/obj/structure/table/wood,/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = 32},/obj/item/weapon/folder/red,/obj/item/weapon/folder/red,/obj/machinery/keycard_auth{pixel_x = -26; pixel_y = 23},/obj/machinery/door_control{id = "hosspace"; name = "Space Shutters Control"; pixel_x = -26; pixel_y = 34},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) "afj" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/security/range) "afk" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/security/range) "afl" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/security/range) @@ -290,10 +290,10 @@ "afD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "hosprivacy"; name = "privacy shutters"},/turf/simulated/floor/plating,/area/security/hos) "afE" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/prison) "afF" = (/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/prison) -"afG" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/prison) -"afH" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/prison) -"afI" = (/obj/machinery/light,/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/prison) -"afJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/prison) +"afG" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/sign/securearea{desc = "A warning sign which reads 'WARNING: Do Not Enter When Red Light Shows', detailing the penalties that any NanoTrasen employee or silicon will suffer if violating this rule."; name = "WARNING: Do Not Enter When Red Light Shows"; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) +"afH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) +"afI" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) +"afJ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) "afK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/prison) "afL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/prison) "afM" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/prison) @@ -305,14 +305,14 @@ "afS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/prison) "afT" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/machinery/light,/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/prison) "afU" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/prison) -"afV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden) +"afV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) "afW" = (/obj/machinery/flasher/portable,/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/obj/machinery/flasher/portable,/turf/simulated/floor/plasteel{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/security/warden) "afX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden) "afY" = (/obj/machinery/bot/secbot{health = 35; name = "Securitron #359"; on = 0},/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) "afZ" = (/obj/machinery/syndicatebomb/training,/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) "aga" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/laser,/obj/item/weapon/gun/energy/laser{pixel_x = 3; pixel_y = -3},/turf/simulated/floor/plasteel{tag = "icon-vault (EAST)"; icon_state = "vault"; dir = 4},/area/security/warden) "agb" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden) -"agc" = (/obj/structure/rack,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/gun/projectile/shotgun/riot{pixel_x = 3; pixel_y = 3},/obj/item/weapon/gun/projectile/shotgun/riot,/turf/simulated/floor/plasteel{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/security/warden) +"agc" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/flasher_button{id = "insaneflash"; pixel_y = 26},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison) "agd" = (/obj/structure/rack,/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet/alt,/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet/alt,/obj/item/clothing/suit/armor/bulletproof,/obj/item/clothing/head/helmet/alt,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden) "age" = (/obj/structure/table/wood,/obj/item/weapon/storage/secure/briefcase{pixel_x = -2},/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/cartridge/detective,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) "agf" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) @@ -400,7 +400,7 @@ "ahJ" = (/turf/simulated/wall,/area/security/warden) "ahK" = (/obj/item/stack/sheet/cardboard,/obj/machinery/light_construct/small{dir = 1},/obj/structure/closet/crate,/obj/item/weapon/coin/silver,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/watertank,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "ahL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{tag = "icon-vault (SOUTHEAST)"; icon_state = "vault"; dir = 6},/area/security/warden) -"ahM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/security/warden) +"ahM" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/security/prison) "ahN" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Armory APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/light,/obj/machinery/camera/motion{c_tag = "Armory - Internal"; dir = 1; network = list("SS13")},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/security/warden) "ahO" = (/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/security/warden) "ahP" = (/turf/simulated/floor/plasteel{tag = "icon-vault (SOUTHWEST)"; icon_state = "vault"; dir = 10},/area/security/warden) @@ -453,7 +453,7 @@ "aiK" = (/obj/structure/closet{name = "Evidence Closet 2"},/obj/item/weapon/storage/backpack{name = "Evidence Bag 2"},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/simulated/floor/plasteel{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/security/warden) "aiL" = (/obj/structure/closet/secure_closet{anchored = 1; name = "Secure Evidence Closet"; req_access_txt = "0"; req_one_access_txt = "3,4"},/obj/item/weapon/storage/secure/briefcase{name = "Secure Evidence Briefcase"; pixel_x = 3; pixel_y = -3},/turf/simulated/floor/plasteel{tag = "icon-vault (EAST)"; icon_state = "vault"; dir = 4},/area/security/warden) "aiM" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Armory"; req_access = null; req_access_txt = "3"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/security/warden) -"aiN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/security/warden) +"aiN" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/flora/kirbyplants{icon_state = "plant-16"; layer = 4.1; tag = "icon-plant-16"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'WARNING: Criminally Insane Inmates', describing the possible hazards of those contained within."; name = "WARNING: Criminally Insane Inmates"; pixel_y = 32},/turf/simulated/floor/plasteel,/area/security/prison) "aiO" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/lattice/catwalk,/turf/space,/area/maintenance/auxsolarstarboard) "aiP" = (/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/floor/plasteel{dir = 9; icon_state = "whitered"},/area/security/brig) "aiQ" = (/obj/structure/table,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/obj/machinery/light/small{dir = 1},/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/weapon/folder/white{pixel_x = -4; pixel_y = 2},/obj/item/device/healthanalyzer,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitered"},/area/security/brig) @@ -556,7 +556,7 @@ "akJ" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitered"},/area/security/brig) "akK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/security/brig) "akL" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/brig) -"akM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 5},/area/security/brig) +"akM" = (/obj/machinery/light{dir = 4},/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 29},/obj/machinery/suit_storage_unit/hos,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) "akN" = (/obj/structure/closet{name = "Evidence Closet 4"},/obj/item/weapon/storage/backpack{name = "Evidence Bag 4"},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/simulated/floor/plasteel{tag = "icon-vault (EAST)"; icon_state = "vault"; dir = 4},/area/security/warden) "akO" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/closet/secure_closet/security/sec,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden) "akP" = (/obj/machinery/deployable/barrier,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/camera{c_tag = "Security - Secure Gear Storage"; dir = 4; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/security/warden) @@ -681,9 +681,9 @@ "ane" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "anf" = (/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "ang" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/space) -"anh" = (/obj/structure/table/reinforced,/obj/item/stack/spacecash/c10,/obj/item/stack/spacecash/c20{pixel_y = 6},/obj/structure/window/reinforced,/obj/item/weapon/stock_parts/cell/crap,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"anh" = (/obj/structure/flora/kirbyplants{icon_state = "applebush"; layer = 4.1; tag = "icon-applebush"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/security/prison) "ani" = (/obj/structure/table/reinforced,/obj/item/weapon/folder,/obj/item/weapon/folder,/obj/machinery/door/window/westleft{base_state = "right"; dir = 2; icon_state = "right"; name = "windoor"; req_access_txt = "0"},/obj/item/weapon/book/manual/wiki/engineering_hacking,/obj/item/device/tape/random,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) -"anj" = (/obj/structure/table/reinforced,/obj/item/stack/spacecash/c100,/obj/structure/window/reinforced,/obj/item/weapon/firealarm_electronics,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"anj" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/prison) "ank" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "anl" = (/obj/structure/rack{dir = 1},/obj/item/clothing/under/rank/mailman,/obj/item/clothing/under/rank/vice{pixel_x = 4; pixel_y = -3},/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "anm" = (/turf/space,/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_f10"; layer = 2},/area/space) @@ -1051,7 +1051,7 @@ "auk" = (/obj/machinery/computer/prisoner,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) "aul" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) "aum" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/security/brig) -"aun" = (/obj/structure/rack,/obj/item/weapon/book/manual/wiki/engineering_guide{pixel_x = 3; pixel_y = 4},/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/starboard) +"aun" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/prison) "auo" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Brig Control"; req_access_txt = "3"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/security/warden) "aup" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/space) "auq" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor,/area/space) @@ -1060,10 +1060,10 @@ "aut" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Gear Room"; req_access_txt = "0"; req_one_access_txt = "1;4"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/security/warden) "auu" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/gloves/color/yellow,/obj/item/clothing/gloves/color/yellow,/obj/item/clothing/gloves/color/yellow,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/weapon/tank/internals/emergency_oxygen/engi,/obj/item/weapon/tank/internals/emergency_oxygen/engi,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/engine/engineering) "auv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) -"auw" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "0"; req_one_access_txt = "1;4"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/security/main) -"aux" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "0"; req_one_access_txt = "1;4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/security/main) +"auw" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = -30},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/prison) +"aux" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/prison) "auy" = (/obj/structure/closet/crate,/turf/simulated/shuttle/floor,/area/space) -"auz" = (/obj/machinery/door/airlock/shuttle{name = "Labor Shuttle Airlock"},/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 5; id = "laborcamp"; name = "labor camp shuttle"; travelDir = 90; width = 9},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 5; id = "laborcamp_home"; name = "fore bay 1"; width = 9},/turf/simulated/shuttle/floor,/area/space) +"auz" = (/obj/structure/sign/securearea,/turf/simulated/wall,/area/security/prison) "auA" = (/obj/machinery/firealarm{dir = 4; pixel_x = 28},/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "Labor Shuttle Dock"; dir = 8; network = list("SS13")},/obj/machinery/flasher{id = "PRelease"; pixel_x = 24; pixel_y = 20},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/hallway/primary/fore) "auB" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 5; health = 120; icon_state = "twindow"; reinf = 0},/turf/simulated/floor/plating,/area/security/main) "auC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/maintenance/fore) @@ -1106,7 +1106,7 @@ "avn" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2 (NORTH)"; icon_state = "pipe-j2"; dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "avo" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "avp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) -"avq" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/flora/kirbyplants{icon_state = "plant-20"; pixel_y = 3; tag = "icon-plant-20"},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/engine/engineering) +"avq" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'WARNING: Dangerous Inmates'."; name = "\improper WARNING: Dangerous Inmates"},/turf/simulated/wall,/area/security/prison) "avr" = (/obj/item/stack/sheet/plasteel{amount = 10; pixel_x = -2; pixel_y = 2},/obj/structure/table,/obj/item/stack/sheet/rglass{amount = 30; pixel_x = 2; pixel_y = -2},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/engine/engineering) "avs" = (/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = ""},/area/engine/engineering) "avt" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/machinery/camera{c_tag = "Mining Office"; dir = 8; network = list("SS13")},/obj/machinery/mineral/equipment_vendor,/turf/simulated/floor/plasteel{dir = 4; icon_state = "brown"},/area/quartermaster/miningdock{name = "\improper Mining Office"}) @@ -1295,7 +1295,7 @@ "ayU" = (/turf/simulated/wall,/area/quartermaster/miningdock{name = "\improper Mining Office"}) "ayV" = (/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor/bluegrid{icon_state = "gcircuit"; luminosity = 2},/area/security/nuke_storage) "ayW" = (/turf/simulated/wall,/area/quartermaster/sorting{name = "\improper Warehouse"}) -"ayX" = (/obj/structure/closet/secure_closet/freezer/money,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/security/nuke_storage) +"ayX" = (/obj/structure/rack,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/gun/projectile/shotgun/riot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/projectile/shotgun/riot{pixel_x = 2; pixel_y = -1},/turf/simulated/floor/plasteel{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/security/warden) "ayY" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/fore) "ayZ" = (/obj/machinery/power/apc{dir = 1; name = "Vault APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/bluegrid{icon_state = "gcircuit"; luminosity = 2},/area/security/nuke_storage) "aza" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/light{dir = 1},/turf/simulated/floor/bluegrid{icon_state = "gcircuit"; luminosity = 2},/area/security/nuke_storage) @@ -1417,7 +1417,7 @@ "aBm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/engine/engineering) "aBn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{sortType = 4},/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/plasteel,/area/engine/engineering) "aBo" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/engine/engineering) -"aBp" = (/obj/structure/table,/obj/item/clothing/gloves/color/fyellow,/obj/item/device/gps,/turf/simulated/floor/plasteel{dir = 9; icon_state = "brown"},/area/storage/primary) +"aBp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/security/warden) "aBq" = (/obj/item/device/multitool,/turf/simulated/floor/plating/airless,/area/engine/engineering) "aBr" = (/obj/item/device/radio/off,/turf/simulated/floor/plating/airless,/area/engine/engineering) "aBs" = (/obj/machinery/camera/emp_proof{c_tag = "Fore Arm - Far"; dir = 8; network = list("Singulo")},/turf/simulated/floor/plating/airless,/area/engine/engineering) @@ -1505,7 +1505,7 @@ "aCW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 1},/area/security/nuke_storage) "aCX" = (/obj/machinery/camera/motion{c_tag = "Vault"; dir = 1; network = list("MiniSat")},/obj/machinery/light,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 10},/area/security/nuke_storage) "aCY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{icon_state = "vault"},/area/security/nuke_storage) -"aCZ" = (/obj/structure/safe,/obj/item/clothing/head/bearpelt,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/gun/projectile/revolver/russian,/obj/item/ammo_box/a357,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 4},/area/security/nuke_storage) +"aCZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/security/warden) "aDa" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall/r_wall,/area/security/nuke_storage) "aDb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/wall/r_wall,/area/security/nuke_storage) "aDc" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/wood,/turf/simulated/floor/wood,/area/lawoffice) @@ -1642,7 +1642,7 @@ "aFD" = (/obj/item/clothing/glasses/meson,/obj/structure/closet/crate,/obj/item/weapon/contraband/poster,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/simulated/floor/plating,/area/maintenance/starboard) "aFE" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "loadingarea"},/area/quartermaster/sorting{name = "\improper Warehouse"}) "aFF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door_control{id = "qm_warehouse"; name = "Warehouse Door Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "50"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/quartermaster/sorting{name = "\improper Warehouse"}) -"aFG" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/stack/sheet/cardboard,/obj/item/stack/rods{amount = 50},/obj/item/weapon/paper,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/quartermaster/sorting{name = "\improper Warehouse"}) +"aFG" = (/obj/item/weapon/beach_ball{icon = 'icons/obj/basketball.dmi'; icon_state = "basketball"; item_state = "basketball"; name = "basket ball"},/turf/simulated/floor/plating,/area/maintenance/fore) "aFH" = (/obj/structure/closet,/obj/item/weapon/contraband/poster,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "aFI" = (/obj/machinery/power/apc{dir = 4; name = "Warehouse APC"; pixel_x = 27; pixel_y = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/quartermaster/sorting{name = "\improper Warehouse"}) "aFJ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/construction/Storage{name = "Storage Wing"}) @@ -1780,8 +1780,8 @@ "aIl" = (/obj/structure/table,/obj/machinery/light_switch{pixel_x = 23},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/engine/engineering) "aIm" = (/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/engine/engineering) "aIn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/quartermaster/storage) -"aIo" = (/obj/structure/table,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/machinery/light/small{dir = 1},/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/tech) -"aIp" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/clothing/gloves/color/yellow,/obj/item/device/t_scanner,/obj/item/device/multitool,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/tech) +"aIo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/sign/pods{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 5},/area/security/brig) +"aIp" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced,/obj/item/weapon/stock_parts/cell/crap,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "aIq" = (/obj/item/weapon/wirecutters,/obj/structure/lattice,/turf/space,/area/space) "aIr" = (/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/construction) "aIs" = (/obj/structure/closet/firecloset,/turf/simulated/floor/plasteel,/area/construction) @@ -1878,7 +1878,7 @@ "aKf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) "aKg" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/hallway/primary/fore) "aKh" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/hallway/primary/fore) -"aKi" = (/obj/structure/closet/secure_closet/courtroom,/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor/plasteel,/area/crew_quarters/courtroom) +"aKi" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced,/obj/item/weapon/firealarm_electronics,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "aKj" = (/obj/structure/stool/bed/chair{name = "Bailiff"},/turf/simulated/floor/plasteel,/area/crew_quarters/courtroom) "aKk" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor/plasteel,/area/crew_quarters/courtroom) "aKl" = (/obj/structure/stool/bed/chair{name = "Judge"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "blue"},/area/crew_quarters/courtroom) @@ -1890,7 +1890,7 @@ "aKr" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/machinery/requests_console{department = "Law office"; pixel_x = 0; pixel_y = 32},/obj/machinery/newscaster{pixel_x = -31; pixel_y = 0},/turf/simulated/floor/wood,/area/lawoffice) "aKs" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/pen/red,/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},/turf/simulated/floor/wood,/area/lawoffice) "aKt" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/briefcase{pixel_x = -3; pixel_y = 2},/obj/item/weapon/storage/secure/briefcase{pixel_x = 2; pixel_y = -2},/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/wood,/area/lawoffice) -"aKu" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 1; name = "Law Office APC"; pixel_y = 24},/obj/structure/flora/kirbyplants{tag = "icon-plant-11"; icon_state = "plant-11"},/turf/simulated/floor/wood,/area/lawoffice) +"aKu" = (/obj/structure/rack,/obj/item/weapon/book/manual/wiki/engineering_guide{pixel_x = 3; pixel_y = 4},/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/maintenance/starboard) "aKv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/wood,/area/lawoffice) "aKw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/fore) "aKx" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/obj/effect/landmark{name = "blobstart"},/obj/machinery/door_control{id = "Toilet1"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) @@ -1922,7 +1922,7 @@ "aKX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "aKY" = (/obj/structure/rack,/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/wrapping_paper,/obj/item/stack/wrapping_paper,/obj/item/device/destTagger{pixel_x = 4; pixel_y = 3},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/quartermaster/storage) "aKZ" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai) -"aLa" = (/obj/item/stack/sheet/cardboard,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aLa" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "0"; req_one_access_txt = "1;4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/security/main) "aLb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/quartermaster/storage) "aLc" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/conveyor{dir = 2; id = "QMLoad2"; movedir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage) "aLd" = (/obj/machinery/conveyor_switch/oneway{convdir = 1; id = "QMLoad2"; pixel_x = 6},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/quartermaster/storage) @@ -1948,7 +1948,7 @@ "aLx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plasteel,/area/crew_quarters/courtroom) "aLy" = (/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 9},/area/crew_quarters/courtroom) "aLz" = (/obj/structure/table/wood,/obj/item/device/radio/intercom{broadcasting = 1; dir = 8; listening = 0; name = "Station Intercom (Court)"; pixel_x = 0},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/crew_quarters/courtroom) -"aLA" = (/obj/structure/table/wood,/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/crew_quarters/courtroom) +"aLA" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_security{name = "Security Office"; req_access_txt = "0"; req_one_access_txt = "1;4"},/turf/simulated/floor/plasteel,/area/security/main) "aLB" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/crew_quarters/courtroom) "aLC" = (/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 5},/area/crew_quarters/courtroom) "aLD" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/crew_quarters/courtroom) @@ -2255,9 +2255,9 @@ "aRs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hydroponics/constructable,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/hallway/secondary/construction{name = "\improper Garden"}) "aRt" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/fancy/grass,/area/hallway/secondary/construction{name = "\improper Garden"}) "aRu" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/fancy/grass,/area/hallway/secondary/construction{name = "\improper Garden"}) -"aRv" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"aRv" = (/obj/structure/closet/secure_closet/freezer/money,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka/badminka,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/clothing/head/bearpelt,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/security/nuke_storage) "aRw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/maintenance/starboard) -"aRx" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"aRx" = (/obj/machinery/door/airlock/shuttle{id_tag = "prisonshuttle"; name = "Labor Shuttle Airlock"},/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 5; id = "laborcamp"; name = "labor camp shuttle"; travelDir = 90; width = 9},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 5; id = "laborcamp_home"; name = "fore bay 1"; width = 9},/turf/simulated/shuttle/floor,/area/space) "aRy" = (/obj/machinery/computer/station_alert,/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = 32},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/engine/engineering) "aRz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/security/checkpoint/engineering) "aRA" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/security/checkpoint/engineering) @@ -2306,7 +2306,7 @@ "aSr" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/courtroom) "aSs" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/courtroom) "aSt" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/courtroom) -"aSu" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/structure/flora/kirbyplants{tag = "icon-plant-03"; icon_state = "plant-03"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/locker) +"aSu" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/flora/kirbyplants{icon_state = "plant-20"; layer = 4.1; pixel_y = 3; tag = "icon-plant-20"},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/engine/engineering) "aSv" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/locker) "aSw" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/locker) "aSx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/locker) @@ -2368,7 +2368,7 @@ "aTB" = (/obj/machinery/computer/supplycomp,/turf/simulated/floor/plasteel{dir = 10; icon_state = "brown"},/area/quartermaster/qm) "aTC" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = -28},/turf/simulated/floor/plasteel{dir = 2; icon_state = "brown"},/area/quartermaster/qm) "aTD" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "brown"},/area/quartermaster/qm) -"aTE" = (/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},/turf/simulated/floor/plasteel{dir = 2; icon_state = "brown"},/area/quartermaster/qm) +"aTE" = (/obj/structure/safe,/obj/item/weapon/storage/secure/briefcase{contents = newlist(/obj/item/clothing/suit/armor/vest,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/suppressor,/obj/item/weapon/melee/classic_baton/telescopic,/obj/item/clothing/mask/balaclava,/obj/item/bodybag,/obj/item/weapon/soap/nanotrasen)},/obj/item/weapon/storage/backpack/dufflebag{contents = newlist(/obj/item/clothing/under/lawyer/blacksuit,/obj/item/clothing/tie/waistcoat,/obj/item/clothing/suit/toggle/lawyer/black,/obj/item/clothing/shoes/laceup,/obj/item/clothing/gloves/color/black,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/fedora); desc = "A large dufflebag for holding extra things. There is a NanoTrasen logo on the back."; icon_state = "duffle-syndieammo"; item_state = "duffle-syndieammo"},/obj/item/weapon/card/id/silver{access = list(12); assignment = "Reaper"; name = "Thirteen's ID Card (Reaper)"; registered_name = "Thirteen"},/obj/item/weapon/lazarus_injector,/obj/item/weapon/gun/energy/gun/advtaser,/obj/item/weapon/gun/projectile/revolver/russian,/obj/item/ammo_box/a357,/obj/item/clothing/tie/stethoscope,/obj/item/weapon/book{desc = "An undeniably handy book."; icon_state = "bookknock"; name = "A Simpleton's Guide to Safe-cracking with Stethoscopes"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 4},/area/security/nuke_storage) "aTF" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1; pixel_y = 2},/obj/machinery/disposal/deliveryChute{dir = 4; name = "Crate Disposal Chute"; pixel_x = -5; pixel_y = 2},/obj/machinery/door/window/westleft{base_state = "right"; dir = 4; icon_state = "right"; name = "Crate Disposal Chute"; req_access_txt = "0"},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/storage/primary) "aTG" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/storage/primary) "aTH" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j1"; dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/storage/primary) @@ -2501,8 +2501,8 @@ "aWe" = (/obj/machinery/power/apc{dir = 1; name = "Security Post - Cargo APC"; pixel_x = 1; pixel_y = 24},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/checkpoint/supply{name = "Security Post - Cargo"}) "aWf" = (/obj/item/weapon/screwdriver{pixel_y = 10},/obj/item/device/radio/off,/obj/machinery/light{dir = 1},/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/checkpoint/supply{name = "Security Post - Cargo"}) "aWg" = (/obj/structure/filingcabinet,/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 5},/area/security/checkpoint/supply{name = "Security Post - Cargo"}) -"aWh" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/analyzer,/obj/machinery/power/apc{dir = 2; name = "Tool Storage APC"; pixel_x = 0; pixel_y = -27},/obj/structure/cable/yellow,/turf/simulated/floor/plasteel{dir = 10; icon_state = "brown"},/area/storage/primary) -"aWi" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/plasteel{dir = 2; icon_state = "brown"},/area/storage/primary) +"aWh" = (/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aWi" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/stack/sheet/cardboard,/obj/item/stack/rods{amount = 50},/obj/item/weapon/paper,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/quartermaster/sorting{name = "\improper Warehouse"}) "aWj" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plasteel{dir = 2; icon_state = "brown"},/area/storage/primary) "aWk" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "brown"},/area/storage/primary) "aWl" = (/obj/structure/reagent_dispensers/fueltank,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 2; icon_state = "brown"},/area/storage/primary) @@ -2547,7 +2547,7 @@ "aWY" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/engine/engineering) "aWZ" = (/obj/item/weapon/wrench,/turf/simulated/floor/plating/airless,/area/engine/engineering) "aXa" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; layer = 2.9; name = "bridge blast door"},/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/bridge) -"aXb" = (/obj/structure/flora/kirbyplants{tag = "icon-plant-13"; icon_state = "plant-13"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) +"aXb" = (/obj/structure/closet/secure_closet/courtroom,/obj/machinery/light_switch{pixel_y = 28},/obj/item/weapon/gavelblock,/obj/item/weapon/gavelhammer,/turf/simulated/floor/plasteel,/area/crew_quarters/courtroom) "aXc" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "aXd" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "aXe" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) @@ -2583,7 +2583,7 @@ "aXI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload_foyer) "aXJ" = (/obj/machinery/door/airlock/highsecurity{name = "Secure Network Access"; req_access_txt = "19"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/turret_protected/ai_upload_foyer) "aXK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload_foyer) -"aXL" = (/obj/machinery/alarm{pixel_y = 23},/obj/structure/flora/kirbyplants{tag = "icon-applebush"; icon_state = "applebush"},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 9},/area/hallway/primary/central) +"aXL" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 1; name = "Law Office APC"; pixel_y = 24},/obj/structure/flora/kirbyplants{icon_state = "plant-21"; layer = 4.1; tag = "icon-plant-21"},/turf/simulated/floor/wood,/area/lawoffice) "aXM" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/hallway/primary/central) "aXN" = (/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/hallway/primary/central) "aXO" = (/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = 32},/obj/machinery/camera{c_tag = "Central Primary Hallway - Fore"; dir = 2; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/hallway/primary/central) @@ -2593,7 +2593,7 @@ "aXS" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 4},/area/hallway/primary/central) "aXT" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/hallway/primary/central) "aXU" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/hallway/primary/central) -"aXV" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/flora/kirbyplants{tag = "icon-plant-16"; icon_state = "plant-16"},/turf/simulated/floor/plasteel{dir = 5; icon_state = "neutral"},/area/hallway/primary/central) +"aXV" = (/obj/structure/table/wood,/obj/item/weapon/gavelblock,/obj/item/weapon/gavelhammer,/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/crew_quarters/courtroom) "aXW" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 5; health = 120; icon_state = "twindow"; reinf = 0},/turf/simulated/floor/plating,/area/crew_quarters/courtroom) "aXX" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Courtroom"; opacity = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/courtroom) "aXY" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/hallway/primary/port) @@ -2665,11 +2665,11 @@ "aZm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/hallway/primary/central) "aZn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/hallway/primary/central) "aZo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/hallway/primary/central) -"aZp" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/machinery/camera{c_tag = "Central Primary Hallway - Fore - AI Upload"; dir = 2; network = list("SS13")},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/hallway/primary/central) +"aZp" = (/obj/structure/table,/obj/item/clothing/gloves/color/fyellow,/obj/item/device/gps{gpstag = "AUX0"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "brown"},/area/storage/primary) "aZq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/primary/central) "aZr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/primary/central) "aZs" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/primary/central) -"aZt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/hallway/primary/central) +"aZt" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/structure/flora/kirbyplants{icon_state = "plant-03"; layer = 4.1; tag = "icon-plant-03"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/locker) "aZu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "L1"},/area/hallway/primary/central) "aZv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "L3"},/area/hallway/primary/central) "aZw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "L5"},/area/hallway/primary/central) @@ -2727,7 +2727,7 @@ "baw" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/turf/simulated/floor/plating,/area/hallway/secondary/entry{name = "Arrivals"}) "bax" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "bay" = (/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) -"baz" = (/obj/structure/flora/kirbyplants{tag = "icon-plant-05"; icon_state = "plant-05"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) +"baz" = (/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/item/device/gps{gpstag = "QM0"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "brown"},/area/quartermaster/qm) "baA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "baB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (NORTH)"; icon_state = "warningcorner"; dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) "baC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"}) @@ -2799,12 +2799,12 @@ "bbQ" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/light/small,/turf/simulated/floor/plasteel{tag = "icon-vault (SOUTHWEST)"; icon_state = "vault"; dir = 10},/area/turret_protected/ai) "bbR" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bbS" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/grille,/turf/space,/area/space) -"bbT" = (/obj/machinery/power/apc{cell_type = 10000; dir = 1; name = "Bridge APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/filingcabinet/chestdrawer{pixel_y = 3},/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkblue"; tag = "icon-darkbluecorners (WEST)"},/area/bridge) +"bbT" = (/obj/structure/table,/obj/item/device/analyzer,/obj/machinery/power/apc{dir = 2; name = "Tool Storage APC"; pixel_x = 0; pixel_y = -27},/obj/structure/cable/yellow,/obj/item/weapon/wrench,/turf/simulated/floor/plasteel{dir = 10; icon_state = "brown"},/area/storage/primary) "bbU" = (/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/hallway/secondary/entry{name = "Arrivals"}) "bbV" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/hallway/secondary/entry{name = "Arrivals"}) "bbW" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/hallway/secondary/entry{name = "Arrivals"}) "bbX" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/hallway/secondary/entry{name = "Arrivals"}) -"bbY" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "darkblue"},/area/bridge) +"bbY" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plasteel{dir = 2; icon_state = "brown"},/area/storage/primary) "bbZ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "bca" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"}) "bcb" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;48;50;1"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) @@ -2864,12 +2864,12 @@ "bdd" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/maintenance/starboard) "bde" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/borgupload{pixel_x = -1; pixel_y = 1},/obj/item/weapon/circuitboard/aiupload{pixel_x = 2; pixel_y = -2},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 4},/area/storage/tech) "bdf" = (/obj/machinery/camera{c_tag = "Secure Tech Storage"; dir = 8},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/tech) -"bdg" = (/obj/structure/table,/obj/item/weapon/module/power_control,/obj/item/weapon/airlock_electronics,/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/tech) +"bdg" = (/obj/structure/flora/kirbyplants{icon_state = "plant-13"; layer = 4.1; tag = "icon-plant-13"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "bdh" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/message_monitor{pixel_y = -5},/obj/item/weapon/circuitboard/arcade/battle{pixel_x = -4; pixel_y = 2},/obj/item/weapon/circuitboard/arcade/orion_trail{pixel_x = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/tech) "bdi" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/mining,/obj/item/weapon/circuitboard/autolathe{pixel_x = 3; pixel_y = -3},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/tech) "bdj" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/pandemic{pixel_x = -3; pixel_y = 3},/obj/item/weapon/circuitboard/rdconsole,/obj/item/weapon/circuitboard/rdserver{pixel_x = 3; pixel_y = -3},/obj/item/weapon/circuitboard/destructive_analyzer,/obj/item/weapon/circuitboard/protolathe,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/tech) "bdk" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/storage/tech) -"bdl" = (/obj/structure/table,/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/weapon/wirecutters,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/tech) +"bdl" = (/obj/machinery/alarm{pixel_y = 23},/obj/structure/flora/kirbyplants{icon_state = "applebush"; layer = 4.1; tag = "icon-applebush"},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 9},/area/hallway/primary/central) "bdm" = (/obj/machinery/door_control{id = "transittube"; name = "Transit Tube Lockdown"; pixel_x = -24; pixel_y = -5; req_access_txt = "24"},/obj/machinery/door_control{desc = "A remote control-switch for secure storage."; id = "Secure Storage"; name = "Engineering Secure Storage"; pixel_x = -24; pixel_y = 5; req_access_txt = "11"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/chiefs_office) "bdn" = (/obj/item/weapon/cartridge/engineering{pixel_x = 4; pixel_y = 5},/obj/item/weapon/cartridge/engineering{pixel_x = -3; pixel_y = 2},/obj/item/weapon/cartridge/engineering{pixel_x = 3},/obj/structure/table/reinforced,/obj/item/weapon/cartridge/atmos,/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 4},/area/engine/chiefs_office) "bdo" = (/obj/effect/landmark/start{name = "Chief Engineer"},/obj/structure/stool/bed/chair/office/light{dir = 1; pixel_y = 3},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) @@ -2950,18 +2950,18 @@ "beL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/storage/tech) "beM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/storage/tech) "beN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/storage/tech) -"beO" = (/obj/structure/table,/obj/item/device/multitool,/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/storage/tech) +"beO" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/flora/kirbyplants{icon_state = "plant-16"; layer = 4.1; tag = "icon-plant-16"},/turf/simulated/floor/plasteel{dir = 5; icon_state = "neutral"},/area/hallway/primary/central) "beP" = (/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/chiefs_office) "beQ" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Personnel's Desk"; departmentType = 5; name = "Head of Personnel RC"; pixel_y = 30},/obj/machinery/light{dir = 1},/obj/item/weapon/storage/secure/briefcase,/obj/structure/table/wood,/turf/simulated/floor/wood,/area/crew_quarters/heads) "beR" = (/obj/machinery/door/airlock{name = "Central Emergency Storage"; req_access_txt = "0"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) "beS" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Bridge"; departmentType = 5; name = "Bridge RC"; pixel_x = 32; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/computer/ordercomp,/turf/simulated/floor/plasteel{dir = 5; icon_state = "darkblue"},/area/bridge) -"beT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/bridge) +"beT" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/machinery/camera{c_tag = "Central Primary Hallway - Fore - AI Upload"; dir = 2; network = list("SS13")},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH-POWER TURRETS AHEAD'."; name = "\improper HIGH-POWER TURRETS AHEAD"; pixel_y = 32},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/hallway/primary/central) "beU" = (/obj/structure/closet/toolcloset,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/engine/engineering) "beV" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/engine/engineering) "beW" = (/obj/machinery/power/apc{dir = 8; name = "Engineering Security APC"; pixel_x = -24},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/checkpoint/engineering) "beX" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/security/checkpoint/engineering) "beY" = (/obj/machinery/computer/secure_data,/obj/machinery/computer/security/telescreen{desc = "Used for monitoring the singularity engine safely."; dir = 8; name = "Singularity Monitor"; network = list("Singulo"); pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/checkpoint/engineering) -"beZ" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -26; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/camera{c_tag = "Bridge - Port"; dir = 4; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 8; icon_state = "darkblue"; tag = "icon-darkbluecorners (WEST)"},/area/bridge) +"beZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/obj/structure/sign/securearea{pixel_y = 32},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/hallway/primary/central) "bfa" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/bridge) "bfb" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/lattice,/turf/space,/area/space) "bfc" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/construction/hallway{name = "\improper MiniSat Exterior"}) @@ -3010,7 +3010,7 @@ "bfT" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/simulated/floor/plating,/area/storage/art) "bfU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central) "bfV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j1s"; sortType = 22},/turf/simulated/floor/plasteel,/area/hallway/primary/central) -"bfW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/central) +"bfW" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/clothing/gloves/color/yellow,/obj/item/device/t_scanner,/obj/item/device/multitool,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/tech) "bfX" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/light_switch{pixel_x = 8; pixel_y = 30},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/janitor) "bfY" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/janitor) "bfZ" = (/obj/structure/closet/l3closet/janitor,/obj/machinery/alarm{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/janitor) @@ -3071,7 +3071,7 @@ "bhc" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"; dir = 2},/area/space) "bhd" = (/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/hop,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table/wood,/turf/simulated/floor/wood,/area/crew_quarters/heads) "bhe" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "hop"; name = "privacy shutters"},/turf/simulated/floor/plating,/area/crew_quarters/heads) -"bhf" = (/obj/machinery/newscaster/security_unit{pixel_x = 32; pixel_y = 0},/obj/item/weapon/storage/box/PDAs{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/ids,/obj/structure/table/wood,/turf/simulated/floor/wood,/area/crew_quarters/heads) +"bhf" = (/obj/structure/table,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/machinery/light/small{dir = 1},/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/tech) "bhg" = (/obj/effect/landmark/start{name = "Head of Personnel"},/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/wood,/area/crew_quarters/heads) "bhh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/stool/bed/chair/office/dark{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Bridge - Starboard"; dir = 8; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 4; icon_state = "darkblue"; tag = "icon-darkbluecorners (WEST)"},/area/bridge) "bhi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/table/reinforced,/obj/item/weapon/folder/red,/obj/item/weapon/folder/red,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/checkpoint2{name = "Customs"}) @@ -3107,7 +3107,7 @@ "bhM" = (/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/security/checkpoint2{name = "Customs"}) "bhN" = (/obj/machinery/door/airlock/maintenance{name = "Mailroom Maintenance"; req_access_txt = "50"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/quartermaster/office{name = "\improper Cargo Office"}) "bhO" = (/obj/machinery/door/airlock/maintenance{name = "Custodial Maintenance"; req_access_txt = "26"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/janitor) -"bhP" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "darkblue"; tag = "icon-darkbluecorners (WEST)"},/area/bridge) +"bhP" = (/obj/structure/flora/kirbyplants{icon_state = "plant-05"; layer = 4.1; tag = "icon-plant-05"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "bhQ" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "darkblue"; tag = "icon-darkbluecorners (WEST)"},/area/bridge) "bhR" = (/turf/simulated/floor/plasteel{tag = "icon-darkbluecorners"; icon_state = "darkbluecorners"; temperature = 273.15},/area/bridge) "bhS" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/recharger,/obj/item/weapon/restraints/handcuffs,/obj/structure/table/glass,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/bridge) @@ -3195,7 +3195,7 @@ "bjw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/storage) "bjx" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "browncorner"},/area/hallway/primary/port) "bjy" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{dir = 2; icon_state = "brown"},/area/hallway/primary/port) -"bjz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/central) +"bjz" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/tech) "bjA" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) "bjB" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/mob/living/simple_animal/lizard{name = "Wags-His-Tail"; real_name = "Wags-His-Tail"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/janitor) "bjC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/effect/landmark/start{name = "Janitor"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/janitor) @@ -3360,11 +3360,11 @@ "bmF" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/hallway/primary/port) "bmG" = (/obj/structure/extinguisher_cabinet{pixel_x = 30; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 5; icon_state = "neutral"},/area/hallway/primary/port) "bmH" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/turretid{control_area = "\improper MiniSat West Wing"; enabled = 0; icon_state = "control_stun"; name = "MiniSat West Wing turret control"; pixel_x = 0; pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/tcomfoyer{name = "\improper MiniSat Teleporter Foyer"}) -"bmI" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/folder/yellow,/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "arrival"},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bmI" = (/obj/structure/table,/obj/item/weapon/module/power_control,/obj/item/weapon/airlock_electronics,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/tech) "bmJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/stool/bed/chair/office/dark,/obj/effect/landmark/start{name = "Cargo Technician"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "arrival"},/area/quartermaster/office{name = "\improper Cargo Office"}) "bmK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "arrival"},/area/quartermaster/office{name = "\improper Cargo Office"}) "bmL" = (/obj/structure/filingcabinet/filingcabinet,/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = -28},/obj/machinery/camera{c_tag = "Cargo - Mailroom"; dir = 1; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 2; icon_state = "arrival"},/area/quartermaster/office{name = "\improper Cargo Office"}) -"bmM" = (/obj/structure/table,/obj/item/stack/wrapping_paper,/obj/item/stack/wrapping_paper,/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_y = -30},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/turf/simulated/floor/plasteel{dir = 2; icon_state = "arrival"},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bmM" = (/obj/item/stack/sheet/cardboard,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "bmN" = (/obj/item/weapon/storage/box,/obj/structure/table,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/item/weapon/hand_labeler,/turf/simulated/floor/plasteel{icon_state = "arrival"; dir = 6},/area/quartermaster/office{name = "\improper Cargo Office"}) "bmO" = (/obj/structure/table,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29},/obj/item/weapon/storage/firstaid/regular{pixel_x = 0; pixel_y = 0},/obj/machinery/power/apc{dir = 2; name = "Cargo Office APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable/yellow,/turf/simulated/floor/plasteel{dir = 10; icon_state = "brown"},/area/quartermaster/office{name = "\improper Cargo Office"}) "bmP" = (/obj/machinery/photocopier,/turf/simulated/floor/plasteel{dir = 2; icon_state = "brown"},/area/quartermaster/office{name = "\improper Cargo Office"}) @@ -3380,7 +3380,7 @@ "bmZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/central) "bna" = (/turf/simulated/wall/r_wall,/area/crew_quarters/heads) "bnb" = (/obj/item/device/radio/off,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/maintcentral{name = "Central Maintenance"}) -"bnc" = (/obj/item/weapon/extinguisher,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bnc" = (/obj/structure/table,/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/weapon/wirecutters,/obj/item/device/multitool,/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/storage/tech) "bnd" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "Bridge"},/obj/structure/plasticflaps{opacity = 1},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/maintenance/maintcentral{name = "Central Maintenance"}) "bne" = (/obj/machinery/door/window/westleft{dir = 4; name = "Bridge Deliveries"; req_access_txt = "19"},/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/bridge) "bnf" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/bridge) @@ -3449,7 +3449,7 @@ "boq" = (/obj/structure/rack,/obj/item/weapon/module/power_control,/obj/item/weapon/airlock_electronics,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plasteel{dir = 2; icon_state = "yellow"},/area/storage/tools) "bor" = (/obj/structure/stool/bed/chair/comfy/brown{tag = "icon-comfychair (EAST)"; icon_state = "comfychair"; dir = 4},/turf/simulated/floor/fancy/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) "bos" = (/obj/structure/stool/bed/chair/comfy/brown{tag = "icon-comfychair (WEST)"; icon_state = "comfychair"; dir = 8},/turf/simulated/floor/fancy/carpet,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) -"bot" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/maintenance/storage) +"bot" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/central) "bou" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/hallway/secondary/entry{name = "Arrivals"}) "bov" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"}) "bow" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/hallway/primary/port) @@ -3469,8 +3469,8 @@ "boK" = (/obj/structure/table/wood,/obj/item/weapon/book/manual/wiki/security_space_law{pixel_y = 3},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/bridge) "boL" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "brown"},/area/hallway/primary/port) "boM" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{dir = 4; icon_state = "brown"},/area/hallway/primary/port) -"boN" = (/obj/structure/sign/directions/security{desc = "A direction sign, pointing out which way the security department is."; dir = 1; icon_state = "direction_sec"; pixel_x = 0; pixel_y = 8; tag = "icon-direction_sec (NORTH)"},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the engineering department is."; dir = 4; icon_state = "direction_eng"; pixel_y = -8; tag = "icon-direction_eng (EAST)"},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the bridge is."; dir = 4; icon_state = "direction_bridge"; name = "bridge"; tag = "icon-direction_bridge (EAST)"},/turf/simulated/wall/r_wall,/area/hallway/primary/port) -"boO" = (/obj/structure/grille,/turf/simulated/wall/r_wall,/area/maintenance/storage) +"boN" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "ceprivacy"; name = "privacy shutter"},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"boO" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "ceprivacy"; name = "privacy shutter"},/turf/simulated/floor/plating,/area/engine/chiefs_office) "boP" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/junction{dir = 2; icon_state = "pipe-j1"},/turf/simulated/floor/plasteel,/area/hallway/primary/port) "boQ" = (/obj/structure/sign/pods,/turf/simulated/wall,/area/security/checkpoint2{name = "Customs"}) "boR" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1},/obj/machinery/light/small,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/obj/structure/stool/bed/chair/janicart,/obj/item/key/janitor,/turf/simulated/floor/plating,/area/janitor) @@ -3478,7 +3478,7 @@ "boT" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/bridge/meeting_room{name = "\improper Command Hallway"}) "boU" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/bridge/meeting_room{name = "\improper Command Hallway"}) "boV" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) -"boW" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"boW" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen{pixel_x = 4; pixel_y = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "arrival"},/area/quartermaster/office{name = "\improper Cargo Office"}) "boX" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) "boY" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plasteel{dir = 10; icon_state = "brown"},/area/hallway/primary/port) "boZ" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/machinery/light_switch{pixel_x = 28; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/bridge) @@ -3489,15 +3489,15 @@ "bpe" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "council blast"; layer = 2.9; name = "Council Blast Doors"; opacity = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/bridge) "bpf" = (/obj/structure/table/wood,/obj/item/weapon/folder/yellow,/obj/machinery/firealarm{pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/bridge) "bpg" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel,/area/engine/break_room) -"bph" = (/obj/item/weapon/reagent_containers/food/snacks/pie,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/table/wood,/turf/simulated/floor/wood,/area/crew_quarters/theatre) -"bpi" = (/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) +"bph" = (/obj/structure/table,/obj/item/stack/wrapping_paper,/obj/item/stack/wrapping_paper,/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_y = -30},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/stack/packageWrap{pixel_x = 2; pixel_y = -3},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plasteel{dir = 2; icon_state = "arrival"},/area/quartermaster/office{name = "\improper Cargo Office"}) +"bpi" = (/obj/item/weapon/extinguisher,/turf/simulated/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) "bpj" = (/turf/simulated/wall,/area/crew_quarters/bar) "bpk" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bpl" = (/obj/structure/sign/pods,/turf/simulated/wall,/area/engine/break_room) "bpm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/central) "bpn" = (/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/central) "bpo" = (/turf/simulated/wall,/area/storage/art) -"bpp" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/structure/grille,/turf/simulated/wall/r_wall,/area/maintenance/storage) +"bpp" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/maintcentral{name = "Central Maintenance"}) "bpq" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{icon = 'icons/obj/doors/Doorengglass.dmi'; name = "Art Storage"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/storage/art) "bpr" = (/obj/structure/table/wood,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/gun/projectile/revolver/doublebarrel,/obj/machinery/camera{c_tag = "Maltese Falcon - Backroom"; dir = 2; network = list("SS13")},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bps" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/starboard) @@ -3574,12 +3574,12 @@ "bqL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/structure/table/reinforced,/obj/machinery/door/window/westleft{dir = 1; name = "Delivery Desk"; req_access_txt = "50"},/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/office{name = "\improper Cargo Office"}) "bqM" = (/obj/machinery/reagentgrinder,/obj/structure/table/wood,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bqN" = (/obj/machinery/door/window/southleft{base_state = "left"; dir = 2; icon_state = "left"; name = "Bar Delivery"; req_access_txt = "25"},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/crew_quarters/bar) -"bqO" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/structure/grille,/turf/simulated/wall/r_wall,/area/maintenance/storage) +"bqO" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 29},/obj/machinery/computer/teleporter,/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkblue"; tag = "icon-darkbluecorners (WEST)"},/area/bridge) "bqP" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/bridge/meeting_room{name = "\improper Command Hallway"}) "bqQ" = (/obj/structure/sink/kitchen{pixel_y = 28},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bqR" = (/obj/item/weapon/soap/nanotrasen,/obj/machinery/light/small{dir = 4},/obj/structure/table/wood,/turf/simulated/floor/wood,/area/crew_quarters/theatre) "bqS" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=1"; freq = 1400; location = "Bar"},/obj/structure/plasticflaps{opacity = 1},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/crew_quarters/bar) -"bqT" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/goonplaque{desc = "\"This is a plaque in honour of our comrades on the G4407 Stations. Hopefully TG4407 model can live up to your fame and fortune.\" Scratched in beneath that is a crude image of sentient postcards in a realm of darkness. The station model number is MSv40D:150223"},/area/hallway/primary/port) +"bqT" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/filingcabinet/chestdrawer{pixel_y = 3},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 9; icon_state = "darkblue"},/area/bridge) "bqU" = (/obj/machinery/light/small{dir = 8},/obj/item/weapon/vending_refill/cigarette,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bqV" = (/turf/simulated/floor/fancy/carpet,/area/bridge) "bqW" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/crew_quarters/bar) @@ -3723,7 +3723,7 @@ "btE" = (/obj/structure/reagent_dispensers/beerkeg,/turf/simulated/floor/wood,/area/crew_quarters/bar) "btF" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/crew_quarters/bar) "btG" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"btH" = (/obj/structure/closet/gmcloset{desc = "It's a storage unit."; name = "spare gear"},/obj/item/weapon/wrench,/turf/simulated/floor/wood,/area/crew_quarters/bar) +"btH" = (/obj/structure/sign/directions/security{desc = "A direction sign, pointing out which way the security department is."; dir = 1; icon_state = "direction_sec"; pixel_x = 0; pixel_y = 8; tag = "icon-direction_sec (NORTH)"},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the engineering department is."; dir = 4; icon_state = "direction_eng"; pixel_y = 0; tag = "icon-direction_eng (EAST)"},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the bridge is."; dir = 2; icon_state = "direction_bridge"; name = "bridge"; pixel_y = -8; tag = "icon-direction_bridge (EAST)"},/turf/simulated/wall/r_wall,/area/hallway/primary/port) "btI" = (/obj/machinery/door/airlock/maintenance{name = "Engineering Foyer Maintenance"; req_access_txt = "0"; req_one_access_txt = "32;19"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/engine/break_room) "btJ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/gateway) "btK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/starboard) @@ -3818,7 +3818,7 @@ "bvv" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/door_control{id = "evashutter"; name = "E.V.A. Storage Shutter Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "19"},/obj/machinery/door_control{id = "gateshutter"; name = "Gateway Shutter Control"; pixel_x = 0; pixel_y = -34; req_access_txt = "19"},/turf/simulated/floor/fancy/carpet,/area/bridge) "bvw" = (/obj/item/clothing/mask/fakemoustache,/obj/item/clothing/mask/cigarette/pipe,/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/camera{c_tag = "Theatre - Backstage"; dir = 1; network = list("SS13")},/obj/structure/table/wood,/turf/simulated/floor/wood,/area/crew_quarters/theatre) "bvx" = (/obj/item/device/taperecorder{pixel_y = 0},/obj/item/device/camera,/obj/item/device/radio/intercom{pixel_y = -25},/obj/structure/table/wood,/turf/simulated/floor/plasteel{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/library) -"bvy" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/stack/cable_coil,/obj/item/device/mmi{name = "man-machine interface"},/obj/structure/table/wood,/turf/simulated/floor/fancy/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bvy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/bridge) "bvz" = (/obj/structure/table/wood,/obj/structure/window/reinforced,/obj/machinery/light_switch{pixel_x = -28; pixel_y = 0},/obj/item/weapon/storage/secure/briefcase{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/lockbox/medal{pixel_y = 0},/turf/simulated/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) "bvA" = (/obj/machinery/door/window{name = "Captain's Desk"; req_access_txt = "20"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) "bvB" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/structure/window/reinforced,/turf/simulated/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) @@ -3847,7 +3847,7 @@ "bvY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "caution"},/area/engine/break_room) "bvZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/computer/security/telescreen{dir = 8; name = "MiniSat Monitor"; network = list("MiniSat","tcomm"); pixel_x = 29; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "caution"},/area/engine/break_room) "bwa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/break_room) -"bwb" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/item/weapon/surgical_drapes,/obj/item/weapon/retractor{desc = "A handy surgical tool which allows the user to peel back their victim's flesh. The label warns users to 'Aim away from face.'"; name = "retractor"; pixel_y = 3},/obj/structure/table/wood,/turf/simulated/floor/fancy/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bwb" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "darkblue"; tag = "icon-darkbluecorners (WEST)"},/area/bridge) "bwc" = (/obj/structure/transit_tube{tag = "icon-D-SW"; icon_state = "D-SW"},/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/turf/space,/area/space) "bwd" = (/obj/structure/transit_tube{tag = "icon-N-SW"; icon_state = "N-SW"},/obj/structure/lattice,/turf/space,/area/space) "bwe" = (/obj/structure/transit_tube{tag = "icon-D-SE"; icon_state = "D-SE"},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/space,/area/space) @@ -3870,12 +3870,12 @@ "bwv" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "bww" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "bwx" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) -"bwy" = (/obj/structure/flora/kirbyplants{tag = "icon-plant-18"; icon_state = "plant-18"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) +"bwy" = (/obj/machinery/newscaster/security_unit{pixel_x = 32; pixel_y = 0},/obj/item/weapon/storage/box/PDAs{pixel_x = 4; pixel_y = 4},/obj/structure/table/wood,/obj/item/weapon/storage/box/silver_ids,/obj/item/weapon/storage/box/ids,/turf/simulated/floor/wood,/area/crew_quarters/heads) "bwz" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "bwA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) -"bwB" = (/obj/structure/flora/kirbyplants{tag = "icon-plant-08"; icon_state = "plant-08"},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/primary/port) +"bwB" = (/obj/machinery/power/apc{cell_type = 10000; dir = 8; name = "Bridge APC"; pixel_x = -27; pixel_y = 0},/obj/structure/cable/yellow,/obj/machinery/camera{c_tag = "Bridge - Port"; dir = 4; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 8; icon_state = "darkblue"; tag = "icon-darkbluecorners (WEST)"},/area/bridge) "bwC" = (/obj/machinery/computer/arcade,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bwD" = (/obj/structure/flora/kirbyplants{tag = "icon-plant-03"; icon_state = "plant-03"},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/primary/port) +"bwD" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/goonplaque{desc = "\"This is a plaque in honour of our comrades on the G4407 Stations. Hopefully TG4407 model can live up to your fame and fortune.\" Scratched in beneath that is a crude image of sentient postcards in a realm of darkness. The station model number is MSv41AII:150412"},/area/hallway/primary/port) "bwE" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/camera{c_tag = "Port Primary Hallway - Port"; dir = 4; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/hallway/primary/port) "bwF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 8},/area/hallway/primary/port) "bwG" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 4},/area/hallway/primary/port) @@ -3896,7 +3896,7 @@ "bwV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/fancy/carpet,/area/crew_quarters/heads) "bwW" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/item/device/radio/intercom{dir = 2; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/obj/machinery/hologram/holopad,/obj/machinery/camera{c_tag = "Head of Personnel's Office"; dir = 1; network = list("SS13")},/turf/simulated/floor/fancy/carpet,/area/crew_quarters/heads) "bwX" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/fancy/carpet,/area/crew_quarters/heads) -"bwY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/mob/living/simple_animal/pet/corgi/Ian,/turf/simulated/floor/fancy/carpet,/area/crew_quarters/heads) +"bwY" = (/mob/living/simple_animal/pet/corgi/Ian,/turf/simulated/floor/fancy/carpet,/area/crew_quarters/heads) "bwZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/fancy/carpet,/area/crew_quarters/heads) "bxa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/stool/bed/chair/comfy/beige,/turf/simulated/floor/fancy/carpet,/area/bridge) "bxb" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/showcase{desc = "A slightly battered looking TV. Vaious Nanotrasen infomercials play on a loop, accompanied by a jaunty tune."; dir = 1; icon = 'icons/obj/computer.dmi'; icon_state = "security_det"; name = "NanoTrasen corporate newsfeed"; pixel_x = 2; pixel_y = 3},/obj/structure/table/wood,/turf/simulated/floor/fancy/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) @@ -3907,8 +3907,8 @@ "bxg" = (/obj/machinery/door_control{id = "bridge blast"; name = "Bridge Access Blast Door Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "19"},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/door_control{id = "council blast"; name = "Council Chamber Blast Door Control"; pixel_x = -1; pixel_y = -34; req_access_txt = "19"},/obj/machinery/camera{c_tag = "Bridge - Command Chair"; dir = 1; network = list("SS13")},/turf/simulated/floor/fancy/carpet,/area/bridge) "bxh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/bridge) "bxi" = (/obj/structure/bookcase,/turf/simulated/floor/wood,/area/bridge) -"bxj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/item/weapon/folder/blue,/obj/item/weapon/disk/data,/obj/item/weapon/disk/tech_disk{name = "technology disk"; pixel_x = 3; pixel_y = -1},/obj/item/weapon/disk/design_disk{name = "component design disk"; pixel_x = 1; pixel_y = -2},/obj/structure/table/wood,/turf/simulated/floor/fancy/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) -"bxk" = (/obj/item/weapon/book/manual/wiki/security_space_law{name = "space law"; pixel_y = 2},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/item/toy/gun{name = "cap gun"},/obj/item/weapon/restraints/handcuffs{name = "handcuffs"},/obj/item/clothing/head/HoS,/obj/structure/table/wood,/turf/simulated/floor/fancy/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bxj" = (/obj/structure/closet/gmcloset{desc = "It's a storage unit."; icon_state = "black"; name = "spare gear"},/obj/item/weapon/wrench,/turf/simulated/floor/wood,/area/crew_quarters/bar) +"bxk" = (/obj/structure/flora/kirbyplants{icon_state = "plant-18"; layer = 4.1; tag = "icon-plant-18"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "bxl" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/machinery/vending/snack{pixel_x = -2},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/bridge) "bxm" = (/obj/item/weapon/storage/toolbox/emergency,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/starboard) "bxn" = (/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the escape arm is."; icon_state = "direction_evac"; name = "escape arm"; tag = "icon-direction_evac"},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the medical department is."; icon_state = "direction_med"; name = "medical department"; pixel_y = 8; tag = "icon-direction_med"},/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the research department is."; icon_state = "direction_sci"; name = "research department"; pixel_y = -8; tag = "icon-direction_sci"},/turf/simulated/wall,/area/library) @@ -3921,7 +3921,7 @@ "bxu" = (/obj/structure/table,/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/obj/machinery/chem_dispenser/drinks,/obj/structure/sign/barsign{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "bxv" = (/turf/simulated/floor/fancy/carpet{tag = "icon-carpet14-10"; icon_state = "carpet14-10"},/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) "bxw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/fancy/carpet{tag = "icon-carpet14-10"; icon_state = "carpet14-10"},/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) -"bxx" = (/obj/machinery/camera{c_tag = "Maltese Falcon - Bar"; dir = 2; network = list("SS13")},/obj/machinery/requests_console{department = "Bar"; departmentType = 2; pixel_x = 0; pixel_y = 30},/obj/structure/table,/obj/item/weapon/book/manual/barman_recipes{pixel_y = 5},/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/weapon/reagent_containers/glass/rag{pixel_y = 5},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"bxx" = (/obj/structure/flora/kirbyplants{icon_state = "plant-08"; layer = 4.1; tag = "icon-plant-08"},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/primary/port) "bxy" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks/beer,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "bxz" = (/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "bxA" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/maintenance/starboard) @@ -3963,7 +3963,7 @@ "byk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/rack,/obj/item/weapon/crowbar/red,/obj/item/weapon/wrench,/obj/item/clothing/head/welding,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/tcomeast{name = "\improper MiniSat East Wing"}) "byl" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/storage/toolbox/emergency{pixel_x = 3; pixel_y = -3},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/tcomeast{name = "\improper MiniSat East Wing"}) "bym" = (/obj/machinery/recharge_station,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/tcomeast{name = "\improper MiniSat East Wing"}) -"byn" = (/obj/structure/flora/kirbyplants{tag = "icon-plant-20"; icon_state = "plant-20"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) +"byn" = (/obj/structure/flora/kirbyplants{icon_state = "plant-03"; layer = 4.1; tag = "icon-plant-03"},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/primary/port) "byo" = (/obj/structure/stool/bed/chair,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "byp" = (/obj/structure/stool/bed/chair,/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "byq" = (/turf/simulated/floor/plasteel{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/hallway/secondary/entry{name = "Arrivals"}) @@ -4026,7 +4026,7 @@ "bzv" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bzw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bzx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/fancy/carpet{tag = "icon-carpet11-12"; icon_state = "carpet11-12"},/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) -"bzy" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Maltese Falcon - Gambling Den Fore"; dir = 2; network = list("SS13")},/turf/simulated/floor/wood,/area/crew_quarters/bar) +"bzy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/fancy/carpet,/area/crew_quarters/heads) "bzz" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bzA" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_Toxins = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bzB" = (/turf/simulated/wall/r_wall,/area/atmos) @@ -4040,7 +4040,7 @@ "bzJ" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel{dir = 8; icon_state = "caution"},/area/hallway/primary/starboard) "bzK" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/hallway/primary/starboard) "bzL" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel{icon_state = "caution"; dir = 4},/area/hallway/primary/starboard) -"bzM" = (/turf/simulated/wall/r_wall,/area/maintenance/storage) +"bzM" = (/obj/structure/flora/kirbyplants{icon_state = "plant-20"; layer = 4.1; tag = "icon-plant-20"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "bzN" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/simulated/wall/r_wall,/area/atmos) "bzO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkbluecorners"; tag = "icon-darkbluecorners"; temperature = 273.15},/area/bridge) "bzP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall/r_wall,/area/atmos) @@ -4105,7 +4105,7 @@ "bAW" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bAX" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/deck{pixel_y = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bAY" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bAZ" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) +"bAZ" = (/obj/machinery/camera{c_tag = "Bar"; dir = 2; network = list("SS13")},/obj/machinery/requests_console{department = "Bar"; departmentType = 2; pixel_x = 0; pixel_y = 30},/obj/structure/table,/obj/item/weapon/book/manual/barman_recipes{pixel_y = 5},/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/weapon/reagent_containers/glass/rag{pixel_y = 5},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "bBa" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 1; icon_state = "rightsecure"; name = "Head of Personnel's Desk"; req_access_txt = "57"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/window/northleft{dir = 2; icon_state = "left"; name = "Reception Window"; req_access_txt = "0"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "hop"; layer = 3.1; name = "privacy shutters"; opacity = 0},/turf/simulated/floor/plasteel,/area/crew_quarters/heads) "bBb" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/security/checkpoint/medical) "bBc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/fancy/carpet,/area/bridge) @@ -4283,7 +4283,7 @@ "bEs" = (/obj/machinery/vending/coffee,/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/machinery/light{dir = 1},/turf/simulated/floor/wood,/area/library) "bEt" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/wood,/area/library) "bEu" = (/obj/structure/flora/kirbyplants{tag = "icon-plant-22"; icon_state = "plant-22"},/turf/simulated/floor/wood,/area/library) -"bEv" = (/obj/structure/table/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/door/window/northleft{dir = 4; icon_state = "left"; name = "Atmospherics Desk"; req_access_txt = "24"},/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/atmos) +"bEv" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Club - Fore"; dir = 2; network = list("SS13")},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bEw" = (/obj/machinery/door/poddoor/shutters/preopen{id = "hopqueue"; name = "HoP Queue Shutters"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "loadingarea"; tag = "loading"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) "bEx" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "caution"},/area/atmos) "bEy" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "aftport"; name = "Aft-Port Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/port) @@ -4334,9 +4334,9 @@ "bFr" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/lattice/catwalk,/turf/space,/area/solar/port) "bFs" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/space,/area/space) "bFt" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/lattice/catwalk,/turf/space,/area/solar/port) -"bFu" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "waste_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/maintenance/storage) -"bFv" = (/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/maintenance/storage) -"bFw" = (/obj/structure/disposalpipe/segment,/obj/structure/table/wood/poker,/obj/item/stack/spacecash/c10,/obj/item/stack/spacecash/c10,/obj/item/stack/spacecash/c10,/obj/item/clothing/mask/cigarette/cigar,/turf/simulated/floor/wood,/area/crew_quarters/bar) +"bFu" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/atmos) +"bFv" = (/obj/structure/grille,/turf/simulated/wall/r_wall,/area/atmos) +"bFw" = (/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the bridge is."; dir = 1; icon_state = "direction_bridge"; name = "bridge"; pixel_y = -8; tag = "icon-direction_bridge (NORTH)"},/turf/simulated/wall/r_wall,/area/bridge/meeting_room{name = "\improper Command Hallway"}) "bFx" = (/obj/structure/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bFy" = (/obj/structure/flora/kirbyplants{tag = "icon-plant-21"; icon_state = "plant-21"},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) "bFz" = (/obj/structure/filingcabinet{pixel_x = 3},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) @@ -4399,7 +4399,7 @@ "bGE" = (/obj/structure/closet/crate,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/atmos) "bGF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/atmos) "bGG" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 8},/turf/simulated/floor/plasteel,/area/atmos) -"bGH" = (/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the bridge is."; dir = 1; icon_state = "direction_bridge"; name = "bridge"; pixel_y = 0; tag = "icon-direction_bridge (NORTH)"},/turf/simulated/wall/r_wall,/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"bGH" = (/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the bridge is."; dir = 1; icon_state = "direction_bridge"; name = "bridge"; pixel_y = -8; tag = "icon-direction_bridge (NORTH)"},/turf/simulated/wall/r_wall,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) "bGI" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/fancy/carpet,/area/crew_quarters/theatre) "bGJ" = (/obj/structure/table/wood,/obj/item/weapon/lipstick,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/machinery/camera{c_tag = "Theatre - Stage"; dir = 8; network = list("SS13")},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/theatre) "bGK" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "escape"},/area/hallway/primary/starboard) @@ -4422,8 +4422,8 @@ "bHb" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/table/wood/poker,/obj/item/weapon/storage/pill_bottle/dice,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bHc" = (/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = 32},/obj/item/trash/raisins{pixel_y = 7},/obj/structure/table/glass,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/research{name = "Research Division"}) "bHd" = (/turf/simulated/floor/engine,/area/toxins/explab) -"bHe" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "waste_sensor"; output = 63},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/maintenance/storage) -"bHf" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/maintenance/storage) +"bHe" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/pie/cream,/turf/simulated/floor/wood,/area/crew_quarters/theatre) +"bHf" = (/obj/structure/table/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/door/window/northleft{dir = 4; icon_state = "left"; name = "Atmospherics Desk"; req_access_txt = "24"},/obj/item/weapon/folder/yellow,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/atmos) "bHg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/wall/r_wall,/area/construction/hallway{name = "\improper MiniSat Exterior"}) "bHh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/wall/r_wall,/area/tcommsat/server) "bHi" = (/turf/simulated/wall/r_wall,/area/tcommsat/server) @@ -4488,14 +4488,14 @@ "bIp" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/wood,/area/crew_quarters/bar) "bIq" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/item/toy/cards/deck{pixel_y = 4},/obj/structure/table/wood/poker,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bIr" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Doormaint.dmi'; name = "Theatre Stage"; req_access_txt = "0"; req_one_access_txt = "12;46"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/theatre) -"bIs" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "Atmospherics"},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/atmos) +"bIs" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "waste_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "bIt" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/atmos) "bIu" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/atmos) "bIv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "blackcorner"},/area/atmos) "bIw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/atmos) "bIx" = (/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor/engine,/area/toxins/explab) "bIy" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/door_control{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = 26; pixel_y = -26; req_access_txt = "24"},/turf/simulated/floor/plasteel{dir = 6; icon_state = "caution"},/area/atmos) -"bIz" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/meter,/obj/structure/grille,/turf/simulated/wall/r_wall,/area/maintenance/storage) +"bIz" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/obj/structure/grille,/turf/simulated/wall/r_wall,/area/atmos) "bIA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/fancy/carpet,/area/crew_quarters/theatre) "bIB" = (/obj/structure/stool/bed/chair/wood/wings{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Clown"},/turf/simulated/floor/fancy/carpet,/area/crew_quarters/theatre) "bIC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/fancy/carpet,/area/crew_quarters/theatre) @@ -4512,7 +4512,7 @@ "bIN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 9},/turf/simulated/floor/plasteel,/area/atmos) "bIO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/obj/machinery/door/airlock/glass_atmos{name = "Distribution Loop"; req_access_txt = "24"},/turf/simulated/floor/plasteel,/area/atmos) "bIP" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 9; tag = "icon-intact-y (NORTHWEST)"},/turf/simulated/floor/plasteel,/area/atmos) -"bIQ" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/meter{frequency = 1443; id = "mair_in_meter"; name = "Mixed Air Tank In"},/obj/structure/grille,/turf/simulated/wall/r_wall,/area/maintenance/storage) +"bIQ" = (/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "bIR" = (/obj/machinery/atmospherics/pipe/simple/green/visible{tag = "icon-intact-g (NORTHEAST)"; dir = 5; initialize_directions = 12},/turf/simulated/floor/plasteel,/area/atmos) "bIS" = (/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Pure to Mix"; on = 0},/turf/simulated/floor/plasteel,/area/atmos) "bIT" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/simulated/floor/plasteel{icon_state = "green"; dir = 6},/area/atmos) @@ -4524,11 +4524,11 @@ "bIZ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "bJa" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "bJb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"bJc" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/meter{frequency = 1443; id = "mair_out_meter"; name = "Mixed Air Tank Out"},/obj/structure/grille,/turf/simulated/wall/r_wall,/area/maintenance/storage) +"bJc" = (/obj/structure/disposalpipe/segment,/obj/structure/table/wood/poker,/obj/item/clothing/mask/cigarette/cigar,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bJd" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/turf/space,/area/space) "bJe" = (/obj/structure/cable,/obj/machinery/power/solar{id = "aftport"; name = "Aft-Port Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/port) -"bJf" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "waste_in"; pixel_y = 1},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/maintenance/storage) -"bJg" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - Mix"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/maintenance/storage) +"bJf" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "waste_sensor"; output = 63},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) +"bJg" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "bJh" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/space,/area/space) "bJi" = (/obj/machinery/telecomms/processor/preset_one,/turf/simulated/floor/bluegrid{icon_state = "gcircuit"; name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) "bJj" = (/obj/item/device/radio/intercom{dir = 8; freerange = 1; name = "Station Intercom (Telecoms)"; pixel_x = 0; pixel_y = 29},/obj/machinery/light/small{dir = 1},/obj/machinery/camera{c_tag = "Telecoms - Server Room - Fore-Port"; dir = 2; network = list("SS13","tcomm")},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) @@ -4539,7 +4539,7 @@ "bJo" = (/obj/item/device/radio/intercom{dir = 8; freerange = 1; name = "Station Intercom (Telecoms)"; pixel_x = 0; pixel_y = 29},/obj/machinery/light/small{dir = 1},/obj/machinery/camera{c_tag = "Telecoms - Server Room - Fore-Starboard"; dir = 2; network = list("SS13","tcomm")},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) "bJp" = (/obj/machinery/telecomms/processor/preset_three,/turf/simulated/floor/bluegrid{icon_state = "gcircuit"; name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) "bJq" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bJr" = (/obj/structure/sign/directions/engineering{desc = "A direction sign, pointing out which way the bridge is."; dir = 1; icon_state = "direction_bridge"; name = "bridge"; pixel_y = 0; tag = "icon-direction_bridge (NORTH)"},/turf/simulated/wall/r_wall,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) +"bJr" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "Atmospherics"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/atmos) "bJs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"}) "bJt" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;27;37"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "bJu" = (/obj/structure/table/wood,/obj/item/weapon/folder,/turf/simulated/floor/wood,/area/security/vacantoffice) @@ -4606,7 +4606,7 @@ "bKD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 4},/turf/simulated/floor/plating,/area/atmos) "bKE" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/maintcentral{name = "Central Maintenance"}) "bKF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/engine,/area/toxins/explab) -"bKG" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_Toxins = 0},/mob/living/simple_animal/pet/pug{desc = "It's Pugley III, the loveable four-legged test subject."; dir = 8; name = "Pugley III"; real_name = "Pugley III"},/turf/simulated/floor/engine,/area/toxins/explab) +"bKG" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "waste_in"; pixel_y = 1},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "bKH" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/insulated,/turf/simulated/floor/plating,/area/maintenance/incinerator) "bKI" = (/obj/item/stack/cable_coil,/obj/structure/lattice/catwalk,/turf/space,/area/solar/port) "bKJ" = (/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = 7; pixel_y = 4},/obj/item/weapon/storage/pill_bottle/epinephrine{pixel_x = 3},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteyellow"},/area/medical/chemistry) @@ -4652,7 +4652,7 @@ "bLx" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/bridge/meeting_room{name = "\improper Command Hallway"}) "bLy" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) "bLz" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = 4; pixel_y = 5},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = 6; pixel_y = -1},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = -4; pixel_y = 6},/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/syringe,/turf/simulated/floor/plating,/area/maintenance/starboard) -"bLA" = (/obj/structure/closet/secure_closet/exile,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/gateway) +"bLA" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/structure/grille,/turf/simulated/wall/r_wall,/area/atmos) "bLB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/gateway) "bLC" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/gateway) "bLD" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/weapon/storage/toolbox/emergency,/obj/item/device/flashlight,/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Gateway APC"; pixel_x = 28; pixel_y = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/gateway) @@ -4660,7 +4660,7 @@ "bLF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "bLG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/central) "bLH" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"bLI" = (/obj/machinery/light,/obj/machinery/camera{c_tag = "Maltese Falcon - Hatch"; dir = 1; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"bLI" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - Mix"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "bLJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "bLK" = (/obj/structure/stool{pixel_y = 8},/obj/machinery/firealarm{dir = 4; pixel_x = 28},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "bLL" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/light,/turf/simulated/floor/wood,/area/crew_quarters/bar) @@ -4690,8 +4690,8 @@ "bMj" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/atmos) "bMk" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/machinery/atmospherics/binary/pump{dir = 8; name = "N2O to Pure"; on = 0},/obj/machinery/atmospherics/pipe/simple/green/visible,/turf/simulated/floor/plasteel{dir = 5; icon_state = "escape"},/area/atmos) "bMl" = (/obj/item/weapon/reagent_containers/glass/rag,/obj/structure/table/wood,/turf/simulated/floor/wood{tag = "icon-wood-broken4"; icon_state = "wood-broken4"},/area/maintenance/aft{name = "Aft Maintenance"}) -"bMm" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "n2o_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine/n20,/area/maintenance/storage) -"bMn" = (/turf/simulated/floor/engine/n20,/area/maintenance/storage) +"bMm" = (/obj/structure/closet/secure_closet/exile,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/gateway) +"bMn" = (/obj/machinery/light,/obj/machinery/camera{c_tag = "Kitchen Hatch"; dir = 1; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "bMo" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/lattice,/obj/structure/lattice,/turf/simulated/wall/r_wall,/area/space) "bMp" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/lattice,/turf/simulated/wall/r_wall,/area/space) "bMq" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 0},/obj/structure/lattice,/turf/space,/area/space) @@ -4749,11 +4749,11 @@ "bNq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/central) "bNr" = (/turf/simulated/wall,/area/crew_quarters/kitchen) "bNs" = (/obj/machinery/door/poddoor/shutters/preopen{id = "kitchen"; name = "Serving Hatch"},/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) -"bNt" = (/obj/item/weapon/reagent_containers/food/snacks/pie,/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters/preopen{id = "kitchen"; name = "Serving Hatch"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) +"bNt" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "n2o_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine/n20,/area/atmos) "bNu" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters/preopen{id = "kitchen"; name = "Serving Hatch"},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 0},/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3},/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "bNv" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) "bNw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock{icon = 'icons/obj/doors/Doorsilver.dmi'; name = "Kitchen"; req_access_txt = "28"},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) -"bNx" = (/obj/machinery/camera{c_tag = "Maltese Falcon - Gambling Den Aft"; dir = 1; network = list("SS13")},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -29},/obj/item/clothing/mask/cigarette/pipe,/obj/structure/table/wood,/turf/simulated/floor/fancy/carpet,/area/crew_quarters/bar) +"bNx" = (/turf/simulated/floor/engine/n20,/area/atmos) "bNy" = (/obj/machinery/vending/coffee,/turf/simulated/floor/fancy/carpet,/area/crew_quarters/bar) "bNz" = (/obj/machinery/vending/cola,/turf/simulated/floor/fancy/carpet,/area/crew_quarters/bar) "bNA" = (/obj/structure/table/wood,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/wood,/area/library) @@ -4775,9 +4775,9 @@ "bNQ" = (/obj/machinery/atmospherics/binary/pump{dir = 0; name = "Mix to Port"; on = 0},/turf/simulated/floor/plasteel,/area/atmos) "bNR" = (/obj/machinery/atmospherics/pipe/simple/yellow/visible,/turf/simulated/floor/plasteel,/area/atmos) "bNS" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/atmos) -"bNT" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2o_sensor"},/turf/simulated/floor/engine/n20,/area/maintenance/storage) -"bNU" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent/roomfiller{valve_open = 1},/turf/simulated/floor/engine/n20,/area/maintenance/storage) -"bNV" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine/n20,/area/maintenance/storage) +"bNT" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters/preopen{id = "kitchen"; name = "Serving Hatch"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/reagent_containers/food/snacks/pie/cream,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) +"bNU" = (/obj/machinery/camera{c_tag = "Club - Aft"; dir = 1; network = list("SS13")},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -29},/obj/item/clothing/mask/cigarette/pipe,/obj/structure/table/wood,/turf/simulated/floor/fancy/carpet,/area/crew_quarters/bar) +"bNV" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2o_sensor"},/turf/simulated/floor/engine/n20,/area/atmos) "bNW" = (/obj/structure/grille,/obj/structure/lattice,/obj/structure/lattice,/turf/simulated/wall/r_wall,/area/space) "bNX" = (/obj/machinery/message_server,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) "bNY" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/telecomms/bus/preset_two,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) @@ -4786,7 +4786,7 @@ "bOb" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/telecomms/processor/preset_four,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) "bOc" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/telecomms/bus/preset_four,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) "bOd" = (/obj/machinery/blackbox_recorder,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) -"bOe" = (/obj/structure/flora/kirbyplants{tag = "icon-plant-06"; icon_state = "plant-06"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) +"bOe" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine/n20,/area/atmos) "bOf" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "bOg" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "bOh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/camera{c_tag = "Arrivals - Aft Arm"; dir = 8; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"}) @@ -4817,7 +4817,7 @@ "bOG" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/medical/surgery) "bOH" = (/turf/simulated/wall/r_wall,/area/assembly/showroom{name = "\improper Corporate Showroom"}) "bOI" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{icon = 'icons/obj/doors/Doorele.dmi'; name = "Corporate Showroom"; req_access_txt = "19"},/turf/simulated/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) -"bOJ" = (/obj/structure/closet/secure_closet/medical1{pixel_x = 0},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/gateway) +"bOJ" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent/roomfiller{valve_open = 1},/turf/simulated/floor/engine/n20,/area/atmos) "bOK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/gateway) "bOL" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/gateway) "bOM" = (/obj/structure/table,/obj/item/weapon/paper/pamphlet,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/gateway) @@ -4856,8 +4856,8 @@ "bPt" = (/obj/machinery/atmospherics/pipe/manifold/general/visible,/obj/machinery/meter,/turf/simulated/floor/plasteel,/area/atmos) "bPu" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel,/area/atmos) "bPv" = (/obj/machinery/atmospherics/pipe/simple/green/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/atmos) -"bPw" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "n2o_in"; pixel_y = 1},/turf/simulated/floor/engine/n20,/area/maintenance/storage) -"bPx" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - N2O"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/engine/n20,/area/maintenance/storage) +"bPw" = (/obj/structure/flora/kirbyplants{icon_state = "plant-06"; level = 4.1; tag = "icon-plant-06"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) +"bPx" = (/obj/structure/closet/secure_closet/medical1{pixel_x = 0},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/gateway) "bPy" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "MiniSat Exterior Aft-Port"; dir = 8; network = list("MiniSat")},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/construction/hallway{name = "\improper MiniSat Exterior"}) "bPz" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/simulated/wall/r_wall,/area/construction/hallway{name = "\improper MiniSat Exterior"}) "bPA" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/telecomms/server/presets/common,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) @@ -4873,7 +4873,7 @@ "bPK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "bluecorner"},/area/hallway/secondary/entry{name = "Arrivals"}) "bPL" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"}) "bPM" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = -32},/turf/simulated/floor/plasteel{dir = 2; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"}) -"bPN" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = -32},/obj/structure/flora/kirbyplants{tag = "icon-plant-03"; icon_state = "plant-03"},/turf/simulated/floor/plasteel{icon_state = "arrival"; dir = 6},/area/hallway/secondary/entry{name = "Arrivals"}) +"bPN" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "n2o_in"; pixel_y = 1},/turf/simulated/floor/engine/n20,/area/atmos) "bPO" = (/obj/structure/stool/bed/chair/office/dark,/turf/simulated/floor/wood,/area/security/vacantoffice) "bPP" = (/obj/structure/table/wood,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/simulated/floor/wood,/area/security/vacantoffice) "bPQ" = (/obj/structure/mirror{pixel_x = -28},/obj/item/weapon/lipstick/black,/obj/item/weapon/lipstick/jade{pixel_x = 2; pixel_y = 2},/obj/item/weapon/lipstick/purple{pixel_x = -2; pixel_y = -2},/obj/structure/table,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) @@ -4906,12 +4906,12 @@ "bQr" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) "bQs" = (/obj/machinery/light_switch{pixel_x = -8; pixel_y = 30},/obj/machinery/light/small{dir = 1},/obj/structure/table/wood,/obj/item/clothing/shoes/laceup,/obj/item/clothing/under/suit_jacket/really_black,/obj/item/clothing/glasses/sunglasses,/obj/machinery/camera{c_tag = "Corporate Showroom"; dir = 2; network = list("SS13")},/turf/simulated/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) "bQt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/bookcase{name = "bookcase"},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/turf/simulated/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) -"bQu" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/obj/structure/showcase{desc = "A flimsy model of NanoTrasen's revolutionary genetic modifier. Novel features include a locking system to protect scientists from test subjects, and a built-in suction system to remove vomit."; icon = 'icons/obj/Cryogenic2.dmi'; icon_state = "scanner"; name = "DNA modifier exhibit"; pixel_y = 3},/turf/simulated/floor/fancy/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bQu" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - N2O"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/engine/n20,/area/atmos) "bQv" = (/obj/structure/showcase{desc = "A stand with a model of the perfect Nanotrasen Employee bolted to it. Signs indicate it is robustly genetically engineered, as well as being ruthlessly loyal."; name = "'Perfect Man' employee exhibit"},/obj/structure/sign/atmosplaque{desc = "A guide to the exhibit, explaining how recent developments in genetic modification and cloning technologies by the Nanotrasen Corporation have led to development and the effective immortality of the 'perfect man', the loyal Nanotrasen Employee."; icon_state = "kiddieplaque"; name = "\improper 'Perfect Man' sign"; pixel_x = 0; pixel_y = 32},/obj/structure/window/reinforced,/turf/simulated/floor/fancy/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) "bQw" = (/obj/machinery/light/small{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/obj/structure/showcase{desc = "Signs describe how cloning pods like these ensure that every Nanotrasen employee can carry out their contracts in full, even in the unlikely event of their catastrophic death. Hopefully they aren't all made of cardboard, like this one."; icon = 'icons/obj/cloning.dmi'; icon_state = "pod_0"; name = "cloning pod exhibit"},/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/fancy/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) -"bQx" = (/obj/machinery/chem_heater,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"bQx" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = -32},/obj/structure/flora/kirbyplants{icon_state = "plant-03"; layer = 4.1; tag = "icon-plant-03"},/turf/simulated/floor/plasteel{icon_state = "arrival"; dir = 6},/area/hallway/secondary/entry{name = "Arrivals"}) "bQy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/gateway) -"bQz" = (/obj/structure/dispenser/oxygen{pixel_x = -1; pixel_y = 2},/obj/machinery/light{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/gateway) +"bQz" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/window/reinforced,/obj/structure/showcase{desc = "A flimsy model of NanoTrasen's revolutionary genetic modifier. Novel features include a locking system to protect scientists from test subjects, and a built-in suction system to remove vomit."; icon = 'icons/obj/Cryogenic2.dmi'; icon_state = "sleeper"; name = "DNA modifier exhibit"; pixel_y = 3},/turf/simulated/floor/fancy/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) "bQA" = (/obj/machinery/gateway{dir = 10},/turf/simulated/floor/plasteel{tag = "icon-vault (EAST)"; icon_state = "vault"; dir = 4},/area/gateway) "bQB" = (/obj/machinery/gateway,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/gateway) "bQC" = (/obj/machinery/gateway{dir = 6},/turf/simulated/floor/plasteel{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/gateway) @@ -4989,7 +4989,7 @@ "bRW" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/gateway) "bRX" = (/obj/structure/closet/secure_closet/atmospherics,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/atmos) "bRY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/hallway/primary/central) -"bRZ" = (/obj/machinery/iv_drip,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"bRZ" = (/obj/structure/dispenser/oxygen{pixel_x = -1; pixel_y = 2},/obj/machinery/light{dir = 4},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = 29; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/gateway) "bSa" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "bSb" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/lattice/catwalk,/turf/space,/area/solar/port) "bSc" = (/obj/item/device/flashlight/lamp,/obj/structure/table/wood,/turf/simulated/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) @@ -5021,9 +5021,9 @@ "bSC" = (/obj/machinery/door/airlock/maintenance{name = "Vacant Office Maintenance"; req_access_txt = "32"; req_one_access_txt = "0"},/turf/simulated/floor/plating,/area/security/vacantoffice) "bSD" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/maintcentral{name = "Central Maintenance"}) "bSE" = (/obj/structure/sign/nosmoking_2,/turf/simulated/wall,/area/atmos) -"bSF" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "tox_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/maintenance/storage) -"bSG" = (/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/maintenance/storage) -"bSH" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/maintenance/storage) +"bSF" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "tox_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos) +"bSG" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos) +"bSH" = (/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos) "bSI" = (/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) "bSJ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/telecomms/server/presets/command,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) "bSK" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/telecomms/server/presets/security,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) @@ -5031,7 +5031,7 @@ "bSM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/telecomms/server/presets/service,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) "bSN" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/telecomms/server/presets/supply,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) "bSO" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/fpmaint2{name = "Port Maintenance"}) -"bSP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"bSP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "bSQ" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/obj/structure/table/wood,/turf/simulated/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) "bSR" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "bSS" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) @@ -5070,7 +5070,7 @@ "bTz" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) "bTA" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) "bTB" = (/obj/structure/table/wood,/obj/machinery/light/small{dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/weapon/storage/lockbox/clusterbang{desc = "An inpenetrable lockbox, designed for transporting the most dangerous of items. You have a bad feeling about opening this."; name = "Lockbox Exhibit"; pixel_y = 3},/obj/item/device/paicard{desc = "A real Nanotrasen success, these personal AIs provide all of the companionship of an AI without any law related red-tape."; name = "Nanotrasen Personal AI Device Exhibit"},/turf/simulated/floor/fancy/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) -"bTC" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/head/hardhat/orange{name = "protective hat"},/obj/item/clothing/head/hardhat/orange{name = "protective hat"},/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/gateway) +"bTC" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/hazardvest,/obj/item/clothing/suit/hazardvest,/obj/item/clothing/head/hardhat/orange{name = "protective hat"},/obj/item/clothing/head/hardhat/orange{name = "protective hat"},/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/gateway) "bTD" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/gateway) "bTE" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/gateway) "bTF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/gateway) @@ -5105,9 +5105,9 @@ "bUi" = (/obj/structure/lattice,/turf/space,/area/hallway/secondary/entry{name = "Arrivals"}) "bUj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/maintcentral{name = "Central Maintenance"}) "bUk" = (/obj/structure/closet/fireaxecabinet{pixel_x = -32; pixel_y = 0},/obj/machinery/camera{c_tag = "Atmospherics - Port"; dir = 4; network = list("SS13")},/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "caution"},/area/atmos) -"bUl" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "tox_sensor"},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/maintenance/storage) -"bUm" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/maintenance/storage) -"bUn" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/maintenance/storage) +"bUl" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "tox_sensor"},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos) +"bUm" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos) +"bUn" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos) "bUo" = (/obj/machinery/light/small,/obj/machinery/telecomms/broadcaster/preset_left,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) "bUp" = (/obj/structure/table,/obj/item/weapon/folder/blue,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) "bUq" = (/obj/machinery/light/small,/obj/machinery/power/terminal{dir = 4},/obj/structure/cable,/obj/machinery/camera{c_tag = "Telecoms - Server Room - Aft"; dir = 1; network = list("SS13","tcomm")},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server) @@ -5142,10 +5142,10 @@ "bUT" = (/obj/effect/landmark/start{name = "Scientist"},/obj/structure/stool/bed/chair/office/light{dir = 1; pixel_y = 3},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) "bUU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/wood,/area/assembly/showroom{name = "\improper Corporate Showroom"}) "bUV" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/toxins/explab) -"bUW" = (/obj/docking_port/stationary{dir = 2; dwidth = 11; height = 22; id = "whiteship_ss13"; name = "SS13 Arrival Docking"; width = 35},/obj/structure/lattice,/turf/space,/area/space) -"bUX" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/reagent_containers/blood/random,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) -"bUY" = (/obj/structure/table,/obj/machinery/recharger,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/gateway) -"bUZ" = (/obj/structure/stool/bed,/obj/item/weapon/reagent_containers/blood/random,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"bUW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/surgical_drapes,/obj/item/weapon/retractor{desc = "A handy surgical tool which allows the user to peel back their victim's flesh. The label warns users to 'Aim away from face.'"; name = "retractor"; pixel_y = 3},/obj/structure/table/wood,/turf/simulated/floor/fancy/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bUX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/table/wood,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/item/weapon/folder/blue,/obj/item/clothing/head/collectable/HoS{desc = "It's your turn to demand excessive paperwork, signatures, stamps, and hire more clowns! Papers, please!"; icon_state = "hopcap"; name = "novelty HoP hat"},/turf/simulated/floor/fancy/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bUY" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/item/weapon/disk/data,/obj/item/weapon/disk/tech_disk{name = "technology disk"; pixel_x = 3; pixel_y = -1},/obj/item/weapon/disk/design_disk{name = "component design disk"; pixel_x = 1; pixel_y = -2},/obj/structure/table/wood,/turf/simulated/floor/fancy/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) +"bUZ" = (/obj/item/weapon/book/manual/wiki/security_space_law{name = "space law"; pixel_y = 2},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/item/toy/gun{name = "cap gun"},/obj/item/weapon/restraints/handcuffs{name = "handcuffs"},/obj/structure/table/wood,/obj/item/clothing/head/collectable/HoS{name = "novelty HoS hat"},/turf/simulated/floor/fancy/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) "bVa" = (/obj/item/weapon/storage/belt/utility,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/structure/rack{dir = 8; layer = 2.9},/obj/machinery/door_control{id = "gateshutter"; name = "Gateway Shutter Control"; pixel_x = 0; pixel_y = -26; req_access_txt = "19"},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/gateway) "bVb" = (/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/clothing/suit/apron/surgical,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitehall"; tag = "icon-whitehall (WEST)"},/area/medical/surgery) "bVc" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/gateway) @@ -5175,8 +5175,8 @@ "bVA" = (/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; pixel_x = 30; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/shower{dir = 8; icon_state = "shower"; name = "emergency shower"; tag = "icon-shower (WEST)"},/turf/simulated/floor/plasteel,/area/atmos) "bVB" = (/obj/machinery/atmospherics/binary/pump{dir = 0; name = "Port to Filter"; on = 0},/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "Atmospherics - Starboard"; dir = 4; network = list("SS13")},/turf/simulated/floor/plasteel,/area/atmos) "bVC" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/obj/structure/stool,/turf/simulated/floor/plasteel,/area/atmos) -"bVD" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "tox_in"; pixel_y = 1},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/maintenance/storage) -"bVE" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - Toxins"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/maintenance/storage) +"bVD" = (/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/gateway) +"bVE" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "tox_in"; pixel_y = 1},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos) "bVF" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/construction/hallway{name = "\improper MiniSat Exterior"}) "bVG" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{icon_plating = "warnplate"; icon_state = "warnplate"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "bVH" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) @@ -5299,8 +5299,8 @@ "bXU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "caution"},/area/atmos) "bXV" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{dir = 2},/obj/machinery/meter,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/atmos) "bXW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "blackcorner"},/area/atmos) -"bXX" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "co2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/maintenance/storage) -"bXY" = (/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/maintenance/storage) +"bXX" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - Toxins"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos) +"bXY" = (/obj/docking_port/stationary{dir = 2; dwidth = 11; height = 15; id = "whiteship_ss13"; name = "SS13: Auxiliary Dock, Station-Port"; width = 27},/turf/space,/area/space) "bXZ" = (/obj/machinery/power/apc{dir = 8; name = "Aft Port Solar APC"; pixel_x = -26; pixel_y = 3},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/maintenance/portsolar) "bYa" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/portsolar) "bYb" = (/obj/machinery/power/smes{charge = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/portsolar) @@ -5353,9 +5353,9 @@ "bYW" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/atmos) "bYX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/atmos) "bYY" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel,/area/atmos) -"bYZ" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "co2_sensor"},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/maintenance/storage) -"bZa" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/maintenance/storage) -"bZb" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/maintenance/storage) +"bYZ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; id_tag = "co2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) +"bZa" = (/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) +"bZb" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "co2_sensor"},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) "bZc" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window{base_state = "right"; dir = 1; icon_state = "right"; name = "MiniSat Walkway Access"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/construction/hallway{name = "\improper MiniSat Exterior"}) "bZd" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 0},/obj/structure/window/reinforced,/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/camera{c_tag = "MiniSat Exterior Aft"; dir = 2; network = list("MiniSat")},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/construction/hallway{name = "\improper MiniSat Exterior"}) "bZe" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/machinery/door/window{dir = 1; name = "MiniSat Walkway Access"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/construction/hallway{name = "\improper MiniSat Exterior"}) @@ -5434,8 +5434,8 @@ "caz" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 10; initialize_directions = 10},/turf/simulated/floor/plasteel,/area/atmos) "caA" = (/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/atmos) "caB" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/space,/area/solar/port) -"caC" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "co2_in"; pixel_y = 1},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/maintenance/storage) -"caD" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - CO2"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/maintenance/storage) +"caC" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) +"caD" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) "caE" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1; pixel_y = 0},/turf/space,/area/space) "caF" = (/obj/machinery/power/solar_control{id = "aftport"; name = "Aft Port Solar Control"; track = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/turf/simulated/floor/plating,/area/maintenance/portsolar) "caG" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/portsolar) @@ -5453,7 +5453,7 @@ "caS" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "caT" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "caU" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/rack_parts,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) -"caV" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/structure/flora/kirbyplants{tag = "icon-applebush"; icon_state = "applebush"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central) +"caV" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 8; frequency = 1441; id = "co2_in"; pixel_y = 1},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) "caW" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central) "caX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central) "caY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central) @@ -5466,7 +5466,7 @@ "cbf" = (/obj/machinery/camera{c_tag = "Central Primary Hallway - Aft-Starboard"; dir = 1; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 2; icon_state = "purplecorner"},/area/hallway/primary/central) "cbg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "purplecorner"},/area/hallway/primary/central) "cbh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 2; icon_state = "purplecorner"},/area/hallway/primary/central) -"cbi" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/flora/kirbyplants{tag = "icon-plant-10"; icon_state = "plant-10"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "purplecorner"},/area/hallway/primary/central) +"cbi" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - CO2"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) "cbj" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/obj/machinery/newscaster{pixel_y = -29},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/hallway/primary/central) "cbk" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;7;35;8;47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cbl" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "cmoprivacy"; name = "privacy shutter"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/cmo) @@ -5530,7 +5530,7 @@ "ccr" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass,/turf/simulated/floor/plasteel,/area/hallway/primary/aft) "ccs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass,/turf/simulated/floor/plasteel{dir = 2; icon_state = "purplecorner"},/area/hallway/primary/aft) "cct" = (/turf/simulated/wall,/area/medical/research{name = "Research Division"}) -"ccu" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/keycard_auth{pixel_x = 26; pixel_y = 0},/obj/machinery/computer/med_data/laptop,/obj/structure/table/glass,/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) +"ccu" = (/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "ccv" = (/obj/structure/sign/science,/turf/simulated/wall,/area/medical/research{name = "Research Division"}) "ccw" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitehall"; tag = "icon-whitehall (WEST)"},/area/medical/research{name = "Research Division"}) "ccx" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitehall"; tag = "icon-whitehall (WEST)"},/area/medical/research{name = "Research Division"}) @@ -5587,7 +5587,7 @@ "cdw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) "cdx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) "cdy" = (/obj/structure/stool/bed/chair,/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) -"cdz" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) +"cdz" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/structure/flora/kirbyplants{icon_state = "applebush"; layer = 4.1; tag = "icon-applebush"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central) "cdA" = (/obj/structure/rack,/obj/item/weapon/hatchet,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cdB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/aft) "cdC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/hallway/primary/aft) @@ -5598,7 +5598,7 @@ "cdH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cdI" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cdJ" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) -"cdK" = (/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/device/assembly/igniter{pixel_x = -4; pixel_y = -4},/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/device/gps,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) +"cdK" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/flora/kirbyplants{icon_state = "plant-10"; layer = 4.1; tag = "icon-plant-10"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "purplecorner"},/area/hallway/primary/central) "cdL" = (/obj/structure/table,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/airlock_electronics,/obj/item/device/assembly/timer{pixel_x = -4; pixel_y = 2},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) "cdM" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 4},/obj/item/weapon/pen,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light/small{dir = 1},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/camera{c_tag = "Research Division - Lobby"; dir = 2; network = list("SS13","RD")},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) "cdN" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/light_switch{pixel_x = -27; pixel_y = 6},/obj/machinery/newscaster/security_unit{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/security/checkpoint/science{name = "Security Post - Research Division"}) @@ -5724,8 +5724,8 @@ "cgd" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 5; health = 120; icon_state = "twindow"; reinf = 0},/turf/simulated/floor/plating,/area/toxins/lab) "cge" = (/obj/machinery/door/airlock/maintenance{name = "Research Maintenance"; req_access_txt = "7"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) "cgf" = (/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance"; req_access_txt = "5"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/sleeper{name = "Sleepers"}) -"cgg" = (/obj/machinery/door/airlock/external{req_access_txt = "24"; req_one_access_txt = "0"},/turf/simulated/floor/plating,/area/maintenance/storage) -"cgh" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/storage) +"cgg" = (/obj/structure/table,/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) +"cgh" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags{pixel_x = 3; pixel_y = 2},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) "cgi" = (/obj/structure/girder,/obj/structure/grille,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cgj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cgk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) @@ -5782,8 +5782,8 @@ "chj" = (/obj/machinery/meter,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/incinerator) "chk" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 8; name = "output gas connector port"},/obj/machinery/portable_atmospherics/canister,/obj/machinery/ignition_switch{id = "Incinerator"; pixel_x = -6; pixel_y = -24},/obj/machinery/embedded_controller/radio/access_controller{exterior_door_tag = "incinerator_airlock_exterior"; id_tag = "incinerator_access_control"; interior_door_tag = "incinerator_airlock_interior"; name = "Incinerator Access Console"; pixel_x = 6; pixel_y = -26; req_access_txt = "12"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/incinerator) "chl" = (/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/simulated/floor/plating,/area/medical/surgery) -"chm" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 5; health = 120; icon_state = "twindow"; reinf = 0},/turf/simulated/floor/plating,/area/toxins/mineral_storeroom) -"chn" = (/obj/structure/closet/secure_closet/scientist,/obj/item/clothing/suit/hooded/wintercoat/science,/obj/item/weapon/storage/backpack/satchel_tox,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/mineral_storeroom) +"chm" = (/obj/structure/table,/obj/item/stack/medical/gauze,/obj/item/stack/medical/ointment,/obj/item/stack/medical/bruise_pack,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) +"chn" = (/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/device/assembly/igniter{pixel_x = -4; pixel_y = -4},/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/device/gps{gpstag = "RD0"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) "cho" = (/obj/structure/stool/bed/roller,/obj/machinery/iv_drip{density = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) "chp" = (/obj/structure/grille,/obj/structure/window/fulltile{layer = 2.9},/turf/simulated/floor/plating,/area/medical/sleeper{name = "Sleepers"}) "chq" = (/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance"; req_access_txt = "5"},/turf/simulated/floor/plating,/area/medical/medbay{name = "Medbay Central"}) @@ -5808,7 +5808,7 @@ "chJ" = (/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/structure/table/glass,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/medical/genetics) "chK" = (/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 28},/obj/machinery/light{dir = 1},/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 9; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) "chL" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Medical Doctor"},/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = 24; pixel_y = 24},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) -"chM" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 6},/obj/item/weapon/pen,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/explab) +"chM" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/atmos) "chN" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) "chO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) "chP" = (/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) @@ -5817,7 +5817,7 @@ "chS" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteyellow"},/area/medical/medbay{name = "Medbay Central"}) "chT" = (/obj/structure/flora/kirbyplants{tag = "icon-plant-11"; icon_state = "plant-11"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteyellow"},/area/medical/medbay{name = "Medbay Central"}) "chU" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/hallway/primary/aft) -"chV" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) +"chV" = (/turf/simulated/floor/plating,/area/atmos) "chW" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) "chX" = (/obj/structure/table,/obj/item/device/paicard,/obj/machinery/newscaster{pixel_x = -1; pixel_y = -29},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) "chY" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell/potato,/obj/machinery/light,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) @@ -5856,7 +5856,7 @@ "ciF" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/lattice/catwalk,/turf/space,/area/space) "ciG" = (/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/lattice/catwalk,/turf/space,/area/space) "ciH" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/landmark/start{name = "Medical Doctor"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/vending/wallmed{pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/exam_room{name = "Patient Room B"}) -"ciI" = (/obj/structure/table/reinforced,/obj/item/weapon/hand_labeler,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/device/taperecorder{pixel_y = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/explab) +"ciI" = (/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "glass door"; req_access_txt = "24"},/obj/machinery/door/window/northleft{dir = 4; icon_state = "left"; name = "glass door"; req_access_txt = "24"},/turf/simulated/floor/plating,/area/atmos) "ciJ" = (/obj/item/weapon/storage/box/disks{pixel_x = 2; pixel_y = 2},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29},/obj/machinery/camera{c_tag = "Genetics Desk"; dir = 4; network = list("SS13","Medbay")},/obj/structure/table/glass,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 8},/area/medical/genetics) "ciK" = (/obj/structure/sign/directions/evac{pixel_y = 6},/turf/simulated/wall,/area/medical/medbay{name = "Medbay Central"}) "ciL" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) @@ -5883,13 +5883,13 @@ "cjg" = (/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/hand_labeler,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cjh" = (/turf/simulated/wall,/area/medical/chemistry) "cji" = (/obj/structure/sign/chemistry,/turf/simulated/wall,/area/medical/chemistry) -"cjj" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/book/manual/experimentor,/obj/item/device/healthanalyzer,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/explab) +"cjj" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/lattice,/turf/space,/area/space) "cjk" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/machinery/door/window/northleft{dir = 2; name = "Chemistry Desk"; req_access_txt = "5; 33"},/obj/machinery/door/firedoor,/obj/item/weapon/folder/white,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellowfull"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "cjl" = (/obj/structure/sign/bluecross,/turf/simulated/wall,/area/medical/chemistry) "cjm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/aft) "cjn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/aft) -"cjo" = (/obj/structure/sign/science,/turf/simulated/wall/r_wall,/area/toxins/mineral_storeroom) -"cjp" = (/turf/simulated/wall/r_wall,/area/toxins/mineral_storeroom) +"cjo" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/space,/area/space) +"cjp" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/window/reinforced{dir = 8},/turf/space,/area/space) "cjq" = (/turf/simulated/wall/r_wall,/area/toxins/lab) "cjr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/explab) "cjs" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/machinery/door/poddoor/shutters/preopen{id = "rndshuttersup"; name = "research and development lab shutters"},/obj/machinery/door/firedoor,/obj/machinery/door/window/eastright{dir = 2; name = "Research and Development Desk"; req_access_txt = "7"},/turf/simulated/floor/plating,/area/toxins/lab) @@ -5901,7 +5901,7 @@ "cjy" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/aft{name = "Aft Maintenance"}) "cjz" = (/obj/item/weapon/cigbutt,/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/maintenance/aft{name = "Aft Maintenance"}) "cjA" = (/turf/simulated/wall/r_wall,/area/medical/research{name = "Research Division"}) -"cjB" = (/obj/machinery/door_control{id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = 0; pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 7; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -2; pixel_y = -1},/obj/item/weapon/reagent_containers/dropper,/obj/item/stack/medical/bruise_pack{pixel_x = -2; pixel_y = 6},/obj/item/stack/medical/ointment,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/explab) +"cjB" = (/obj/machinery/autolathe{icon_state = "autolathe"; name = "public autolathe"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) "cjC" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 5; health = 120; icon_state = "twindow"; reinf = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/toxins/lab) "cjD" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cjE" = (/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/maintenance/aft{name = "Aft Maintenance"}) @@ -5917,7 +5917,7 @@ "cjO" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/yellow/visible{dir = 9},/turf/space,/area/space) "cjP" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/cyan/visible,/turf/space,/area/space) "cjQ" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/alarm{pixel_y = 24},/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 4},/obj/structure/table/glass,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/medical/medbay3{name = "Medbay Aft"}) -"cjR" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/device/multitool{pixel_x = 3},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"cjR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -30},/obj/structure/flora/kirbyplants{icon_state = "plant-08"; layer = 4.1; tag = "icon-plant-08"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) "cjS" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/toxins/test_area) "cjT" = (/obj/item/weapon/storage/box/rxglasses{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/table/glass,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/medical/genetics_cloning) "cjU" = (/obj/item/weapon/book/manual/medical_cloning{pixel_y = 6},/obj/item/weapon/paper,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/table/glass,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/medical/genetics_cloning) @@ -5949,13 +5949,13 @@ "cku" = (/obj/structure/closet/secure_closet/chemical,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/chemistry) "ckv" = (/obj/machinery/chem_dispenser,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellowfull"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "ckw" = (/obj/structure/stool/bed/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Chemist"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellowfull"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) -"ckx" = (/obj/structure/noticeboard{desc = "A board for pinning important notices upon. Probably helpful for keeping track of requests."; name = "requests board"; pixel_x = 32; pixel_y = 0},/obj/machinery/chem_master,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellowfull"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"ckx" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/lattice,/turf/space,/area/space) "cky" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/aft) "ckz" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/hallway/primary/aft) "ckA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/aft) -"ckB" = (/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/mineral_storeroom) -"ckC" = (/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/turf/simulated/floor/plasteel{dir = 9; icon_state = "whitepurple"},/area/toxins/mineral_storeroom) -"ckD" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/mineral_storeroom) +"ckB" = (/obj/structure/sign/science,/turf/simulated/wall/r_wall,/area/toxins/lab) +"ckC" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/atmos) +"ckD" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/atmos) "ckE" = (/obj/structure/noticeboard{desc = "A board for pinning important notices upon."; name = "notice board"; pixel_x = 0; pixel_y = 31},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/lab) "ckF" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/lab) "ckG" = (/obj/structure/stool/bed/chair/office/light{dir = 1; pixel_y = 3},/obj/machinery/door_control{dir = 2; id = "rndshuttersup"; name = "Shutters Control Button"; pixel_x = 26; pixel_y = 6},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitepurple"; tag = "icon-whitehall (WEST)"},/area/toxins/lab) @@ -5974,7 +5974,7 @@ "ckT" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = -30},/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table/glass,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) "ckU" = (/obj/structure/closet/secure_closet/CMO,/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = 26},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 30; pixel_y = 0},/obj/item/weapon/screwdriver{pixel_y = 6},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) "ckV" = (/obj/machinery/space_heater,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) -"ckW" = (/obj/structure/table,/obj/item/device/healthanalyzer,/obj/item/weapon/reagent_containers/pill/patch/silver_sulf,/obj/item/weapon/reagent_containers/pill/patch/styptic,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"}) +"ckW" = (/obj/structure/noticeboard{desc = "A board for pinning important notices upon. Probably helpful for keeping track of requests."; name = "requests board"; pixel_x = 32; pixel_y = 0},/obj/machinery/chem_master{pixel_x = -2},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellowfull"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "ckX" = (/obj/structure/rack,/obj/item/stack/sheet/cardboard,/obj/item/device/radio/off,/obj/machinery/light_construct{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "ckY" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/starboard) "ckZ" = (/obj/structure/closet,/obj/item/stack/sheet/metal{amount = 34},/obj/item/weapon/extinguisher/mini,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) @@ -5985,7 +5985,7 @@ "cle" = (/obj/machinery/atmospherics/pipe/simple/insulated,/turf/simulated/wall/r_wall,/area/maintenance/incinerator) "clf" = (/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/structure/table/glass,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) "clg" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue) -"clh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) +"clh" = (/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/turf/simulated/floor/plasteel{dir = 9; icon_state = "whitepurple"},/area/toxins/lab) "cli" = (/obj/machinery/light/small{dir = 8},/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue) "clj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "clk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) @@ -6017,10 +6017,10 @@ "clK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/aft) "clL" = (/obj/structure/closet,/obj/item/stack/sheet/glass{amount = 12},/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "clM" = (/obj/structure/table,/obj/machinery/power/apc{dir = 4; name = "Morgue APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/item/weapon/folder/white,/obj/item/clothing/gloves/color/latex,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue) -"clN" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurple"},/area/toxins/mineral_storeroom) -"clO" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/mineral_storeroom) -"clP" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) -"clQ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) +"clN" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/clothing/mask/gas,/obj/item/device/multitool{pixel_x = 3},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/lab) +"clO" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/meter,/obj/structure/grille,/turf/simulated/wall/r_wall,/area/atmos) +"clP" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/meter{frequency = 1443; id = "mair_in_meter"; name = "Mixed Air Tank In"},/obj/structure/grille,/turf/simulated/wall/r_wall,/area/atmos) +"clQ" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/meter{frequency = 1443; id = "mair_out_meter"; name = "Mixed Air Tank Out"},/obj/structure/grille,/turf/simulated/wall/r_wall,/area/atmos) "clR" = (/obj/machinery/disposal{pixel_x = 5},/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 24; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurple"},/area/toxins/lab) "clS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) "clT" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_Toxins = 0},/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/medical/research{name = "Research Division"}) @@ -6044,20 +6044,20 @@ "cml" = (/obj/machinery/igniter{icon_state = "igniter0"; id = "Incinerator"; luminosity = 2; on = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator) "cmm" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; initialize_directions = 1; internal_pressure_bound = 4000; on = 0; pressure_checks = 2; pump_direction = 0},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator) "cmn" = (/obj/machinery/door/poddoor{id = "auxincineratorvent"; name = "Auxiliary Incinerator Vent"},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator) -"cmo" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "n2_in"},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/maintenance/storage) -"cmp" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2_sensor"},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/maintenance/storage) -"cmq" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; id_tag = "n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/maintenance/storage) -"cmr" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "o2_in"},/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/maintenance/storage) -"cms" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "o2_sensor"},/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/maintenance/storage) -"cmt" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; id_tag = "o2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/maintenance/storage) -"cmu" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 1; frequency = 1443; id = "air_in"},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/maintenance/storage) -"cmv" = (/obj/machinery/air_sensor{frequency = 1443; id_tag = "air_sensor"; output = 7},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/maintenance/storage) -"cmw" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; external_pressure_bound = 0; frequency = 1443; icon_state = "in"; id_tag = "air_out"; internal_pressure_bound = 2000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/maintenance/storage) +"cmo" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/portables_connector/visible,/turf/simulated/floor/plating,/area/atmos) +"cmp" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/unary/portables_connector/visible,/turf/simulated/floor/plating,/area/atmos) +"cmq" = (/obj/machinery/r_n_d/destructive_analyzer,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/lab) +"cmr" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/toxins/lab) +"cms" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) +"cmt" = (/mob/living/simple_animal/pet/pug{desc = "It's Pugley IV, the research department's lovable pug clone. Hopefully nothing happens to this one - fourth time lucky!"; name = "Pugley IV"; real_name = "Pugley IV"},/turf/simulated/floor/engine,/area/toxins/explab) +"cmu" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_Toxins = 0},/turf/simulated/floor/engine,/area/toxins/explab) +"cmv" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "n2_in"},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) +"cmw" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; id_tag = "n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) "cmx" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty{pixel_x = -3; pixel_y = -3},/obj/item/weapon/reagent_containers/blood/AMinus,/obj/item/weapon/reagent_containers/blood/BMinus{pixel_x = -4; pixel_y = 4},/obj/item/weapon/reagent_containers/blood/BPlus{pixel_x = 1; pixel_y = 2},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OPlus{pixel_x = -2; pixel_y = -1},/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitegreen"},/area/medical/virology) "cmy" = (/obj/machinery/vending/boozeomat,/turf/simulated/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) "cmz" = (/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/turf/simulated/floor/wood{tag = "icon-wood-broken3"; icon_state = "wood-broken3"},/area/maintenance/aft{name = "Aft Maintenance"}) "cmA" = (/obj/structure/rack,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = 3; pixel_y = 2},/obj/item/weapon/reagent_containers/food/drinks/bottle/vermouth{pixel_x = -4; pixel_y = 3},/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey,/turf/simulated/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) -"cmB" = (/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = 4; pixel_y = 5},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = 6; pixel_y = -1},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = -4; pixel_y = 6},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = -5; pixel_y = 2},/obj/structure/table/wood,/obj/machinery/light_construct/small{dir = 1},/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) +"cmB" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2_sensor"},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) "cmC" = (/obj/structure/stool,/turf/simulated/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) "cmD" = (/obj/item/weapon/storage/box/bodybags{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/rxglasses{pixel_x = 1; pixel_y = 1},/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table/glass,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitebluecorner"},/area/medical/medbay2{name = "Medbay Storage"}) "cmE" = (/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/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/clothing/tie/stethoscope,/obj/item/clothing/tie/stethoscope,/obj/item/weapon/gun/syringe,/obj/structure/table/glass,/turf/simulated/floor/plasteel{dir = 5; icon_state = "whiteblue"},/area/medical/medbay2{name = "Medbay Storage"}) @@ -6092,12 +6092,12 @@ "cnh" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) "cni" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "cnj" = (/obj/machinery/door/airlock/maintenance{name = "Experimentation Lab Maintenance"; req_access_txt = "8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/toxins/explab) -"cnk" = (/obj/machinery/r_n_d/destructive_analyzer,/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/lab) +"cnk" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 1; frequency = 1441; id = "o2_in"},/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/atmos) "cnl" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/lab) "cnm" = (/obj/machinery/r_n_d/protolathe,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/lab) "cnn" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/toxins/lab) -"cno" = (/obj/effect/landmark/start{name = "Scientist"},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/toxins/lab) -"cnp" = (/obj/structure/table,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/micro_laser,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/lab) +"cno" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; id_tag = "o2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/atmos) +"cnp" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "o2_sensor"},/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/atmos) "cnq" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/storage/box/lights/mixed,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/starboard) "cnr" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) "cns" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -6112,7 +6112,7 @@ "cnB" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/research{name = "Research Division"}) "cnC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/research{name = "Research Division"}) "cnD" = (/obj/machinery/vending/coffee,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) -"cnE" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics2"; name = "robotics lab shutters"},/obj/structure/window/fulltile,/turf/simulated/floor/plating,/area/assembly/robotics) +"cnE" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 1; frequency = 1443; id = "air_in"},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) "cnF" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/item/target,/turf/simulated/floor/plating{icon_state = "warnplate"},/area/toxins/test_area) "cnG" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_virology{name = "Containment Cells"; req_access_txt = "39"},/turf/simulated/floor/plasteel{icon_state = "whitegreenfull"},/area/medical/virology) "cnH" = (/obj/structure/closet/crate,/obj/item/weapon/coin/silver,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/starboard) @@ -6125,15 +6125,15 @@ "cnO" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1; initialize_directions = 11},/turf/simulated/floor/plating,/area/medical/virology) "cnP" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/binary/pump{dir = 2; name = "Gas Pump"; on = 1},/turf/space,/area/space) "cnQ" = (/obj/machinery/power/compressor{comp_id = "incineratorturbine"; dir = 1; luminosity = 2},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator) -"cnR" = (/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/maintenance/storage) -"cnS" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/maintenance/storage) -"cnT" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - N2"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/maintenance/storage) -"cnU" = (/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/maintenance/storage) -"cnV" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/maintenance/storage) -"cnW" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - O2"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/maintenance/storage) -"cnX" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/maintenance/storage) -"cnY" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/maintenance/storage) -"cnZ" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - Air"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/maintenance/storage) +"cnR" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; external_pressure_bound = 0; frequency = 1443; icon_state = "in"; id_tag = "air_out"; internal_pressure_bound = 2000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) +"cnS" = (/obj/machinery/air_sensor{frequency = 1443; id_tag = "air_sensor"; output = 7},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) +"cnT" = (/obj/machinery/door/airlock/glass_atmos{name = "Auxiliary Chamber"; req_access_txt = "24"},/turf/simulated/floor/plating,/area/atmos) +"cnU" = (/obj/machinery/atmospherics/binary/pump{dir = 2},/turf/simulated/wall/r_wall,/area/atmos) +"cnV" = (/obj/structure/girder/reinforced,/turf/simulated/floor/plating,/area/atmos) +"cnW" = (/obj/machinery/atmospherics/binary/pump{dir = 1},/turf/simulated/wall/r_wall,/area/atmos) +"cnX" = (/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = 4; pixel_y = 5},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = 6; pixel_y = -1},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = -4; pixel_y = 6},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = -5; pixel_y = 2},/obj/structure/table/wood,/obj/machinery/light_construct/small{dir = 1},/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/turf/simulated/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) +"cnY" = (/obj/machinery/computer/rdconsole/core,/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/toxins/lab) +"cnZ" = (/obj/structure/table,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/micro_laser,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/clothing/glasses/science,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/lab) "coa" = (/obj/structure/sign/biohazard{pixel_x = -32},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/medbay3{name = "Medbay Aft"}) "cob" = (/obj/structure/closet/secure_closet/bar{pixel_x = -3; pixel_y = -1; req_access_txt = "25"},/turf/simulated/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) "coc" = (/turf/simulated/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) @@ -6164,20 +6164,20 @@ "coB" = (/obj/machinery/light,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitebluecorner"},/area/medical/medbay{name = "Medbay Central"}) "coC" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteyellowcorner"},/area/medical/medbay{name = "Medbay Central"}) "coD" = (/turf/simulated/floor/plasteel{dir = 6; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/medbay{name = "Medbay Central"}) -"coE" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics2"; name = "robotics lab shutters"},/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/assembly/robotics) +"coE" = (/obj/effect/landmark/start{name = "Scientist"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/toxins/lab) "coF" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/effect/landmark/start{name = "Chemist"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteyellow"},/area/medical/chemistry) -"coG" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/obj/effect/landmark/start{name = "Chemist"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) +"coG" = (/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) "coH" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 32},/turf/simulated/floor/plating,/area/toxins/server{name = "\improper Research Division Server Room"}) "coI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/aft) "coJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/camera{c_tag = "Aft Primary Hallway - Fore"; dir = 8; network = list("SS13")},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/aft) -"coK" = (/obj/machinery/computer/rdconsole/core,/obj/structure/sign/nosmoking_2{pixel_x = -29; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/toxins/lab) +"coK" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - N2"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) "coL" = (/turf/simulated/floor/plasteel{icon_state = "warning"},/area/toxins/lab) "coM" = (/obj/machinery/r_n_d/circuit_imprinter{pixel_y = 4},/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/simulated/floor/plasteel{icon_state = "warning"},/area/toxins/lab) "coN" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/toxins/lab) -"coO" = (/obj/item/weapon/folder/white,/obj/item/weapon/disk/tech_disk{pixel_x = 0; pixel_y = 0},/obj/item/weapon/disk/tech_disk{pixel_x = 0; pixel_y = 0},/obj/item/weapon/disk/design_disk,/obj/item/weapon/disk/design_disk,/obj/structure/table,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel,/area/toxins/lab) -"coP" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/disposalpipe/segment,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/shower{dir = 4},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) +"coO" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) +"coP" = (/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/atmos) "coQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/research{name = "Research Division"}) -"coR" = (/obj/machinery/shower{tag = "icon-shower (WEST)"; icon_state = "shower"; dir = 8},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) +"coR" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - O2"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/atmos) "coS" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/closet/firecloset,/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/medical/research{name = "Research Division"}) "coT" = (/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Research Division"},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/maintenance/aft{name = "Aft Maintenance"}) "coU" = (/turf/simulated/wall/r_wall,/area/maintenance/aft{name = "Aft Maintenance"}) @@ -6202,10 +6202,10 @@ "cpn" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/insulated{dir = 5},/turf/space,/area/space) "cpo" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8},/turf/simulated/floor/plating/airless,/area/space) "cpp" = (/obj/machinery/power/turbine{luminosity = 2},/obj/structure/cable,/turf/simulated/floor/engine/vacuum,/area/maintenance/incinerator) -"cpq" = (/obj/machinery/light/small,/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/maintenance/storage) -"cpr" = (/obj/machinery/light/small,/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/maintenance/storage) -"cps" = (/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/maintenance/storage) -"cpt" = (/obj/machinery/light/small,/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/maintenance/storage) +"cpq" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/atmos) +"cpr" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) +"cps" = (/obj/machinery/camera{c_tag = "Atmospherics Tank - Air"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) +"cpt" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) "cpu" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/virology{name = "Break Romm"; req_access_txt = "39"},/turf/simulated/floor/plasteel{icon_state = "whitegreenfull"},/area/medical/virology) "cpv" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) "cpw" = (/obj/item/weapon/reagent_containers/food/drinks/ale,/obj/structure/table/wood,/turf/simulated/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) @@ -6218,7 +6218,7 @@ "cpD" = (/obj/structure/rack,/obj/item/stack/rods{amount = 23},/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cpE" = (/obj/structure/bodycontainer/crematorium,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office) "cpF" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Observation"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel,/area/medical/surgery) -"cpG" = (/obj/structure/table/wood,/obj/item/weapon/spellbook/oneuse/smoke{name = "mysterious old book of "},/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater{name = "flask of holy water"; pixel_x = -2; pixel_y = 2},/obj/item/weapon/nullrod{pixel_x = 4},/obj/item/organ/heart,/obj/item/device/soulstone,/turf/simulated/floor/plasteel{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/chapel/office) +"cpG" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 1},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "cpH" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/medical/sleeper{name = "Sleepers"}) "cpI" = (/obj/machinery/door/airlock/maintenance{name = "Surgery Maintenance"; req_access_txt = "45"},/turf/simulated/floor/plating,/area/medical/surgery) "cpJ" = (/obj/machinery/door/firedoor,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) @@ -6230,15 +6230,15 @@ "cpP" = (/obj/item/trash/cheesie{pixel_y = 4},/obj/structure/table/glass,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/medical/virology) "cpQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{name = "CMO Maintenance"; req_access_txt = "40"},/turf/simulated/floor/plating,/area/medical/cmo) "cpR" = (/obj/machinery/reagentgrinder,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/requests_console{department = "Chemistry"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/structure/table/glass,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteyellow"},/area/medical/chemistry) -"cpS" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) +"cpS" = (/obj/structure/girder,/turf/simulated/floor/plating,/area/atmos) "cpT" = (/obj/item/device/flashlight/lamp,/obj/machinery/newscaster{pixel_x = -30},/obj/structure/table/wood,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office) "cpU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/sign/chemistry{pixel_x = -32},/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellowcorner"},/area/hallway/primary/aft) "cpV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/sign/science{pixel_x = 32},/turf/simulated/floor/plasteel{dir = 2; icon_state = "purplecorner"},/area/hallway/primary/aft) -"cpW" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurple"},/area/toxins/lab) -"cpX" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) -"cpY" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) -"cpZ" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/toxins/lab) -"cqa" = (/obj/item/weapon/reagent_containers/glass/beaker/large{pixel_x = -3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/dropper,/obj/structure/table,/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/camera{c_tag = "Research and Development"; dir = 8; network = list("SS13","RD")},/turf/simulated/floor/plasteel,/area/toxins/lab) +"cpW" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) +"cpX" = (/obj/structure/stool/bed/chair/office/light,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"cpY" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/start{name = "Chemist"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) +"cpZ" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurple"},/area/toxins/lab) +"cqa" = (/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/item/clothing/glasses/welding,/obj/structure/table,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/lab) "cqb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{glass = 0; icon = 'icons/obj/doors/Doorresearch.dmi'; id_tag = ""; name = "Research Division"; opacity = 1; req_access_txt = "0"; req_one_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/medical/research{name = "Research Division"}) "cqc" = (/obj/machinery/door/window/westleft{dir = 2; name = "Research Division Deliveries"; req_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/maintenance/aft{name = "Aft Maintenance"}) "cqd" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/toxins/explab) @@ -6248,7 +6248,7 @@ "cqh" = (/obj/item/candle,/obj/machinery/light_switch{pixel_x = -27},/obj/effect/decal/cleanable/cobweb,/obj/structure/table/wood,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) "cqi" = (/obj/item/weapon/storage/book/bible,/obj/machinery/light/small{dir = 1},/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/machinery/camera{c_tag = "Chapel - Fore"; dir = 2; network = list("SS13")},/obj/structure/table/wood,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) "cqj" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = -3},/obj/item/weapon/storage/firstaid/fire{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/fire{pixel_x = -3; pixel_y = -3},/obj/structure/table/glass,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/medical/medbay2{name = "Medbay Storage"}) -"cqk" = (/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/machinery/light/small{dir = 1},/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/structure/table/wood,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) +"cqk" = (/obj/structure/disposalpipe/segment,/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "cql" = (/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = -3},/obj/item/weapon/storage/firstaid/toxin{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/toxin{pixel_x = -3; pixel_y = -3},/obj/structure/table/glass,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/medbay2{name = "Medbay Storage"}) "cqm" = (/obj/structure/bodycontainer/morgue,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office) "cqn" = (/obj/structure/disposalpipe/segment,/obj/structure/table/wood,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office) @@ -6264,7 +6264,7 @@ "cqx" = (/obj/item/weapon/storage/fancy/crayons,/obj/machinery/light/small{dir = 8},/obj/structure/table/wood,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office) "cqy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/storage/fancy/candle_box{pixel_x = 0; pixel_y = 5},/obj/structure/table/wood,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office) "cqz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) -"cqA" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/toxins/xenobiology) +"cqA" = (/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "cqB" = (/turf/simulated/floor/wood{tag = "icon-wood-broken"; icon_state = "wood-broken"},/area/maintenance/aft{name = "Aft Maintenance"}) "cqC" = (/obj/structure/mineral_door/wood{name = "The Gobbetting Barmaid"},/turf/simulated/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) "cqD" = (/obj/structure/table,/obj/item/weapon/hemostat,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor/plasteel,/area/medical/surgery) @@ -6279,28 +6279,28 @@ "cqM" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/obj/structure/closet/secure_closet/medical1{pixel_x = -3},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/cryo) "cqN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/medical/cryo) "cqO" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/medical/cryo) -"cqP" = (/obj/machinery/atmospherics/unary/cryo_cell,/obj/machinery/light_switch{pixel_x = 24; pixel_y = 24},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/medical/cryo) +"cqP" = (/obj/structure/table,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/scanning_module,/obj/item/weapon/stock_parts/scanning_module,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/sign/nosmoking_2{pixel_x = 30; pixel_y = 0},/turf/simulated/floor/plasteel,/area/toxins/lab) "cqQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cqR" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitebluecorner"},/area/medical/medbay{name = "Medbay Central"}) "cqS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) -"cqT" = (/obj/structure/filingcabinet/filingcabinet,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/door_control{id = "cmoprivacy"; name = "Privacy Shutters Control"; pixel_x = -22; pixel_y = 22},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) +"cqT" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/toxins/lab) "cqU" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cqV" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cqW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/lattice/catwalk,/turf/space,/area/solar/starboard) "cqX" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/structure/table/glass,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 8},/area/medical/genetics) "cqY" = (/obj/item/clothing/glasses/science{pixel_x = 2; pixel_y = 4},/obj/item/clothing/glasses/science,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/structure/table/glass,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/machinery/camera{c_tag = "Chemistry"; dir = 4; network = list("SS13","Medbay")},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteyellow"},/area/medical/chemistry) -"cqZ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) -"cra" = (/obj/structure/stool/bed/roller,/obj/machinery/light_switch{pixel_x = -28; pixel_y = 0},/obj/machinery/iv_drip{density = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/surgery) +"cqZ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/disposalpipe/segment,/obj/machinery/shower{dir = 4},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) +"cra" = (/obj/machinery/shower{tag = "icon-shower (WEST)"; icon_state = "shower"; dir = 8},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -28},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) "crb" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 6},/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellowfull"; tag = "icon-whitehall (WEST)"},/area/hallway/primary/aft) "crc" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/hallway/primary/aft) "crd" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/hallway/primary/aft) "cre" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/simulated/floor/plasteel{dir = 4; icon_state = "purple"},/area/hallway/primary/aft) "crf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "purplefull"},/area/hallway/primary/aft) "crg" = (/obj/structure/noticeboard{desc = "A memorial wall for pinning up momentos"; name = "memorial board"; pixel_y = 32},/obj/item/weapon/storage/fancy/candle_box,/obj/item/weapon/storage/fancy/candle_box{pixel_x = -2; pixel_y = 2},/obj/effect/decal/cleanable/cobweb,/obj/structure/table/wood,/turf/simulated/floor/fancy/carpet,/area/chapel/main) -"crh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurple"},/area/toxins/lab) -"cri" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) -"crj" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) -"crk" = (/obj/item/weapon/stock_parts/console_screen,/obj/structure/table,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/scanning_module,/obj/item/weapon/stock_parts/scanning_module,/turf/simulated/floor/plasteel{icon_state = "warning"},/area/toxins/lab) +"crh" = (/obj/machinery/light/small,/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) +"cri" = (/obj/machinery/light/small,/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/atmos) +"crj" = (/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) +"crk" = (/obj/machinery/light/small,/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) "crl" = (/obj/structure/noticeboard{desc = "A memorial wall for pinning up momentos"; name = "memorial board"; pixel_y = 32},/obj/item/weapon/storage/book/bible,/obj/structure/table/wood,/turf/simulated/floor/fancy/carpet,/area/chapel/main) "crm" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plasteel{dir = 9; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) "crn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) @@ -6323,7 +6323,7 @@ "crE" = (/obj/item/device/flashlight/lantern{pixel_y = 7},/obj/structure/table/wood,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "crF" = (/obj/structure/girder,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "crG" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 0; pixel_y = 6},/obj/item/weapon/pen,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) -"crH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -30},/obj/structure/flora/kirbyplants{tag = "icon-plant-08"; icon_state = "plant-08"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) +"crH" = (/obj/item/stack/rods{amount = 25},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "crI" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "crJ" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/space,/area/solar/starboard) "crK" = (/obj/machinery/door/airlock/maintenance{name = "Chemistry Lab Maintenance"; req_access_txt = "5; 33"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plating,/area/medical/chemistry) @@ -6352,19 +6352,19 @@ "csh" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) "csi" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) "csj" = (/obj/structure/stool/bed/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Chief Medical Officer"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) -"csk" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) +"csk" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) "csl" = (/obj/machinery/power/apc{dir = 4; name = "CMO's Office APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/camera{c_tag = "CMO's Office"; dir = 8; network = list("SS13","Medbay")},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) "csm" = (/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/table/glass,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteyellow"},/area/medical/chemistry) -"csn" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/effect/landmark/start{name = "Chemist"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) -"cso" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) +"csn" = (/obj/structure/table/glass,/obj/item/weapon/folder/white{pixel_y = 2},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"cso" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) "csp" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Chemist"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "csq" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/machinery/door/firedoor,/obj/machinery/door/window/eastright{dir = 8; name = "Chemistry Desk"; req_access_txt = "5; 33"},/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteyellowfull"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "csr" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellowfull"; tag = "icon-whitehall (WEST)"},/area/hallway/primary/aft) "css" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "yellow"},/area/hallway/primary/aft) "cst" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "purple"},/area/hallway/primary/aft) "csu" = (/turf/simulated/floor/plasteel{icon_state = "purplefull"},/area/hallway/primary/aft) -"csv" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/obj/machinery/door/window/eastright{dir = 4; name = "Research and Development Desk"; req_access_txt = "7"},/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/machinery/door/poddoor/shutters/preopen{id = "rndshutters"; name = "research and development lab shutters"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/toxins/lab) -"csw" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/effect/landmark/start{name = "Scientist"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurple"},/area/toxins/lab) +"csv" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurple"},/area/toxins/lab) +"csw" = (/obj/structure/table,/obj/structure/disposalpipe/segment,/obj/item/weapon/folder/white,/obj/item/weapon/disk/tech_disk{pixel_x = 0; pixel_y = 0},/obj/item/weapon/disk/tech_disk{pixel_x = 0; pixel_y = 0},/obj/item/weapon/disk/design_disk,/obj/item/weapon/disk/design_disk,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "csx" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "csy" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "csz" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) @@ -6423,19 +6423,19 @@ "ctA" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) "ctB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "whitebluefull"},/area/medical/medbay{name = "Medbay Central"}) "ctC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) -"ctD" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/mob/living/simple_animal/pet/cat/Runtime,/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) +"ctD" = (/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 6},/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "ctE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) "ctF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) -"ctG" = (/obj/structure/closet/secure_closet/scientist,/obj/item/weapon/storage/backpack/satchel_tox,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/explab) +"ctG" = (/obj/machinery/camera{c_tag = "Research and Development"; dir = 8; network = list("SS13","RD")},/obj/machinery/light_switch{pixel_x = 27},/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/weapon/stock_parts/scanning_module{pixel_x = 2; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module,/turf/simulated/floor/plasteel,/area/toxins/lab) "ctH" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) "ctI" = (/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/screwdriver{pixel_x = -2; pixel_y = 6},/obj/machinery/power/apc{dir = 8; name = "Chemistry APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/item/device/radio/headset/headset_med,/obj/structure/table/glass,/turf/simulated/floor/plasteel{dir = 10; icon_state = "whiteyellow"},/area/medical/chemistry) -"ctJ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table/glass,/obj/item/weapon/storage/box/syringes,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) -"ctK" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) -"ctL" = (/obj/machinery/chem_master,/obj/structure/noticeboard{desc = "A board for pinning important notices upon. Probably helpful for keeping track of requests."; dir = 1; name = "requests board"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plasteel{dir = 6; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"ctJ" = (/obj/structure/table/reinforced,/obj/item/weapon/hand_labeler,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/device/taperecorder{pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/explab) +"ctK" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 6},/obj/item/weapon/pen,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/explab) +"ctL" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/book/manual/experimentor,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/explab) "ctM" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 6},/turf/simulated/floor/plasteel{icon_state = "purplefull"},/area/hallway/primary/aft) -"ctN" = (/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/machinery/power/apc{dir = 2; name = "Research Lab APC"; pixel_x = 0; pixel_y = -26},/obj/structure/cable/yellow,/obj/machinery/door_control{dir = 2; id = "rndshutters"; name = "Shutters Control Button"; pixel_x = -24; pixel_y = -25},/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/lab) -"ctO" = (/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/table/reinforced,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/lab) -"ctP" = (/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/item/clothing/glasses/welding,/obj/structure/table/reinforced,/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = -30},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/lab) +"ctN" = (/obj/machinery/door_control{id = "telelab"; name = "Test Chamber Blast Doors"; pixel_x = 0; pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 7; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -2; pixel_y = -1},/obj/item/weapon/reagent_containers/dropper,/obj/item/stack/medical/bruise_pack{pixel_x = -2; pixel_y = 6},/obj/item/stack/medical/ointment,/obj/item/device/healthanalyzer,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/explab) +"ctO" = (/obj/machinery/chem_heater,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ctP" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/medical/cryo) "ctQ" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/machinery/door/window/eastleft{dir = 1; name = "Research and Development Deliveries"; req_access_txt = "7"},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/toxins/lab) "ctR" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/lab) "ctS" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) @@ -6474,19 +6474,19 @@ "cuz" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plasteel{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/medical/surgery) "cuA" = (/obj/structure/stool/bed/roller,/obj/machinery/light/small{dir = 8},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/sign/nosmoking_2{pixel_x = -28},/obj/machinery/iv_drip{density = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/medical/surgery) "cuB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/surgery) -"cuC" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/surgery) +"cuC" = (/obj/structure/filingcabinet/filingcabinet,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) "cuD" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/medical/cryo) "cuE" = (/obj/machinery/light{dir = 8},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -30},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 5},/obj/structure/table/glass,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) "cuF" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 1},/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/machinery/light,/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/cryo) "cuG" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/medical/cryo) -"cuH" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/medical/cryo) +"cuH" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2"; icon_state = "pipe-j2"; dir = 2},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) "cuI" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitebluecorner"},/area/medical/medbay{name = "Medbay Central"}) "cuJ" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitebluecorner"},/area/medical/medbay{name = "Medbay Central"}) "cuK" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) "cuL" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) "cuM" = (/obj/structure/table/glass,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/weapon/storage/secure/briefcase,/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) "cuN" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) -"cuO" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology) +"cuO" = (/obj/machinery/disposal{pixel_x = 5},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) "cuP" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cuQ" = (/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance"; req_access_txt = "5"},/turf/simulated/floor/plating,/area/medical/cryo) "cuR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29},/turf/simulated/floor/plasteel{dir = 1; icon_state = "yellowcorner"},/area/hallway/primary/aft) @@ -6497,13 +6497,13 @@ "cuW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/maintenance/aft{name = "Aft Maintenance"}) "cuX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cuY" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"cuZ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cva" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cvb" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology) +"cuZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurple"},/area/toxins/lab) +"cva" = (/obj/structure/disposalpipe/segment,/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) +"cvb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "cvc" = (/turf/simulated/wall,/area/crew_quarters/hor) "cvd" = (/turf/simulated/wall/r_wall,/area/toxins/storage) "cve" = (/obj/structure/sign/biohazard,/turf/simulated/wall/r_wall,/area/toxins/storage) -"cvf" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access_txt = "8"},/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor/preopen{id = "toxins_blastdoor"; name = "biohazard containment door"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/toxins/storage) +"cvf" = (/obj/structure/table,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/toxins/lab) "cvg" = (/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) "cvh" = (/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) "cvi" = (/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j1"; tag = "icon-pipe-j1 (EAST)"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) @@ -6537,7 +6537,7 @@ "cvK" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cvL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cvM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/maintenance/aft{name = "Aft Maintenance"}) -"cvN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/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/aft{name = "Aft Maintenance"}) +"cvN" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"},/area/toxins/lab) "cvO" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = 11},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) "cvP" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 23},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/aft{name = "Aft Maintenance"}) "cvQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;5;9"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) @@ -6572,23 +6572,23 @@ "cwt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/maintenance/aft{name = "Aft Maintenance"}) "cwu" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/aft{name = "Aft Maintenance"}) "cwv" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/blood/empty{pixel_x = 0; pixel_y = 0},/obj/item/weapon/reagent_containers/blood/empty{pixel_x = 0; pixel_y = 0},/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/dropper,/obj/structure/sign/biohazard{pixel_x = 32},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/aft{name = "Aft Maintenance"}) -"cww" = (/turf/simulated/wall/r_wall,/area/toxins/misc_lab{name = "\improper Research Firing Range"}) +"cww" = (/obj/structure/flora/kirbyplants{icon_state = "plant-10"; layer = 4.1; tag = "icon-plant-10"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) "cwx" = (/obj/item/clothing/gloves/color/latex/nitrile,/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/toggle/labcoat,/obj/item/clothing/suit/apron/surgical,/obj/item/clothing/mask/surgical,/obj/item/clothing/mask/breath/medical,/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/maintenance/aft{name = "Aft Maintenance"}) "cwy" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) "cwz" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) "cwA" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) "cwB" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/medical/patients_rooms{name = "Patient Room A"}) "cwC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/item/weapon/cigbutt,/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/maintenance/aft{name = "Aft Maintenance"}) -"cwD" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/light_switch{pixel_x = 24; pixel_y = 24},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/patients_rooms{name = "Patient Room A"}) +"cwD" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) "cwE" = (/obj/machinery/door/airlock/medical{name = "Patient Room A"; req_access_txt = "5"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/patients_rooms{name = "Patient Room A"}) "cwF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) "cwG" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitebluecorner"},/area/medical/medbay{name = "Medbay Central"}) -"cwH" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/light_switch{pixel_x = -28; pixel_y = 0},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -30},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) +"cwH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/table/reinforced,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/science,/obj/item/device/multitool{pixel_x = 3},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) "cwI" = (/obj/machinery/suit_storage_unit/cmo,/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) "cwJ" = (/obj/structure/table/glass,/obj/item/weapon/pen,/obj/item/clothing/tie/stethoscope,/obj/structure/extinguisher_cabinet{pixel_x = 6; pixel_y = -30},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) "cwK" = (/turf/simulated/wall/r_wall,/area/medical/genetics) "cwL" = (/turf/simulated/wall,/area/medical/genetics) -"cwM" = (/obj/machinery/door/airlock/maintenance{name = "Research Firing Range Maintenance"; req_access_txt = "0"; req_one_access_txt = "7;47;29"},/turf/simulated/floor/plating,/area/toxins/misc_lab{name = "\improper Research Firing Range"}) +"cwM" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/empty{pixel_x = -3; pixel_y = -3},/obj/item/weapon/reagent_containers/blood/empty{pixel_x = -3; pixel_y = -3},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cwN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/aft) "cwO" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/hallway/primary/aft) "cwP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/aft) @@ -6599,7 +6599,7 @@ "cwU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cwV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cwW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"cwX" = (/obj/machinery/door_control{id = "xeno_blastdoor"; name = "Xenobiology Shutter Control"; pixel_x = -5; pixel_y = -5; req_access_txt = "47"},/obj/structure/table/reinforced,/obj/machinery/door_control{id = "rdprivacy"; name = "Privacy Shutters Control"; pixel_x = 5; pixel_y = 5},/obj/machinery/door_control{id = "Biohazard"; name = "Entrance Shutter Control"; pixel_x = -5; pixel_y = 5; req_access_txt = "47"},/obj/machinery/door_control{id = "toxins_blastdoor"; name = "Toxins Shutter Control"; pixel_x = 5; pixel_y = -5; req_access_txt = "47"},/obj/item/device/radio/off,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"cwX" = (/obj/structure/stool/bed,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cwY" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/effect/landmark/start{name = "Research Director"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "cwZ" = (/obj/machinery/computer/robotics,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "cxa" = (/turf/simulated/floor/plasteel{dir = 10; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/crew_quarters/hor) @@ -6612,7 +6612,7 @@ "cxh" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/toxins/storage) "cxi" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cxj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) -"cxk" = (/obj/structure/flora/kirbyplants{tag = "icon-plant-10"; icon_state = "plant-10"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) +"cxk" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/mob/living/simple_animal/pet/cat/Runtime,/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) "cxl" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/research{name = "Experimentation Lab"; req_access_txt = "8"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/explab) "cxm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Medical Surplus Storeroom"; req_access_txt = "12"; req_one_access_txt = "0"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cxn" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/poddoor/preopen{id = "isola"; name = "privacy shutters"},/turf/simulated/floor/plating,/area/medical/patients_rooms{name = "Patient Room A"}) @@ -6625,8 +6625,8 @@ "cxu" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitebluecorner"},/area/medical/medbay{name = "Medbay Central"}) "cxv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) "cxw" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) -"cxx" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/camera{c_tag = "Xenobiology Lab - Aft-Port"; dir = 4; network = list("SS13","RD")},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/xenobiology) -"cxy" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/camera{c_tag = "Xenobiology Lab - Aft-Starboard"; dir = 8; network = list("SS13","RD")},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/toxins/xenobiology) +"cxx" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) +"cxy" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) "cxz" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/power/apc{dir = 2; name = "Experimentation Lab APC"; pixel_y = -24},/obj/structure/cable/yellow,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab) "cxA" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/maintenance/aft{name = "Aft Maintenance"}) "cxB" = (/obj/item/weapon/dice/d20,/obj/item/weapon/dice,/obj/structure/table/wood,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) @@ -6641,9 +6641,9 @@ "cxK" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plating{icon_plating = "warnplate"; icon_state = "warnplate"},/area/maintenance/aft{name = "Aft Maintenance"}) "cxL" = (/obj/structure/reagent_dispensers/fueltank,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cxM" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/storage/box/lights/mixed,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) -"cxN" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Firing Range"}) -"cxO" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Firing Range"}) -"cxP" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/toxins/misc_lab{name = "\improper Research Firing Range"}) +"cxN" = (/obj/effect/landmark/start{name = "Scientist"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurple"},/area/toxins/lab) +"cxO" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{dir = 4; name = "Research and Development Desk"; req_access_txt = "7"},/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/machinery/door/poddoor/shutters/preopen{id = "rndshutters"; name = "research and development lab shutters"},/obj/machinery/door/firedoor,/obj/item/weapon/pen,/turf/simulated/floor/plating,/area/toxins/lab) +"cxP" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) "cxQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cxR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) "cxS" = (/obj/structure/sign/directions/evac{pixel_y = 0},/turf/simulated/wall,/area/medical/genetics) @@ -6690,8 +6690,8 @@ "cyH" = (/turf/simulated/floor/plasteel{icon_state = "bluefull"},/area/medical/genetics) "cyI" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "cyJ" = (/obj/machinery/door/airlock/maintenance{name = "Mech Bay Maintenance"; req_access_txt = "29"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/assembly/chargebay) -"cyK" = (/obj/structure/sign/nosmoking_2{pixel_x = -29; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/toxins/misc_lab{name = "\improper Research Firing Range"}) -"cyL" = (/obj/machinery/magnetic_module,/obj/effect/landmark{name = "blobstart"},/obj/structure/target_stake,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/toxins/misc_lab{name = "\improper Research Firing Range"}) +"cyK" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"cyL" = (/obj/machinery/chem_master{pixel_x = -2},/obj/structure/noticeboard{desc = "A board for pinning important notices upon. Probably helpful for keeping track of requests."; dir = 1; name = "requests board"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plasteel{dir = 6; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "cyM" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cyN" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/research{name = "Research Division"}) "cyO" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Research Director's Office"; req_access_txt = "30"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) @@ -6738,15 +6738,15 @@ "czD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{dir = 1; icon_state = "bluecorner"},/area/hallway/primary/aft) "czE" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/aft) "czF" = (/obj/machinery/door/poddoor/shutters{id = "Skynet_launch"; name = "Mech Bay"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/chargebay) -"czG" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "researchrangeshutters"; name = "blast door"},/turf/simulated/floor/plating,/area/toxins/misc_lab{name = "\improper Research Firing Range"}) +"czG" = (/obj/machinery/chem_heater{pixel_x = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "czH" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/assembly/chargebay) "czI" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/poddoor/preopen{id = "isolb"; name = "privacy shutters"},/turf/simulated/floor/plating,/area/medical/exam_room{name = "Patient Room B"}) "czJ" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/door_control{id = "isolb"; name = "Privacy Shutters"; pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/exam_room{name = "Patient Room B"}) "czK" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_Toxins = 0},/obj/structure/sign/nosmoking_2{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/plasteel,/area/assembly/chargebay) "czL" = (/obj/machinery/computer/mech_bay_power_console,/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/bluegrid{icon_state = "gcircuit"},/area/assembly/chargebay) "czM" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 31},/turf/simulated/floor/mech_bay_recharge_floor,/area/assembly/chargebay) -"czN" = (/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Firing Range"}) -"czO" = (/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Firing Range"}) +"czN" = (/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/machinery/power/apc{dir = 2; name = "Research Lab APC"; pixel_x = 0; pixel_y = -26},/obj/structure/cable/yellow,/obj/machinery/door_control{dir = 2; id = "rndshutters"; name = "Shutters Control Button"; pixel_x = -24; pixel_y = -25},/obj/structure/table,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/lab) +"czO" = (/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = -30},/obj/structure/table,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/lab) "czP" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "czQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) "czR" = (/obj/machinery/power/apc{dir = 2; name = "RD Office APC"; pixel_x = 0; pixel_y = -27},/obj/structure/cable/yellow,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/structure/flora/kirbyplants/dead,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) @@ -6802,7 +6802,7 @@ "cAP" = (/obj/machinery/reagentgrinder{pixel_y = 8},/obj/structure/table/glass,/turf/simulated/floor/plasteel{dir = 9; icon_state = "whitegreen"},/area/medical/virology) "cAQ" = (/obj/item/latexballon,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cAR" = (/obj/item/clothing/suit/ianshirt,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) -"cAS" = (/turf/simulated/floor/plating,/area/toxins/misc_lab{name = "\improper Research Firing Range"}) +"cAS" = (/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/structure/table,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/lab) "cAT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitebluecorner"},/area/medical/medbay3{name = "Medbay Aft"}) "cAU" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay3{name = "Medbay Aft"}) "cAV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/medbay3{name = "Medbay Aft"}) @@ -6822,13 +6822,13 @@ "cBj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 4},/area/medical/genetics) "cBk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{icon_state = "door_closed"; id_tag = "AuxGenetics"; locked = 0; name = "Genetics Access"; req_access_txt = "9"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel,/area/medical/genetics) "cBl" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/aft) -"cBm" = (/obj/machinery/camera{c_tag = "Research Firing Range"; dir = 8; network = list("SS13","RD"); pixel_y = -22},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plating,/area/toxins/misc_lab{name = "\improper Research Firing Range"}) +"cBm" = (/obj/structure/stool/bed/roller,/obj/machinery/iv_drip{density = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/surgery) "cBn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plasteel,/area/assembly/chargebay) "cBo" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/effect/landmark/start{name = "Roboticist"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/bluegrid,/area/assembly/chargebay) -"cBp" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plating{icon_plating = "warnplate"; icon_state = "warnplate"},/area/toxins/misc_lab{name = "\improper Research Firing Range"}) -"cBq" = (/turf/simulated/floor/plating{icon_plating = "warnplate"; icon_state = "warnplate"},/area/toxins/misc_lab{name = "\improper Research Firing Range"}) +"cBp" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/light_switch{pixel_x = 26; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/surgery) +"cBq" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/light_switch{pixel_x = 0; pixel_y = -24},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/medical/cryo) "cBr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"cBs" = (/obj/structure/closet/secure_closet/scientist,/obj/machinery/light_switch{pixel_y = 28},/obj/item/weapon/storage/backpack/satchel_tox,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cBs" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/keycard_auth{pixel_x = 26; pixel_y = -7},/obj/machinery/computer/med_data/laptop,/obj/structure/table/glass,/obj/machinery/door_control{id = "cmoprivacy"; name = "Privacy Shutters Control"; pixel_x = 26; pixel_y = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) "cBt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cBu" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cBv" = (/obj/structure/sign/biohazard,/turf/simulated/wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) @@ -6867,7 +6867,7 @@ "cCc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/medical/genetics) "cCd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -26},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/aft) "cCe" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/aft) -"cCf" = (/obj/structure/closet/secure_closet/scientist,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/storage/backpack/satchel_tox,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cCf" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{name = "Toxins Storage"; req_access_txt = "8"},/obj/machinery/door/poddoor/shutters/preopen{id = "toxins_blastdoor"; name = "biohazard containment shutters"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/toxins/storage) "cCg" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/obj/machinery/door_control{dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; pixel_x = 26; pixel_y = 6; req_one_access_txt = "29"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/aft) "cCh" = (/obj/machinery/door_control{dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; pixel_x = -26; pixel_y = 6},/obj/machinery/light_switch{pixel_x = -23; pixel_y = -2},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/assembly/chargebay) "cCi" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -6902,7 +6902,7 @@ "cCL" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whiteblue"},/area/medical/medbay3{name = "Medbay Aft"}) "cCM" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay3{name = "Medbay Aft"}) "cCN" = (/obj/machinery/power/apc{dir = 4; name = "Medbay Aft APC"; pixel_x = 26; pixel_y = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/disposalpipe/junction,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay3{name = "Medbay Aft"}) -"cCO" = (/obj/structure/flora/kirbyplants{icon_state = "plant-21"; pixel_x = -3; pixel_y = 3; tag = "icon-plant-21"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitegreencorner"},/area/medical/medbay3{name = "Medbay Aft"}) +"cCO" = (/obj/structure/closet/secure_closet/scientist,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/explab) "cCP" = (/obj/structure/table/glass,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/pen/red,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitegreen"},/area/medical/virology) "cCQ" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/medical/genetics_cloning) "cCR" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/closet/wardrobe/genetics_white,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/medical/genetics) @@ -6914,15 +6914,15 @@ "cCX" = (/obj/structure/closet/secure_closet/personal/patient,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/medical/genetics) "cCY" = (/turf/simulated/floor/mech_bay_recharge_floor,/area/assembly/chargebay) "cCZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/aft) -"cDa" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/item/weapon/folder/white,/obj/item/weapon/paper/range{pixel_x = 2; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Firing Range"}) -"cDb" = (/obj/structure/table/reinforced,/obj/machinery/magnetic_controller{autolink = 1; pixel_y = 3},/obj/structure/window/reinforced{dir = 1},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/clothing/ears/earmuffs,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Firing Range"}) +"cDa" = (/obj/machinery/iv_drip{density = 0},/obj/item/roller,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cDb" = (/obj/structure/disposalpipe/segment{dir = 4},/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/aft{name = "Aft Maintenance"}) "cDc" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/bluegrid,/area/assembly/chargebay) -"cDd" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 1; icon_state = "right"; name = "Firing Post"; req_access_txt = "0"},/turf/simulated/floor/plasteel,/area/toxins/misc_lab{name = "\improper Research Firing Range"}) +"cDd" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/light_switch{pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/patients_rooms{name = "Patient Room A"}) "cDe" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/poddoor/preopen{id = "toxins_blastdoor"; name = "biohazard containment door"},/turf/simulated/floor/plating,/area/toxins/mixing{name = "\improper Toxins Lab"}) "cDf" = (/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance"; req_access_txt = "5"},/turf/simulated/floor/plating,/area/medical/medbay3{name = "Medbay Aft"}) "cDg" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/aft) "cDh" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) -"cDi" = (/obj/machinery/door/firedoor,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/poddoor/preopen{id = "toxins_blastdoor"; name = "biohazard containment door"},/obj/machinery/door/airlock/research{name = "Toxins Lab"; req_access_txt = "8"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cDi" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/light_switch{pixel_x = -28; pixel_y = 0},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -30},/obj/machinery/light/small,/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/medical/cmo) "cDj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cDk" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cDl" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/mixing{name = "\improper Toxins Lab"}) @@ -6974,7 +6974,7 @@ "cEf" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cEg" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cEh" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/toxins/mixing{name = "\improper Toxins Lab"}) -"cEi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/research{name = "Toxins Launch Room Access"; req_access_txt = "8"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cEi" = (/turf/simulated/wall/r_wall,/area/toxins/misc_lab{name = "\improper Research Testing Range"}) "cEj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cEk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cEl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) @@ -6986,7 +6986,7 @@ "cEr" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/driver_button{dir = 2; id = "toxinsdriver"; pixel_x = 24; pixel_y = -24},/obj/machinery/computer/security/telescreen{desc = "Used for watching the test chamber."; dir = 8; layer = 4; name = "Test Chamber Telescreen"; network = list("Toxins"); pixel_x = 30; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cEs" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/closet/crate,/obj/item/clothing/gloves/color/fyellow,/obj/item/weapon/wrench,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cEt" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'BOMB RANGE"; name = "BOMB RANGE"},/turf/simulated/wall,/area/toxins/test_area) -"cEu" = (/obj/structure/flora/kirbyplants{tag = "icon-plant-10"; icon_state = "plant-10"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) +"cEu" = (/obj/machinery/door/airlock/maintenance{name = "Research Testing Range Maintenance"; req_access_txt = "0"; req_one_access_txt = "7;47;29"},/turf/simulated/floor/plating,/area/toxins/misc_lab{name = "\improper Research Testing Range"}) "cEv" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plating/airless{dir = 9; icon_state = "warnplate"},/area/toxins/test_area) "cEw" = (/obj/structure/rack,/obj/effect/landmark/costume,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/maintenance/aft{name = "Aft Maintenance"}) "cEx" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plating/airless{dir = 5; icon_state = "warnplate"},/area/toxins/test_area) @@ -7013,9 +7013,9 @@ "cES" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/assembly/chargebay) "cET" = (/obj/machinery/power/apc{dir = 4; name = "Mech Bay APC"; pixel_x = 28; pixel_y = 0},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel,/area/assembly/chargebay) "cEU" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/assembly/chargebay) -"cEV" = (/obj/structure/rack,/obj/item/target,/obj/item/target,/obj/item/target/alien,/obj/item/target/alien,/obj/item/target/alien,/obj/item/target/syndicate,/obj/item/target/syndicate,/obj/item/target/syndicate,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Firing Range"}) -"cEW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Firing Range"}) -"cEX" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Firing Range"}) +"cEV" = (/obj/machinery/door_control{id = "xeno_blastdoor"; name = "Secure Lab Shutter Control"; pixel_x = -5; pixel_y = -5; req_access_txt = "47"},/obj/structure/table/reinforced,/obj/machinery/door_control{id = "rdprivacy"; name = "Privacy Shutters Control"; pixel_x = 5; pixel_y = 5},/obj/machinery/door_control{id = "Biohazard"; name = "Entrance Shutter Control"; pixel_x = -5; pixel_y = 5; req_access_txt = "47"},/obj/machinery/door_control{id = "toxins_blastdoor"; name = "Toxins Shutter Control"; pixel_x = 5; pixel_y = -5; req_access_txt = "47"},/obj/item/device/radio/off,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) +"cEW" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cEX" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) "cEY" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) "cEZ" = (/turf/simulated/wall,/area/assembly/robotics) "cFa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -7059,12 +7059,12 @@ "cFM" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue) "cFN" = (/obj/machinery/vending/cola,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/hallway/primary/aft) "cFO" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/obj/machinery/door/window/eastright{dir = 4; name = "Robotics Desk"; req_access_txt = "29"},/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics"; name = "robotics lab shutters"},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/assembly/robotics) -"cFP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Research Firing Range"; req_access_txt = "0"; req_one_access_txt = "7;47;29"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "purplefull"},/area/toxins/misc_lab{name = "\improper Research Firing Range"}) +"cFP" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) "cFQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cFR" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/aft) "cFS" = (/obj/machinery/recharge_station,/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/chargebay) -"cFT" = (/obj/effect/landmark/start{name = "Roboticist"},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/assembly/robotics) -"cFU" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 20; pixel_x = -3; pixel_y = 6},/obj/item/stack/sheet/glass{amount = 20; pixel_x = -3; pixel_y = 6},/obj/item/stack/sheet/plasteel{amount = 10},/obj/machinery/ai_status_display{pixel_x = 32; pixel_y = 0},/obj/item/weapon/storage/box/bodybags,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) +"cFT" = (/obj/structure/sign/nosmoking_2{pixel_x = -29; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cFU" = (/obj/machinery/magnetic_module,/obj/effect/landmark{name = "blobstart"},/obj/structure/target_stake,/turf/simulated/floor/plasteel{dir = 2; icon_state = "bot"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) "cFV" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) "cFW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) "cFX" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; name = "emergency shower"; tag = "icon-shower (EAST)"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/mixing{name = "\improper Toxins Lab"}) @@ -7087,10 +7087,10 @@ "cGo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/mob/living/carbon/monkey,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/medical/virology) "cGp" = (/obj/machinery/light/small,/obj/machinery/door_control{id = "chapelspaceshutters"; name = "Space Window Shutter Control"; pixel_x = -6; pixel_y = -25; req_access_txt = "0"},/obj/machinery/light_switch{pixel_x = 6; pixel_y = -25},/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/chapel/main) "cGq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "chapelspaceshutters"; name = "chapel shutters"},/turf/simulated/floor/plating,/area/chapel/main) -"cGr" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology) +"cGr" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "researchrangeshutters"; name = "blast door"},/turf/simulated/floor/plating,/area/toxins/misc_lab{name = "\improper Research Testing Range"}) "cGs" = (/obj/machinery/smartfridge/chemistry/virology,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor/plasteel{icon_state = "whitegreenfull"},/area/medical/virology) -"cGt" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cGu" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology) +"cGt" = (/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cGu" = (/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) "cGv" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cGw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cGx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/maintenance/aft{name = "Aft Maintenance"}) @@ -7109,7 +7109,7 @@ "cGK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue) "cGL" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue) "cGM" = (/obj/structure/cable/yellow{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/medical/morgue) -"cGN" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow,/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology) +"cGN" = (/turf/simulated/floor/plating,/area/toxins/misc_lab{name = "\improper Research Testing Range"}) "cGO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/medical/morgue) "cGP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/hallway/primary/aft) "cGQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/aft) @@ -7117,10 +7117,10 @@ "cGS" = (/turf/simulated/wall/r_wall,/area/assembly/robotics) "cGT" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/chargebay) "cGU" = (/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) -"cGV" = (/obj/structure/table,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/item/clothing/glasses/science,/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Firing Range"}) -"cGW" = (/obj/item/weapon/gun/energy/laser/practice,/obj/machinery/power/apc{dir = 2; name = "Research Firing Range APC"; pixel_x = 0; pixel_y = -28},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow,/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Firing Range"}) -"cGX" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/assembly/robotics) -"cGY" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door_control{id = "researchrangeshutters"; name = "Blast Door Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "0"},/obj/machinery/light,/turf/simulated/floor/plasteel{icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Firing Range"}) +"cGV" = (/obj/machinery/camera{c_tag = "Research Testing Range"; dir = 8; network = list("SS13","RD"); pixel_y = -22},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plating,/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cGW" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plating{icon_plating = "warnplate"; icon_state = "warnplate"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cGX" = (/turf/simulated/floor/plating{icon_plating = "warnplate"; icon_state = "warnplate"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cGY" = (/obj/structure/closet/secure_closet/scientist,/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cGZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "cHa" = (/obj/structure/lattice,/turf/space,/area/toxins/mixing{name = "\improper Toxins Lab"}) "cHb" = (/obj/machinery/door/poddoor{id = "mixvent"; name = "Mixer Room Vent"},/turf/simulated/floor/engine/vacuum,/area/toxins/mixing{name = "\improper Toxins Lab"}) @@ -7132,26 +7132,26 @@ "cHh" = (/obj/machinery/atmospherics/binary/valve{dir = 4; name = "manual outlet valve"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cHi" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 8},/obj/structure/window/reinforced{dir = 1; pixel_y = 2},/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cHj" = (/obj/structure/closet/wardrobe/grey,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) -"cHk" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology) +"cHk" = (/obj/structure/closet/secure_closet/scientist,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cHl" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plating/airless{dir = 10; icon_state = "warnplate"},/area/toxins/test_area) "cHm" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plating/airless{dir = 6; icon_state = "warnplate"},/area/toxins/test_area) "cHn" = (/turf/simulated/wall,/area/medical/virology) -"cHo" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio7"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cHp" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cHq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow,/obj/machinery/door/poddoor/preopen{id = "xenobio7"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cHr" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology) +"cHo" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/item/weapon/folder/white,/obj/item/weapon/paper/range{pixel_x = 2; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cHp" = (/obj/structure/table/reinforced,/obj/machinery/magnetic_controller{autolink = 1; pixel_y = 3},/obj/structure/window/reinforced{dir = 1},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/clothing/ears/earmuffs,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cHq" = (/obj/machinery/door/window/westleft{base_state = "right"; dir = 1; icon_state = "right"; name = "door"; req_access_txt = "0"},/turf/simulated/floor/plasteel,/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cHr" = (/obj/structure/rack,/obj/item/target,/obj/item/target,/obj/item/target/alien,/obj/item/target/alien,/obj/item/target/alien,/obj/item/target/syndicate,/obj/item/target/syndicate,/obj/item/target/syndicate,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/light_switch{pixel_x = -25},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) "cHs" = (/obj/structure/stool/bed/chair/office/light{dir = 1; pixel_y = 3},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitegreencorner"},/area/medical/virology) "cHt" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitegreen"},/area/medical/virology) "cHu" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Virologist"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitegreencorner"},/area/medical/virology) -"cHv" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology) +"cHv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) "cHw" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;5;39;6"},/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cHx" = (/turf/simulated/floor/plasteel{dir = 6; icon_state = "whitehall"},/area/medical/medbay3{name = "Medbay Aft"}) "cHy" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay3{name = "Medbay Aft"}) "cHz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plasteel{dir = 10; icon_state = "whitehall"},/area/medical/medbay3{name = "Medbay Aft"}) "cHA" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitecorner"},/area/medical/medbay3{name = "Medbay Aft"}) -"cHB" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow,/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology) +"cHB" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) "cHC" = (/obj/machinery/vending/medical,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitecorner"},/area/medical/medbay3{name = "Medbay Aft"}) -"cHD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology) +"cHD" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Research Testing Range"; req_access_txt = "0"; req_one_access_txt = "7;47;29"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "purplefull"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) "cHE" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2"; icon_state = "pipe-j2"; dir = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue) "cHF" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue) "cHG" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/medical/morgue) @@ -7160,7 +7160,7 @@ "cHJ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plasteel,/area/hallway/primary/aft) "cHK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel,/area/hallway/primary/aft) "cHL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) -"cHM" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "researchrangeshutters"; name = "blast door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/toxins/misc_lab{name = "\improper Research Firing Range"}) +"cHM" = (/obj/machinery/door/firedoor,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/poddoor/preopen{id = "toxins_blastdoor"; name = "biohazard containment door"},/obj/machinery/door/airlock/research{name = "Toxins Lab"; req_access_txt = "8"},/obj/machinery/door/poddoor/shutters/preopen{id = "toxins_blastdoor"; name = "biohazard containment shutters"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cHN" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/assembly/robotics) "cHO" = (/turf/simulated/floor/plasteel,/area/assembly/robotics) "cHP" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) @@ -7181,26 +7181,26 @@ "cIe" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plating/airless{dir = 6; icon_state = "warnplate"},/area/toxins/test_area) "cIf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor/plasteel{dir = 2; icon_state = "purplecorner"},/area/hallway/primary/aft) "cIg" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/assembly/chargebay) -"cIh" = (/obj/structure/filingcabinet/chestdrawer{pixel_x = -2; pixel_y = 2},/obj/machinery/door_control{dir = 2; id = "robotics"; name = "Shutter Control"; pixel_x = -26; pixel_y = 26},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) +"cIh" = (/obj/structure/table,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/item/clothing/glasses/science,/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) "cIi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitegreen"},/area/medical/virology) "cIj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitegreen"},/area/medical/virology) "cIk" = (/obj/structure/rack,/obj/item/weapon/crowbar/red,/obj/machinery/light_switch{pixel_x = 0; pixel_y = 26},/obj/item/weapon/wrench,/obj/item/weapon/restraints/handcuffs,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitegreen"},/area/medical/virology) "cIl" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 5; health = 120; icon_state = "twindow"; reinf = 0},/turf/simulated/floor/plating,/area/assembly/robotics) -"cIm" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = 6},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/light_switch{pixel_x = 27},/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) +"cIm" = (/obj/item/weapon/gun/energy/laser/practice,/obj/machinery/power/apc{dir = 2; name = "Research Firing Range APC"; pixel_x = 0; pixel_y = -28},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow,/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) "cIn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology) "cIo" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology) "cIp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology) "cIq" = (/obj/machinery/computer/pandemic{layer = 2.5; pixel_x = -4},/obj/machinery/light_switch{pixel_x = 26; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitegreen"},/area/medical/virology) "cIr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/virology) "cIs" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) -"cIt" = (/obj/structure/table,/obj/machinery/power/apc{dir = 1; name = "Robotics Lab APC"; pixel_x = 0; pixel_y = 25},/obj/item/weapon/crowbar,/obj/item/device/multitool{pixel_x = 3},/obj/item/device/radio/headset/headset_sci{pixel_x = -3},/obj/item/device/multitool{pixel_x = 3},/obj/item/stack/cable_coil,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) -"cIu" = (/obj/structure/table,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/structure/sign/nosmoking_2{pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) +"cIt" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door_control{id = "researchrangeshutters"; name = "Blast Door Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "0"},/obj/machinery/light,/turf/simulated/floor/plasteel{icon_state = "warning"},/area/toxins/misc_lab{name = "\improper Research Testing Range"}) +"cIu" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "researchrangeshutters"; name = "blast door"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/toxins/misc_lab{name = "\improper Research Testing Range"}) "cIv" = (/obj/structure/sign/biohazard{pixel_y = 32},/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/virology) "cIw" = (/obj/structure/sink{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/medical/virology) "cIx" = (/obj/structure/sign/securearea{pixel_x = 0; pixel_y = 32},/obj/machinery/shower{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTHEAST)"; icon_state = "warnwhite"; dir = 5},/area/medical/virology) -"cIy" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) +"cIy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/research{name = "Toxins Launch Room Access"; req_access_txt = "8"},/obj/machinery/door/poddoor/shutters/preopen{id = "toxins_blastdoor"; name = "biohazard containment shutters"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cIz" = (/obj/machinery/light/small{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitegreen"},/area/medical/medbay3{name = "Medbay Aft"}) -"cIA" = (/obj/structure/table,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000; pixel_x = 5; pixel_y = -5},/obj/machinery/camera{c_tag = "Robotics - Fore"; dir = 2; network = list("SS13","RD")},/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/machinery/light_switch{pixel_x = 0; pixel_y = 27},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) +"cIA" = (/obj/structure/filingcabinet/chestdrawer{pixel_x = -2; pixel_y = 2},/obj/machinery/door_control{dir = 2; id = "robotics"; name = "Shutter Control"; pixel_x = -26; pixel_y = 26},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) "cIB" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay3{name = "Medbay Aft"}) "cIC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay3{name = "Medbay Aft"}) "cID" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance"; req_access_txt = "5"},/turf/simulated/floor/plating,/area/medical/medbay3{name = "Medbay Aft"}) @@ -7211,12 +7211,12 @@ "cII" = (/obj/structure/closet,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/hallway/primary/aft) "cIJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/hallway/primary/aft) "cIK" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/r_n_d/circuit_imprinter,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) -"cIL" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel,/area/assembly/robotics) -"cIM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/assembly/robotics) +"cIL" = (/obj/machinery/mecha_part_fabricator{dir = 2},/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) +"cIM" = (/obj/machinery/mecha_part_fabricator{dir = 2},/obj/machinery/camera{c_tag = "Robotics - Fore"; dir = 2; network = list("SS13","RD")},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) "cIN" = (/turf/simulated/floor/plasteel{icon_state = "purplefull"},/area/assembly/robotics) "cIO" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/simulated/floor/plasteel{dir = 4; icon_state = "purple"},/area/hallway/primary/aft) -"cIP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/assembly/robotics) -"cIQ" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) +"cIP" = (/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/structure/rack,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/reagent_containers/glass/beaker/large,/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) +"cIQ" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 20; pixel_x = -3; pixel_y = 6},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) "cIR" = (/obj/effect/landmark/start{name = "Roboticist"},/obj/structure/stool/bed/chair/office/light{dir = 8},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/assembly/robotics) "cIS" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) "cIT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -7228,9 +7228,9 @@ "cIZ" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cJa" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cJb" = (/obj/structure/closet/crate,/obj/item/clothing/mask/gas,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) -"cJc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/assembly/robotics) -"cJd" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/assembly/robotics) -"cJe" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/assembly/robotics) +"cJc" = (/obj/machinery/power/apc{dir = 1; name = "Robotics Lab APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 4},/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/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) +"cJd" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/assembly/robotics) +"cJe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/assembly/robotics) "cJf" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology) "cJg" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology) "cJh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology) @@ -7245,28 +7245,28 @@ "cJq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) "cJr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology) "cJs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/embedded_controller/radio/access_controller{exterior_door_tag = "virology_airlock_exterior"; id_tag = "virology_airlock_control"; interior_door_tag = "virology_airlock_interior"; name = "Virology Access Console"; pixel_x = 26; pixel_y = 26; req_access_txt = "39"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitegreen"},/area/medical/virology) -"cJt" = (/obj/machinery/mecha_part_fabricator{dir = 4},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) +"cJt" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/machinery/ai_status_display{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) "cJu" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/access_button{command = "cycle_interior"; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -26; pixel_y = 28; req_access_txt = "39"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/virology) "cJv" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/virology) -"cJw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) -"cJx" = (/obj/structure/rack,/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/obj/item/clothing/glasses/welding,/obj/machinery/firealarm{dir = 4; pixel_x = 28; pixel_y = 5},/obj/item/stack/packageWrap,/obj/item/borg/upgrade/rename,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) +"cJw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/assembly/robotics) +"cJx" = (/obj/effect/landmark/start{name = "Roboticist"},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) "cJy" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitegreen"},/area/medical/medbay3{name = "Medbay Aft"}) "cJz" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/iv_drip{density = 0},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/medbay3{name = "Medbay Aft"}) "cJA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/medbay3{name = "Medbay Aft"}) "cJB" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay3{name = "Medbay Aft"}) "cJC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay3{name = "Medbay Aft"}) "cJD" = (/obj/machinery/computer/rdconsole/robotics,/obj/machinery/requests_console{department = "Robotics"; departmentType = 2; name = "Robotics RC"; pixel_x = -31; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) -"cJE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/assembly/robotics) +"cJE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/assembly/robotics) "cJF" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/maintenance{name = "Morgue Maintenance"; req_access_txt = "6"},/turf/simulated/floor/plating,/area/medical/morgue) "cJG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/hallway/primary/aft) -"cJH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) +"cJH" = (/obj/machinery/firealarm{dir = 4; pixel_x = 28; pixel_y = 5},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/table,/obj/item/weapon/wrench,/obj/item/weapon/screwdriver{pixel_y = 10},/obj/item/device/multitool{pixel_x = 3},/obj/item/stack/cable_coil,/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) "cJI" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) "cJJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/assembly/robotics) -"cJK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) -"cJL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Robotics Lab"; req_access_txt = "29"; req_one_access_txt = "0"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "purplefull"},/area/assembly/robotics) -"cJM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) +"cJK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/assembly/robotics) +"cJL" = (/obj/structure/flora/kirbyplants{icon_state = "plant-21"; layer = 4.1; pixel_x = -3; pixel_y = 3; tag = "icon-plant-21"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitegreencorner"},/area/medical/medbay3{name = "Medbay Aft"}) +"cJM" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/assembly/robotics) "cJN" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"cJO" = (/obj/machinery/door/airlock/maintenance{name = "Toxins Lab Maintenance"; req_access_txt = "8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"cJO" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_Toxins = 0},/turf/simulated/floor/plasteel,/area/assembly/robotics) "cJP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/toxins/server{name = "\improper Research Division Server Room"}) "cJQ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/simulated/wall/r_wall,/area/toxins/server{name = "\improper Research Division Server Room"}) "cJR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) @@ -7292,13 +7292,13 @@ "cKl" = (/obj/structure/closet/l3closet,/turf/simulated/floor/plasteel{dir = 6; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/virology) "cKm" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 1; name = "virology air connector port"},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/medical/virology) "cKn" = (/obj/machinery/camera{c_tag = "Virology - Entrance"; dir = 8; network = list("SS13","Medbay")},/obj/machinery/light/small{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitegreen"},/area/medical/medbay3{name = "Medbay Aft"}) -"cKo" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Xenobiology Access"; req_access_txt = "47"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) -"cKp" = (/obj/machinery/access_button{command = "cycle_exterior"; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = -24; pixel_y = 0; req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "xeno_airlock_exterior"; locked = 1; name = "Xenobiology External Airlock"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) +"cKo" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/disposal,/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) +"cKp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/assembly/robotics) "cKq" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/machinery/door/poddoor/preopen{id = "chapelparlourshutters"; name = "chapel shutters"},/turf/simulated/floor/plating,/area/chapel/main) -"cKr" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/toxins/xenobiology) -"cKs" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 7},/obj/item/weapon/storage/box/syringes{pixel_y = 5},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) +"cKr" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"cKs" = (/obj/effect/landmark/start{name = "Roboticist"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) "cKt" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) -"cKu" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 2; name = "xenobiology air connector port"},/obj/machinery/portable_atmospherics/canister/air,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) +"cKu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/rack,/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/device/healthanalyzer{pixel_x = 4; pixel_y = -4},/obj/item/device/healthanalyzer{pixel_x = 4; pixel_y = -4},/obj/item/device/healthanalyzer{pixel_x = 4; pixel_y = -4},/obj/item/device/radio/headset/headset_sci{pixel_x = -3},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) "cKv" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cKw" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/maintenance/aft{name = "Aft Maintenance"}) "cKx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) @@ -7306,21 +7306,21 @@ "cKz" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;5;39;6"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cKA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/hallway/primary/aft) "cKB" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/hallway/primary/aft) -"cKC" = (/obj/structure/table/glass,/obj/item/weapon/paper_bin{pixel_x = -1; pixel_y = 8},/obj/machinery/power/apc{dir = 1; name = "Xenobiology APC"; pixel_x = 0; pixel_y = 27},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) +"cKC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) "cKD" = (/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/assembly/robotics) "cKE" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/assembly/robotics) "cKF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/assembly/robotics) "cKG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"; tag = "icon-warnwhite (NORTHEAST)"},/area/assembly/robotics) "cKH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) -"cKI" = (/obj/structure/table/glass,/obj/item/weapon/folder/white{pixel_y = 4},/obj/item/weapon/pen,/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = 30},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) -"cKJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) +"cKI" = (/obj/structure/grille,/obj/structure/window/fulltile,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/assembly/robotics) +"cKJ" = (/obj/machinery/door/airlock/maintenance{name = "Toxins Lab Maintenance"; req_access_txt = "8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/poddoor/shutters/preopen{id = "toxins_blastdoor"; name = "biohazard containment shutters"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cKK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{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 = "white"},/area/medical/research{name = "Research Division"}) "cKL" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"},/area/medical/research{name = "Research Division"}) "cKM" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Research Division Server Room"; req_access = null; req_access_txt = "30"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/toxins/server{name = "\improper Research Division Server Room"}) "cKN" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/toxins/server{name = "\improper Research Division Server Room"}) "cKO" = (/obj/machinery/camera{c_tag = "Research Division - Server Room"; dir = 2; network = list("SS13","RD"); pixel_x = 22},/obj/machinery/power/apc{dir = 1; name = "Research Division Server Room APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/toxins/server{name = "\improper Research Division Server Room"}) "cKP" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 80; dir = 2; on = 1},/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/toxins/server{name = "\improper Research Division Server Room"}) -"cKQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "xeno_airlock_interior"; locked = 1; name = "Xenobiology Internal Airlock"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) +"cKQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) "cKR" = (/obj/machinery/r_n_d/server/robotics,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server{name = "\improper Research Division Server Room"}) "cKS" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; external_pressure_bound = 140; on = 1; pressure_checks = 0},/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server{name = "\improper Research Division Server Room"}) "cKT" = (/turf/simulated/wall/r_wall,/area/toxins/server{name = "\improper Research Division Server Room"}) @@ -7331,10 +7331,10 @@ "cKY" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cKZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cLa" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) -"cLb" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/monkeycubes{pixel_x = 3; pixel_y = 5},/obj/item/weapon/storage/box/monkeycubes{pixel_x = -3; pixel_y = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) -"cLc" = (/obj/item/stack/sheet/mineral/plasma{layer = 2.9; pixel_y = 4},/obj/structure/table/glass,/obj/item/stack/sheet/mineral/plasma{layer = 2.9; pixel_y = 4},/obj/item/stack/sheet/mineral/plasma{layer = 2.9; pixel_y = 4},/obj/item/stack/sheet/mineral/plasma{layer = 2.9; pixel_y = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) -"cLd" = (/obj/structure/table/glass,/obj/item/weapon/folder/white{pixel_y = 4},/obj/item/weapon/pen,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) -"cLe" = (/obj/machinery/smartfridge/extract,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) +"cLb" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Robotics Lab"; req_access_txt = "29"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "purplefull"},/area/assembly/robotics) +"cLc" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table,/obj/item/weapon/storage/box/bodybags{pixel_x = 2; pixel_y = 2},/obj/item/borg/upgrade/rename,/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) +"cLd" = (/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) +"cLe" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = -1; pixel_y = 4},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 2; pixel_y = -1},/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/obj/item/clothing/glasses/welding,/obj/item/device/multitool{pixel_x = 3},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) "cLf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/wall,/area/medical/virology) "cLg" = (/obj/machinery/disposal,/obj/structure/sign/deathsposal{pixel_x = -30; pixel_y = 0},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/medical/virology) "cLh" = (/obj/structure/closet/wardrobe/virology_white,/obj/item/weapon/storage/backpack/satchel_vir,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/medical/virology) @@ -7350,16 +7350,16 @@ "cLr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "escape"},/area/hallway/primary/aft) "cLs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "escape"},/area/hallway/primary/aft) "cLt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/camera{c_tag = "Aft Primary Hallway - Aft"; dir = 8; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 2; icon_state = "escape"},/area/hallway/primary/aft) -"cLu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology) -"cLv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plasteel{dir = 9; icon_state = "whitepurple"},/area/toxins/xenobiology) +"cLu" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) +"cLv" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/simulated/floor/plating,/area/assembly/robotics) "cLw" = (/obj/effect/landmark/start{name = "Roboticist"},/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics) "cLx" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics) -"cLy" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology) -"cLz" = (/obj/structure/rack,/obj/item/weapon/storage/belt/utility,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) -"cLA" = (/obj/structure/closet/wardrobe/robotics_black,/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) -"cLB" = (/obj/machinery/door/window/eastleft{dir = 1; name = "Robotics Deliveries"; req_access_txt = "29"},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) +"cLy" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/weapon/ore/slag,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cLz" = (/obj/structure/closet/wardrobe/robotics_black{pixel_x = 2},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) +"cLA" = (/obj/machinery/door/window/eastleft{dir = 1; name = "Robotics Deliveries"; req_access_txt = "29"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) +"cLB" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/crowbar,/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/floor/plasteel{icon_state = "delivery"},/area/assembly/robotics) "cLC" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"cLD" = (/obj/structure/stool/bed/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Scientist"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology) +"cLD" = (/obj/structure/flora/kirbyplants{icon_state = "plant-10"; layer = 4.1; tag = "icon-plant-10"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) "cLE" = (/turf/simulated/wall,/area/toxins/server{name = "\improper Research Division Server Room"}) "cLF" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/toxins/server{name = "\improper Research Division Server Room"}) "cLG" = (/obj/structure/stool/bed/chair/office/light,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/toxins/server{name = "\improper Research Division Server Room"}) @@ -7371,21 +7371,21 @@ "cLM" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/maintenance/aft{name = "Aft Maintenance"}) "cLN" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) "cLO" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) -"cLP" = (/obj/machinery/embedded_controller/radio/access_controller{exterior_door_tag = "xeno_airlock_exterior"; id_tag = "xeno_airlock_control"; interior_door_tag = "xeno_airlock_interior"; name = "Xenobiology Access Console"; pixel_x = 8; pixel_y = 22},/obj/machinery/light_switch{pixel_x = -6; pixel_y = 26},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology) +"cLP" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/medical/research{name = "Research Division"}) "cLQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/bedsheet/medical,/obj/structure/stool/bed,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/medical/virology) "cLR" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/medical/virology) "cLS" = (/obj/structure/stool/bed,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/bedsheet/medical,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/medical/virology) "cLT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/medical/virology) -"cLU" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology) +"cLU" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Secure Lab"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/medical/research{name = "Research Division"}) "cLV" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/maintenance/aft{name = "Aft Maintenance"}) "cLW" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cLX" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) -"cLY" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/weapon/ore/slag,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cLY" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) "cLZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) -"cMa" = (/obj/machinery/camera{c_tag = "Xenobiology Lab - Fore"; dir = 2; network = list("SS13","RD")},/obj/machinery/firealarm{dir = 2; pixel_y = 26},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology) +"cMa" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/camera{c_tag = "Research Division Hallway - Secure Lab Access"; dir = 2; network = list("SS13","RD")},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cMb" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/closet/firecloset,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) -"cMc" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology) -"cMd" = (/obj/structure/stool/bed/chair/office/light{dir = 1; pixel_y = 3},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology) +"cMc" = (/obj/machinery/light/small{dir = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cMd" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cMe" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = ""},/area/maintenance/aft{name = "Aft Maintenance"}) "cMf" = (/obj/structure/closet/firecloset,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cMg" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) @@ -7396,37 +7396,37 @@ "cMl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Departure Lounge"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cMm" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Departure Lounge"},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cMn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Departure Lounge"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) -"cMo" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitepurple"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology) +"cMo" = (/obj/structure/table/wood,/obj/item/weapon/spellbook/oneuse/smoke{name = "mysterious old book of "},/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater{name = "flask of holy water"; pixel_x = -2; pixel_y = 2},/obj/item/weapon/nullrod{pixel_x = 4},/obj/item/organ/heart,/obj/item/device/soulstone/anybody,/turf/simulated/floor/plasteel{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/chapel/office) "cMp" = (/obj/structure/optable{name = "Robotics Operating Table"},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/machinery/camera{c_tag = "Robotics - Aft"; dir = 1; network = list("SS13","RD")},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitehall"},/area/assembly/robotics) "cMq" = (/obj/machinery/computer/operating{name = "Robotics Operating Computer"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitehall"},/area/assembly/robotics) "cMr" = (/obj/machinery/light/small,/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/door_control{id = "chapelparlourshutters"; name = "Window Shutter Control"; pixel_x = 0; pixel_y = -25; req_access_txt = "0"},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) -"cMs" = (/obj/structure/rack,/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/weapon/storage/firstaid/regular{empty = 1; name = "First-Aid (empty)"},/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/obj/item/device/healthanalyzer,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/assembly/robotics) -"cMt" = (/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; tag = "icon-sink (WEST)"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurple"},/area/toxins/xenobiology) +"cMs" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/camera{c_tag = "Departure Lounge - Port Fore"; dir = 4; network = list("SS13")},/obj/structure/flora/kirbyplants{icon_state = "plant-24"; layer = 4.1; tag = "icon-plant-24"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cMt" = (/obj/machinery/light{dir = 4},/obj/machinery/camera{c_tag = "Departure Lounge - Starboard Fore"; dir = 8; network = list("SS13")},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/flora/kirbyplants{icon_state = "plant-14"; layer = 4.1; tag = "icon-plant-14"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cMu" = (/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 2},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) "cMv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"}) -"cMw" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurple"},/area/toxins/xenobiology) +"cMw" = (/obj/machinery/door/poddoor/preopen{id = "xeno_blastdoor"; name = "biohazard containment door"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cMx" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/toxins/server{name = "\improper Research Division Server Room"}) "cMy" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = -28},/obj/machinery/computer/rdservercontrol,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/toxins/server{name = "\improper Research Division Server Room"}) "cMz" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/toxins/server{name = "\improper Research Division Server Room"}) -"cMA" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/toxins/xenobiology) +"cMA" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/machinery/door/poddoor/preopen{id = "xeno_blastdoor"; name = "biohazard containment door"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cMB" = (/obj/machinery/r_n_d/server/core,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server{name = "\improper Research Division Server Room"}) "cMC" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 120; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server{name = "\improper Research Division Server Room"}) "cMD" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/maintenance/aft{name = "Aft Maintenance"}) -"cME" = (/obj/item/weapon/extinguisher{pixel_x = 4; pixel_y = 3},/obj/item/weapon/extinguisher,/obj/structure/table,/turf/simulated/floor/plasteel{tag = "icon-whitepurple (SOUTHWEST)"; icon_state = "whitepurple"; dir = 10},/area/toxins/xenobiology) +"cME" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/poddoor/preopen{id = "xeno_blastdoor"; name = "biohazard containment door"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cMF" = (/obj/effect/decal/cleanable/dirt,/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/maintenance/aft{name = "Aft Maintenance"}) -"cMG" = (/obj/machinery/disposal,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = -32},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/toxins/xenobiology) +"cMG" = (/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/machinery/light/small{dir = 1},/obj/structure/table/wood,/obj/structure/noticeboard{pixel_y = 29},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) "cMH" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 1},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cMI" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/aft{name = "Aft Maintenance"}) -"cMJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) +"cMJ" = (/obj/structure/sign/biohazard,/turf/simulated/wall,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cMK" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/medical/virology) "cML" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/medical/virology) "cMM" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/medical/virology) "cMN" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/medical/virology) -"cMO" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-warnwhitecorner"; icon_state = "warnwhitecorner"; dir = 2},/area/toxins/xenobiology) +"cMO" = (/obj/structure/sign/securearea,/turf/simulated/wall,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cMP" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/machinery/light{dir = 1},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 29},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitegreen"},/area/medical/virology) "cMQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitegreen"},/area/medical/virology) -"cMR" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) -"cMS" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warnwhitecorner"},/area/toxins/xenobiology) +"cMR" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Secure Lab"; req_access_txt = "47"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cMS" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cMT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/aft{name = "Aft Maintenance"}) "cMU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/maintenance/aft{name = "Aft Maintenance"}) "cMV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) @@ -7446,9 +7446,9 @@ "cNj" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cNk" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cNl" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) -"cNm" = (/obj/machinery/processor{desc = "A machine used to process slimes and retrieve their extract."; name = "Slime Processor"},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/toxins/xenobiology) -"cNn" = (/obj/structure/sign/biohazard,/turf/simulated/wall/r_wall,/area/medical/research{name = "Research Division"}) -"cNo" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Xenobiology Access"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/medical/research{name = "Research Division"}) +"cNm" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cNn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cNo" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cNp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/aft{name = "Aft Maintenance"}) "cNq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{icon_state = "door_closed"; locked = 0; name = "Storage Room"; req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cNr" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) @@ -7457,10 +7457,10 @@ "cNu" = (/turf/simulated/wall/r_wall,/area/maintenance/starboardsolar) "cNv" = (/obj/machinery/door/airlock/engineering{name = "Aft Starboard Solar Access"; req_access_txt = "10"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "cNw" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/maintenance/starboardsolar) -"cNx" = (/obj/machinery/monkey_recycler,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/toxins/xenobiology) -"cNy" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/simulated/floor/plasteel{dir = 6; icon_state = "whitepurple"},/area/toxins/xenobiology) +"cNx" = (/turf/simulated/wall/r_wall,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cNy" = (/obj/structure/sign/biohazard,/turf/simulated/wall/r_wall,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cNz" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/simulated/wall,/area/medical/virology) -"cNA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/toxins/xenobiology) +"cNA" = (/obj/machinery/access_button{command = "cycle_exterior"; master_tag = "xeno_airlock_control"; name = "Access Button"; pixel_x = -24; pixel_y = 0; req_access_txt = "0"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "xeno_airlock_exterior"; locked = 1; name = "Secure Lab External Airlock"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cNB" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology) "cNC" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology) "cND" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology) @@ -7490,15 +7490,15 @@ "cOb" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/aft{name = "Aft Maintenance"}) "cOc" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/maintenance/aft{name = "Aft Maintenance"}) "cOd" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) -"cOe" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/maintenance/aft{name = "Aft Maintenance"}) +"cOe" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cOf" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "7;12;47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) -"cOg" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/camera{c_tag = "Research Division Hallway - Xenobiology Access"; dir = 2; network = list("SS13","RD")},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology) -"cOh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology) -"cOi" = (/obj/machinery/light/small{dir = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology) +"cOg" = (/obj/machinery/camera{c_tag = "Departure Lounge - Port Aft"; dir = 4; network = list("SS13")},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/structure/flora/kirbyplants{icon_state = "plant-04"; layer = 4.1; tag = "icon-plant-04"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cOh" = (/obj/machinery/camera{c_tag = "Departure Lounge - Starboard Aft"; dir = 8; network = list("SS13")},/obj/machinery/light{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/structure/flora/kirbyplants{icon_state = "plant-16"; layer = 4.1; tag = "icon-plant-16"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cOi" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cOj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = ""},/area/maintenance/aft{name = "Aft Maintenance"}) "cOk" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/maintenance/aft{name = "Aft Maintenance"}) "cOl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) -"cOm" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/toxins/xenobiology) +"cOm" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTHEAST)"; icon_state = "warnwhite"; dir = 5},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cOn" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) "cOo" = (/obj/machinery/power/apc{dir = 8; name = "Aft Starboard Solar APC"; pixel_x = -26; pixel_y = 3},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "cOp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/starboardsolar) @@ -7509,55 +7509,55 @@ "cOu" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "whitegreen"},/area/medical/virology) "cOv" = (/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "whitegreen"},/area/medical/virology) "cOw" = (/obj/structure/stool,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plasteel{dir = 6; icon_state = "whitegreen"},/area/medical/virology) -"cOx" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/toxins/xenobiology) +"cOx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cOy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office) "cOz" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/effect/decal/cleanable/cobweb,/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office) "cOA" = (/obj/machinery/requests_console{department = "Chapel"; departmentType = 2; pixel_y = 30},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office) "cOB" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office) "cOC" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office) "cOD" = (/obj/machinery/door/morgue{name = "Relic Closet"; req_access_txt = "22"},/turf/simulated/floor/plasteel{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/chapel/office) -"cOE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/xenobiology) +"cOE" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/centcom{name = "Funeral Parlour"; opacity = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "cOF" = (/obj/machinery/door/airlock/maintenance{name = "Chapel Maintenance Access "; req_access_txt = "0"; req_one_access_txt = "12;27"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) -"cOG" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/camera{c_tag = "Departure Lounge - Port Fore"; dir = 4; network = list("SS13")},/obj/structure/flora/kirbyplants{tag = "icon-plant-24"; icon_state = "plant-24"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cOG" = (/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cOH" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cOI" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 2},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cOJ" = (/turf/simulated/floor/plasteel{icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cOK" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cOL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cOM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) -"cON" = (/obj/machinery/light{dir = 4},/obj/machinery/camera{c_tag = "Departure Lounge - Starboard Fore"; dir = 8; network = list("SS13")},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/flora/kirbyplants{tag = "icon-plant-14"; icon_state = "plant-14"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cON" = (/obj/structure/closet/l3closet/scientist,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/camera{c_tag = "Secure Lab - Airlock"; dir = 8; network = list("SS13","RD")},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cOO" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Aft Maintenance APC"; pixel_y = -24},/obj/structure/cable/yellow,/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/aft{name = "Aft Maintenance"}) -"cOP" = (/obj/machinery/door/poddoor/preopen{id = "xeno_blastdoor"; name = "biohazard containment door"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/toxins/xenobiology) -"cOQ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/poddoor/preopen{id = "xeno_blastdoor"; name = "biohazard containment door"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/toxins/xenobiology) -"cOR" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/machinery/door/poddoor/preopen{id = "xeno_blastdoor"; name = "biohazard containment door"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/toxins/xenobiology) +"cOP" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cOQ" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; pixel_y = 1},/turf/simulated/floor/plating/airless,/area/space) +"cOR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cOS" = (/obj/structure/stool/bed/chair,/obj/item/weapon/cigbutt,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cOT" = (/obj/structure/stool,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/camera{c_tag = "Aft Starboard Solar Maintenance"; dir = 4; network = list("SS13")},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "cOU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "cOV" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/light/small{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "cOW" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless,/area/space) "cOX" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless,/area/space) -"cOY" = (/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/xenobiology) -"cOZ" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/xenobiology) +"cOY" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Funeral Parlour"; opacity = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) +"cOZ" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/access_button{command = "cycle_interior"; master_tag = "xeno_airlock_control"; name = "Access Button"; pixel_x = 8; pixel_y = -28; req_access_txt = "0"},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cPa" = (/obj/machinery/atmospherics/unary/tank/air{dir = 1},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/medical/virology) -"cPb" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warnwhitecorner"},/area/toxins/xenobiology) -"cPc" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{tag = "icon-warnwhitecorner"; icon_state = "warnwhitecorner"; dir = 2},/area/toxins/xenobiology) -"cPd" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) -"cPe" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/camera{c_tag = "Xenobiology Lab - Central"; dir = 8; network = list("SS13","RD")},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) +"cPb" = (/obj/structure/closet/l3closet/scientist,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cPc" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cPd" = (/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/structure/table/glass,/obj/item/stack/sheet/mineral/plasma{layer = 2.9; pixel_y = 4},/obj/item/stack/sheet/mineral/plasma{layer = 2.9; pixel_y = 4},/obj/item/stack/sheet/mineral/plasma{layer = 2.9; pixel_y = 4},/obj/item/stack/sheet/mineral/plasma{layer = 2.9; pixel_y = 4},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker/large{pixel_x = -3; pixel_y = 3},/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cPe" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 7},/obj/item/weapon/storage/box/syringes{pixel_y = 5},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cPf" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/crema_switch{pixel_x = -25},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office) "cPg" = (/obj/machinery/light/small{dir = 4},/obj/effect/landmark/start{name = "Chaplain"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office) -"cPh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhitecorner"},/area/toxins/xenobiology) +"cPh" = (/obj/machinery/chem_master{pixel_x = -2; pixel_y = 1},/obj/structure/noticeboard{pixel_y = 30},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cPi" = (/obj/structure/stool/bed/chair,/obj/effect/landmark/start{name = "Chaplain"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office) -"cPj" = (/turf/simulated/floor/plasteel{tag = "icon-warnwhitecorner (WEST)"; icon_state = "warnwhitecorner"; dir = 8},/area/toxins/xenobiology) +"cPj" = (/obj/machinery/chem_dispenser,/obj/machinery/light{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cPk" = (/obj/machinery/light/small{dir = 4},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 30; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office) "cPl" = (/turf/simulated/wall,/area/chapel/main) -"cPm" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{tag = "icon-warnwhitecorner"; icon_state = "warnwhitecorner"; dir = 2},/area/toxins/xenobiology) -"cPn" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) +"cPm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cPn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "xeno_airlock_interior"; locked = 1; name = "Secure Lab Internal Airlock"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cPo" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/grown/poppy{pixel_y = 2},/obj/item/weapon/reagent_containers/food/snacks/grown/poppy{pixel_y = 2},/obj/item/weapon/reagent_containers/food/snacks/grown/poppy{pixel_y = 2},/obj/item/weapon/reagent_containers/food/snacks/grown/poppy{pixel_y = 2},/obj/item/weapon/reagent_containers/food/snacks/grown/poppy{pixel_y = 2},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) "cPp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) "cPq" = (/obj/structure/table/wood,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) -"cPr" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) -"cPs" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhitecorner"},/area/toxins/xenobiology) -"cPt" = (/obj/machinery/light{dir = 1},/obj/machinery/door_control{id = "xenobio1"; name = "Containment Blast Doors"; pixel_x = -24; pixel_y = 24; req_access_txt = "55"},/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/xenobiology) +"cPr" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/monkeycubes{pixel_x = 3; pixel_y = 5},/obj/item/weapon/storage/box/monkeycubes{pixel_x = -3; pixel_y = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cPs" = (/obj/structure/table/glass,/obj/item/weapon/paper_bin{pixel_x = -1; pixel_y = 8},/obj/machinery/power/apc{dir = 1; name = "Xenobiology APC"; pixel_x = 0; pixel_y = 27},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cPt" = (/obj/structure/table/glass,/obj/item/weapon/folder/white{pixel_y = 4},/obj/item/weapon/pen,/obj/machinery/light{dir = 1},/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = 30},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cPu" = (/obj/structure/table,/obj/item/candle,/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cPv" = (/obj/structure/stool/bed/chair{dir = 4},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cPw" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) @@ -7572,9 +7572,9 @@ "cPF" = (/obj/structure/stool/bed/chair,/obj/structure/sign/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cPG" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/sign/map/right{desc = "A framed picture of the station. Clockwise from security in red at the top, you see engineering in yellow, science in purple, escape in checkered red-and-white, medbay in green, arrivals in checkered red-and-blue, and then cargo in brown."; icon_state = "map-right-MS"; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 5},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cPH" = (/obj/machinery/door/airlock/external{name = "Auxiliary Escape Airlock"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) -"cPI" = (/obj/structure/sign/biohazard,/turf/simulated/wall,/area/toxins/xenobiology) -"cPJ" = (/obj/structure/window/reinforced,/obj/machinery/door_control{id = "xenobio6"; name = "Containment Blast Doors"; pixel_x = 24; pixel_y = 24; req_access_txt = "55"},/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/toxins/xenobiology) -"cPK" = (/turf/simulated/wall,/area/toxins/xenobiology) +"cPI" = (/obj/machinery/smartfridge/extract,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplefull"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cPJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cPK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/machinery/chem_heater{pixel_x = -4; pixel_y = 4},/turf/simulated/floor/plasteel{dir = 9; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cPL" = (/obj/machinery/biogenerator,/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/aft{name = "Aft Maintenance"}) "cPM" = (/obj/item/weapon/reagent_containers/food/snacks/grown/banana,/obj/item/weapon/reagent_containers/food/snacks/grown/banana,/obj/item/weapon/reagent_containers/food/snacks/grown/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,/obj/structure/rack{layer = 2.8},/obj/item/seeds/wheatseed,/obj/item/seeds/watermelonseed,/obj/item/seeds/watermelonseed,/obj/item/seeds/grapeseed,/obj/item/seeds/glowshroom,/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/aft{name = "Aft Maintenance"}) "cPN" = (/obj/item/weapon/storage/bag/plants/portaseeder,/obj/item/weapon/storage/bag/plants/portaseeder,/obj/item/device/analyzer/plant_analyzer,/obj/item/weapon/minihoe,/obj/item/weapon/reagent_containers/glass/bucket,/obj/structure/rack{layer = 2.8},/obj/item/seeds/cornseed,/obj/item/seeds/cabbageseed,/obj/item/seeds/ambrosiavulgarisseed,/obj/item/seeds/grassseed,/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom,/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/aft{name = "Aft Maintenance"}) @@ -7585,7 +7585,11 @@ "cPS" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/starboardsolar) "cPT" = (/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{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/maintenance/starboardsolar) "cPU" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plating/airless,/area/space) +"cPV" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cPW" = (/obj/machinery/camera{c_tag = "Chapel Office - Backroom"; dir = 8; network = list("SS13")},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office) +"cPX" = (/obj/structure/stool/bed/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Scientist"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cPY" = (/obj/machinery/embedded_controller/radio/access_controller{exterior_door_tag = "xeno_airlock_exterior"; id_tag = "xeno_airlock_control"; interior_door_tag = "xeno_airlock_interior"; name = "Access Console"; pixel_x = 8; pixel_y = 22},/obj/machinery/light_switch{pixel_x = -6; pixel_y = 26},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cPZ" = (/obj/machinery/camera{c_tag = "Secure Lab - Fore"; dir = 2; network = list("SS13","RD")},/obj/machinery/firealarm{dir = 2; pixel_y = 26},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cQa" = (/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office) "cQb" = (/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/office) "cQc" = (/obj/machinery/door/morgue{name = "Confession Booth"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) @@ -7601,16 +7605,20 @@ "cQm" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cQn" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cQo" = (/obj/structure/flora/ausbushes/fernybush,/obj/structure/flora/ausbushes/fullgrass,/obj/structure/flora/ausbushes/ppflowers,/obj/structure/flora/ausbushes/palebush,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/floor/fancy/grass,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cQp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cQq" = (/obj/machinery/computer/secure_data,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cQr" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cQs" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/weapon/folder/white{pixel_x = -4; pixel_y = 2},/obj/item/weapon/restraints/handcuffs,/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/device/radio/off,/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_x = 30; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cQt" = (/obj/structure/sign/vacuum{pixel_x = 32},/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/aft{name = "Aft Maintenance"}) -"cQv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology) +"cQu" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cQv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cQw" = (/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/maintenance/aft{name = "Aft Maintenance"}) "cQx" = (/obj/item/seeds/watermelonseed,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cQy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cQz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/stool/bed/chair,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cQA" = (/obj/structure/stool/bed/chair/office/light{dir = 1; pixel_y = 3},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cQB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) +"cQC" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitepurple"; tag = "icon-whitehall (WEST)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cQD" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/machinery/light/small{dir = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office) "cQE" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office) "cQF" = (/obj/machinery/door/airlock/centcom{layer = 2.7; name = "Crematorium"; opacity = 1; req_access_txt = "27"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office) @@ -7638,11 +7646,13 @@ "cRb" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{icon_state = "red"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cRc" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor/plasteel{icon_state = "red"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cRd" = (/obj/structure/table,/obj/machinery/newscaster/security_unit{pixel_x = 29; pixel_y = 1},/obj/machinery/camera{c_tag = "Departure Lounge - Security Post"; dir = 1; network = list("SS13")},/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -4; pixel_y = 4},/obj/item/device/taperecorder{pixel_x = 4; pixel_y = 0},/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = -32},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 6},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) -"cRf" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) +"cRe" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cRf" = (/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; tag = "icon-sink (WEST)"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cRg" = (/obj/item/seeds/moonflowerseed,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cRh" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cRi" = (/obj/item/seeds/berryseed,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cRj" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"cRk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cRl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/starboardsolar) "cRm" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office) "cRn" = (/obj/structure/closet/wardrobe/chaplain_black,/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office) @@ -7667,12 +7677,16 @@ "cRG" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 4; initialize_directions = 11},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cRH" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/sign/electricshock{pixel_x = 32},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cRI" = (/turf/simulated/wall,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) -"cRM" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/toxins/xenobiology) +"cRJ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cRK" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cRL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cRM" = (/obj/machinery/hologram/holopad,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cRN" = (/obj/machinery/hydroponics/soil{pixel_y = 8},/obj/item/seeds/glowshroom,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) "cRO" = (/obj/machinery/hydroponics/soil{pixel_y = 8},/obj/item/weapon/minihoe,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) "cRP" = (/obj/machinery/hydroponics/soil{pixel_y = 8},/obj/item/seeds/ambrosiavulgarisseed,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) "cRQ" = (/obj/machinery/hydroponics/soil{pixel_y = 8},/obj/item/seeds/watermelonseed,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) "cRR" = (/obj/machinery/hydroponics/soil{pixel_y = 8},/obj/item/seeds/berryseed,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) +"cRS" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cRT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/chapel/office) "cRU" = (/obj/machinery/door/airlock/centcom{name = "Chapel Office"; opacity = 1; req_access_txt = "27"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office) "cRV" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "chapel"},/area/chapel/main) @@ -7684,34 +7698,44 @@ "cSb" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cSc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cSd" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) -"cSf" = (/obj/structure/sign/biohazard,/turf/simulated/wall/r_wall,/area/toxins/xenobiology) -"cSg" = (/turf/simulated/wall/r_wall,/area/toxins/xenobiology) +"cSe" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cSf" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/extinguisher{pixel_x = 4; pixel_y = 3},/obj/item/weapon/extinguisher,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cSg" = (/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 1; name = "xenobiology air connector port"},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plasteel{tag = "icon-whitepurple (SOUTHWEST)"; icon_state = "whitepurple"; dir = 10},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cSh" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurplecorner"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cSi" = (/obj/machinery/disposal,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = -32},/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cSj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cSk" = (/obj/structure/closet/coffin,/obj/machinery/light/small{dir = 1},/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/chapel/main) "cSl" = (/obj/structure/closet/coffin,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/chapel/main) +"cSm" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-warnwhitecorner"; icon_state = "warnwhitecorner"; dir = 2},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cSn" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cSo" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cSp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/chapel/main) "cSq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) +"cSr" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurplecorner"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cSs" = (/obj/structure/stool/bed/chair/comfy/black{dir = 4},/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/chapel/main) "cSt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/chapel/main) "cSu" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/chapel/main) "cSv" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/chapel/main) "cSw" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/chapel/main) -"cSx" = (/obj/machinery/camera{c_tag = "Departure Lounge - Port Aft"; dir = 4; network = list("SS13")},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/structure/flora/kirbyplants{tag = "icon-plant-04"; icon_state = "plant-04"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) +"cSx" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warnwhitecorner"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cSy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cSz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cSA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cSB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/device/radio/beacon,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cSC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cSD" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=9.5-Escape2"; location = "9-Escape"},/obj/machinery/bot/secbot{auto_patrol = 1; health = 35; maxhealth = 35; name = "Inspector Johnson"},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) -"cSE" = (/obj/machinery/camera{c_tag = "Departure Lounge - Starboard Aft"; dir = 8; network = list("SS13")},/obj/machinery/light{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/structure/flora/kirbyplants{tag = "icon-plant-16"; icon_state = "plant-16"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) -"cSG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/xenobiology) -"cSH" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTHEAST)"; icon_state = "warnwhite"; dir = 5},/area/toxins/xenobiology) +"cSE" = (/obj/machinery/processor{desc = "A machine used to process slimes and retrieve their extract."; name = "Slime Processor"},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cSF" = (/obj/machinery/monkey_recycler,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cSG" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/simulated/floor/plasteel{dir = 6; icon_state = "whitepurple"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cSH" = (/turf/simulated/wall,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cSI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cSJ" = (/obj/structure/closet/coffin,/turf/simulated/floor/plating,/area/chapel/main) "cSK" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "cSL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "cSM" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "cSN" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 2},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "cSO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) -"cSP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Mortuary"; opacity = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) +"cSP" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cSQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "chapel"},/area/chapel/main) "cSR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "chapel"},/area/chapel/main) "cSS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "chapel"},/area/chapel/main) @@ -7722,20 +7746,24 @@ "cSX" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cSY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cSZ" = (/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) -"cTa" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) -"cTb" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; initialize_directions = 11},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cTc" = (/obj/structure/closet/l3closet/scientist,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/camera{c_tag = "Xenobiology - Airlock"; dir = 8; network = list("SS13","RD")},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) -"cTd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/toxins/xenobiology) +"cTa" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTb" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTc" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/structure/disposaloutlet,/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTd" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTf" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTg" = (/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cTh" = (/obj/machinery/door/window/eastleft{dir = 4; name = "Coffin Storage"; req_access_txt = "22"},/turf/simulated/floor/plating,/area/chapel/main) "cTi" = (/obj/structure/stool/bed/chair{pixel_y = -2},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) "cTj" = (/obj/structure/stool/bed/chair{pixel_y = -2},/obj/effect/landmark/start{name = "Chaplain"},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) "cTk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "cTl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "cTm" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 2; initialize_directions = 11},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) -"cTn" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Mortuary"; opacity = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) +"cTn" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cTo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/chapel/main) "cTp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/chapel/main) "cTq" = (/obj/structure/table/wood,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) +"cTr" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cTs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/chapel/main) "cTt" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/obj/machinery/camera{c_tag = "Chapel - Starboard"; dir = 8; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/chapel/main) "cTu" = (/obj/structure/sign/vacuum{pixel_x = -32},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) @@ -7745,15 +7773,34 @@ "cTy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cTz" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) "cTA" = (/obj/structure/sign/vacuum{pixel_x = 32},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) -"cTB" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/access_button{command = "cycle_interior"; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = 8; pixel_y = -28; req_access_txt = "0"},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/toxins/xenobiology) -"cTC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) -"cTD" = (/obj/structure/closet/l3closet/scientist,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/toxins/xenobiology) +"cTB" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio8"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTC" = (/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTD" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #1"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cTF" = (/obj/structure/closet/coffin,/obj/machinery/light/small,/turf/simulated/floor/plating,/area/chapel/main) "cTG" = (/obj/machinery/light/small{dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/camera{c_tag = "Chapel - Funeral Parlour"; dir = 8; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) +"cTH" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #1"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTI" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cTJ" = (/obj/effect/landmark/start{name = "Chaplain"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "cTK" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor/plasteel{dir = 8; icon_state = "chapel"},/area/chapel/main) +"cTL" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cTM" = (/obj/machinery/door/airlock/external{name = "Departure Lounge Airlock"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"}) -"cTX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/toxins/xenobiology) +"cTN" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #2"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTO" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #2"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTP" = (/mob/living/simple_animal/slime,/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTQ" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTR" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warnwhitecorner"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTS" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio3"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTT" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{tag = "icon-warnwhitecorner"; icon_state = "warnwhitecorner"; dir = 2},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTU" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTV" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow,/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTW" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTX" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet{dir = 1},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTY" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cTZ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUa" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/camera{c_tag = "Secure Lab - Central"; dir = 8; network = list("SS13","RD")},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUb" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUc" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cUd" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "cUe" = (/mob/living/simple_animal/hostile/retaliate/bat{name = "Orlocke"; real_name = "Orlocke"; turns_per_move = 6},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) "cUf" = (/obj/machinery/door/window{dir = 4; name = "Mass Driver"; req_access_txt = "22"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) @@ -7762,103 +7809,94 @@ "cUi" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/chapel/main) "cUj" = (/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) "cUk" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) -"cUr" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology) -"cUt" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) +"cUl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhitecorner"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUm" = (/turf/simulated/floor/plasteel{tag = "icon-warnwhitecorner (WEST)"; icon_state = "warnwhitecorner"; dir = 8},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUn" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio7"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUo" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio7"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUp" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #3"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUq" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #3"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUr" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUs" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #4"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio7"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUt" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #4"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUu" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUv" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio2"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cUw" = (/obj/machinery/hydroponics/soil{pixel_y = 8},/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/item/weapon/reagent_containers/food/snacks/grown/harebell,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/chapel/main) "cUx" = (/obj/machinery/door/morgue{name = "Chapel Garden"; req_access_txt = "0"},/turf/simulated/floor/plasteel{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/chapel/main) +"cUy" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{tag = "icon-warnwhitecorner"; icon_state = "warnwhitecorner"; dir = 2},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cUz" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) "cUA" = (/obj/structure/stool/bed/chair,/obj/effect/landmark/start{name = "Chaplain"},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) +"cUB" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cUC" = (/turf/simulated/floor/plating{icon_state = "warnplate"},/area/chapel/main) -"cUI" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cUJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cUK" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cUL" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cUM" = (/obj/machinery/hologram/holopad,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cUN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cUP" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) +"cUD" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow,/obj/machinery/door/poddoor/preopen{id = "xenobio7"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUE" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUF" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUG" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUH" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhitecorner"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUI" = (/obj/machinery/light{dir = 1},/obj/machinery/door_control{id = "xenobio1"; name = "Containment Blast Doors"; pixel_x = -24; pixel_y = 24; req_access_txt = "55"},/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUJ" = (/obj/structure/window/reinforced,/obj/machinery/door_control{id = "xenobio6"; name = "Containment Blast Doors"; pixel_x = 24; pixel_y = 24; req_access_txt = "55"},/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUK" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUL" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUM" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #5"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUN" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #5"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUO" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/start{name = "Scientist"},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUP" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #6"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUQ" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUR" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #6"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cUS" = (/obj/machinery/door/poddoor{id = "chapelgun"; name = "Chapel Launcher Door"},/turf/simulated/floor/plating,/area/chapel/main) -"cUY" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurplecorner"},/area/toxins/xenobiology) -"cVb" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurplecorner"},/area/toxins/xenobiology) -"cVr" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/structure/disposaloutlet,/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cVs" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cVu" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/toxins/xenobiology) -"cVv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cVw" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cVx" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio8"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/toxins/xenobiology) -"cVz" = (/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cVA" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #1"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio3"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cVB" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #1"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/xenobiology) -"cVC" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #2"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/toxins/xenobiology) -"cVD" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #2"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio8"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cVE" = (/mob/living/simple_animal/slime,/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cVG" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio3"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/toxins/xenobiology) -"cVI" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cVK" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/toxins/xenobiology) -"cVM" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet{dir = 1},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cVN" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/toxins/xenobiology) -"cVP" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cVS" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio7"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/toxins/xenobiology) -"cVV" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #3"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio2"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cVW" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #3"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/xenobiology) -"cVX" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cVY" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #4"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/toxins/xenobiology) -"cVZ" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #4"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio7"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cWc" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio2"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/toxins/xenobiology) -"cWd" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cWo" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cWp" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #5"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cWq" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #5"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/xenobiology) -"cWr" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark/start{name = "Scientist"},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cWs" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #6"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/toxins/xenobiology) -"cWt" = (/obj/machinery/door/window/northleft{dir = 4; name = "Containment Pen #6"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cWu" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cWw" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/toxins/xenobiology) -"cWx" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/binary/pump{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cWy" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cWz" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cWA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cWB" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/binary/pump{dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology) -"cWC" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 8},/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/toxins/xenobiology) -"cWE" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/engine,/area/toxins/xenobiology) +"cUT" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 4},/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUU" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow,/obj/machinery/door/poddoor/preopen{id = "xenobio1"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUW" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/binary/pump{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUX" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUY" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cUZ" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/portables_connector/visible{dir = 8},/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVa" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/binary/pump{dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVb" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVc" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "xenobio6"; name = "containment blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVd" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/camera{c_tag = "Secure Lab - Aft-Port"; dir = 4; network = list("SS13","RD")},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVe" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVg" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVh" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/camera{c_tag = "Secure Lab - Aft-Starboard"; dir = 8; network = list("SS13","RD")},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVi" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVj" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVk" = (/obj/structure/closet,/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVl" = (/obj/item/weapon/crowbar/red,/obj/item/weapon/wrench,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVm" = (/obj/machinery/door/airlock/command{icon = 'icons/obj/doors/Doorele.dmi'; name = "Test Chamber Maintenance"; req_access_txt = "47"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVn" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/window/reinforced{dir = 4},/obj/machinery/ignition_switch{id = "Xenobio"; pixel_x = -6; pixel_y = -2},/obj/machinery/door_control{id = "Xenolab"; name = "Test Chamber Blast Doors"; pixel_x = 4; pixel_y = -2; req_access_txt = "55"},/obj/structure/table/reinforced,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVo" = (/obj/machinery/computer/security/telescreen{dir = 1; name = "Test Chamber Monitor"; network = list("Xeno"); pixel_x = 0; pixel_y = 2},/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVp" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 2},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVq" = (/obj/machinery/door/window/southleft{dir = 1; name = "Maximum Security Test Chamber"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVr" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVs" = (/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/structure/table,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVt" = (/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVu" = (/obj/machinery/door/airlock/command{icon = 'icons/obj/doors/Doorele.dmi'; name = "Test Chamber Maintenance"; req_access_txt = "47"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVv" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVw" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVx" = (/obj/machinery/shieldwallgen{req_access = list(55)},/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVy" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVz" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVA" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVB" = (/obj/machinery/door/window/southleft{dir = 2; name = "Maximum Security Test Chamber"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVC" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVD" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVE" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVF" = (/obj/structure/disposaloutlet{dir = 2},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVG" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 10},/obj/item/device/electropack,/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVH" = (/obj/machinery/sparker{id = "Xenobio"; pixel_x = -25},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVI" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 1; unacidable = 1},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVJ" = (/obj/item/device/radio/beacon,/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVK" = (/obj/structure/table,/obj/machinery/cell_charger{pixel_y = 5},/obj/item/stack/cable_coil,/obj/item/device/multitool,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVL" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVM" = (/obj/machinery/light{dir = 2},/obj/machinery/camera{c_tag = "Secure Lab - Test Chamber"; dir = 1; network = list("SS13","RD")},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVN" = (/obj/structure/table,/obj/item/device/assembly/igniter{pixel_x = -5; pixel_y = 3},/obj/item/device/assembly/igniter{pixel_x = 5; pixel_y = -4},/obj/item/device/assembly/igniter{pixel_x = 2; pixel_y = 6},/obj/item/device/assembly/igniter{pixel_x = 2; pixel_y = -1},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVO" = (/obj/item/device/radio/intercom{pixel_y = -25},/turf/simulated/floor/engine,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVP" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVQ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/stool/bed/chair,/obj/item/weapon/cigbutt,/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVS" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/toxins/xenobiology{name = "\improper Secure Lab"}) +"cVT" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "cWF" = (/obj/structure/cable,/obj/machinery/power/tracker,/turf/simulated/floor/plating/airless,/area/solar/starboard) -"cWH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) -"cWI" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) -"cWJ" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) -"cWK" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) -"cWL" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) -"cWN" = (/obj/structure/closet,/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cWO" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cWP" = (/obj/machinery/door/airlock/command{icon = 'icons/obj/doors/Doorele.dmi'; name = "Test Chamber Maintenance"; req_access_txt = "47"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cWQ" = (/obj/item/weapon/crowbar/red,/obj/item/weapon/wrench,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/xenobiology) -"cWR" = (/obj/machinery/computer/security/telescreen{dir = 1; name = "Test Chamber Monitor"; network = list("Xeno"); pixel_x = 0; pixel_y = 2},/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/xenobiology) -"cWS" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/window/reinforced{dir = 4},/obj/machinery/ignition_switch{id = "Xenobio"; pixel_x = -6; pixel_y = -2},/obj/machinery/door_control{id = "Xenolab"; name = "Test Chamber Blast Doors"; pixel_x = 4; pixel_y = -2; req_access_txt = "55"},/obj/structure/table/reinforced,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/toxins/xenobiology) -"cWT" = (/obj/machinery/door/window/southleft{dir = 1; name = "Maximum Security Test Chamber"; req_access_txt = "55"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/xenobiology) -"cWU" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 2},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/toxins/xenobiology) -"cWV" = (/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/science,/obj/item/clothing/glasses/science,/obj/structure/table,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/xenobiology) -"cWW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/toxins/xenobiology) -"cWX" = (/obj/machinery/door/airlock/command{icon = 'icons/obj/doors/Doorele.dmi'; name = "Test Chamber Maintenance"; req_access_txt = "47"},/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cWY" = (/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cWZ" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cXa" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cXb" = (/obj/machinery/shieldwallgen{req_access = list(55)},/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cXe" = (/obj/machinery/door/window/southleft{dir = 2; name = "Maximum Security Test Chamber"; req_access_txt = "55"},/obj/machinery/door/poddoor/preopen{id = "Xenolab"; name = "test chamber blast door"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cXh" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/toxins/xenobiology) -"cXi" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cXj" = (/obj/structure/disposaloutlet{dir = 2},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cXk" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 10},/obj/item/device/electropack,/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cXm" = (/obj/machinery/sparker{id = "Xenobio"; pixel_x = -25},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cXn" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 1; unacidable = 1},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cXo" = (/obj/item/device/radio/beacon,/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cXp" = (/obj/structure/table,/obj/machinery/cell_charger{pixel_y = 5},/obj/item/stack/cable_coil,/obj/item/device/multitool,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cXq" = (/obj/effect/decal/remains/xeno,/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cXr" = (/obj/machinery/light{dir = 2},/obj/machinery/camera{c_tag = "Xenobiology Lab - Test Chamber"; dir = 1; network = list("SS13","RD")},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cXs" = (/obj/item/device/radio/intercom{pixel_y = -25},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cXt" = (/obj/structure/table,/obj/item/device/assembly/igniter{pixel_x = -5; pixel_y = 3},/obj/item/device/assembly/igniter{pixel_x = 5; pixel_y = -4},/obj/item/device/assembly/igniter{pixel_x = 2; pixel_y = 6},/obj/item/device/assembly/igniter{pixel_x = 2; pixel_y = -1},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cXu" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cXv" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cXw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/stool/bed/chair,/obj/item/weapon/cigbutt,/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cXx" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cXz" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/toxins/xenobiology) "cXA" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/airless,/area/space) "cXB" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/disposaloutlet,/turf/simulated/floor/plating/airless,/area/space) @@ -7907,182 +7945,182 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaeaafaagaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaahaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaagaahaajaahaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaafaagaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaahaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaagaahaajaahaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaafaaeaagaagaaaaaaaaaaakaaaaaaaaaaagaafaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaahaahaaaaaaaaaaakaahaahaaaaahaahaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahaalaalaalaalaalaahaamaahaalaalaalaalaalaahaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahaalaalaalaalaalaahaamaahaalaalaalaalaalaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahaaoaanaanaanaanaapaaraaqaasaasaasaasaataahaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaagaahaauaauaauaauaauaahaaraahaauaauaauaauaauaahaagaaaaaaaaaaahaafaaeaafaahaahaahaaaaahaahaahaaaaahaahaahaahaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaahaaaaaaaahaaraaaaaaaaaaahaaaaaaaaaaafaahaahaahaaaaaaaaaaaaaaaaahaaaaaaaaaaahaaaaaaaaaaahaaaaaaaawaavaaxaaaaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahaalaalaalaalaalaahaayaahaalaalaalaalaalaahaaeaaaaahaaaaaaaaaaaaaaaaaaaahaaaaazaazaaAaazaaAaazaazaaaaaBaaDaaCaaDaaEaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaagaagaagaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahaaoaanaanaanaanaapaaraaqaasaasaasaasaataahaagaaaaahaaaaahaaaaaaaaaaaaaahaahaazaaFaaGaaHaaIaaJaazaahaaKaaDaaLaaDaaKaaaaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahaauaauaauaauaauaahaaraahaauaauaauaauaauaahaagaaaaahaahaahaaaaaaaahaahaahaaaaaMaaNaaOaaPaaQaaRaaSaaaaaTaaVaaUaaWaaTaaTaaTaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaahaaXaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaeaaaaaaaaaaahaaaaaaaaaaaYaaaaaaaaaaahaaaaaaaaaaagaaaaaaaaaaahaaaaahaahaaaaaaaaaaazaaZabaabbabcabdaazaaaaaTabeabfabgabhabiabhabjabjaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaagaagaagaagaagaagaagaaaabkaaaaaeaagaagaagaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahaalaalaalaalaalaahaaraahaalaalaalaalaalaahaaeaaaaaaaaaaahaahaahaaaaaaaazaaAaazaazabmablabnaazaazaaAaazaefaboaboaboaboaboaaaaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaahaahaahaaaaaaabkaahaahaaaaahaahaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahaaoaanaanaanaanaapaaraaqaasaasaasaasaataahaafaahaahaahaaaaaaaahaaaaazaazabpabqabrabsaaPabtabuabvabwaazabxaboabzabyabAaboaboaboaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaabBabBabBabBabBaahabCaahabBabBabBabBabBaahaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaauaauaauaauaauaahaaraahaauaauaauaauaauaaaaagaaaaaaaahaaaaaaaahaaaaazabEabFabGabGabHabIabJabKabLabMaazabNaboabOabDabQabPabSabRaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahabTabUabUabUabUabWabVabYabXabXabXabXabZaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaagaaaaahaaaaahaahaaaaaaacaaaaaaaaahaaaaaaaahaaaaaaaaaaaaaahaaaaazaaAaazaazaccacdabGaceacfacgachaciacjackaazaclacbacnacmacoacqacraboaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahacpacpacpacpacpaahabVaahacpacpacpacpacpaahaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaaaaaaaahaahaahaakaaaaaaaahaahaahaagaaaaaaaaaaaaaaaaaaaazacsacuacvaaPacwaaPacxacyaczacAacBabGabGaazactaboacDacCacFacEacHaboacIaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaafaagaagaagaafaagaagaafaaaaaaaahaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaahaaaaaaaahacGaaaaaaaaaaahaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaaaaaaaahaaaaakaaaaaaaahaaaaahaaaaaaaaaaaaaaaaahaahaazacJacLabGabGacMacNacOacPacQacRacSabGacTaazacKaboacVacUacWaboaboaboaaaaahaaaaahaahaahaahaahaaaaaaaahaaaaaaaaaaaaaahaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaahaaaacYacXacYaaKaaEaafaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahabBabBabBabBabBaahabVaahabBabBabBabBabBaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahadaacZacZacZadbaahaahaahaahaahaahaagaaaaazadcaaTaaTadeaaTadfaaTadgaaTaaTaaTadhaaTaazaddaboadjadiadladkaaaaahaahaahaahaahaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaahaaaacYadnadmadoadoadpaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaabTabUabUabUabUabWabVabYabXabXabXabXabZaahaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaahaaaaahaaaaaaaaaaakaaaaaaaaaaaaaaaaaaaahaaaaaMadqaaTadsabGadtadfaduadvadwaaTadxabGadyaazadraboadAadzadBadkaaaaahaaaaaaaaaaahaaaaaaaaaaahaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahacXadCadDadFadEaavaaaaafaagaafaahaahaaaaaaaaaaaaaaaaaaaaaaaaaagaahacpacpacpacpacpaahabVaahacpacpacpacpacpaahaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaaaaaaaahaaaaahaahaakaahaahaaaaaaaaaaaaaaaaaaaazadHaaTadIabGadJadKadLadMadNaaTadOabGadNaazadGaboadQadPadTadkaaaaahaahadRadRadRadRadRaaaaahaaaaaaadSadSadVadUadXadSadSaaaaahaaaaaaaahaaaaaaaaaaahaaaaaaaaaaahaaaaaaaaaaaaaahaaaaaaaaaaaaacYadWadYadoadoadZaaaaahaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaahaaaaaaaaaabVaaaaaaaaaaahaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaahaahaaaaahaaaaaaaegaeaaegaahaaaaaaaaaaaaaahaahaazaaTaaTaebaecaaTadfaaTaedadfaaTaebaeeadfaazaehaboaekaejaeiaboaahaahadRadRaesaelaemadRadRaahaahadSadSaeqaenaeoaepaetadSadSaahaeraeraeuaeraeraahaahaahaahacYacXacYacXacXacXacYacXacXacXacYacYaevacYaexaewaewaeyaewaewaezaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaagaaaabBabBabBabBabBaahaeAaahabBabBabBabBabBaahaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaaaaaaahaahaaaaegaeDaegaahaahaahaahaahaahaaaaeBaeFaeGaeHaeIaeJaeKaeLaeMaeNaeOaePaeQaeRaeSaeCaeTaeUaeVaeWaeEaahadRadRaeYaeZafaafaafbadRadRaahadSafcafdafeaffafgafhafiadSaahaerafjafkaflaeraaaaaaaaaaahacYafmacYafnafoafpacYafqafrafsacYaftafuafvaeXafxafxafxafxafxaeXaahaahaahaahaahaaaaaaaaaaaaaaaaagaahabTabUabUabUabUabWabVabYabXabXabXabXabZaahaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaegaegafBaegaegaaaaahaaaaaaaahaaaafwabbafFafGafHafIafJafKafLafMafNafOafPafQafRafLafSafTafUafFafwaahadRafyafXafzafZagaagbafAadRaahafCageagfaggaghagiagjagkafDaahaeuagnagoagpaeuaaaaheaheaheacYagragsagtaguaguagvaguagwagxagyagzagzagzaeXafxafxafxafxafxaeXaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaagaahacpacpacpacpacpaahabVaahacpacpacpacpacpaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaaaaaaaaaaaaahaahagBagCagDagEagBaaaaahaaaaaaaahaahaazaazagFagGagHaazagIagJagIagKagKagKagKagKagLafEagNaaTagOagPaazaahadRafWafVagcafYagTagbagdadRaahaglagWagXagYagZahaagXahbaglaahaeragnahdagpaeraheaheahfahgacYacYacYahhahiahjahjahkahlahmahnahnahoahpaeXafxafxafxafxafxahracYacYacYaaaaahaaaaaaaaaaaaaaaaafaaaaaaaaaaahaaaaaaaaaabVaaaaaaaahaaaaaaaahaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahahsahsagmagmagmagmagmagBahwahxahyagBahzagAahzahzaahaahaahaazaazafwaazaazaazafwaazahCahDahEahFagKahGahHahIahJahJahJadRadRadRagMahLahMahNahOahPagQadRaahadSahRahSahTahUahVahWahXadSaahaeragnahdagpaerahYaheahZaiaahtahqacYaidahiahjaieaifaifaifaigahnaihaiiaijafxafxafxafxafxaikailaimacXaaaaahaahaahaahaahaahaagaahaahaahaahaahaaaaaaabVaaaaaaaaaaaaaaaaahaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaioaipagmairaisaitahuagBaivaiwaixagBagRahKahvahzahzaahaahaahaahaahaahaahaahaahaahagSaiDaiEaiDaiFaiGaiHagUahJaibaicaiLadRadRadRaiMaiNadRadRadRadRadRagVadSadSaiuaizahcaiBaiAadSadSagVaiUaiVaiWaiXaeraheaheaiYaiYaiZajaacYajbahiajcajdajeajeajfajgajhajiajjacXafxafxafxafxafxacXajlajmacXaaaaahaaaaahaaaajoajoajoajoajoajoajoaahaahaahabVaahaahaahaahaahaagaahaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahahsajpahsajqajrajsajtagBagBajuajvagBaiIajxajyaiJahzaahaaaaaaaaaaaaaaaaahaahaahaahahCagKagKagKagKajAahAajCahJaiKajEajzadRajGajHajIajJahBajBajMajDadRajOajPajQahQainajTaiyaiqajQajWajXaiUajYajZakaaerajFaiYaiYaiYaiYaheacYakcakdaiCakfakgakgakhajgajmakiajjacXafxafxafxafxafxacXajLaklacXaahaahaahaahaahajoakmaknakoakpakmajoaahaaaakqaiOakqaaaaaaaahaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaagmaktaksakuakvakwakxakyakzakAakBahzakkakDakEakCagAaahaahaahaahaahaahaahaheaheaheahCaiPaiQakIakJakKakLakMahJakFajEakNadRakPakQakRakSaiRakOakVakWaiSakYakZalaalbalcaldalealfalgalhaliaiTalkallalmaeralnaloalpalqalrahealsaltahialuajdalvajealwajgalxajialyalzafxafxafxafxafxalAalBalCaocajVaocaaaaahaaaajoalEalFakmalFalGajoaahaaaajkalIajkaaaaaaaahaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaahsalJahsalKalLalMalNahsalOalPalQalRalSalTalUakUahzaahalWalWagAalWalWaahahealXalXahCajnalZamaambamcamdameamfamgamhamgamiamjamjamkamlammamnamoamoampamqamramsamtamuamvamwamxamyamzamAamBamCamDamEaeramFaiYaiYamGaiaaheamHaltahiagzamIamJamKamLamMamNajiamOajwafxafxafxafxafxamQacYamRaocanQakrabjabjaahajoamSamTamUamVamWajoaahakqajkamYajkakqaaaaahaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahahsamZanaanaanaanbancahsandaneanfahzalVanianhanjahzalWalWankanlakBalWaheaheajKannahCajNanpanqanransantanuahJanvanwanxadRajRanzanAajUajSanDanEanFahJanGanHanIamtanJanKanLanManNanOanPaiUaiUaoEaeraeraheaheaheanRaheaheaheanSanTagzagzanUanVanWanXanXanYamOajwafxafxafxafxafxamQaoaaobaocakraocaocajVaocajoaoeaofakmaogaohajoaahajkajkalIajkajkaahaahaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaagaahaauaauaauaauaauaahaaraahaauaauaauaauaauaahaafaahaahaahaahaafaaeaafaahaahaahaaaaahaahaahaaaaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaahaaaaaaaahaaraaaaaaaahaaaaahaaaaaaaagaaaaaaaahaaaaaaaahaaaaaaaahaaaaaaaaaaahaaaaaaaaaaahaaaaahaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahaalaalaalaalaalaahaayaahaalaalaalaalaalaahaaeaahaaaaahaahaahaahaaaaaaaahaaaaazaazaaAaazaaAaazaazaaaaahaahaaaaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaagaagaagaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahaaoaanaanaanaanaapaaraaqaasaasaasaasaataaaaagaaaaahaahaaaaaaaaaaaaaaaaahaahaazaaFaaGaaHaaIaaJaazaahaahaaaaaaaaaaaaaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahaauaauaauaauaauaahaaraahaauaauaauaauaauaahaafaaaaaaaahaaaaaaaaaaahaahaahaaaaaMaaNaaOaaPaaQaaRaaSaaaaaaaawaavaaxaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaahaaXaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaeaaaaaaaaaaahaaaaaaaaaaaYaaaaaaaaaaahaaaaaaaahaaeaboaahaahaahaazaahaahaaaaahaaaaazaaZabaabbabcabdaazaaaaaBaaDaaCaaDaaEaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaagaagaagaagaagaagaagaaaabkaaaaaeaagaagaagaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahaalaalaalaalaalaahaaraahaalaalaalaalaalaahaaaaboabfabfabfaazaaAaazaazaaAaazaazaazabmablabnaazaazaaAaazaaDaaLaaDaaTaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaahaahaahaaaaaaabkaahaahaaaaahaahaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahaaoaanaanaanaanaapaaraaqaasaasaasaasaataahaaaaboabpabiadlaazabyabxacvabzabAabqabrabsaaPabtabuabvabwaazaaVaaUaaWaaTaaaaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaabBabBabBabBabBaahabCaahabBabBabBabBabBaahaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaauaauaauaauaauaahaaraahaauaauaauaauaauaahaahaboabEabDabFaazabNabIabbaciaceabGabGabHabOabJabKabLabMaazabQabPabgaaTaaTaaTaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahabTabUabUabUabUabWabVabYabXabXabXabXabZaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaagaaaaahaaaaahaahaaaaaaacaaaaaaaaaaaahaaaaaaaahaaaaboabSabRacbaazaccaaTacdaciabGabbaceacfacgachaciacjackaazabeaclacmabhacoabhabjabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahacpacpacpacpacpaahabVaahacpacpacpacpacpaahaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaaaaaaaahaahaahaakaaaaaaaaaaahaahaahaahaaaaboacracqacsaazactaaTacwacuaaPaaPacxacyaczacAacBabGacCaazaefaazaazaazaazaazaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaafaagaagaagaafaagaagaafaaaaaaaahaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaahaaaaaaaahacGaaaaaaaaaaahaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaaaaaaaahaaaaakaaaaaaaaaaahaaaaaaaahaahaboacEacDacFaazaazaazacJacHacMacNacOacPacQacRacSabGacKaaTabQaaTacTacLacTaazaaaaahaaaaaaaaaaahaahaahaahaahaaaaaaaahaaaaaaaaaaaaaahaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaahaaaacYacXacYaaKaaEaafaagaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahabBabBabBabBabBaahabVaahabBabBabBabBabBaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahadaacZacZacZadbaaaaaaaahaaaaboacVacUacnacWaddadcaaTadeaaTadfaaTadgaaTaaTaaTadhaaTaaTadiaaTadkadjadqaaSaahaahaahaahaahaahaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaahaaaacYadnadmadoadoadpaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaabTabUabUabUabUabWabVabYabXabXabXabXabZaahaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaahaaaaahaaaaaaaaaaakaaaaaaaahaaaaboadzadradBadAadGaeiadsabGadtadfaduadvadwaaTadxabGadyaaTadHaaTadQadPadTaazacIaahaaaaaaaaaaahaaaaaaaaaaahaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahacXadCadDadFadEaavaaaaafaagaafaahaahaaaaaaaaaaaaaaaaaaaaaaaaaagaahacpacpacpacpacpaahabVaahacpacpacpacpacpaahaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaaaaaaaahaaaaahaahaakaahaahaahaahaboadVadUaehadXaejaeiadIabGadJadKadLadMadNaaTadOabGadNaaTabeaaTaemaekaeqaazaaaaahaahadRadRadRadRadRaaaaahaaaaaaadSadSaeCaeBaeEadSadSaaaaahaaaaaaaahaaaaaaaaaaahaaaaaaaaaaahaaaaaaaaaaaaaahaaaaaaaaaaaaacYadWadYadoadoadZaaaaahaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaahaaaaaaaaaabVaaaaaaaaaaahaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaahaahaaaaahaaaaahaegaeaaegaahaaaaaaaboaeGaeFaeHaboaeUaeiaebaecaaTadfaaTaedadfaaTaebaeeadfaaTaefaaTadfaeVaebaazaahaahadRadRaesaelaeWadRadRaahaahadSadSafiaeoaenaepaetadSadSaahaeraeraeuaeraeraahaahaahaahacYacXacYacXacXacXacYacXacXacXacYacYaevacYaexaewaewaeyaewaewaezaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaagaaaabBabBabBabBabBaahaeAaahabBabBabBabBabBaahaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaaaaaaahaahaahaegaeDaegaahaahaaaaboaboaboaboaboafHafGafIaeIaeJaeKaeLaeMaeNaeOaePaeQaeRaeSafJaeTagcafVaiNahMaahadRadRaeYaeZafaafaafbadRadRaahadSafcafdafeaffafgafhakMadSaahaerafjafkaflaeraaaaaaaaaaahacYafmacYafnafoafpacYafqafrafsacYaftafuafvaeXafxafxafxafxafxaeXaahaahaahaahaahaaaaaaaaaaaaaaaaagaahabTabUabUabUabUabWabVabYabXabXabXabXabZaahaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaegaegafBaegaegaahaahaahaahaahaahaaManhafLaunanjauwafMafKafLauxafNafOafPafQafRafLafSafTafUafFafwaahadRafyafXafzafZagaagbafAadRaahafCageagfaggaghagiagjagkafDaahaeuagnagoagpaeuaaaaheaheaheacYagragsagtaguaguagvaguagwagxagyagzagzagzaeXafxafxafxafxafxaeXaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaagaahacpacpacpacpacpaahabVaahacpacpacpacpacpaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaaaaaaaaaaaaaaaahagBagCagDagEagBaaaaahaaaaaaaaaaahaazaazagFagGagHaazagIagJagIaaTaaTaaTaaTauzagLafEagNavqagOagPaazaahadRafWafXayXafYagTagbagdadRaahaglagWagXagYagZahaagXahbaglaahaeragnahdagpaeraheaheahfahgacYacYacYahhahiahjahjahkahlahmahnahnahoahpaeXafxafxafxafxafxahracYacYacYaaaaahaaaaaaaaaaaaaaaaafaaaaaaaaaaahaaaaaaaaaabVaaaaaaaahaaaaaaaahaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahahsahsagmagmagmagmagmagBahwahxahyagBahzagAahzahzaaaaahaaaaazaazafwaazaazaazafwaazaazahDahEahFagKahGahHahIahJahJahJadRadRadRagMahLaBpahNahOahPagQadRaahadSahRahSahTahUahVahWahXadSaahaeragnahdagpaerahYaheahZaiaahtahqacYaidahiahjaieaifaifaifaigahnaihaiiaijafxafxafxafxafxaikailaimacXaaaaahaahaahaahaahaahaagaahaahaahaahaahaaaaaaabVaaaaaaaaaaaaaaaaahaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaioaipagmairaisaitahuagBaivaiwaixagBagRahKahvahzahzaahaaaaaaaaaaahaaaaaaaaaaahaahagSaiDaiEaiDaiFaiGaiHagUahJaibaicaiLadRadRadRaiMaCZadRadRadRadRadRagVadSadSaiuaizahcaiBaiAadSadSagVaiUaiVaiWaiXaeraheaheaiYaiYaiZajaacYajbahiajcajdajeajeajfajgajhajiajjacXafxafxafxafxafxacXajlajmacXaaaaahaaaaahaaaajoajoajoajoajoajoajoaahaahaahabVaahaahaahaahaahaagaahaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahahsajpahsajqajrajsajtagBagBajuajvagBaiIajxajyaiJahzaahaahaahaahaahaahaahaahaahaahahCagKagKagKagKajAahAajCahJaiKajEajzadRajGajHajIajJahBajBajMajDadRajOajPajQahQainajTaiyaiqajQajWajXaiUajYajZakaaerajFaiYaiYaFGaiYaheacYakcakdaiCakfakgakgakhajgajmakiajjacXafxafxafxafxafxacXajLaklacXaahaahaahaahaahajoakmaknakoakpakmajoaahaaaakqaiOakqaaaaaaaahaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaagmaktaksakuakvakwakxakyakzakAakBahzakkakDakEakCagAaahaaaaaaaahaaaaaaaaaaheaheaheahCaiPaiQakIakJakKakLaIoahJakFajEakNadRakPakQakRakSaiRakOakVakWaiSakYakZalaalbalcaldalealfalgalhaliaiTalkallalmaeralnaloalpalqalrahealsaltahialuajdalvajealwajgalxajialyalzafxafxafxafxafxalAalBalCaocajVaocaaaaahaaaajoalEalFakmalFalGajoaahaaaajkalIajkaaaaaaaahaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaahsalJahsalKalLalMalNahsalOalPalQalRalSalTalUakUahzaahalWalWagAalWalWaaaahealXalXahCajnalZamaambamcamdameamfamgamhamgamiamjamjamkamlammamnamoamoampamqamramsamtamuamvamwamxamyamzamAamBamCamDamEaeramFaiYaiYamGaiaaheamHaltahiagzamIamJamKamLamMamNajiamOajwafxafxafxafxafxamQacYamRaocanQakrabjabjaahajoamSamTamUamVamWajoaahakqajkamYajkakqaaaaahaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahahsamZanaanaanaanbancahsandaneanfahzalVaniaIpaKiahzalWalWankanlakBalWaheaheajKannahCajNanpanqanransantanuahJanvanwanxadRajRanzanAajUajSanDanEanFahJanGanHanIamtanJanKanLanManNanOanPaiUaiUaoEaeraeraheaheaheanRaheaheaheanSanTagzagzanUanVanWanXanXanYamOajwafxafxafxafxafxamQaoaaobaocakraocaocajVaocajoaoeaofakmaogaohajoaahajkajkalIajkajkaahaahaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaQxaaaaaaatJaaaatJaaaaaaaahaahaahaaaaaaaaaaaaaaaaahaaaaahaaaaahaaaahsaomaonaopaooaoqaorahsaosaneaotalWaouaotaotaotaovalWaowaoxaoyaozalWakbaoBaoCaoDaoHaoFaoGapAaoIaoJaoKaoSadRahBaoNahBadRadRakeaoQakeadRaoRaoTapBakjaoVanHaoWaoXamtaoYaoZapaapbanOapcapdapeapfapgaphapgapiapjapkaplapjapmapnapoappappapqaprapsaptaptaptapuajwafxafxafxafxafxamQapwapxaocaobapNareauVaqLajoakHakGapEakTakXajoaahapHapIapJapKapHaaaaahaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJaahaahatJatJatJaahaaaatJatJaraatJatJaaaaahalWalWagAalWaahaaaaahaahaahaahaahalWagAahsahsapMatzarcahsahsahsaotapOalQapPalSapQapRaotapSalWalOapTapUalWalWapVapWapXapYahCahCahCagKagKapZaqaaoLaljaqcaqdaqeaqfaqgalDanDaqiadRanDakVamPahJaqkanHaqlaqmaqnaqoaqpaqqaqranOaqsaqtaqtajQajQajQajQaquaheaheaheaheaheaqvaqwaqxaqyaqzaqAaqBaqCaqDaqEaqFaqGaqHaqHaqHaqHaqHaqIaqJaqKaocapxapxapxapxarpajoaqMaqNaqOaqPalHajoaahapHaqRaqSaqTapHaaaaahaahaahabjaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxcrMaahatJaahcrMaahatJatJaahatJatJatJatJatJaaaaaaaaaalWaqUaqValWaqWaqXaqXaqXaqXaqXaqYalWaowaqZalWarEasaalOardasbalWarfargarhalWaouapTariarjarkalWalYapRarmalWarnapWahfaroascahearqahCarrarsansaqaameartaruarvarwarxaryarzarAarBaqjanDarDasdahJarFarGarHarIarJarKarLarMarLarNarOarParQarQarRarSajQaquahearTarUarVarWarWarWarWarWarXarYarZarWarWarWarWarWaseaocashasCasBaocaocapxaocatTasfasgapxaunasiasjaskaslasmasnajoajVapHasoaspasqapHaaaaahaaaaaaabjaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxcrMaahatJaahcrMaahatJatJaahatJatJatJatJatJaaaaaaaaaalWaqUaqValWaqWaqXaqXaqXaqXaqXaqYalWaowaqZalWarEasaalOardasbalWarfargarhalWaouapTariarjarkalWalYapRarmalWarnapWahfaroascahearqahCarrarsansaqaameartaruarvarwarxaryarzarAarBaqjanDarDasdahJarFarGarHarIarJarKarLarMarLarNarOarParQarQarRarSajQaquahearTarUarVarWarWarWarWarWarXarYarZarWarWarWarWarWaseaocashasCasBaocaocapxaocatTasfasgapxaKuasiasjaskaslasmasnajoajVapHasoaspasqapHaaaaahaaaaaaabjaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJaahatJaahatJatJatJaraaahaahaahatJatJaahaaaaahaahagAasrassastasuasvasvasvasvasvaswasxasyaszasAauvauRasvasDasvasEasFasGaheaheaheaheaheaheaheaheaheaheasHaheasIaheaheaheaheaheaheahCamXasKansaqaaoLaljasLasMasNasOasPasQasRasSajSasTasUasVakjasWasXasYasZataatbatcatdateatfatgaqtathatiathatjajQatkatlatmatnaiYarWatoatpatqatratsattatuarWatvatwatxarWaocaocapxaqJasfapwaocapxaocasBapxatyapxaocatAatBajoajoatCatDajoatEapHapHatFatGapHatHajVatHatHatIatHaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJatJatJatJaahatJatJaahcrMatJatJaahaahaahaahalWalWatKalWalWatLatMatMatMatMatMatNalWalWalWalWatOavbatPatPatPatPatQatRaheatSavcatUatVatWatXatYatZauaaubaucaudaheangaavaavaavanmahAaukaulansaumavdavgajSauoadRadRanBanyanoakjadRautanBahJahJajQanCauwauxanCajQaodanZajQaoiaqtaqtauBauBauBajQajQauCaheaiYauDauEarWauFauGauHauIauJauKauLauMauNauOauParWauQaocaxqauSauTauUaocauVaocaocaocauWaocaocauXauYauZajoajoajoajoauVapwapxavaazvatHaBwaBjaveatHaobatHaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJatJatJatJaahatJatJaahcrMatJatJaahaahaahaahalWalWatKalWalWatLatMatMatMatMatMatNalWalWalWalWatOavbatPatPatPatPatQatRaheatSavcatUatVatWatXatYatZauaaubaucaudaheangaavaavaavanmahAaukaulansaumavdavgajSauoadRadRanBanyanoakjadRautanBahJahJajQanCaLAaLaanCajQaodanZajQaoiaqtaqtauBauBauBajQajQauCaheaiYauDauEarWauFauGauHauIauJauKauLauMauNauOauParWauQaocaxqauSauTauUaocauVaocaocaocauWaocaocauXauYauZajoajoajoajoauVapwapxavaazvatHaBwaBjaveatHaobatHaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaahatJatJatJatJatJatJatJatJatJatJatJavfatJaahcrMalWalWalWaBFavhalWaahaahaahaahaahaahaahaahaahaahaahalWankaviaotalOavjalOavkavlavmavnavoavpaheaheaheaokaojaojaojaolaheaheaoAaoOaoMaoPaoAahAahAagKavzavAameavBavBavCavDavBavEavBavDavBavFavBavEavGavHavIavDavJavKavBavBavBavDavBavLahCavMavNavNavNavNagKaquaheauEaiYaiYarWarWarWarWarWavOavPavQavRavSarWarWarWavTaocapwavUatyapxaocapxaocavVaocavWavXavYavZawaawbawcawdaweawfawgawhaweawiapxapxavUapxawjatIawkatIabjabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrMaahatJaraatJatJatJatJawlaahatJatJatJatJatJatJawmawnawmawoawpalWalWaahaaaaaaaaaaaaaaaaaaaaaaaaaahalWalWalWapRalOawqalOawrawsawtawuawvawwaheaaaaahaaaaaaaaaaaaaaaaahaaaaoUapyapvapCapzawCavNapDawEawFawGawHawHawIawGawHawJawKawGawLawMawHawNawOawPawHawQawRawSawTawTawUawVawWawXawYawZaxaaxbaxcaxdagKaquaheaxeahfaxfarWaxgaxhaxiatratsattaxjarWaxkatpaxlarWaxmaocaocaocauWaocaocapxaocaqKaocaxnatHatHatAaxoajoatHatHatHatHatHatHatHatHatHaoaatHatHatHatHatHaxpatHaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatJatJatJatJatJatJatJatJatJatJatJaahatJatJatJaahalWalWalWaBHawwaotalWaaaangadoaavadoanmaahaahaahaahalWapFalWaxwasvasvasvaxxaxyalWaxzaxAaxBaheaaaaxCaxCaxCaxCaxCaxCaxCaaaaoAapLapGaqbaoAahAahAagKaxHaxIaxJaxKaxLaxMaxJaxPaxLaxIaxOaxNaxQaxRaxSaxTaxUaxVaxWaxXaxYaxZayaaxYaybaycaydayeayfaygayhayiayjagKaquaykaykaykaykaykauPaylaymaynayoaypauLayqayraysauFarWaqhaytayuayvaywayvayxayvayyayvayvayzayAayBayCayDayEayFayGayFayHayIayJayIayKatHatHatHayHayIayKayLayLayFaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahatJatJatJatJatJatJatJayMatJaahaahaahaahalWalOawwaouagAaaaaoAarlaqQarlaoAarCarCarCayUayUayUayUaxFayUayUayWayWayWayWayTayWayYaheaahaxCayXayVazaayZazbaxCaaaaoAasJasJaueaoAaaaaaaazgaufaziaugagKaufazlaugagKaufazoaugagKavyahAawxagKahAauhazuahAahAazxazxauiazzaujazxazxazBagKagKagKagKagKaquaykazCazDazEaykarWarWarWarWazFazGazHavRavSarWarWarWaocazIapwaoaapxapwazJapxatHatHatHatHatHazKazLazMazNazOazPazOazQazRazSazRazTayIazUayIazVazRazSazRayLazWazXaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahatJatJatJatJatJatJatJayMatJaahaahaahaahalWalOawwaouagAaaaaoAarlaqQarlaoAarCarCarCayUayUayUayUaxFayUayUayWayWayWayWayTayWayYaheaahaxCaRvayVazaayZazbaxCaaaaoAasJasJaueaoAaaaaaaazgaufaziaugagKaufazlaugagKaufazoaugagKavyahAawxagKahAauhazuahAahAazxazxauiazzaujazxazxazBagKagKagKagKagKaquaykazCazDazEaykarWarWarWarWazFazGazHavRavSarWarWarWaocazIapwaoaapxapwazJapxatHatHatHatHatHazKazLazMazNazOazPazOazQazRazSazRazTayIazUayIazVazRazSazRayLazWazXaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaahaahaahatJatJatJatJaraatJatJatJazYatJatJatJatJaahaaaaahagAaviawwanfalWaaaaavasJaupasJaavarCaAcaAdayUaAeaAfaAgaAhaAiayUaAjaAkaAlaAmaAnayWayYaheaaaaxCazdazcaAoazeaApaxCaaaaoUauqasJauraoAausausaboaAxaAyaAzagKaAAaAyaAzagKaABaAyaAzagKaACaADaAEagKaAFaAGaAHaAIawyazxaAKaALaAMaANaAOaAPazBaAQaARaARaASaARaATaykaAUaAVaAWaykaAXaAYaAXarWaAZaBaaBbaBcaBdaBeaBfaBgayvaBhatHatHatHatHatHatHatHaBiaBIauuaBkaBlaBmaBnaBoayFayFayFaahaahaJzaBqazRazRazRazRazRaBraJzazRaBsayFayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahatJatJatJatJatJatJatJaahatJaahaahatJatJaahaahalWalWardawwalWalWaaaaoAasJasJasJaBLaBuaBvaBvaCTaBxaByaBzaBAaBBaBCaBDaBEaCVaBGaDHayWayYaheaaaaxCaAraAqaBJaAsaBKaxCaaaaoAauyasJasJauzaBOauAaboaBQaAyaBRagKaBQaAyaBSagKaBQaAyaBTagKaBUaBVaBWagKaBXaBYaBZaCaaCbazxaCcaCdaCeaCfaCgaChazBaCiapjapjapjaCjaCkaykaClaCmaCnaykaCoaCpaCpaCqaCraCsaCtarWarWarWarWarWaocaCuatHavqaCwaCxaCyavraCAaCBaCCaCCaCCaCCaCDaCEaCFavsaCHayFaCIaahaahaaaaaaaaaaahaahaaaaaaaahaaaatJazRayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaatJatJatJatJatJaahaahaahatJatJatJaafaaaaahaahaahalWalWalOalOaCJagAaaaaaaaavaupaupaupaavarCaCLaCMaCNaBxaBvaCOaCPavtayUaCRaCSaEhaCUaEsayWayYaheaahaxCaCWaCzaCYaCXaCZaxCaaaaoAavuavuavuaoAausaDeaboavvavxavwahCavvavxavwahCavvavxavwahCaxDazqayPahCahCauhazrahCaDnazxaDoaDpaDqaDraDsaDtazBaDuaheaheaheaDvaheaykaDwaDxaykaykaDyaDzaDAaDBaDCaDDaDEavRaDFaDGatxarWaFDaDIatHaDJaDKaDLaDLaDMawzazLaDOaDPaDQaDQaDQaDRaDSawAaDUawBaaaaaaaahaaaaaaaaaaahaaaaaaaaaaahaaaaaaaahayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahatJatJatJatJatJatJatJaahatJaahaahatJatJaahaahalWalWardawwalWalWaaaaoAasJasJasJaBLaBuaBvaBvaCTaBxaByaBzaBAaBBaBCaBDaBEaCVaBGaDHayWayYaheaaaaxCaAraAqaBJaAsaBKaxCaaaaoAauyasJasJaRxaBOauAaboaBQaAyaBRagKaBQaAyaBSagKaBQaAyaBTagKaBUaBVaBWagKaBXaBYaBZaCaaCbazxaCcaCdaCeaCfaCgaChazBaCiapjapjapjaCjaCkaykaClaCmaCnaykaCoaCpaCpaCqaCraCsaCtarWarWarWarWarWaocaCuatHaSuaCwaCxaCyavraCAaCBaCCaCCaCCaCCaCDaCEaCFavsaCHayFaCIaahaahaaaaaaaaaaahaahaaaaaaaahaaaatJazRayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaatJatJatJatJatJaahaahaahatJatJatJaafaaaaahaahaahalWalWalOalOaCJagAaaaaaaaavaupaupaupaavarCaCLaCMaCNaBxaBvaCOaCPavtayUaCRaCSaEhaCUaEsayWayYaheaahaxCaCWaCzaCYaCXaTEaxCaaaaoAavuavuavuaoAausaDeaboavvavxavwahCavvavxavwahCavvavxavwahCaxDazqayPahCahCauhazrahCaDnazxaDoaDpaDqaDraDsaDtazBaDuaheaheaheaDvaheaykaDwaDxaykaykaDyaDzaDAaDBaDCaDDaDEavRaDFaDGatxarWaFDaDIatHaDJaDKaDLaDLaDMawzazLaDOaDPaDQaDQaDQaDRaDSawAaDUawBaaaaaaaahaaaaaaaaaaahaaaaaaaaaaahaaaaaaaahayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaDWaDXaDWaagaaaaahaaaaahalWaHcaFHakBawwalWalWaaaaoAauyawDaxraoAarCarCarCayUaEdaBvaEeaCPaEfayUaEgaHFaEiaEjaEkayWayYaheaaaaxCaDbaDaaDTaEmaxCaxCaaaaxsaxtaxtaxtaxuaEraxvaEraEtaEuaEtaEvaEtaEuaEtaEwaEtaEuaExaEyaEzaEAaEBaxEaAJaEEaDmahCavNazBaEGaEHaEIaEJaEKaELazBaEMaykaENaEOaEPaEQaEQaERaESaETaEUaEVaEWaEXaEYaEZaFaauLaFbaFcaFdaFearWaqKaDIatHaFfaFgaFhaFiaFjaFkaFlaDVaFnaFoaFoaFoaFpaFqawAaDUawBaaaaahaahaahaahaahaahaahaahaahaahaahaaaaahayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaaaaaaahaahaaaaDWaFsaDWaahaahaahaahaahalWavjaotaotaFtaFualWaaaaxsadoaxGadoaxuaahaahaaharCaFzaFAaFBaFCaHIayUaFEaFFaFGaIfaFIayWayYaheaaaaahaaaaDYaFLayNaaaaahaaaaErausausausaEraErayOaFOaExaFPaFQaFRaFSaFTaFTaFUaFTaFVaFSaFWaFXaFYaFZaGbaEFaGdaGcahCavNazBazBayQaGfazBaDZazBazBaDuaykaykaykaGhaGiaGjaGkaGlaGmaGnaGoaGpaGqaGraGraGsaGtarWarWarWarWarWaqJaDIatHaGuaGvaGwaGxaGyayRaGAaGBaGCaGDaGEaGFaGGaGHawAaDUawBawBaahaGKaaaaaaaaaaaaaGKaaaaaaaGKaahaahaahayFaGLaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaaaaaaahaahaaaaDWaFsaDWaahaahaahaahaahalWaWhaotaotaFtaFualWaaaaxsadoaxGadoaxuaahaahaaharCaFzaFAaFBaFCaHIayUaFEaFFaWiaIfaFIayWayYaheaaaaahaaaaDYaFLayNaaaaahaaaaErausausausaEraErayOaFOaExaFPaFQaFRaFSaFTaFTaFUaFTaFVaFSaFWaFXaFYaFZaGbaEFaGdaGcahCavNazBazBayQaGfazBaDZazBazBaDuaykaykaykaGhaGiaGjaGkaGlaGmaGnaGoaGpaGqaGraGraGsaGtarWarWarWarWarWaqJaDIatHaGuaGvaGwaGxaGyayRaGAaGBaGCaGDaGEaGFaGGaGHawAaDUawBawBaahaGKaaaaaaaaaaaaaGKaaaaaaaGKaahaahaahayFaGLaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaaaaaaaaaahaaaaDWaDXaDWaDWaySaySaySaDWaDWaDWaDWaDWaGQaGRalWaaaaaaaaaaaaaaaaaaaaaaaaaaharCaGTaGUaGVaGWaGXayUaGYaGZayWayWayWayWaEaaheaHbaElazfaEnaHfazhazkazjaHbaEraHjaHkaHkaHlaHmaHnaHoaHpaHqaHraHsaHtaHuaHvaHwaHuaHxaHyaHzaHAaHBaHCazmaGPaHEaGSahCavNaHHazBaznaHJazBaHKaHLaplaHMaykaHNaHOaHPaHQaykaHRaHSaHTaykaHUaHVaHWaHXaHWaHYaHZaIaaIbaIcaIdarWapxaDIatHaIeazpaIgaIhaIiaCAaIjaIkaGCaIlayFayFaImbbLayFawBawBawBaahaaaaaaaaaaaaaaaaIqaaaaaaaaaaahaahaahayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaahaDWaDWaIraIsaItaIuaIuaIvaIwaIxaIyaIzaDWaDWawwalWaaaaaaaaaaaaaaaaaaaaaaaaaahayUayUayUazsaICayUayUaIDaIEaIFaIGaIHaIIaIJaIKaILaFJaINaGgaIOaINaIPaIQaIRaEraISaITaIUaIVaIVaztaIVaIVaIVaIVaIVaIVaIVaIVaztaIVaIXaIYaIZaJaaJaaJaaJbaJbaJbaJbaJbaJaaJcaJaaJdaJdaJdaJdaGMaJdaDuaykaykaykaJfaJgaykaJhaykaJiaykaJjaJkaJlavRaIAaJnaJoavRaJpaJqaJrarWaJsaJtatHayFayFayFayFayFaCAaJuaJvaGCaJwayFaJxaJyaJzaJAaJzaJBawBaahaaaaaaaahaahaahaahaahaaaaaaaahaahatJayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaaaaaaaaaaDWaJCaJCaJCaIuaIuaIuaIuaIuaIuaJCaJCaJDaDWawwagAaaaaaaaaaaaaaaaaaaaaaaaaaahaahazwaJGaLbaJHaJIaJJaJKaJLaJMaJNaJOaJPaJQaJRaIIaJSaJTaJUaJVaJWaJXaJYaJZaKaaKbaKcaKdazyaaaaaaaaaaahaaaaaaaaaaahaaaaaaaaaazAaKfaKgaKhaJaaKiaKjaKkaKlaKmaKnaKoaKpaKqaJaaKraKsaKtaKuaKvaJdaKwaykaKxaKyaGiaJgaykaKzaykaKAaykaKBaKCaKDaKEaKEaKEaKEaKEaKEaKEaKEaKEaocaKFatHaKGaKHaKIaKJayFaKKaFgaJvaKLaKMaKNaKOaKPaKQaKRaKSaKTawBaahaGKaahaahaAaazZaAbaahaKUaaaaahaaaaraayFazXaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaDWaKVaIuaIuaIuaIuaIuaIuaIuaIuaJCaJCaJCaHaaKXalWaaaaaaaaaaaaaaaaaaaaaaaaaAtazwazwaLcaLdaLeaLeaLfaLgaLhaLiaLjaLkalWaLlalWalWalWalWaLmaLnaAuaLpaLqaAuaLnaLnaLnaLnaLraaaaaaaLsaLsaLsaLsaLsaLsaLsaaaaaaaIVaLtaLuaLvaLwaLxaKoaLyaLzaLAaLBaLCaLDaLEaJaaLFaLGaLHaLIaLJaJdaLKaykaykaykaLLaLLaykaykaykaykaykaLMaLNaLOaKEaLPaLQaLRaLSaLTaLUaLVaKEaLWaDIatHaKHaKHaLXaKRaLYaDKaLZaMaaMbaMcayFaMdaMeaMfaMgaMhaMiawBaahaaaaaaaahaAvaMkaAwaahaaaaaaaahaahatJayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaahaDWaMlaIuaIuaIuaIuaMmaIuaMnaIuaIuaJCaMoaDWaCJalWaaaaaaaaaaaaaaaaaaaaaaaaaJeaIMaJeaMwaMsaMtaMuaMvaNjaMxaMyaMzaMAaMBaMCaMDaMDaMEaMDaMFaLnaBpaMHaMIaMJaMKaMLaMMaMNaMOaMPaMQaMQaMRaMSaMTaMUaMVaMWaMWaMXaMYaMZaHyaKhaJaaNaaKoaNbaKoaNcaKoaNdaKoaKoaJaaNeaNfaLHaNgaNhaJdaNiaNkaPjaNOaNlaNmaNnaNoaNpaNqaNraNsaNtaNuaKEaNvaNwaNwaNwaNxaNyaNzaKEaNAaDIatHaNBaNBaNCaKRaLYaGvaNDaNEaNFaNGaNHaNIaNJaNKaNLaNMaKTawBaahaaaaNNaahaBMaBtaBNaahaahaGKaahaahaahayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaaaaaaaaaaDWaJCaJCaJCaIuaIuaIuaIuaIuaIuaJCaJCaJDaDWawwagAaaaaaaaaaaaaaaaaaaaaaaaaaahaahazwaJGaLbaJHaJIaJJaJKaJLaJMaJNaJOaJPaJQaJRaIIaJSaJTaJUaJVaJWaJXaJYaJZaKaaKbaKcaKdazyaaaaaaaaaaahaaaaaaaaaaahaaaaaaaaaazAaKfaKgaKhaJaaXbaKjaKkaKlaKmaKnaKoaKpaKqaJaaKraKsaKtaXLaKvaJdaKwaykaKxaKyaGiaJgaykaKzaykaKAaykaKBaKCaKDaKEaKEaKEaKEaKEaKEaKEaKEaKEaocaKFatHaKGaKHaKIaKJayFaKKaFgaJvaKLaKMaKNaKOaKPaKQaKRaKSaKTawBaahaGKaahaahaAaazZaAbaahaKUaaaaahaaaaraayFazXaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaDWaKVaIuaIuaIuaIuaIuaIuaIuaIuaJCaJCaJCaHaaKXalWaaaaaaaaaaaaaaaaaaaaaaaaaAtazwazwaLcaLdaLeaLeaLfaLgaLhaLiaLjaLkalWaLlalWalWalWalWaLmaLnaAuaLpaLqaAuaLnaLnaLnaLnaLraaaaaaaLsaLsaLsaLsaLsaLsaLsaaaaaaaIVaLtaLuaLvaLwaLxaKoaLyaLzaXVaLBaLCaLDaLEaJaaLFaLGaLHaLIaLJaJdaLKaykaykaykaLLaLLaykaykaykaykaykaLMaLNaLOaKEaLPaLQaLRaLSaLTaLUaLVaKEaLWaDIatHaKHaKHaLXaKRaLYaDKaLZaMaaMbaMcayFaMdaMeaMfaMgaMhaMiawBaahaaaaaaaahaAvaMkaAwaahaaaaaaaahaahatJayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaahaDWaMlaIuaIuaIuaIuaMmaIuaMnaIuaIuaJCaMoaDWaCJalWaaaaaaaaaaaaaaaaaaaaaaaaaJeaIMaJeaMwaMsaMtaMuaMvaNjaMxaMyaMzaMAaMBaMCaMDaMDaMEaMDaMFaLnaZpaMHaMIaMJaMKaMLaMMaMNaMOaMPaMQaMQaMRaMSaMTaMUaMVaMWaMWaMXaMYaMZaHyaKhaJaaNaaKoaNbaKoaNcaKoaNdaKoaKoaJaaNeaNfaLHaNgaNhaJdaNiaNkaPjaNOaNlaNmaNnaNoaNpaNqaNraNsaNtaNuaKEaNvaNwaNwaNwaNxaNyaNzaKEaNAaDIatHaNBaNBaNCaKRaLYaGvaNDaNEaNFaNGaNHaNIaNJaNKaNLaNMaKTawBaahaaaaNNaahaBMaBtaBNaahaahaGKaahaahaahayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaySaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaNPaDWaDWaNQalWaahaaaaaaaaaaaaaaaaaaaaaaNRaNSaNRaNTaMsaNUaNUaNVaNUaLhaNWaNXaNYalWalWalWalWalWalWawwaLnaNZaOaaObaOcaOdaOdaOdaOeaLraaaaLsaBPaOgaOgaOgaOgaOgaCvaLsaaaaIVaOiaIYaIZaJaaOjaOkaOlaKoaOmaKoaOnaOoaKoaOpaOqaOraOsaOtaOuaJdaOvaOwaOxaOxaOxaOyaOzaOzaOAaOAaOBaOCaODaOEaKWaOGaOHaOHaOHaOIaOJaOKaKEaOLaDIatHaNBaOMaONaOOayFaOPaFgaOQaGCaORayFaOSaOTaOUaOUaOUaOVawBaahaaaaaaaahaahaahaahaahaaaaaaaahaaaaahayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawaavaaxaaaaySaIuaIuaIuaIuaIraIuaPaaPbaPbaPcaPdaDWankawwalWaahaaaaaaaaaaaaaaaaaaaaaaAtazwazwaCGaMsaPhaPGaPiaRTaPkaPlaPmaPnaCKaPpaPqaPraPsalWaPtaLnaPuaOaaPvaPwaPxaPxaPyaPzaLraaaaCQaPBaOgaPCaPDaPEaOgaPFaCQaaaaIVaIXaIYaIZaJaaPHaPIaPJaPKaPLaPKaPMaPNaPOaJaaDdaDcaPRaPSaPTaJdaDfaPVaPWaPXaPYaPZaQaaQbaQcaQdaQeaQfaQgaQhaQiaQjaQkaQlaQmaQnaQoaQpaKEapwaDIatHayFayFayFayFayFaCAaQqaQraQsaQtayFayFaImbbLayFawBawBawBaQwaaaaaaaaaaahaaaaaaaaaaaaaaaaahaaaaahayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBaaDaaCaaDaaEaDWaIuaIuaIuaIuaIuaIuaIuaIuaIuaQAaDgaDWarfaQCalWaaaaaaaaaaaaaaaaaaaaaaDhaNRaQDaNRaNTaMsaNUaNUaNVaNUaLhaLiaQEaQFaQGaQHaQIaQJaQKalWaQLaQMaQNaOaaOaaQOaQPaOaaQQaQRaLraaaaDiaDjaQUaQVaQWaQVaQUaQXaDkaaaaIVaIXaQZaRaaJaaDlaDlaDlaDlaReaDlaDlaDNaDlaJaaJdaMpaRiaMqaJdaJdaRkaPVaPXaPYaRlaRmaPVaPWaPYaPYaPXaRnaRoaRpaTyaRraOHaOHaRsaOIaRtaRuaKEaRVaRwatHaEbaRyaEoaEcaRBaRCaFgaOQaGCaRDaGEaEpaRFaRGawAaDUawBawBaahaGKaaaaaaaGKaaaaaaaaaaaaaGKaahaahaahayFaGLaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaaaaRIaRIaRIaRIaRJaRIaRIaRIaRIaRJaRIaRIaRIaRIaRJaRIaRIaRIaRIaaaaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaDaaLaaDaaKaDWaMlaJCaIuaIuaIuaIuaIuaRLaIuaRMaEqaDWaROaxxalWaaaaaaaaaaaaaaaaaaaaaaaaaRPaRQaRPaTzaMsaNUaRSaUfaRUaURaRWaLhaECaRYaRZaSaaSbaScalWaSdaLnaSeaOaaOaaSfaEDaShaQQaFmaLraaaaLsaSjaSkaQUaSlaOgaSmaSnaLsaaaaIVaSoaLuaLvaSpaSqaSraSraSraKqaSraSraSsaStaJaaSuaSvaSwaSxaSyaSzaSxaSAaSBaSBaSCaSDaSEaSFaSGaSHaSIaSFaSJaSKaKEaSLaSMaSNaSOaSPaSQaSRaKEapxaSSatHaSTaSUaSVaFraSXaSYaSZaTaaTbaTcaTdaTdaTeaTfawAaFvawBaThaahaahaahaahaahaahaahaahaahaahaahaaaaahayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaTiaTjaTkaTkaTkaTlaTkaTkaTkaTkaTmaTkaTkaTkaTkaTnaTkaTkaTkaToaTpaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaTqaaVaFwaaWaTqaDWaIvaJCaTuaTvaTwaIuaIuaIuaIuaRMaRNaDWawwaotagAaaaaaaaaaaaaaaaaaaaaaaaaaAtazwazwaUSaMsaNUaNUaNVaNUaLhaRWaFxaFyaRYaTBaTCaTDaTEalWawpaLnaTFaTGaTGaTHaTIaOaaQQaTJaLraahaLsaLsaLsaTKaTLaTMaLsaLsaLsaahaIVaLtaTNaIZaTOaTPaSraSraSraTQaSraSraTRaKqaTOaNlaTSaTTaTUaPWaFKaPWaPVaPXaPWaTWaPWaTXaPXaPYaPWaPYaPXaTYaTZaKEaUaaUbaUcaUdaUeaLUaNzaKEaUTaDIatHaUgaUhaUiaUjaUkaUlaUmaUnaUoaUpaUqaUqaUraUsawAaDUawBaaaaaaaahaaaaaaaaaaaaaahaaaaaaaUuaaaaaaaahayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaUvaUwaUxaUyaUyaUzaUyaUyaUyaUyaUAaUyaUyaUyaUyaUzaUyaUyaUBaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKaaDaaLaaDaaKaDWaMlaJCaIuaIuaIuaIuaIuaRLaIuaRMaEqaDWaROaxxalWaaaaaaaaaaaaaaaaaaaaaaaaaRPaRQaRPaTzaMsaNUaRSaUfaRUaURaRWaLhaECaRYaRZaSaaSbaScalWaSdaLnaSeaOaaOaaSfaEDaShaQQaFmaLraaaaLsaSjaSkaQUaSlaOgaSmaSnaLsaaaaIVaSoaLuaLvaSpaSqaSraSraSraKqaSraSraSsaStaJaaZtaSvaSwaSxaSyaSzaSxaSAaSBaSBaSCaSDaSEaSFaSGaSHaSIaSFaSJaSKaKEaSLaSMaSNaSOaSPaSQaSRaKEapxaSSatHaSTaSUaSVaFraSXaSYaSZaTaaTbaTcaTdaTdaTeaTfawAaFvawBaThaahaahaahaahaahaahaahaahaahaahaahaaaaahayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaTiaTjaTkaTkaTkaTlaTkaTkaTkaTkaTmaTkaTkaTkaTkaTnaTkaTkaTkaToaTpaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaTqaaVaFwaaWaTqaDWaIvaJCaTuaTvaTwaIuaIuaIuaIuaRMaRNaDWawwaotagAaaaaaaaaaaaaaaaaaaaaaaaaaAtazwazwaUSaMsaNUaNUaNVaNUaLhaRWaFxaFyaRYaTBaTCaTDbazalWawpaLnaTFaTGaTGaTHaTIaOaaQQaTJaLraahaLsaLsaLsaTKaTLaTMaLsaLsaLsaahaIVaLtaTNaIZaTOaTPaSraSraSraTQaSraSraTRaKqaTOaNlaTSaTTaTUaPWaFKaPWaPVaPXaPWaTWaPWaTXaPXaPYaPWaPYaPXaTYaTZaKEaUaaUbaUcaUdaUeaLUaNzaKEaUTaDIatHaUgaUhaUiaUjaUkaUlaUmaUnaUoaUpaUqaUqaUraUsawAaDUawBaaaaaaaahaaaaaaaaaaaaaahaaaaaaaUuaaaaaaaahayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaUvaUwaUxaUyaUyaUzaUyaUyaUyaUyaUAaUyaUyaUyaUyaUzaUyaUyaUBaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaTqaUDaUEaUFaUGaDWaUHaJCaUIaFMaUKaJCaJCaJCaULaUMaUNaDWaUOaUPalWaahaaaaaaaaaaaaaaaaaaaaaaahaahazwaUSaWaaMtaMuaYQbaGaZJaUUaUVaUWaUXaUXaUXaUXaUXalWaUYaUZaVaaVbaVbaVcaVdaVeaVfaVgaFNaaaaaaaaaaLsaLsaViaLsaLsaaaaaaaaaazAaKfaVjaIZaXWaVkaVlaVmaVnaKqaKqaVoaVpaKqaXWaNlaVqaVraVsaVtaVuaVtaVvaVwaVxaVyaVtaVtaVtaVtaVtaVtaVzaVAaVBaKEaKEaKEaKEaVCaKEaKEaKEaKEaocaDIatHaVDaVEaVEaEcaVGaVHaVIaVJaVKaVLaVMaVNaVOaVPavsaVQayFaaaaahaahaaaaaaaaaaaaaahaaaaaaaahaahatJazRayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaUvaUwaUCaaaaaaaUzaaaaaaaaaaaaaUAaaaaaaaaaaaaaUzaaaaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaTqaTqaVSaVTaTqaTqaTqaVUaTqaTqaVVaVWaTqaTqaTqaVXaTqaTqaVYalWalWaahaaaaaaaaaaaaaaaaaaaaaaahaahaVZbaHaMsaNUaNUaNVaNUaLhaWbaLhaWcaUXaWdaWeaWfaWgalWawwaLnaWhaWiaWjaWkaWlaGaaWnaWoaLraWpaGeaWpaWraGzaWtaWuaWraWpaGeaWpaIVaWvaWwaWxbcgaJaaJaaJaaJaaWyaWzaWAaKqaWBaJaaNlaWCaPZaWDaWEaWEaWEaWEaocaocaocaWFaWGaWHaWIaWJaHGaWEaWKaWKaocaWLawgaweaWMaweaWNaweaWOaweawiatHaWPaWPaWPaWPaWQaWRaWSaWTaWUaGIaWWaFgaWXaWYayFayFayFaahaahaGJaWZazRazRazRazRazRazRaGJazRaGNayFayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaUvaUwaUCaaaaaaaUzaUzaUzaUzaUzaUAaUzaUzaUzaUzaUzaaaaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaGOaXbaXcaXdaXeaXfaXcaXgaXhaXiaXhaXjaXkaXhaXlaJmaTVaXoaXpalWaaaaaaaaaaaaaaaaaaaaaaaaaahaVZaHdaUSaMsaNUaNUaHeaHgaLhaXsaXtaXuaXvaXwaXxaXyaXzalWawwaLnaLnaLnaAuaAuaHhaLraXDaXEaLraXFaXGaXHaWraXIaXJaXKaWraXLaXMaXNaXOaXPaXQaXRaXSaXTaXUaXVaJaaJaaXWaXXaXWaJaaJaaFKaYaaYbaFKbcTaYcaYdaYeaYfaYgaocaocaocaocaYhaocaocaocaocaocaocaDIapwapxaYiaYiaYiaYiaYiaYiaYiaWPaYjaYkaYlaWPaHiaYnaWPaYoaYpaCAaCAaYqaYraYsazOaYtazOaYuazRaYvazRayHayIaYwayIayKazRaYvazRayLazWazXaahaahaagaagaafaahaafaagaagaafaafaagaagaagaafaahaahaahaahaahaQxaTiaYxaYyaYyaYyaYyaYyaYzaYzaYzaYAaYzaYzaYzaYyaYBaYyaYyaYyaYCaTpaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaHDaYEaYFaYFaYGaYFaYFaYFaYHaYIaYJaYKaYLaYLaYLaYMaYNaYOaYPalWaaaaaaaahaahaaaaaaaahaahaahaVZbgqbgjbiRaYRaNUbjwaInaYUaYTaYVaYWaYXaYYaYZaZaaZbalWaZcaZdaZeaZfaZgaZhaZiaZjaZkaZlaZmaZnaZoaZnaZpaZqaZraZsaZtaZnaZuaZvaZwaZxaZyaZzaZAaZBaZCaZDaZDaZDaZEaZFaZDaZDaZGaZDaZHaZIaZDaZDaZDaZKaZLaocaZMaZNaZOaZPaZQaZRaZQaZSaZQaZTawhaWOawiaqJapxaYiaZUaZVaZWaIpaIoaZZaWPbaababbabbacbabbadaWPbaeaWUbafbagbagbagbagbagbahayFbaiayIbajayIazVayFayFayFbaiayIazVayLayLayFaahaahaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaQxaUvaUwaUCaaaaUzbakbakbalbambanbaobapbambaqbakbaraUzaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaHDaHDbauaHDaTqaHDbawaHDaYEaYFbaxbayaHDbawaHDbazbaAbaBbaCalWalWalWalWagAagAagAalWalWalWaVZbkHbaJbaJbaJbaJbaKaNUbaLbaMbaNbaOaUXaUXaUXaUXaIBalWalWbaQalWalWbaRbaSbaTbaUbaVbaWbaXbaUbaVbaYbaZbaWbbabaUbaUbaUbbbbbcbbdbbebbfbbgbbhbbibaUbaUbaUbaUbbjbbkbaUbaUbaXbblbbmbaUbaUbaUbaUbbnbbobbpbbpbbpbcnbbpbbpbbpaocbbqaocaDIaocaocbbrbbrbbrbbrbbsbbtbbtbbubbvbbwaWPbbxbbyaIWbbAbbBbbCaWPbbDbbEbbFbagbbGbbHbbIbagbbJayFayFayFayFayFayFayFbbKayFayFayFayFayFbbLayFaahaQxaQxaafaQxaQxaQxaQxaafaQxaQxaQxaQxaafaQxaQxaQxaQxaQxaQxaQxaQxaTiaUwaUCaaaaUzbakbanbbMbbNbbObbPbbQbbNbbRbanbaraUzaaaaVRaUwaUCbbSbbSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaHDaahaaaaahaaaaHDbbUaHDbbVbbVbbWbbXaHDbbUaHDaHDaTqbbZbcabcbasuasvbccasvbcdasvbcebcfaswbeqbchaJEaJEaJFaKYaKebcmbkIbcobcpbcqbcobcrbcsblvbctbcubcvbcwbcxbcybczbcAbcBbcCbcCbcDbcEbcFbcGbcHbcIbcJbcKbcKbcKbcKbcKbcKbcKbcLbcMbcNbcNbcNbcNbcNbcNbcNbcNbcObcPbcQbcRbcNbcSbcObcNbcNbmTbcUbcVbbpbcWbcXbcYbcZbdabbpbdbbdcaocbddaocaaabbrbdebdfbbrbdgbdhbdibdjbdkbdlaWPbdmbdnbdobdpbdqbdraWPbdsbdtbdubagbdvbdwbdxbagbdyaKRaKRbdzaKRbdAaKRaKRaKRbdBaKRbdCbdDbdCbdDabjabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaaaaRJbdEaUwaUCaaaaUzbakbdFbdGbakbdHaKZbdJbakbdKbdLbaraUzaaaaVRaUwbdMaaabbSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaaaaHDbawaHDaHDaHDaHDaHDaHDbawaHDaaaaTqbdQbdRbdSbdSbdSbdSbdSbdSbdSbdSbdTaLabcobcoaLoaMraLobcobcobcobdYbcobdZbeabebbecbedbeebefbegbehbeibejbcybekbcAbelbembembenbembeobembgbbeRbgbaMGaMGaMGaMGaMGaMGaMGaMGaMGaMGaMGaMGaMGaMGaMGaMGaMGbeubeubevbeubeubeubeubeubeubewbcAbexbbpbnjbezbeAbeBbeCbbpbeDbeEaocaDIajVaaaaOfbeGbeHbeIbeJbeKbeLbeMbeNbeOaWPbePaOhaOFaOFaOXaOWaWPbeUbeVbeUbagbeWbeXbeYbagaOYayFayFayFayFayFayFayFayFayFawBayFayFbahayFaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaQxbfbbfcbfdbfeaUzaUzaUzbakbffbfgbfhbakbakbakbfibfjbfkbaraUzaUzaUzbflaToaTpaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawaOZaPeaOZaavaOZaOZaavaOZaPeaPfaaxaTqbdQbfsbftbfubfvbfwbfxbfybfzbdSbfAbfBbfCbfDbnsbfEbnsbfEbfGbfEbfHbcobfIbfJbfKbfLbfMaPgbfObfPbfQbfRbfSaPobfUbfVbfWbembfXbfYbfZbgabembhobgcbhraahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbeubgdbgebgfbggbghbgibnVbeubgkbglbgmbbpbgnbgobgpboqbgrbbpaocaocaocbgsaocaaabbrbgtbgubbrbgvbgwbgxbgybgzbgAaWPbgBaPAbgDbgEbgFbgGaWPaCAbgHaCAbagbgIbgJbgKbagbgLbgLbgLaaKaaEaaaaaaaaaaaaaahaaaaaaayFbdDayFaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaRIaRIbgMbgNaUwbgObgPaaaaaaaUzbgQbgRbgSbakbakbgTbakbakbdKbgUbgVaUzaaaaaabgWaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawaOZaOZaPPboGasJaPQaQuaPUaQyaQvaQzasJaQSaQBaHDbdQbdRaQTbhibhjbhkbhlbhmbhnbhMbhpbhqbhNbhsbhsbhtbhubhvbcobcobcobcobhwbhxbhybhzbhAaLobhCbegbehbhDbhEbhFbhGbcAbhHbembhIbhJbhKbhLbhObiQbiqbjAaahaahaQYaRcaRbaRdbhUaRfaRcaRdbhUaRfaRbaRbaRgaahaahbeubhZaRhbibbicbibbidbiebeubifbcAbigboHbbpaRjbiiaRqbbpbbpbikbilaocbinaocbimbbrbbrbbrbbraYiaYiaYibiobipaYiaWPaWPaWPaWPaWPaRxaRvaWPbisbitbisbagaRzbivaRAbagbiyaRHaREaOZaOZaaxaaaaaaaaaaahaaaaaaaaaabjaaaaahaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaahaahabjbiCbiDbiEbiDbiFaUCaaaaaaaaaaUzbiGbanbiHbiIbiJbiKaRKbiIbiMbanbaraUzaaaaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoAaRRaRRaaDasJaSgaRXaSgaRXaSgaRXaSgasJaSWaSiaHDbdQbiUbdSaTgbiWbiXaTrbiZaTsbdSbjbbjcbjdaTtbjfbjgbjhbjibjjbjkbjlbjmbjnbjobjpbjqbjrbjsbjtbjubjvboPbjxbjybfUbcAbjzbemaTxbjBbjCbjDbemblnbjFbhraahaahaTAaUJaUtaVhaUQaWmaVFaWsaWqaXmaWVaYSaXaaahaahbeubjTbjUbjVbjWbjXbjYbjZbeubewbkabkbbkcbkdbkebkdbkfbkgbkhbkdbkdbkdbkibkdbkjbkkbklbkmbkdbkdbknbkjbkfbkibkobkpbknbkqbkrbksaXqaXnaXrbkwbkxbkybkzbkAbkBbkCaXAbkEbkEaXBadFadEaavaaaaaaaaaaahaaaaaaaaaabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahabjbiCbiDbkJbiDbkKaUCaaaaaaaaaaUzbkLbkMbalbkNbkObkPbkQbkRbkSbakbaraUzaUzaUzaUzbkTaTpaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavasJasJaPeasJaSgaRXaSgaXCaSgaRXaSgasJaSWaSiaHDbkWbkXboQbkYbkZaXZaXYaXZbftbftblcbldbdYbcobleblfblgblhblibljaYmbcobllblmblibhzblxbcobloblpblqblrblsaPobhGbcAbhHbembltbluboRblwbembmnblybhrbhUaYDbhUaZYaZXbatbasbatbavbatbasbatbaDbbzbhUaYDbhUbeublHblHblHblIblJblKblLbeublMblNblOblPblQblRblQblSblQblTblQblQblQblUblQblVblWblXblYblQblQblZbmabmbblUbmcblUbmdbmebmfbksbmgbmhbmhbmibmjbmhbmhbmkbmlbmmbaEbkEbkEbaFaOZaOZbaIaaaaaaaaaaahaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahbmqaaaaaaaaaaahbgPbgPbgMbmraUwaUCaaaaaaaaaaUzaUzbiGbakbakbakbmsbakbakbakbakbmtaYBbmuaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoAaupaupaaDasJaSgaRXaSgaRXaSgaRXaSgasJaSWaSiaHDbmwbmxbmybmzbmAbmBbmBbmCbmDbmzbmEbmFbmGbcobaPbmIbmJbmKbmLbmMbmNbcobmObmPbmQbmRbmSbcoboYbmUbmVbmWbmXbcybmYbglbmZbnabnabnabnabnabgbbncbnbbndbnebbYbbTbcibasbasbasbasbcjbasbasbasbasbclbckbeSbhUbnmbnnbnobnpbnqbnrbnrbntbeubnubnvbnwbnxbnybnzbnybnAbnybnBbnybnybnCbnybnybnDbnEbnybnFbnCbnGbnHbnDbnAbnybnIbnJbnKbnLbnMbdIbnObnPbnQbnRbmmbnSbnSbnTbnUbpgbplbksbksbksaaKbnWaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaabnXbnYbnZboabobbocbodboeaUwaUzaUzaUzaUzaUzbofbogbofbofbohboibohbojbojbokbolbomaUAaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdNaOZaOZaPPbdOasJbdPasJbdUbdVasJbdWasJaQSbdXaHDbdQboubovbowboxboybozboAboBbowboCboDboEbcoberaLobqLbesbcobcobcobcobcoaLoboJbetbcobcoaPoboLboMaPoaPoboNbaRbcAbtbbnabeybeQbeFbnaboVboXboWbpibhUbeZbeTbfmbfabfobfnbfqbfpbfnbfnbfrbfabfNbfFbhhbhUbeublHblHblHbtdblHblHblHbeubpmbcAbpnbpobfTbpqbfTbpobpjbpjbpjbpjbpjbpjaocaocbpsaocaocaocbptbpuaocaocaocbpvaocbpwbpxbpybpzbpAbpBbpCbpDbnSbgCbgXbpGbnUbpHbgLbksbgZbgYbhabpKbpLbpLbpMbpNaahaaaaaaaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaahaaabnXbpObpPaaaaahbpQbpRbpSbpTbpUbpVbofbpWbpXbpYbpZbqabqbbofbqcbqdbqebqfbqgbqhbqhbqiaUAaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdNaOZbhbaOZaavaOZaOZaavaOZaPebhcbaIaTqbqkbqlbqmbcybqnbqobqpbqobqqbcybqrbqsbqtbqubqvbqwbqxbqybqzbqwbqAbqBbqwbqvbqvbqCbqvbqDbqEbqFbqGbqHbqvbqIbqJbqKbhHbhebhdbhgbhfbnabhrbhrbhrbhrbhUbhPbhBbhRbhQbhTbhSbasbhVbhXbhWbhYbhQbihbiabiPbiObeubrebrfbrgbrhbriblHbrjbeubrkbcAbrlbijbrnbrobrpbpobpkbqMbprbqQbqNbqSbtebrxbryaocbrzbrAbrBbrCbrDaocatEbrEaocbrFbrGbrHaXAbrJbrJbrJbrKbrLbnSbnSbrMbrNbrObrPbrQbrRbirbiubrTbrUbrUbrVbrWbrXbrXbrXbrYbrXbrXbrXbrXbrXbrXbrYbrXbrXbrXbrXbrXbrXbrYbrXbrZbsabrUbrUbrUbsbbscbsdbsebsebsfbsgbshbsibsjbskbslbsmbsnbsobspbsqbsrbssbstbsubsvbswaYyaYybsxaTpaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaaaaHDbawaHDaHDaHDaHDaHDaHDbawaHDaaaaTqbsAbsBbsCbcybsDbsEbsFbsEbsGbcybsHbsIbsJbsKbqTbsMbsNbsKbsKbsObsPbsQbsRbsKbsKbsSbsKbsKbsKbsTbsUbsVbsVbsWbsXbsYbsZbnabiwbizbixbnabiAbiLbiBbiNbthbhYbiSbhTbiTbiYbiVbqVbjabqVbjebjNbjMbjPbjObjRbjQbeubtubtvbtwbtxbtybeubeubeubewbtzbtAbpobtBbtCbtDbpobqUbqXbqWbrrbrqbrtbtKbtLbtMbtNbtObtPbtQbtRbtSbtTbtUbtVaocbpwbtWbtXbksbtYbtZbjGbjEbucbudbvebufbugbnUbuhbuibujbjHbjIaTpaaaaaabulbpPaahaaaaaaaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaahaaabumbunbpNaaaaahaVRbuobupbuqburbjJbutbuubuvbuwbuxbuybjKbuAbuBbuCbjLbuEbuFbqhbuGbuHaUAaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaHDaahaaaaahaaaaHDbuIaHDbuJbuKbbVbuLaHDbuIaHDaHDaTqbdQbuMbuNbcybuObsEbuPbsEbuQbcybuRbuSbuTbuUbuVbuWbuXbuYbuZbvabvbbvcbuVbuVbuVbvdbuVbvtbvfbuXbvgbuVbuVbvhbvibvjbsZbnabvkbvlbvmbvnbvmbvobvmbvmbthbkGbkFbvrbvrbvrbvRbxgbvubvvbxlbvrbvrbvrblFblGbhUbeubvzbvAbvBbvCbvDbeubrubtkbvGbvHbtAbfTbvIbvJbvKbpobtEbtGbtFbtHbpjbpjaocaocbvPaocaocaocbvQbxmaocaocbvSbvTaocbvUbtWbvVbksbgLbgLbgLbgLbtIbgLbgLbvXbvYbvZbksbksbwabjSbktbwcaaabnXbwdaaaaahaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaabumbunbpNaahbwebwfbwgbwhbwibkubofbkvbwlbwmbwnbwobwpbofbwqbwrbwsbojbwtbwubqhbqiaUAaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaHDaHDbauaHDaTqaHDbawaHDbwvaXcbwwbwxaHDbawaHDbwybwzbwAbqlbqmbcybwBbuebqpbuebwDbcybwEbwFbwGbcybwHbwIbwJbcyalWbwKalWbwLbwLbkDbwNbwObkDbwLbwLbwLbwLbwLbwLbxnbwPbwQbwRbwSbwTbwUbwVbwWbwVbwXbwYbwZbmobnkbnfbxdbxebxdbxdbxfbnlbxhbvrbvrbxibvrbonboobeubxpbxobxwbxvbyMbyLbeubvEbgbbxraXQbxsbpobpobpobpobpobvFbvLbpjbpjbpjbvNbvMbpjbvWbxqbwCaocavVbxAaocbxBbxCbxDbxEbxFbxGbxHbxIbxJbxKbxLbxJbxMbxNbgLbxObxPbxQbxRbkUbxTbkVblabxVbpLbxWbxXaahaahaahaahaahaaaaahaaaaahaaaaahaaaaahaaaaaaaaaaaaaaaaaaaahbmqaaabumbxYboabxZbyabodbmraUwaUzbybbycbydbyebyfbygbofbofbyhbyibyjbojbojbykbylbymaUAaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaHDbynaXcaXebyobypaXcaXcbyqbyraYIbysbytbytbytbyubyvbywbyxbyybyzbyAbyBbyCbyDbyEbyzbyFbyGbyHbyIbyIbyJbyIbyIaowbyKbzhbwLbzjblbbyObyPbyQbwLbzmbySbwLbzmbySbwLbwPbcAbhHbnablkblAblzbnablBblDblCblEbthboFbopbvrbznboKboIbasbasboobzqbpfboZbvrbrdbrsbeubzubzrbmpbzpbmvbzxbzsbxtbgbbewaXQbexbpjbxubxybxxbyRbxzbyZbyYbpjbzgbzvbztbzybzwbzAbzzaocaocaocaocaocaocbzIaocbzJbzKbzLbzBbzCbzCbzCbzCbzCbzBbzBbzCbzEbzDbzGbzFbzNbzHbzQbzPbzBbzBbzBaahaaaaaaaaaaahaaaaahaaaaahaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaQxbfbaUwaUCbzXaUzbzYbzZbmHbAbbAcbAdbAebAfbAgbAhbAibAjaYyaYybAkaUzaUzbkTaTpaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaTqaTqaVSaVTaTqaTqaTqaVUaTqaTqaVVaVWaTqaTqaTqaVXaTqaTqaVYalWalWaahaaaaaaaaaaaaaaaaaaaaaaahaahaVZbaHaMsaNUaNUaNVaNUaLhaWbaLhaWcaUXaWdaWeaWfaWgalWawwaLnbbTbbYaWjaWkaWlaGaaWnaWoaLraWpaGeaWpaWraGzaWtaWuaWraWpaGeaWpaIVaWvaWwaWxbcgaJaaJaaJaaJaaWyaWzaWAaKqaWBaJaaNlaWCaPZaWDaWEaWEaWEaWEaocaocaocaWFaWGaWHaWIaWJaHGaWEaWKaWKaocaWLawgaweaWMaweaWNaweaWOaweawiatHaWPaWPaWPaWPaWQaWRaWSaWTaWUaGIaWWaFgaWXaWYayFayFayFaahaahaGJaWZazRazRazRazRazRazRaGJazRaGNayFayFazXaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaUvaUwaUCaaaaaaaUzaUzaUzaUzaUzaUAaUzaUzaUzaUzaUzaaaaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaGObdgaXcaXdaXeaXfaXcaXgaXhaXiaXhaXjaXkaXhaXlaJmaTVaXoaXpalWaaaaaaaaaaaaaaaaaaaaaaaaaahaVZaHdaUSaMsaNUaNUaHeaHgaLhaXsaXtaXuaXvaXwaXxaXyaXzalWawwaLnaLnaLnaAuaAuaHhaLraXDaXEaLraXFaXGaXHaWraXIaXJaXKaWrbdlaXMaXNaXOaXPaXQaXRaXSaXTaXUbeOaJaaJaaXWaXXaXWaJaaJaaFKaYaaYbaFKbcTaYcaYdaYeaYfaYgaocaocaocaocaYhaocaocaocaocaocaocaDIapwapxaYiaYiaYiaYiaYiaYiaYiaWPaYjaYkaYlaWPaHiaYnaWPaYoaYpaCAaCAaYqaYraYsazOaYtazOaYuazRaYvazRayHayIaYwayIayKazRaYvazRayLazWazXaahaahaagaagaafaahaafaagaagaafaafaagaagaagaafaahaahaahaahaahaQxaTiaYxaYyaYyaYyaYyaYyaYzaYzaYzaYAaYzaYzaYzaYyaYBaYyaYyaYyaYCaTpaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaHDaYEaYFaYFaYGaYFaYFaYFaYHaYIaYJaYKaYLaYLaYLaYMaYNaYOaYPalWaaaaaaaahaahaaaaaaaahaahaahaVZbgqbgjbiRaYRaNUbjwaInaYUaYTaYVaYWaYXaYYaYZaZaaZbalWaZcaZdaZeaZfaZgaZhaZiaZjaZkaZlaZmaZnaZoaZnbeTaZqaZraZsbeZaZnaZuaZvaZwaZxaZyaZzaZAaZBaZCaZDaZDaZDaZEaZFaZDaZDaZGaZDaZHaZIaZDaZDaZDaZKaZLaocaZMaZNaZOaZPaZQaZRaZQaZSaZQaZTawhaWOawiaqJapxaYibfWaZUaZVaZWbhfaZZaWPbaababbabbacbabbadaWPbaeaWUbafbagbagbagbagbagbahayFbaiayIbajayIazVayFayFayFbaiayIazVayLayLayFaahaahaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaQxaUvaUwaUCaaaaUzbakbakbalbambanbaobapbambaqbakbaraUzaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaHDaHDbauaHDaTqaHDbawaHDaYEaYFbaxbayaHDbawaHDbhPbaAbaBbaCalWalWalWalWagAagAagAalWalWalWaVZbkHbaJbaJbaJbaJbaKaNUbaLbaMbaNbaOaUXaUXaUXaUXaIBalWalWbaQalWalWbaRbaSbaTbaUbaVbaWbaXbaUbaVbaYbaZbaWbbabaUbaUbaUbbbbbcbbdbbebbfbbgbbhbbibaUbaUbaUbaUbbjbbkbaUbaUbaXbblbbmbaUbaUbaUbaUbbnbbobbpbbpbbpbcnbbpbbpbbpaocbbqaocaDIaocaocbbrbbrbbrbbrbbsbbtbbtbbubbvbbwaWPbbxbbyaIWbbAbbBbbCaWPbbDbbEbbFbagbbGbbHbbIbagbbJayFayFayFayFayFayFayFbbKayFayFayFayFayFbbLayFaahaQxaQxaafaQxaQxaQxaQxaafaQxaQxaQxaQxaafaQxaQxaQxaQxaQxaQxaQxaQxaTiaUwaUCaaaaUzbakbanbbMbbNbbObbPbbQbbNbbRbanbaraUzaaaaVRaUwaUCbbSbbSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaHDaahaaaaahaaaaHDbbUaHDbbVbbVbbWbbXaHDbbUaHDaHDaTqbbZbcabcbasuasvbccasvbcdasvbcebcfaswbeqbchaJEaJEaJFaKYaKebcmbkIbcobcpbcqbcobcrbcsblvbctbcubcvbcwbcxbcybczbcAbcBbcCbcCbcDbcEbcFbcGbcHbcIbcJbcKbcKbcKbcKbcKbcKbcKbcLbcMbcNbcNbcNbcNbcNbcNbcNbcNbcObcPbcQbcRbcNbcSbcObcNbcNbmTbcUbcVbbpbcWbcXbcYbcZbdabbpbdbbdcaocbddaocaaabbrbdebdfbbrbjzbdhbdibdjbdkbmIaWPbdmbdnbdobdpbdqbdraWPbdsbdtbdubagbdvbdwbdxbagbdyaKRaKRbdzaKRbdAaKRaKRaKRbdBaKRbdCbdDbdCbdDabjabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaaaaRJbdEaUwaUCaaaaUzbakbdFbdGbakbdHaKZbdJbakbdKbdLbaraUzaaaaVRaUwbdMaaabbSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaaaaHDbawaHDaHDaHDaHDaHDaHDbawaHDaaaaTqbdQbdRbdSbdSbdSbdSbdSbdSbdSbdSbdTbmMbcobcoaLoaMraLobcobcobcobdYbcobdZbeabebbecbedbeebefbegbehbeibejbcybekbcAbelbembembenbembeobembgbbeRbgbaMGaMGaMGaMGaMGaMGaMGaMGaMGaMGaMGaMGaMGaMGaMGaMGaMGbeubeubevbeubeubeubeubeubeubewbcAbexbbpbnjbezbeAbeBbeCbbpbeDbeEaocaDIajVaaaaOfbeGbeHbeIbeJbeKbeLbeMbeNbncaWPbePaOhaOFaOFaOXaOWaWPbeUbeVbeUbagbeWbeXbeYbagaOYayFayFayFayFayFayFayFayFayFawBayFayFbahayFaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaQxbfbbfcbfdbfeaUzaUzaUzbakbffbfgbfhbakbakbakbfibfjbfkbaraUzaUzaUzbflaToaTpaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawaOZaPeaOZaavaOZaOZaavaOZaPeaPfaaxaTqbdQbfsbftbfubfvbfwbfxbfybfzbdSbfAbfBbfCbfDbnsbfEbnsbfEbfGbfEbfHbcobfIbfJbfKbfLbfMaPgbfObfPbfQbfRbfSaPobfUbfVbotbembfXbfYbfZbgabembhobgcbhraahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahbeubgdbgebgfbggbghbgibnVbeubgkbglbgmbbpbgnbgobgpboqbgrbbpaocaocaocbgsaocaaabbrbgtbgubbrbgvbgwbgxbgybgzbgAaWPbgBaPAbgDbgEbgFbgGaWPaCAbgHaCAbagbgIbgJbgKbagbgLbgLbgLaaKaaEaaaaaaaaaaaaaahaaaaaaayFbdDayFaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaRIaRIbgMbgNaUwbgObgPaaaaaaaUzbgQbgRbgSbakbakbgTbakbakbdKbgUbgVaUzaaaaaabgWaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawaOZaOZaPPboGasJaPQaQuaPUaQyaQvaQzasJaQSaQBaHDbdQbdRaQTbhibhjbhkbhlbhmbhnbhMbhpbhqbhNbhsbhsbhtbhubhvbcobcobcobcobhwbhxbhybhzbhAaLobhCbegbehbhDbhEbhFbhGbcAbhHbembhIbhJbhKbhLbhObiQbiqbjAaahaahaQYaRcaRbaRdbhUaRfaRcaRdbhUaRfaRbaRbaRgaahaahbeubhZaRhbibbicbibbidbiebeubifbcAbigboHbbpaRjbiiaRqbbpbbpbikbilaocbinaocbimbbrbbrbbrbbraYiaYiaYibiobipaYiaWPaWPaWPaWPaWPboOboNaWPbisbitbisbagaRzbivaRAbagbiyaRHaREaOZaOZaaxaaaaaaaaaaahaaaaaaaaaabjaaaaahaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaahaahabjbiCbiDbiEbiDbiFaUCaaaaaaaaaaUzbiGbanbiHbiIbiJbiKaRKbiIbiMbanbaraUzaaaaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoAaRRaRRaaDasJaSgaRXaSgaRXaSgaRXaSgasJaSWaSiaHDbdQbiUbdSaTgbiWbiXaTrbiZaTsbdSbjbbjcbjdaTtbjfbjgbjhbjibjjbjkbjlbjmbjnbjobjpbjqbjrbjsbjtbjubjvboPbjxbjybfUbcAbhHbemaTxbjBbjCbjDbemblnbjFbhraahaahaTAaUJaUtaVhaUQaWmaVFaWsaWqaXmaWVaYSaXaaahaahbeubjTbjUbjVbjWbjXbjYbjZbeubewbkabkbbkcbkdbkebkdbkfbkgbkhbkdbkdbkdbkibkdbkjbkkbklbkmbkdbkdbknbkjbkfbkibkobkpbknbkqbkrbksaXqaXnaXrbkwbkxbkybkzbkAbkBbkCaXAbkEbkEaXBadFadEaavaaaaaaaaaaahaaaaaaaaaabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahabjbiCbiDbkJbiDbkKaUCaaaaaaaaaaUzbkLbkMbalbkNbkObkPbkQbkRbkSbakbaraUzaUzaUzaUzbkTaTpaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavasJasJaPeasJaSgaRXaSgaXCaSgaRXaSgasJaSWaSiaHDbkWbkXboQbkYbkZaXZaXYaXZbftbftblcbldbdYbcobleblfblgblhblibljaYmbcobllblmblibhzblxbcobloblpblqblrblsaPobhGbcAbhHbembltbluboRblwbembmnblybhrbhUaYDbhUaZYaZXbatbasbatbavbatbasbatbaDbbzbhUaYDbhUbeublHblHblHblIblJblLblKbeublMblNblOblPblQblRblQblSblQblTblQblQblQblUblQblVblWblXblYblQblQblZbmabmbblUbmcblUbmdbmebmfbksbmgbmhbmhbmibmjbmhbmhbmkbmlbmmbaEbkEbkEbaFaOZaOZbaIaaaaaaaaaaahaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahbmqaaaaaaaaaaahbgPbgPbgMbmraUwaUCaaaaaaaaaaUzaUzbiGbakbakbakbmsbakbakbakbakbmtaYBbmuaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoAaupaupaaDasJaSgaRXaSgaRXaSgaRXaSgasJaSWaSiaHDbmwbmxbmybmzbmAbmBbmBbmCbmDbmzbmEbmFbmGbcobaPboWbmJbmKbmLbphbmNbcobmObmPbmQbmRbmSbcoboYbmUbmVbmWbmXbcybmYbglbmZbnabnabnabnabnabgbbppbpibgbbhUbqTbqObcibasbasbasbasbcjbasbasbasbasbclbckbeSbhUbnmbnnbnobnpbnqbnrbnrbntbeubnubnvbnwbnxbnybnzbnybnAbnybnBbnybnybnCbnybnybnDbnEbnybnFbnCbnGbnHbnDbnAbnybnIbnJbnKbnLbnMbdIbnObnPbnQbnRbmmbnSbnSbnTbnUbpgbplbksbksbksaaKbnWaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaabnXbnYbnZboabobbocbodboeaUwaUzaUzaUzaUzaUzbofbogbofbofbohboibohbojbojbokbolbomaUAaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdNaOZaOZaPPbdOasJbdPasJbdUbdVasJbdWasJaQSbdXaHDbdQboubovbowboxboybozboAboBbowboCboDboEbcoberaLobqLbesbcobcobcobcobcoaLoboJbetbcobcoaPoboLboMaPoaPobtHbaRbcAbtbbnabeybeQbeFbnaboVboXbnbbndbnebwbbvybfmbfabfobfnbfqbfpbfnbfnbfrbfabfNbfFbhhbhUbeublHblHblHbtdblHblHblHbeubpmbcAbpnbpobfTbpqbfTbpobpjbpjbpjbpjbpjbpjaocaocbpsaocaocaocbptbpuaocaocaocbpvaocbpwbpxbpybpzbpAbpBbpCbpDbnSbgCbgXbpGbnUbpHbgLbksbgZbgYbhabpKbpLbpLbpMbpNaahaaaaaaaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaahaaabnXbpObpPaaaaahbpQbpRbpSbpTbpUbpVbofbpWbpXbpYbpZbqabqbbofbqcbqdbqebqfbqgbqhbqhbqiaUAaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdNaOZbhbaOZaavaOZaOZaavaOZaPebhcbaIaTqbqkbqlbqmbcybqnbqobqpbqobqqbcybqrbqsbqtbqubqvbqwbqxbqybqzbqwbqAbqBbqwbqvbqvbqCbqvbqDbqEbqFbqGbqHbqvbqIbqJbqKbhHbhebhdbhgbwybnabhrbhrbhrbhrbhUbwBbhBbhRbhQbhTbhSbasbhVbhXbhWbhYbhQbihbiabiPbiObeubrebrfbrgbrhbriblHbrjbeubrkbcAbrlbijbrnbrobrpbpobpkbqMbprbqQbqNbqSbtebrxbryaocbrzbrAbrBbrCbrDaocatEbrEaocbrFbrGbrHaXAbrJbrJbrJbrKbrLbnSbnSbrMbrNbrObrPbrQbrRbirbiubrTbrUbrUbrVbrWbrXbrXbrXbrYbrXbrXbrXbrXbrXbrXbrYbrXbrXbrXbrXbrXbrXbrYbrXbrZbsabrUbrUbrUbsbbscbsdbsebsebsfbsgbshbsibsjbskbslbsmbsnbsobspbsqbsrbssbstbsubsvbswaYyaYybsxaTpaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaaaaHDbawaHDaHDaHDaHDaHDaHDbawaHDaaaaTqbsAbsBbsCbcybsDbsEbsFbsEbsGbcybsHbsIbsJbsKbwDbsMbsNbsKbsKbsObsPbsQbsRbsKbsKbsSbsKbsKbsKbsTbsUbsVbsVbsWbsXbsYbsZbnabiwbizbixbnabiAbiLbiBbiNbthbhYbiSbhTbiTbiYbiVbqVbjabqVbjebjNbjMbjPbjObjRbjQbeubtubtvbtwbtxbtybeubeubeubewbtzbtAbpobtBbtCbtDbpobqUbqXbqWbrrbrqbrtbtKbtLbtMbtNbtObtPbtQbtRbtSbtTbtUbtVaocbpwbtWbtXbksbtYbtZbjGbjEbucbudbvebufbugbnUbuhbuibujbjHbjIaTpaaaaaabulbpPaahaaaaaaaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaahaaabumbunbpNaaaaahaVRbuobupbuqburbjJbutbuubuvbuwbuxbuybjKbuAbuBbuCbjLbuEbuFbqhbuGbuHaUAaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaHDaahaaaaahaaaaHDbuIaHDbuJbuKbbVbuLaHDbuIaHDaHDaTqbdQbuMbuNbcybuObsEbuPbsEbuQbcybuRbuSbuTbuUbuVbuWbuXbuYbuZbvabvbbvcbuVbuVbuVbvdbuVbvtbvfbuXbvgbuVbuVbvhbvibvjbsZbnabvkbvlbwYbvnbvmbvobvmbvmbthbkGbkFbvrbvrbvrbvRbxgbvubvvbxlbvrbvrbvrblFblGbhUbeubvzbvAbvBbvCbvDbeubrubtkbvGbvHbtAbfTbvIbvJbvKbpobtEbtGbtFbxjbpjbpjaocaocbvPaocaocaocbvQbxmaocaocbvSbvTaocbvUbtWbvVbksbgLbgLbgLbgLbtIbgLbgLbvXbvYbvZbksbksbwabjSbktbwcaaabnXbwdaaaaahaaaaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaabumbunbpNaahbwebwfbwgbwhbwibkubofbkvbwlbwmbwnbwobwpbofbwqbwrbwsbojbwtbwubqhbqiaUAaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaHDaHDbauaHDaTqaHDbawaHDbwvaXcbwwbwxaHDbawaHDbxkbwzbwAbqlbqmbcybxxbuebqpbuebynbcybwEbwFbwGbcybwHbwIbwJbcyalWbwKalWbwLbwLbkDbwNbwObkDbwLbwLbwLbwLbwLbwLbxnbwPbwQbwRbwSbwTbwUbwVbwWbwVbwXbzybwZbmobnkbnfbxdbxebxdbxdbxfbnlbxhbvrbvrbxibvrbonboobeubxpbxobxwbxvbyMbyLbeubvEbgbbxraXQbxsbpobpobpobpobpobvFbvLbpjbpjbpjbvNbvMbpjbvWbxqbwCaocavVbxAaocbxBbxCbxDbxEbxFbxGbxHbxIbxJbxKbxLbxJbxMbxNbgLbxObxPbxQbxRbkUbxTbkVblabxVbpLbxWbxXaahaahaahaahaahaaaaahaaaaahaaaaahaaaaahaaaaaaaaaaaaaaaaaaaahbmqaaabumbxYboabxZbyabodbmraUwaUzbybbycbydbyebyfbygbofbofbyhbyibyjbojbojbykbylbymaUAaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaHDbzMaXcaXebyobypaXcaXcbyqbyraYIbysbytbytbytbyubyvbywbyxbyybyzbyAbyBbyCbyDbyEbyzbyFbyGbyHbyIbyIbyJbyIbyIaowbyKbzhbwLbzjblbbyObyPbyQbwLbzmbySbwLbzmbySbwLbwPbcAbhHbnablkblAblzbnablBblDblCblEbthboFbopbvrbznboKboIbasbasboobzqbpfboZbvrbrdbrsbeubzubzrbmpbzpbmvbzxbzsbxtbgbbewaXQbexbpjbxubxybAZbyRbxzbyZbyYbpjbzgbzvbztbEvbzwbzAbzzaocaocaocaocaocaocbzIaocbzJbzKbzLbzBbzCbzCbzCbzCbzCbzBbzBbzCbzEbzDbzGbzFbzNbzHbzQbzPbzBbzBbzBaahaaaaaaaaaaahaaaaahaaaaahaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaQxbfbaUwaUCbzXaUzbzYbzZbmHbAbbAcbAdbAebAfbAgbAhbAibAjaYyaYybAkaUzaUzbkTaTpaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaHDaYEaYFaYFbAlaYFbAmbAnbAobAobApbAobAqbArbAsbAtbAubAvbAwbAxbmzbAybAzbAAbABbACbADbAEbAFbAGbAHbAIbAJbAKbyIbALbAMaosbwLbANbAObyObyPbyQbwLbAPbAQbwLbAPbAQbwLbARbcAbhHbnabnabngbnabnabnabnibnhbBabnabtmbsLbttbasbqVbqVbnNbvObxabBdbBcbBebzdbzcbzfbzebBibBgborbBmbosbBpbeubzRbgbbBoaXQbexbpjbzSbzTbxzbzUbxzbzVbxzbzWbDjbzzbAabAXbAWbBnbAYbBAbBBbBCbBDbBEbNDbBFaocbBGbtWbBHbzBbBrbBqbBtbBsbBubzBbBwbBvbBybBxbBIbBzbBKbBJbBMbBLbBObBNbzBaahaahaahaahaahaahaahaaaaafaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRbCbaUCaaaaUzbCcbCdbCebAbbCfbCgbChbCibCjbCkbClbAbaUzaaaaaaaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaHDaHDaTqaHDbauaHDaTqaHDaHDaHDaTqaHDaTqaTqaTqbkWbkXalWbCoalWalWbCpbCqbCpbCrbCpbCpbCpbCpbyIbyIbCsbCtbyIbyIbyIbCualObwLbCvbCwbyObCxbwLbwLbCybwLbwLbCzbwLbwLbCAbcAbhHbCBbCCbCDbCEbCFbCGbCDbCDbCHbCIboobCQbxdbCUbCVbzibCMbCWbCObCPbCYbCXbvrbDabzObeubDgbDfbEmbDtbECbEBbeubBPbgbbewaXQbexbpjbBQbBTbBSbBTbBUbBWbBVbBXbDjbzzbBYbCNbzzbDjbCZbDlbDmbDnbDobDpbNDbvTaocbDqbDrbDsbBIbDcbDbbDebDdbDhbzBbDkbDibDwbDvbBIbDxbDycgpbDAbDzbDCbDBbzBaahboOboOboOboOboOaahaaabCaaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRbCbaUCaaaaUzbDLbDMbDNbAbbDObDPbDQbDRbDSbDTbDUbAbaUzaaaaaaaRIbgNaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaHDbDYbdQbDZalWbyKavibEabCpbEbbEcbEdbEebEfbEgbCpbEhbEhbEibEjbEkbElbyIbCubGdbwLbEnbEobyObyPbEpboSbCwbErbEsbEtbEubkDbwPbcAbhHbGrboTbEwboUboUboUboUboUbEAbGHbHRbHzbhUbhUbhUbpabpcbpbbpebpdbhUbhUbhUbIabHRbJrbeubzebeubeubeubevbeubDEbgbbEKbELbexbDGbDFbDFbDFbDHbDFbDIbDFbDJbDjbDjbDKbDjbDjbzzbEqbETbEUbEVbEWbphbNDbzIaocbEYbDrbEZbEvbExcgpbEEbEDbEIbEGbENbEJbEPbEObBIbEQbESbERbFcbFbbFebFdbFgbFsbppbFubFvbFvboOaahaaabCaaaabBZaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRbCbaUCaaaaUzaUzaUzaUzbAbbFibFhbFybCjbFzbFjbFkbAbaUzaaaaVRbFCaTkbFDaTpaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpEaHDaHDbdQbFGalWbFHbFIbpFbCpbFKbEcbEdbFLbFMbFNbCpbFObFPbFQbFRbyIbyIbyIbCuapTbwLbFSbFTbyObyPbyObyObyObyObyObFUbyObwNbFVbFWbFXbFYbFZbGabFZbGbbFZbGabFZbGcbMabGebGfbGgbGhbGibGjbGjbGkbGlbGjbGmbGnbGobGpbGqbNvbGibGsbGtbGibGubGvbGibGwbGxbGybGzbtAbFlbxzbFmbxzbFnbxzbFobxzbFpbDjbDjbFqbDjbDjbFxbFwbETbGIbBBbEWbGJbNDbzIaocbGKbGLbvVbBIbFAcgpbFBcgpbGBbGAbGDbGCbGFbGEbBIbGGbGNbGMbGPbGObGRbGQbBIaahbotbHebFvbHfboOaahaaabCaaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRbCbaUCaaaaaaaaaaaabHgbHhbHibHibpIbHkbpIbHibHibHlbmuaUzaUzbkTbHmbHnaaaaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpJbHobHpbHobdQbHqalWbHrbHsakBbCpbHtbEcbEdbHubEcbqjbCpbyIbHwbyIbEjbHxbHybyIbCuapRbwLbNAbEobHAbHBbHCbHCbHCbHCbHCbHDbHCbHEbvibHFbHGbHHbHIbHJbHIbHKbHLbHMbHNbHObHPbHQbOmbHSbHTbHSbHUbHUbHVbHWbHUbHXbHYbHZbOUbIbbIcbIdbIebIfbIgbIhbIibIbbIjbIkbIlbImbInbGTbGSbGWbGVbGVbGXbGYbGSbHabGZbIobHbbzzbIpbzzbIqbIAbIBbICbIDbIEbIrbIGaocbIHbIIbIJbIsbIubItbIwbIvbIybBIbIKbIFbIMbILbIObINbERbIPbISbIRbIUbITbIVbJdbqObJfbFvbJgboOaahaaabCaaaabBZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRbCbbJhaRIaRIaaaaaaaUAbJibJjbJkbpIbJmbpIbJnbJobJpaUAaaaaVRaUwaUCbbSaQxaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHDaHDaHDbdQbJsalWbJtalWalWbCpbJubJvbJwbEcbEcbEcbCpbJxbJybyIbJzbyIbyIbyIbJAbJBbJCbCwbCwbFUbJDbJEbCwbCwbCwbCwbJFbJGbkDbwPbJHbJIbJJbJJbJKbJLbJMbJJbJJbJNbJNbJObJPbJNbqPbCIbJRbJSbJTbJUbJVbJSbJWbCIbqPbJXbJYbJZbKabJXbJXbKbbKcbKdbJXbIWbgbbKfbKgbKhbIYbIXbIZbIXbJbbJabxzbxzbDJbDKbDjbJqbKjbKebKjbIobKqbKrbKsbKtbqRbNDbKvaocbKwbKxbKybzQbKlbKkbKnbKmbzQbzPbKpbKobDzbDybBIbKzbKBbKAbKBbKAbKDbKCbBIaahboOboOboOboOboOaahaaabCaaaabBZaaabCaaagaafaahaafaagaagaafaafaagaagaagaQxaQxaQxaQxbfbbKMaTkaTkbKNbodbodaUAbKObKPbKQbpIbHkbpIbKQbKPbKSaUAaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaHDbKTbdQbKUalWbCuapTbKVbCpbqYbEdbKXbqZbqjbEcbCpbKZbLabyIbFObLbbLcbyIbCuaotbwLbLdbLdbFUbyPbLebLebLfbrbbrabrcbwLbwLbFVbLjbLkbJJbLlbLmbLnbLobLpbLqbLrbLsbLtbLubJNaahboTbLwbJSbJSbLxbJSbJSbLybrmaahbJXbLAbLBbLCbLDbJXbJXbJXbJXbJXbKEbgbbKfbLFbLGbpjbLEbLHbDFbLJbLIbDFbLKbpjbDKbLLbDjbDjbDjbDjbDjbrvbLNbLObLPbrIbNDbLRatHbLSbLTbLUbzGbLVbLMbLXbLWbLZbLYbMcbMbbMebMdbMdbMfbMhbMgbFcbMibMkbMjbFgbFsbppbMmbMnbMnboOaahaahbMoaahbMpaahbCaaaaaaaaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaQxaaabMqaUyaUBaUwaUCaaaaUAbMrbKPbKPbKPbMsbKPbKPbKPbMtaUAaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaHDaHDaTqaHDbauaHDaTqaHDaHDaHDaTqaHDaTqaTqaTqbMvbMwbMxbMybMzbMAbCpbMBbMCbKXbrSbMEbMFbCpbyIbyIbyIbyIbyIbyIbyIbCuaosbwLbMGbMHbFUbyPbCwbCwbMIbCwbMJbsybwLbMLbwPbcAbMMbJJbMNbMObMPbMQbMRbLqbMSbMTbMUbMVbszaahboTbMYbMZbNabNbbMZbNabNcbrmaahbtabNfbNgbNhbVxbtcbNkbNlbNmbJXbMDbgbbNobNpbNqbNrbNrbNrbNsbNtbVybNubWcbNrbNwbNrbNnbNybNxbNIbNzbNDbNDbNEbNDbNDbNDbKvbNFbNGbNHbNFbzBbzBbzBbzBbzBbNJbzGbNLbNKbNMcgpbNObNNbNQbNPbESbNRbORbNSbBIaahbotbNTbNUbNVboOaahaaabCaaaabBZaaabNWaQxaQxaQxaQxaafaQxaQxaQxaQxaafaQxaahaafaQxaQxaQxaQxaQxaVRaUwaUCaaaaUAbNXbNYbNZbKPbOabKPbObbOcbOdaUAaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaHDbOebwzaXebOTaXeaXcaXcbOfaXcbwzaXcbOgbwzaXcbwAbOhalWbOialOapUbCpbOjbOkbEcbEcbEcbOlbCpbYfbYObYjbOnbOobOpalWbCuarhbwLbOqbOrbFUbOsbOtbOtbOubCwbCwbOvbwLbOwbwPbcAbLkbJJbOxbOybOzbOAbOBbLqbOCbODbOEbOFbJNbtfbOHbtfbOHbOHbOIbOHbOHbtfbOHbtfbJXbOJbOKbOLbOMbtgbOObOPbOQbJXbOXbgbbOSaXQbLGbNrbticaIbOVbOWcaTbOYbOYbOZbPabNrbNrbNrbNrbNrbNrbNrbNDbPbbPcbtjbNDbPebNFbPfbPgbPhbNFbPibPjauVbrwbzBbPkbPmbPlbPobPnbPrbPqbPtbPsbPubNRbPSbPvbIVbJdbqObPwbMnbPxboOaahaaabCaaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbSbfbbPyaYyaYybPzbmubPAbPBbKPbPCbKPbPDbPEbHgbPzaYyaYybPFaTpaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaHDaYEaYFaYFaYFaYFaYFbPGbPHbPIbAobAobPJbPKbPLbPMbPNalWbdTardapUbCpbEebPObEcbEcbPObPPbCpbPQaovaoxbPRbMAbOoalWbCucaUbwLbPTbPUbPVbPWbCwbPXbtlbPZbQabQbbwLbQcbwPbcAbQdbJJbQebQfbQgbQhbLqbLqbQibQjbQkbQlbJNbQmbQnbQobQpbQqbQrbQsbQtbQubQvbQwbJXbtnbOKbQybQzbJXbQAbQBbQCbJXbQDbgbbQEaXQbQFbtobQHbQIbQJbQKbQLbOVbOVbQMbQNbNrbQObQPbQQbQPbQRbNrbtpbQTbQUbQVbNDbKvbNFbQWbQXbQYbNFasfapxapxbQZbzBbPkbRbbRabzCbzCbzCbRccgpbRdcgpbNRbRebNSbBIaahboOboOboOboOboOaahaaaaafaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRaUwaUCaaaaaaaUAbRfbKPbKPbRgbRhbRibRjaUAaaaaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaHDaHDbRkbRkaHDaHDaHDaTqaHDaTqaHDaTqaTqalWbRmalWalWalWbdTarhapUbCpbPPbRnbRobEcbRobtqbCpbRqapRaotapTbRranfalWbCualObwLbwLbkDbRtbRubkDbwLbwLbwLbwLbRvbwLbwLbRwbglbRxbJJbRybRzbRAbRBbRCbLqbRDbREbRFbtrbJNbRHbRIbRJbRKbRLbRJbRMbRJbRNbRObRPbJXbtsbOKbRRbRSbtJbRUbRVbRWbJXbRlbgbbRYaXQbLGbubbuabusbukbSdbSebSabusbQMbSfbNrbSgbShbSibSjbQRbNrbSkbSlbSmbSnbRpbSpbNFbSqbSrbSsbNFbStbSubSvbSwbzBbRsbRTbRQbRXbzCbSobPscgpbPqbSybSxbSzbMjbFgbFsbppbSFbSGbSHboOaahaaabCaaaabBZaaabCaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRaUwaUCaaaaaaaUAbSIbSJbSKbSLbSMbSNbSIaUAaaaaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaHDbSAbbUaHDaaaaahbSBbSBbSBaahaaaaaaalWbSObSPbuzbSRbSSbSRbSTbCpbCpbCpbCpbSCbCpbCpbCpbSVardalOaotbSWbSXalWbSYbSZbwLbTabTbbTcbTdbTebTfbTgbwLbThbTibTjbwLbwPbcAbTkbJJbMNbQfbTlbTmbMNbLqbTnbTobTpbTqbJNbuDbTsbTtbTubvpbTwbTxbTybTzbTAbTBbJXbTCbTDbTEbTFbTGbTHbTIbTJbTKbSDbgbbTMaXQbLGbubbTObTPbTPbTQbTRbTSbTTbTUbTVbNrbTWbShbTXbTYbTZbNrbvqbvwbvsbUdbNDbKvbNFbNFbNFbNFbNFbUeapxapxbUfbzBbRsbRTbRQbSUbSEbSobTLbESbPqbUgbNRbUhbNSbBIaahbotbUlbUmbUnboOaahaaabCaaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRaUwaUCaaaaaaaUAbUobHibUpbUqbUrbHibUsaUAaaaaaaaVRaUwaTpaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaHDbRkbRkaHDaahaahbUibUibUiaahaahaahalWbUtasvasvasvbAMapRapUalOankaviaosarbbUuarhalWalWalWalWalWbUvalWalWbCuapTbwLbUwbUxbUybUybTdbUzbUAbwLbUBbvxbUDbwLbARbcAbUEbJJbMNbUFbUGbUHbUIbLqbUJbUKbULbJNbJNbwbbvybUObwjbwMbwkbxcbxbbUUbxjbxkbJXbxSbUYbxUbVabtgbVcbVcbVdbJXbUjbgbbVfaXQbLGbNrbVgbVhbVibOVbVjbVkbQKbVlbVmbVnbVobVpbVqbVrbVsbNrbNDbNDbNDbNDbNDbVtaocbVubQZaqKapxbVvaqJbVwapxbzBbzBbUkbKobRXbzCbUQbUMcgpbURbSybNRbUSbPvbIVbJdbqObVDbSGbVEboOaahaaabCaaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxbfbbVFaUzaUzaUzbmtaYyaYyaYyaYBaYyaYyaYybAkaUzaUzaUzbkTaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahbUWaahaahaaaaaaaaaaahaaaaaaaahaaaalWalWalWalWbSXbVGasvbVHbVIbVJbVKbVKbVKbVLbVMbVKbVIbVKbVNbVKbVObVKaMDbVPaotbwLbVQbVRbVSbyNbEobVUbVVbwLbwLbwLbwLbwLbVWbcAbLkcbLbJJbVXbVXbVXbJJbJJbJNbJNbVYbJNbJNbyTbyTbWbbyTbyTbyTbyTbyTbWdbyTbyTbJXbJXbJXbJXbJXbJXbWebWebWebJXbVebgbbWgaXQbWhbepbWibWibWibWjbWibWibWkbWlbWibWibWibWibNrbWmbWnbWobWpbWqbWrapxbWsbWtaocbSvbWubWvapxbVvapxapxaoabzBbVzbGDbVAbzCbzCbzCbVBcgpbVCbWfbNRbRebNSbBIaahboOboOboOboOboOaahaahbNWaahbMpaahaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRaUwaUCaaaaaaaaaaaaaaaaaabWBaaaaaaaaaaaaaaaaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaabWCbWCbWDbWEbWFalWbWGalWalWalWaUObWHbWHbWHbWHbWHbWHbWHaotbWIbWJcbZbwLbWLbWMbyUbWObEobTdbWPbWQbWRavialWbWSbwPbWTbWUbWVbWWbWXbWXbWXbWYbWZbXabXbbWXbXcbXdbWVbWVbXebXfbXfbXfbXgbXfbXhbXibXibXjbXkbXlbXmbXnbXobWXbWXbWXbXpbXqbXibXraXQbXsbXtbyVbXvbXwbXxbyWbyXbXAbXxbXBbXCbXDbXEbNrbXFbXGbWwbXIbXJbXKbXLbWtbXMaocaocaocaocaocbXNbXObzBbzBbzBbWxbGDbKobWzbWybWAbGGbXzbWKbXHbSxbXPbMjbFgbFsbppbXXbXYbXYboOaahaaabCaaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRaUwbJhaRIaRIaRIaRIaRIaRIbWBaRIaRIaRIaRIaRIaRIbgNaUwaTpaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaaabWFbXZbYabYbbWFaotbYcbMAcesalWbYebWHceGbYgbYhbYiceIbWHaotalObWJalObwLbwLbwLbwLbwLbwLbwLbwLbwLatRalOalWbYkbwPbYlbYmbaUbaUbaUbaUbaUbaUbaXbaUbYnbYobYpbaWbaUbaUbYqbYrbYsbYtbYubYvbYwbYxbaUbaUbYybYzbaUbaUbaXbaUbaUbaUbaUbYAbaUbYnbYBbYCbYDbYEbYFbYGbYFbYHbYHbYIbYJbYKbYHbYGbYLbNrbNrbNrbNrbYMbYNapwaoaceWbYPapwbYPbYQbYRaocauWaocbzBbXQbXUbXTbXWbXVbYdbYdbYdbINcgpcgpcgpbNRbYSbNSbBIaahbotbYZbZabZbboOaahaaabCaaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRbZcaTkaTkaTkaTkaTkaTkaTkbZdaTkaTkaTkaTkaTkaTkaTkbZeaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaabWFbZfbZgbZhbWFaotbZibZjalWalWbZkbWHbZlbZmbZnbZobZpbWHawqaotbZqbVKbVIbVKbVNbVKbZrbZsbZsbZsbZsbZtaZebZubZvbZwbZxbZybZzbZAbZBbZybZybZybZCbZybZDaZCbZEbZFaZCaZCbZGbZHbZIbZJbZKbZLbZMbZNaZCbZObZPbZQbZQbZRbZSbZRbZRbZRbZTbZUbZVbZWbZXbZYbZZcaacabcaccadcaecafcagcahcaicajcagcakbWicalcambWicanbYNapwapwapwapwapwcaocapcaqcarcascatbYUbYTbYWbYVbYYbYXcgpcgpcgpcgpcgpbEScgpbNRcaubPvbIVbJdbqOcaCbXYcaDboOaahaaabCaaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaaaaUyaUyaUyaUyaUyaUyaUyaUycaEaUyaUyaUyaUyaUyaUyaUyaUyaaaaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahbWFcaFcaGcaHbWFcgvaotcaJalWcaKcaLbWHcaMcaNcaOcaPcaQbWHbWHbWHbWHbWHbWHcaRbWHbWHcaSchcchdalOardapRarhcklcklcklcklcklcklcklcchcchcchcchcchcaVcaWcaWcaXcaYcaWcaZcaWcbacbbaXQcbcchzcbecbfcbecbgcbhcbecbecbibepaXFaXHaXHcbjbepcbkbepbzacbmbzabWibzkbzbcahcbpcbqcagcahcbrcbscbtbzlbWichAcbwbWicbxcbycbzcaqcaqcaqcaqcbAcbBcbCcbDcbCcbEbzGcavcaxcawcgpcaybMdbMdbMdbMdbMdcazcgpbNRbRecaAbzBaahboOboOboOboOboOaahaaabCaaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbSaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaHDaHDaTqaHDbauaHDaTqaHDaHDaHDaTqaHDaTqaTqaTqbkWbkXalWbCoalWalWbCpbCqbCpbCrbCpbCpbCpbCpbyIbyIbCsbCtbyIbyIbyIbCualObwLbCvbCwbyObCxbwLbwLbCybwLbwLbCzbwLbwLbCAbcAbhHbCBbCCbCDbCEbCFbCGbCDbCDbCHbCIboobCQbxdbCUbCVbzibCMbCWbCObCPbCYbCXbvrbDabzObeubDgbDfbEmbDtbECbEBbeubBPbgbbewaXQbexbpjbBQbBTbBSbBTbBUbBWbBVbBXbDjbzzbBYbCNbzzbDjbCZbDlbDmbDnbDobDpbNDbvTaocbDqbDrbDsbFubDcbDbbDebDdbDhbzBbDkbDibDwbDvbBIbDxbDycgpbDAbDzbDCbDBbzBaahbFvbFvbFvbFvbFvaahaaabCaaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRbCbaUCaaaaUzbDLbDMbDNbAbbDObDPbDQbDRbDSbDTbDUbAbaUzaaaaaaaRIbgNaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaHDbDYbdQbDZalWbyKavibEabCpbEbbEcbEdbEebEfbEgbCpbEhbEhbEibEjbEkbElbyIbCubGdbwLbEnbEobyObyPbEpboSbCwbErbEsbEtbEubkDbwPbcAbhHbGrboTbEwboUboUboUboUboUbEAbFwbHRbHzbhUbhUbhUbpabpcbpbbpebpdbhUbhUbhUbIabHRbGHbeubzebeubeubeubevbeubDEbgbbEKbELbexbDGbDFbDFbDFbDHbDFbDIbDFbDJbDjbDjbDKbDjbDjbzzbEqbETbEUbEVbEWbHebNDbzIaocbEYbDrbEZbHfbExcgpbEEbEDbEIbEGbENbEJbEPbEObBIbEQbESbERbFcbFbbFebFdbFgbFsbIzbIsbIQbIQbFvaahaaabCaaaabBZaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRbCbaUCaaaaUzaUzaUzaUzbAbbFibFhbFybCjbFzbFjbFkbAbaUzaaaaVRbFCaTkbFDaTpaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpEaHDaHDbdQbFGalWbFHbFIbpFbCpbFKbEcbEdbFLbFMbFNbCpbFObFPbFQbFRbyIbyIbyIbCuapTbwLbFSbFTbyObyPbyObyObyObyObyObFUbyObwNbFVbFWbFXbFYbFZbGabFZbGbbFZbGabFZbGcbMabGebGfbGgbGhbGibGjbGjbGkbGlbGjbGmbGnbGobGpbGqbNvbGibGsbGtbGibGubGvbGibGwbGxbGybGzbtAbFlbxzbFmbxzbFnbxzbFobxzbFpbDjbDjbFqbDjbDjbFxbJcbETbGIbBBbEWbGJbNDbzIaocbGKbGLbvVbFubFAcgpbFBcgpbGBbGAbGDbGCbGFbGEbBIbGGbGNbGMbGPbGObGRbGQbBIaahbBIbJfbIQbJgbFvaahaaabCaaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRbCbaUCaaaaaaaaaaaabHgbHhbHibHibpIbHkbpIbHibHibHlbmuaUzaUzbkTbHmbHnaaaaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpJbHobHpbHobdQbHqalWbHrbHsakBbCpbHtbEcbEdbHubEcbqjbCpbyIbHwbyIbEjbHxbHybyIbCuapRbwLbNAbEobHAbHBbHCbHCbHCbHCbHCbHDbHCbHEbvibHFbHGbHHbHIbHJbHIbHKbHLbHMbHNbHObHPbHQbOmbHSbHTbHSbHUbHUbHVbHWbHUbHXbHYbHZbOUbIbbIcbIdbIebIfbIgbIhbIibIbbIjbIkbIlbImbInbGTbGSbGWbGVbGVbGXbGYbGSbHabGZbIobHbbzzbIpbzzbIqbIAbIBbICbIDbIEbIrbIGaocbIHbIIbIJbJrbIubItbIwbIvbIybBIbIKbIFbIMbILbIObINbERbIPbISbIRbIUbITbIVbJdbLAbKGbIQbLIbFvaahaaabCaaaabBZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRbCbbJhaRIaRIaaaaaaaUAbJibJjbJkbpIbJmbpIbJnbJobJpaUAaaaaVRaUwaUCbbSaQxaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaHDaHDaHDbdQbJsalWbJtalWalWbCpbJubJvbJwbEcbEcbEcbCpbJxbJybyIbJzbyIbyIbyIbJAbJBbJCbCwbCwbFUbJDbJEbCwbCwbCwbCwbJFbJGbkDbwPbJHbJIbJJbJJbJKbJLbJMbJJbJJbJNbJNbJObJPbJNbqPbCIbJRbJSbJTbJUbJVbJSbJWbCIbqPbJXbJYbJZbKabJXbJXbKbbKcbKdbJXbIWbgbbKfbKgbKhbIYbIXbIZbIXbJbbJabxzbxzbDJbDKbDjbJqbKjbKebKjbIobKqbKrbKsbKtbqRbNDbKvaocbKwbKxbKybzQbKlbKkbKnbKmbzQbzPbKpbKobDzbDybBIbKzbKBbKAbKBbKAbKDbKCbBIaahbFvbFvbFvbFvbFvaahaaabCaaaabBZaaabCaaagaafaahaafaagaagaafaafaagaagaagaQxaQxaQxaQxbfbbKMaTkaTkbKNbodbodaUAbKObKPbKQbpIbHkbpIbKQbKPbKSaUAaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaHDbKTbdQbKUalWbCuapTbKVbCpbqYbEdbKXbqZbqjbEcbCpbKZbLabyIbFObLbbLcbyIbCuaotbwLbLdbLdbFUbyPbLebLebLfbrbbrabrcbwLbwLbFVbLjbLkbJJbLlbLmbLnbLobLpbLqbLrbLsbLtbLubJNaahboTbLwbJSbJSbLxbJSbJSbLybrmaahbJXbMmbLBbLCbLDbJXbJXbJXbJXbJXbKEbgbbKfbLFbLGbpjbLEbLHbDFbLJbMnbDFbLKbpjbDKbLLbDjbDjbDjbDjbDjbrvbLNbLObLPbrIbNDbLRatHbLSbLTbLUbzGbLVbLMbLXbLWbLZbLYbMcbMbbMebMdbMdbMfbMhbMgbFcbMibMkbMjbFgbFsbIzbNtbNxbNxbFvaahaahbMoaahbMpaahbCaaaaaaaaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaQxaaabMqaUyaUBaUwaUCaaaaUAbMrbKPbKPbKPbMsbKPbKPbKPbMtaUAaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaHDaHDaTqaHDbauaHDaTqaHDaHDaHDaTqaHDaTqaTqaTqbMvbMwbMxbMybMzbMAbCpbMBbMCbKXbrSbMEbMFbCpbyIbyIbyIbyIbyIbyIbyIbCuaosbwLbMGbMHbFUbyPbCwbCwbMIbCwbMJbsybwLbMLbwPbcAbMMbJJbMNbMObMPbMQbMRbLqbMSbMTbMUbMVbszaahboTbMYbMZbNabNbbMZbNabNcbrmaahbtabNfbNgbNhbVxbtcbNkbNlbNmbJXbMDbgbbNobNpbNqbNrbNrbNrbNsbNTbVybNubWcbNrbNwbNrbNnbNybNUbNIbNzbNDbNDbNEbNDbNDbNDbKvbNFbNGbNHbNFbzBbzBbzBbzBbzBbNJbzGbNLbNKbNMcgpbNObNNbNQbNPbESbNRbORbNSbBIaahbBIbNVbOJbOebFvaahaaabCaaaabBZaaabNWaQxaQxaQxaQxaafaQxaQxaQxaQxaafaQxaahaafaQxaQxaQxaQxaQxaVRaUwaUCaaaaUAbNXbNYbNZbKPbOabKPbObbOcbOdaUAaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaHDbPwbwzaXebOTaXeaXcaXcbOfaXcbwzaXcbOgbwzaXcbwAbOhalWbOialOapUbCpbOjbOkbEcbEcbEcbOlbCpbYfbYObYjbOnbOobOpalWbCuarhbwLbOqbOrbFUbOsbOtbOtbOubCwbCwbOvbwLbOwbwPbcAbLkbJJbOxbOybOzbOAbOBbLqbOCbODbOEbOFbJNbtfbOHbtfbOHbOHbOIbOHbOHbtfbOHbtfbJXbPxbOKbOLbOMbtgbOObOPbOQbJXbOXbgbbOSaXQbLGbNrbticaIbOVbOWcaTbOYbOYbOZbPabNrbNrbNrbNrbNrbNrbNrbNDbPbbPcbtjbNDbPebNFbPfbPgbPhbNFbPibPjauVbrwbzBbPkbPmbPlbPobPnbPrbPqbPtbPsbPubNRbPSbPvbIVbJdbLAbPNbNxbQubFvaahaaabCaaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbSbfbbPyaYyaYybPzbmubPAbPBbKPbPCbKPbPDbPEbHgbPzaYyaYybPFaTpaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaHDaYEaYFaYFaYFaYFaYFbPGbPHbPIbAobAobPJbPKbPLbPMbQxalWbdTardapUbCpbEebPObEcbEcbPObPPbCpbPQaovaoxbPRbMAbOoalWbCucaUbwLbPTbPUbPVbPWbCwbPXbtlbPZbQabQbbwLbQcbwPbcAbQdbJJbQebQfbQgbQhbLqbLqbQibQjbQkbQlbJNbQmbQnbQobQpbQqbQrbQsbQtbQzbQvbQwbJXbtnbOKbQybRZbJXbQAbQBbQCbJXbQDbgbbQEaXQbQFbtobQHbQIbQJbQKbQLbOVbOVbQMbQNbNrbQObQPbQQbQPbQRbNrbtpbQTbQUbQVbNDbKvbNFbQWbQXbQYbNFasfapxapxbQZbzBbPkbRbbRabzCbzCbzCbRccgpbRdcgpbNRbRebNSbBIaahbFvbFvbFvbFvbFvaahaaaaafaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRaUwaUCaaaaaaaUAbRfbKPbKPbRgbRhbRibRjaUAaaaaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaHDaHDbRkbRkaHDaHDaHDaTqaHDaTqaHDaTqaTqalWbRmalWalWalWbdTarhapUbCpbPPbRnbRobEcbRobtqbCpbRqapRaotapTbRranfalWbCualObwLbwLbkDbRtbRubkDbwLbwLbwLbwLbRvbwLbwLbRwbglbRxbJJbRybRzbRAbRBbRCbLqbRDbREbRFbtrbJNbRHbRIbRJbRKbRLbRJbRMbRJbRNbRObRPbJXbtsbOKbRRbRSbtJbRUbRVbRWbJXbRlbgbbRYaXQbLGbubbuabusbukbSdbSebSabusbQMbSfbNrbSgbShbSibSjbQRbNrbSkbSlbSmbSnbRpbSpbNFbSqbSrbSsbNFbStbSubSvbSwbzBbRsbRTbRQbRXbzCbSobPscgpbPqbSybSxbSzbMjbFgbFsbIzbSFbSHbSGbFvaahaaabCaaaabBZaaabCaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRaUwaUCaaaaaaaUAbSIbSJbSKbSLbSMbSNbSIaUAaaaaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaHDbSAbbUaHDaaaaahbSBbSBbSBaahaaaaaaalWbSObSPbuzbSRbSSbSRbSTbCpbCpbCpbCpbSCbCpbCpbCpbSVardalOaotbSWbSXalWbSYbSZbwLbTabTbbTcbTdbTebTfbTgbwLbThbTibTjbwLbwPbcAbTkbJJbMNbQfbTlbTmbMNbLqbTnbTobTpbTqbJNbuDbTsbTtbTubvpbTwbTxbTybTzbTAbTBbJXbTCbTDbTEbTFbTGbTHbTIbTJbTKbSDbgbbTMaXQbLGbubbTObTPbTPbTQbTRbTSbTTbTUbTVbNrbTWbShbTXbTYbTZbNrbvqbvwbvsbUdbNDbKvbNFbNFbNFbNFbNFbUeapxapxbUfbzBbRsbRTbRQbSUbSEbSobTLbESbPqbUgbNRbUhbNSbBIaahbBIbUlbUnbUmbFvaahaaabCaaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRaUwaUCaaaaaaaUAbUobHibUpbUqbUrbHibUsaUAaaaaaaaVRaUwaTpaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaHDbRkbRkaHDaahaahbUibUibUiaahaahaahalWbUtasvasvasvbAMapRapUalOankaviaosarbbUuarhalWalWalWalWalWbUvalWalWbCuapTbwLbUwbUxbUybUybTdbUzbUAbwLbUBbvxbUDbwLbARbcAbUEbJJbMNbUFbUGbUHbUIbLqbUJbUKbULbJNbJNbUXbUWbUObwjbwMbwkbxcbxbbUUbUYbUZbJXbxSbVDbxUbVabtgbVcbVcbVdbJXbUjbgbbVfaXQbLGbNrbVgbVhbVibOVbVjbVkbQKbVlbVmbVnbVobVpbVqbVrbVsbNrbNDbNDbNDbNDbNDbVtaocbVubQZaqKapxbVvaqJbVwapxbzBbzBbUkbKobRXbzCbUQbUMcgpbURbSybNRbUSbPvbIVbJdbLAbVEbSHbXXbFvaahaaabCaaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxbfbbVFaUzaUzaUzbmtaYyaYyaYyaYBaYyaYyaYybAkaUzaUzaUzbkTaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalWalWalWalWbSXbVGasvbVHbVIbVJbVKbVKbVKbVLbVMbVKbVIbVKbVNbVKbVObVKaMDbVPaotbwLbVQbVRbVSbyNbEobVUbVVbwLbwLbwLbwLbwLbVWbcAbLkcbLbJJbVXbVXbVXbJJbJJbJNbJNbVYbJNbJNbyTbyTbWbbyTbyTbyTbyTbyTbWdbyTbyTbJXbJXbJXbJXbJXbJXbWebWebWebJXbVebgbbWgaXQbWhbepbWibWibWibWjbWibWibWkbWlbWibWibWibWibNrbWmbWnbWobWpbWqbWrapxbWsbWtaocbSvbWubWvapxbVvapxapxaoabzBbVzbGDbVAbzCbzCbzCbVBcgpbVCbWfbNRbRebNSbBIaahbFvbFvbFvbFvbFvaahaahbNWaahbMpaahaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRaUwaUCaaaaaaaaaaaaaaaaaabWBaaaaaaaaaaaaaaaaaaaVRaUwaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaabWCbWCbWDbWEbWFalWbWGalWalWalWaUObWHbWHbWHbWHbWHbWHbWHaotbWIbWJcbZbwLbWLbWMbyUbWObEobTdbWPbWQbWRavialWbWSbwPbWTbWUbWVbWWbWXbWXbWXbWYbWZbXabXbbWXbXcbXdbWVbWVbXebXfbXfbXfbXgbXfbXhbXibXibXjbXkbXlbXmbXnbXobWXbWXbWXbXpbXqbXibXraXQbXsbXtbyVbXvbXwbXxbyWbyXbXAbXxbXBbXCbXDbXEbNrbXFbXGbWwbXIbXJbXKbXLbWtbXMaocaocaocaocaocbXNbXObzBbzBbzBbWxbGDbKobWzbWybWAbGGbXzbWKbXHbSxbXPbMjbFgbFsbIzbYZbZabZabFvaahaaabCaaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRaUwbJhaRIaRIaRIaRIaRIaRIbWBaRIaRIaRIaRIaRIaRIbgNaUwaTpaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaabWFbXZbYabYbbWFaotbYcbMAcesalWbYebWHceGbYgbYhbYiceIbWHaotalObWJalObwLbwLbwLbwLbwLbwLbwLbwLbwLatRalOalWbYkbwPbYlbYmbaUbaUbaUbaUbaUbaUbaXbaUbYnbYobYpbaWbaUbaUbYqbYrbYsbYtbYubYvbYwbYxbaUbaUbYybYzbaUbaUbaXbaUbaUbaUbaUbYAbaUbYnbYBbYCbYDbYEbYFbYGbYFbYHbYHbYIbYJbYKbYHbYGbYLbNrbNrbNrbNrbYMbYNapwaoaceWbYPapwbYPbYQbYRaocauWaocbzBbXQbXUbXTbXWbXVbYdbYdbYdbINcgpcgpcgpbNRbYSbNSbBIaahbBIbZbcaDcaCbFvaahaaabCaaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaVRbZcaTkaTkaTkaTkaTkaTkaTkbZdaTkaTkaTkaTkaTkaTkaTkbZeaUCaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahbWFbZfbZgbZhbWFaotbZibZjalWalWbZkbWHbZlbZmbZnbZobZpbWHawqaotbZqbVKbVIbVKbVNbVKbZrbZsbZsbZsbZsbZtaZebZubZvbZwbZxbZybZzbZAbZBbZybZybZybZCbZybZDaZCbZEbZFaZCaZCbZGbZHbZIbZJbZKbZLbZMbZNaZCbZObZPbZQbZQbZRbZSbZRbZRbZRbZTbZUbZVbZWbZXbZYbZZcaacabcaccadcaecafcagcahcaicajcagcakbWicalcambWicanbYNapwapwapwapwapwcaocapcaqcarcascatbYUbYTbYWbYVbYYbYXcgpcgpcgpcgpcgpbEScgpbNRcaubPvbIVbJdbLAcaVbZacbibFvaahaaabCaaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaaaaUyaUyaUyaUyaUyaUyaUyaUycaEaUyaUyaUyaUyaUyaUyaUyaUyaaaaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaabWFcaFcaGcaHbWFcgvaotcaJalWcaKcaLbWHcaMcaNcaOcaPcaQbWHbWHbWHbWHbWHbWHcaRbWHbWHcaSchcchdalOardccuarhcklcklcklcklcklcklcklcchcchcchcchcchcdzcaWcaWcaXcaYcaWcaZcaWcbacbbaXQcbcchzcbecbfcbecbgcbhcbecbecdKbepaXFaXHaXHcbjbepcbkbepbzacbmbzabWibzkbzbcahcbpcbqcagcahcbrcbscbtbzlbWichAcbwbWicbxcbycbzcaqcaqcaqcaqcbAcbBcbCcbDcbCcbEbzGcavcaxcawcgpcaybMdbMdbMdbMdbMdcazcgpbNRbRecaAbzBaahbFvbFvbFvbFvbFvaahaaabCaaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbSaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaabWFbzocbMbzobWFalWalWalWalWbWHcbObWHcbPchBcbRcbScbTbWHcbUcbVcbWbWHcbXcbYchQbWHccabWHbWHbWHbWHbWHbWHcklccbbBhbCRbCKcibccgcchcciccjcckcchbASccmbASccnccobASccmbASciKccqccrccsciWbATccvbATccwccxbATccvbATcctccyccyccyccyccycczbepbAUccBbAVbyVccDbYGcahcajcajcagccEcajcajcagccFbWiccGccHbWibYMccIccJcbCcbCcbEcbCcbCccKcbucbdcbucbubzBcbvcbGcbFcbIcbHbEScgpcgpcaybMdcbJbPubNRcbKbNSbzBaahaahaahaahaahaahaahaahbMoaahbMpaahbNWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaaaaaabzocbQbzoaaaaahaaaaaaaaabWHcbObWHbWHbWHbWHccZbWHbWHcdacdbcdabWHbWHbWHbWHbWHcdccddbWHcdecdfcjgcdhccdcdjcdkcdlcdkcdmcdncdocdpcdqcdrbBbbAZbBfcdvcdwcdxcdycdzckWccmcdBcdCcdDccvcdEcdFcdGcdHcdIcdJcdKcdLcdMccycdNbBjcdPccycdQbepcdRcdScdTcdUcdVcdWcdXcdYcdZcdWcdXcdYcdYcdWceacebceccedccLcefbYNapwcegcehcbucbucbucbucbuceicejcekbzBccMccNcgpcgpbPqccObFbbFbccPccQccPbFbccRccSbNSbzBbzMbzMaahaaaaaaaaaaahaaabCaaaabBZaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaahaahbzocbMbzoaahaahaahaahaahbWHcewcexceybWHcezceAceBbWHceCceDceEceFckXceHckZbWHceJceKceLceMbBlceObBRccUceRceSceTceUceVbDVbDWcchceXceYbCmcfacfbcfccfdcfecffcfgcfhcficdBcdCcdDcfjcfkcflcfmcfncfocfpcfpcfqcfqbCncfscftcfuccycfvbepcfwcfxcfybyVcfzcfAcfBcfCcfDcfCcfEcfCcfFcfCbCJbWibCLcfIcfJcfKccKaocaocaoccbucfLcfMccVcfOcfPcfQcfRbzBccWccYccXcdscdicelceecencemcepceocerceqcevbNSceQcghcggabjabjaaaaaaaahaaabCaaaaaahaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaacfHaaaaaaaahaaaaahaaabWHbWHbWHcbObWHcgicgjcgkcglcgmcgncgoceHceHceBclLbWHcgqcgrbWHcaQcgscgtcgucklbCTbCScmDcgycgzcgAcmEccpccpcgCccpcgDcgEcgFcgFcgGcgHcgIcgJcgKcgLcgMcgNcfjcfkcfkcfkcgOcgPcgQcgRcgScgTbDucgVcgWcgXccycgYbepbepbepbepbWibWicfNbWibWibWibWibWibWibWibWibWibWibWibWibWichachbaoccnHcnqcbuchechfchgchhchichjchkbzBcfScfScfTcfScfUcfScfTcfVcfUcfUbNScfScfWcfYcfXbzBbzMbzMaahaaaaaaaaaaahaaabCaaaaaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaaabEzaaaaaaaahaaaabjabjchuchvbWHchwchxchybWHbWHbWHcpzcnIceHcpDchCbWHbWHbWHchDchEbWHchFchFchFchFchFchFchFcqjcgychHchIcqlccpchKchLbDXchNchOcqpcrxchPchRchSchTbAScdBchUcdDbATchVchWchXchYchZciacrHciccidccyciecifcigccycihciiciiciicijciicikcilcimciiciicinciiciiciiciiciocipciqcircaqciscitciucivbSucbuciwcixciycizciAciBciCbzBbzBbzBcfZbBIcgabBIcfZbBIcgacgacgbbBIcgbbzBbzBbzBaahaahaahaahaaaaaaaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaaaaafaahcgcaahaahaahaaaaahaahbWHbYgciLciMbWHbWHbWHciNbWHbWHbWHbWHbWHbWHbWHciOciPcgqciQciRchFciSciTccebTvcdgchFcrNciYcgBcjacsYccpcjccjdcjecjfctBctgcjhcjibEFcjkbEFcjlcjmchUcjncjocjpcjpcjpcjqcgdcjscufcjtcjuccycjvcjwcjxccycjycjzcjAcjAcjAcjAcgecjAbEHbEHbEHbEHbEHbEHbEHbEHbEHcjDbWHcjEapxapxapxaocapxavUcbucjFcjGcjHcizcjIcjJcjKcizaahaahcjLaahcjMaahcjLaahcjNcjOcjPaahcjPbEMaahaahaahaaaaaaaahaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaahaaaaQxaaabBkaaaaahaaaaaaaahaaabWHcjXbWHcewcexcgjcjYcgjcgjcjZckackackackbckackackackcckdckecgfckgckhckickjckkchFcklckmbFFckocklccpckpbFJccpckrckscjhcktckuckvckwckxcjhckyckzckAcjpckBckCckDckEckFckGcjqckHckIckJckKckJccyccyckLbWHcjAbGUbHcckOckPckQbEHbHdbHdbHdbHvbHjbIxbHdbEHcjDbWHckVapwcugcumaocckYcuucbuclaclbclccizciAcldclecizaahboObIzbotbIzboObIzbotbIzboObIQbotbJcboOaahaaaaaaaaaaaaaaaaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaQxaaabDDaaaaahaaaaaaaahaaabWHbWHbWHbWHbWHbWHbWHbWHbWHcljcmMcmMcgwcgZcgZcgZcgZchlcgZcgZcgZclncloclpclqclrclscltcluclvclwclxclyclzclAclBclCclDclEclFclGbJlclIclJcjhclKchUcjnchmchnclNclOclPclQclRcjqclSclTclUclVcjAcaQcgsclWcddcjAclXclYclZcmacmbbEHbHdbKibJQbKubHdbKGbKFbEHcmibWHbWHbWHbWHbWHaocaocaoccbucbucbubKHcizcmkcmlcmmcmnaahboOcmocmpcmqboOcmrcmscmtboOcmucmvcmwboOaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaahaaaaafaaabEzaahaahaahaahaahaaabWHcmycmzcmAcmBcmCcvvcvwbWHcljcmMcmHcmIcmJcmKcmLcmMcmNcmOcmPcmMcmQcmRcmScmTcmUcmVcmWcmXcmYcmZcnacnbcnacmZcnacnccndcnebKJcngcnhcnibKKbEFckychUcjncjqcnkcnlcnmcnncnocnpbKLcnrcnscntcnucjAcnvcnwcnxcnycjAcnzcnAcnBcnCcnDbEHbHdbHdbKRbHdbHdbKYbKWbEHcjDbWHcvHcvJbWHbLhbLgcnLbLibLzbLvaoccnPcizcizcnQcizcizaahboOcnRcnScnTboOcnUcnVcnWboOcnXcnYcnZboOaahaahaahaahaahaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaahaaaaQxaaabEzaahaaaaaaaaaaahaaabLQcobcoccodbMlcmCcofcogbWHcljcmMcohcoicojcokcolcomconcoocopcmMcoqcorcoscotcoubMucowcoxcoycozcoAchochochocoBcoCcoDbMKcoFcngcoGcnibMWcjhcoIchUcoJcjqcoKcoLcoMcnncoNcoOcjqcoPcoQcoRcoScjAcoTcoUcoVcoWcjAbMXcoYcoZcpacpbbEHbEHbNebNdbNibNibEHbNjbEHcphcpicpjcpkbWHcplapxapxapxcaNcpmbWHcpncpocizcppcizaMjaahboOcnRcpqcnRboOcnUcprcnUboOcpscptcpsboOaahaaaaaaaaaaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaafaahbEzaahaaaaaaaaaaahaaabLQcpvcofcoccpwcmCcpxbWHbWHcpycmMbNCbNBbNCbOGbNCcmMbNCcpFbNCcmMchFbONcpHchpchFchFcpJcpKcpLcpMcpMbPdbPYbPpcpMcpMchqcjhcpRcngcpSbQxcjhcjhcpUchUcpVcjqcjqcpWcpXcpYcpZcqacjqcqbckIcctcctcjAcqccjAchrcjAcjAcctcqecqfcctcctbQSbQGciIchMbRGcjjcjBcjrbEHcqobWHcwzcqqbWHcqrcaNceBceHcqsbRZbWHcqtcqucqvcqwcqvatJaahboOboOboOboOboOboOboOboOboOboOboOboOboOaahaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaahaaaaaaaQxaaacgcaaaaaaaaaaaaaahaaabLQbSccocbTrbSQcmCcqBcqCcaRcljcmMcqDcqEcqFcqGcqHcmMcqIcqJcqKcmMciZcqMcqNcqOcqPbTNcqRcdwcqScpMcqTbUabUcbUbckUcpMbZncjhcqYcngcqZbUCbEFcrbcrccrdcrecrfcjCcrhcricrjcoNcrkbUNcrmcrncrocrpcrqcfkcrrcrscrtcfkcrucrvcrwcfkcxkbQSbUPckfcjRbUTclhclkbUVbEHcjDbWHbWHcrFbWHcrGbUXceHceHcrIbUZbLQaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaaaaaaaahaaaaaaaafaaabBkaahaaaaaaaaaaahaaabLQbLQcoccmCcmCcoccoccrPcaRcljcmMbVbcrRcrScrTcrUcmMcllcrWcrXbVTcrZcsacsbcsccsdcsecsfcdwcdxbPdcshcsicsjcskcslcpMceBcjhcsmcsncsocspcsqcsrcsschUcstcsucsvcswcsxcsycszcsAbVZcsCcsDcsEcsFcsGcsHcsIcsJcsKcsLcsKcsMcsNcsOcsPcxlbWabXubWNclmbXybXSbXRcnjcsZbWHctactbctcbYicqsceHceHctdctebWHctfaahaaaaaaaaaaahaaaaaaaaaaaaaaaaahaaaaaaaaaaahaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaahaahaaaaaaaQxaaacfHaaaaaaaaaaaaaahaaabLQcthcoccticoccoccpxbWHbWHctjcpIctlcrRctmcrTctnctoctpctqctrctscttctuctvctwctxctyctzctAcgEcblctCctDctEctFctEcpQctHcjhctIctJctKctLbEFcsrcsschUcstctMcgdctNctOctPctQctRbUNctSctTctUctVctWctXctYctZcfpcfpcuacubcuccudcuecbocbncxzcxoccccbNccfcqdbEHcjDbWHcuncuocupcpjcuqcrIcjEceHcurbLQaaaaahaaaaaaaaaaahaahaafbBZbBZbBZbBZbBZbBZaafbBZbCabBZbMpaahbCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaahaaaaaaaQxaaabEzaaaaaaaahaahaahaaabLQcuscmCcodcmCcutceBcclbWHcljcmMcuvcuwcuxcuycuzcmMcracuBcuCcmMcuDcoecuFcuGcuHbTNcuIcdwcuJcpMcuKcuLcuMcuNccucpMcuPcjhcjhcjhcrKcjhcjhcjhcuRcuScuTcjqcjqcjqcjqcjqcuUcrVcjqcjAcjAcrYcuXcuYccCccAccTcvccvccvccvccvdcvecvfcvdbEHbEHbEHctkcsBcdtctGbEHcjDbWHctacdubWHcvlcvmcdAceHceHcdObWHaahaahaahaahaahaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaQxaahaafaQxaaaaafaQxaQxaahaahaahbEzaahaahaahaaaaahaahbLQcmCcutcmCcvpcqscxAcxBcmFcmGcmMcvrcvscetcvuceucmMcuAcvxcvycmMcuQcvAcvAcvAcvAcvAcvBcvCcvDcvEcvFcvGceNcvIcePcpMcvKcvLcvMcvNcvOcvPceKcvQcvRcvScvTcvUcuVcvLcvXcvYcvZcwacuWcwccvzcvicwfcwgceZcwicwjcwkcwlcwmcwncvdcwocwpcwqcwrcwsbEHbEHbEHbEHbEHbEHcwtbWHbWHbWHbWHbWHbWHbWHbLQbWHbWHbWHaaaaahaaaaaaaaaaahaahaahaafbCabCabCaaafbCabCabCaaafbCabNWbCabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachsaaaaaaaaaaahaaaaaaaaaaahaaaaaaaahaaacgcaaaaaaaahaaaaahaaabLQbLQbLQbLQbWHcwycxEbWHbWHcljcmMcmMcmMcmMcmMcmMcmMcmMcvVcmMcmMcwAbWHcwBcfGcwDcwEctzcwFcwGcpMcwHcwIcwJcwKcwKcwKcwKcwKcwKcwKcwLcvWcwLcxScwNcwOcwPcxWcwdcwbcwebWHcwwcwwcwMcwwcwwcwScwVcwWceZcwXcwYcwZcxacxbcxccvdcxdcxecxfcxgcxhcoUcddciRbWHcxickdcxjbWHcylcddbWHaaaaahaaaaaaaaaaaaaahaaaaahaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaaaaaaahaaaaahaaaaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaaabEybEybEybEybEyaahaahaahbEybEybEybBkbEyaaaaQxaaaaahaaaaaaaaaaaaaahbWHbWHbWHbWHcyrcljchEcyXcyEceHczbcaQchEciPbZnbWHcxpceHbWHcxqcxrcxscxncxucxvcxwcpMcpMcpMcpMcwKcgUcgxchGchtchJcwKcxCcxDcxIcxFcxGcdCcxHbWHcxKcxJcxMcxLcwwcxNcxPcxOcwwcyIcxQcxRciDcxTcxUcxVczdcxXcxYcvdcxZcyacybcyccydcoUcyecyfcygcyhchEcyicygcyjctdbLQaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaahbEXbFabFabFabFabFfbEzbFtbFrbFrbFrbFrbFEaahaahaahaahaahaahaahaahaahabjbWHcykbWHczecymciiciiciiciiciiciiciiciociicynceHcyobWHcypcyqcyqcyqcyscytcyucyvcywcyxcyycwKcyzcyAcyBcyCcyDcwKcqXcyFcyGcyHcxGcdCcCZcwRcyJcwRcwRcwRcwwcyKcyLcxPczGczocyMcyNcyOcyPcyQcyRcyRcyScxXcvdcyTcyacyUcyVcyWcoUciEcyYbWHcyZceHczabWHceHczlbWHaaaaahaaaaaaaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaahaacaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaahbJebJebJebJebJeaaabEzaaabJebJebJebJebJeaaaaQxaaaaaaaaaaaaaahaahciGciFciLczfczgczfceEceBceHceHceHczhcziczjceHceHczkbZpcznbWHczmciHczJczIczqczrczscyvcztczuczvcwKczwczxczyczzczAcwKciJczCcwLcwLczDcdCcjncwRczKczHczMczLcwwczNcxPczOcwwcABczPczQcvcczRczSczTczUczVczWcvdczXczYczZcAacyVcoUbWHbWHbWHcqobWHcAbbWHbWHbWHbWHaahaahaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaahaaaaahaahaahaaabKIaaaaahaaaaahaaaaahaaaaQxaaaaaaaaaaahaahaaaabjabjbWHczpbWHceHchEceHceHcAdbWHbWHbWHbWHbWHchEczkcaQcgsbWHcAecAfcAgcAhcAicAjcAkciUcAmcAncAociVcAqcArcAscAtcAuciXcjbcAwcAxcwLcjmcAycAzcAAcAEcADcADcAGcwwcAScAScBmcwwcdHczPcAHcvccvccvccvccvccvccvccvdcvdcvdcAIcvdcvdcoUcxicAJckdcAKbWHceHcALcAMcANcAMabjabjaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaaabEybEybEybEybEyaahbEzaahbEybEybEybEybEyaahaQxaaaaaaaaaaafaaaaaaaahabjbWHbWHbWHcdebWHcgscAcczBbWHcAQcARcAQbWHcdeczkcBPcBPcBPcBPcBPcBPcBPcATcAUcAVcAWcAXcAYcAZcBacBbcBccBdcBecBfcBgcBhcBicBjcBkcBlcdCczEczFcBncACcACcBocwwcBpcBqcBqcwwcBrcBtcBucBvcBscCfcBycBzcBAcBBcBCcBDcBEcBFcBGcBHcdecBIceHceHbWHbWHcBJbWHbWHbWHbWHaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaahbEXbFabFabFabFabFfbEzbFtbFrbFrbFrbFrbFEaahcrMaahaahaahaQxaahaahaahaahaahaaabWHbWHbWHbWHbWHbWHbWHbWHbWHbWHbWHcqsczkcBPcjQcBLcBMcBNcBOcBPcBQcBRcBScyvcBTcBUcBVcwKcBWcBXcBXcBXcBYcwKcBZcCacCbcCccCdcCecCgcwRcChczHcCYcDccwwcDacDdcDbczGcIScCicCjcDecClcCmcCncCocCpcCqcCrcCscCqcCtcCucBHbWHcCwbWHcCvcCvcCxcCycCzcCAcCBaahaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcCCcjScCCaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaahbJebJebJebJebJeaaabSbaahbJebJebJebJebJeaaaaQxaaaaaaaaaaahaaaaaaaaaaaaaahaaaaaaaaaaahaahaaaaaaaaaaahaaaaaabWHceHcCEcDfcCFcCGcCHcCIcCJcCKcCLcCMcCNcyvcjUcjTcCQcwKcCRcCScCTcCUcCVcwKcCWcCXcCXcwLcDRcDgcDUcDScEScDVcEUcETcwwcEVcEXcEWcFPcEYcFQcDhcDicDjcDkcDlcDmcDmcDncDocDpcDqcDrcjVcDtcDucDvcDwcDxcDycDzcDzcDzcDAcjWaahaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcjScCCckncCCcjSaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrMaaaaahaaaaahaaaaahaaabBkaaaaahaaaaahaahaahaahcrMaaaaaaaaaaahaaaaaaaaaaaaaahaaaaaaaaaaaaaahaaaaaaaaaaahaaaaaabWHchEcDEcBPcDFcDGcDHcDIcDJckqcDLcDMcDNcyvcyvckMcyvcwKcwKcwKcwKcwKcwKcwKckNcwLcwLcAlcFRcwOcwPcApcFScFScGTcGRcwwcGVcGYcGWcHMcHLcHQcHPcIdcDXcDYcDZcEacEbcEccEdcEecEfcEgcEhcEicEjcEkcElcEmcEncEocEpcEqcErcjWaahaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcEtcjScEvckRcExcjScEtaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaaaaaabzocbQbzoaaaaahaaaaaaaaabWHcbObWHbWHbWHbWHccZbWHbWHcdacdbcdabWHbWHbWHbWHbWHcdccddbWHcdecdfcjgcdhccdcdjcdkcdlcdkcdmcdncdocdpcdqcdrbBbcggbBfcdvcdwcdxcdycghchmccmcdBcdCcdDccvcdEcdFcdGcdHcdIcdJchncdLcdMccycdNbBjcdPccycdQbepcdRcdScdTcdUcdVcdWcdXcdYcdZcdWcdXcdYcdYcdWceacebceccedccLcefbYNapwcegcehcbucbucbucbucbuceicejcekbzBccMccNcgpcgpbPqccObFbbFbccPccQccPbFbccRccSbNSbzBbzBbzBaRJaRIaRJaRIaRJaaabCaaaaaahaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaahaahbzocbMbzoaahaahaahaahaahbWHcewcexceybWHcezceAceBbWHceCceDceEceFckXceHckZbWHceJceKceLceMbBlceObBRccUceRceSceTceUceVbDVbDWcchceXceYbCmcfacfbcfccfdcfecffcfgcfhcficdBcdCcdDcfjcfkcflcfmcfncfocfpcfpcfqcfqbCncfscftcfuccycfvbepcfwcfxcfybyVcfzcfAcfBcfCcfDcfCcfEcfCcfFcfCbCJbWibCLcfIcfJcfKccKaocaocaoccbucfLcfMccVcfOcfPcfQcfRbzBccWccYccXcdscdicelceecencemcepceocerceqcevbNSceQchMceQchVchVchVchVciIaahaafaaaaahaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaacfHaaaaaaaahaaaaahaaabWHbWHbWHcbObWHcgicgjcgkcglcgmcgncgoceHceHceBclLbWHcgqcgrbWHcaQcgscgtcgucklbCTbCScmDcgycgzcgAcmEccpccpcgCccpcgDcgEcgFcgFcgGcgHcgIcgJcgKcgLcgMcgNcfjcfkcfkcfkcgOcgPcgQcgRcgScgTbDucgVcgWcgXccycgYbepbepbepbepbWibWicfNbWibWibWibWibWibWibWibWibWibWibWibWibWichachbaoccnHcnqcbuchechfchgchhchichjchkbzBcfScfScfTcfScfUcfScfTcfVcfUcfUbNScfScfWcfYcfXbzBbzBbzBcjjcjochVcjpcjjaaabCaaaaaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaaabEzaaaaaaaahaaaabjabjchuchvbWHchwchxchybWHbWHbWHcpzcnIceHcpDchCbWHbWHbWHchDchEbWHchFchFchFchFchFchFchFcqjcgychHchIcqlccpchKchLbDXchNchOcqpcrxchPchRchSchTbAScdBchUcdDbATcjBchWchXchYchZciacjRciccidccyciecifcigccycihciiciiciicijciicikcilcimciiciicinciiciiciiciiciocipciqcircaqciscitciucivbSucbuciwcixciycizciAciBciCbzBbzBbzBcfZbBIcgabBIcfZbBIcgacgacgbbBIcgbbzBbzBbzBaahaahaahckxchVaTpaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaafaahcgcaahaahaahaaaaahaahbWHbYgciLciMbWHbWHbWHciNbWHbWHbWHbWHbWHbWHbWHciOciPcgqciQciRchFciSciTccebTvcdgchFcrNciYcgBcjacsYccpcjccjdcjecjfctBctgcjhcjibEFcjkbEFcjlcjmchUcjnckBcjqcjqcjqcjqcgdcjscufcjtcjuccycjvcjwcjxccycjycjzcjAcjAcjAcjAcgecjAbEHbEHbEHbEHbEHbEHbEHbEHbEHcjDbWHcjEapxapxapxaocapxavUcbucjFcjGcjHcizcjIcjJcjKcizaahaahcjLaahcjMaahcjLaahcjNcjOcjPaahcjPaahaahaahaahaaaaaackCchVckDaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaQxaaabBkaaaaahaaaaaaaahaaabWHcjXbWHcewcexcgjcjYcgjcgjcjZckackackackbckackackackcckdckecgfckgckhckickjckkchFcklckmbFFckocklccpckpbFJccpckrckscjhcktckuckvckwckWcjhckyckzckAcjqclNclhckFckEckFckGcjqckHckIckJckKckJccyccyckLbWHcjAbGUbHcckOckPckQbEHbHdbHdbHdbHvbHjbIxbHdbEHcjDbWHckVapwcugcumaocckYcuucbuclaclbclccizciAcldclecizaahbFvclObBIclObFvclObBIclObFvclPbBIclQbFvaahaaaaahaahaahcmochVcmpaahaahaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaQxaaabDDaaaaahaaaaaaaahaaabWHbWHbWHbWHbWHbWHbWHbWHbWHcljcmMcmMcgwcgZcgZcgZcgZchlcgZcgZcgZclncloclpclqclrclscltcluclvclwclxclyclzclAclBclCclDclEclFclGbJlclIclJcjhclKchUcjncgdcmqcnlcnmcmrcmsclRcjqclSclTclUclVcjAcaQcgsclWcddcjAclXclYclZcmacmbbEHcmtbKibJQbKubHdcmubKFbEHcmibWHbWHbWHbWHbWHaocaocaoccbucbucbubKHcizcmkcmlcmmcmnaahbFvcmvcmBcmwbFvcnkcnpcnobFvcnEcnScnRbFvaahaaaaahaaabzBcnUcnTcnWcnVaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaafaaabEzaahaahaahaahaahaaabWHcmycmzcmAcnXcmCcvvcvwbWHcljcmMcmHcmIcmJcmKcmLcmMcmNcmOcmPcmMcmQcmRcmScmTcmUcmVcmWcmXcmYcmZcnacnbcnacmZcnacnccndcnebKJcngcnhcnibKKbEFckychUcjncjqcnYcoLcoMcnncoEcnZbKLcnrcnscntcnucjAcnvcnwcnxcnycjAcnzcnAcnBcnCcnDbEHbHdbHdbKRbHdbHdbKYbKWbEHcjDbWHcvHcvJbWHbLhbLgcnLbLibLzbLvaoccnPcizcizcnQcizcizaahbFvcoGcoOcoKbFvcoPcpqcoRbFvcprcptcpsbFvaahaahaahaahcnVcpGbIQcpWcpSaahaafaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaQxaaabEzaahaaaaaaaaaaahaaabLQcobcoccodbMlcmCcofcogbWHcljcmMcohcoicojcokcolcomconcoocopcmMcoqcorcoscotcoubMucowcoxcoycozcoAchochochocoBcoCcoDbMKcoFcngcpYcpXbMWcjhcoIchUcoJcjqcqacpZcqAcqkcqTcqPcjqcqZcoQcracoScjAcoTcoUcoVcoWcjAbMXcoYcoZcpacpbbEHbEHbNebNdbNibNibEHbNjbEHcphcpicpjcpkbWHcplapxapxapxcaNcpmbWHcpncpocizcppcizaMjaahbFvcoGcrhcoGbFvcoPcricoPbFvcrjcrkcrjbFvaahaaaaahaaacpSbIQcrHbIQchVaaabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaafaahbEzaahaaaaaaaaaaahaaabLQcpvcofcoccpwcmCcpxbWHbWHcpycmMbNCbNBbNCbOGbNCcmMbNCcpFbNCcmMchFbONcpHchpchFchFcpJcpKcpLcpMcpMbPdbPYbPpcpMcpMchqcjhcpRcskcsocsncjhcjhcpUchUcpVcjqcjqcsvctDcswcoNctGcjqcqbckIcctcctcjAcqccjAchrcjAcjAcctcqecqfcctcctbQSbQGctKctJbRGctLctNcjrbEHcqobWHcwzcqqbWHcqrcaNceBceHcqsctObWHcqtcqucqvcqwcqvatJaahbFvbFvbFvbFvbFvbFvbFvbFvbFvbFvbFvbFvbFvaahaahaahaahchVbIQbIQbIQcpSaahbCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaahaaaaaaaQxaaacgcaaaaaaaaaaaaaahaaabLQbSccocbTrbSQcmCcqBcqCcaRcljcmMcqDcqEcqFcqGcqHcmMcqIcqJcqKcmMciZcqMcqNcqOctPbTNcqRcdwcqScpMcuCbUabUcbUbckUcpMbZncjhcqYcuHcuObUCbEFcrbcrccrdcrecrfcjCcuZcvbcvacvNcvfbUNcrmcrncrocrpcrqcfkcrrcrscrtcfkcrucrvcrwcfkcwwbQSbUPckfcwDbUTcwHclkbUVbEHcjDbWHbWHcrFbWHcrGcwMceHceHcrIcwXbLQaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaaaaahaaachVcpScnVbzBcnVaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaaaaaaaahaaaaaaaafaaabBkaahaaaaaaaaaaahaaabLQbLQcoccmCcmCcoccoccrPcaRcljcmMbVbcrRcrScrTcrUcmMcllcrWcrXbVTcrZcsacsbcsccsdcsecsfcdwcdxbPdcshcsicsjcxkcslcpMceBcjhcsmcxxcxycspcsqcsrcsschUcstcsucxOcxNcsxcsycszcsAbVZcsCcsDcsEcsFcsGcsHcsIcsJcsKcsLcsKcsMcsNcsOcsPcxlbWabXubWNclmbXybXSbXRcnjcsZbWHctactbctcbYicqsceHceHctdctebWHctfaahaaaaaaaaaaahaaaaaaaaaaaaaaaaahaaaaaaaaaaahaaaaaaaaaaaaaahaaaaahaaaaaaaahaaaaahaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaahaahaaaaaaaQxaaacfHaaaaaaaaaaaaaahaaabLQcthcoccticoccoccpxbWHbWHctjcpIctlcrRctmcrTctnctoctpctqctrctscttctuctvctwctxctyctzctAcgEcblctCcxPctEctFctEcpQctHcjhctIcyKczGcyLbEFcsrcsschUcstctMcgdczNcASczOctQctRbUNctSctTctUctVctWctXctYctZcfpcfpcuacubcuccudcuecbocbncxzcxoccccbNccfcqdbEHcjDbWHcuncuocupcpjcuqcrIcjEceHcurbLQaaaaahaaaaaaaaaaahaahaafbBZbBZbBZbBZbBZbBZaafbBZbCabBZbMpaahbCaaahaahaafbNWbNWbNWaafaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaahaaaaaaaQxaaabEzaaaaaaaahaahaahaaabLQcuscmCcodcmCcutceBcclbWHcljcmMcuvcuwcuxcuycuzcmMcBmcuBcBpcmMcuDcoecuFcuGcBqbTNcuIcdwcuJcpMcuKcuLcuMcuNcBscpMcuPcjhcjhcrKcjhcjhcjhcjhcuRcuScuTcjqcjqcjqcjqcjqcuUcrVcjqcjAcjAcrYcuXcuYccCccAccTcvccvccvccvccvdcvecCfcvdbEHbEHbEHctkcsBcdtcCObEHcjDbWHctacdubWHcvlcvmcdAcDacDacdObWHaahaahaahaahaahaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaabCaaaaaaaaahaaaaaaaahaaaaahaahaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaQxaahaafaQxaaaaafaQxaQxaahaahaahbEzaahaahaahaaaaahaahbLQcmCcutcmCcvpcqscxAcxBcmFcmGcmMcvrcvscetcvuceucmMcuAcvxcvycmMcuQcvAcvAcvAcvAcvAcvBcvCcvDcvEcvFcvGceNcvIcePcpMcvKcvLcvMcvOcDbcvPceKcvQcvRcvScvTcvUcuVcvLcvXcvYcvZcwacuWcwccvzcvicwfcwgceZcwicwjcwkcwlcwmcwncvdcwocwpcwqcwrcwsbEHbEHbEHbEHbEHbEHcwtbWHbWHbWHbWHbWHbWHbWHbLQbWHbWHbWHaaaaahaaaaaaaaaaahaahaahaafbCabCabCaaafbCabCabCaaafbCabNWbCabCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaachsaaaaaaaaaaahaaaaaaaaaaahaaaaaaaahaaacgcaaaaaaaahaaaaahaaabLQbLQbLQbLQbWHcwycxEbWHbWHcljcmMcmMcmMcmMcmMcmMcmMcmMcvVcmMcmMcwAbWHcwBcfGcDdcwEctzcwFcwGcpMcDicwIcwJcwKcwKcwKcwKcwKcwKcwKcwLcvWcwLcxScwNcwOcwPcxWcwdcwbcwebWHcEicEicEucEicEicwScwVcwWceZcEVcwYcwZcxacxbcxccvdcxdcxecxfcxgcxhcoUcddciRbWHcxickdcxjbWHcylcddbWHaaaaahaaaaaaaaaaaaaahaaaaahaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaaaaaaahaaaaahaaaaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaaabEybEybEybEybEyaahaahaahbEybEybEybBkbEyaaaaQxaaaaahaaaaaaaaaaaaaahbWHbWHbWHbWHcyrcljchEcyXcyEceHczbcaQchEciPbZnbWHcxpceHbWHcxqcxrcxscxncxucxvcxwcpMcpMcpMcpMcwKcgUcgxchGchtchJcwKcxCcxDcxIcxFcxGcdCcxHbWHcxKcxJcxMcxLcEicEWcFPcEXcEicyIcxQcxRciDcxTcxUcxVczdcxXcxYcvdcxZcyacybcyccydcoUcyecyfcygcyhchEcyicygcyjctdbLQaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaahbEXbFabFabFabFabFfbEzbFtbFrbFrbFrbFrbFEaahaahaahaahaahaahaahaahaahabjbWHcykbWHczecymciiciiciiciiciiciiciiciociicynceHcyobWHcypcyqcyqcyqcyscytcyucyvcywcyxcyycwKcyzcyAcyBcyCcyDcwKcqXcyFcyGcyHcxGcdCcCZcwRcyJcwRcwRcwRcEicFTcFUcFPcGrczocyMcyNcyOcyPcyQcyRcyRcyScxXcvdcyTcyacyUcyVcyWcoUciEcyYbWHcyZceHczabWHceHczlbWHaaaaahaaaaaaaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaahaacaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaahbJebJebJebJebJeaaabEzaaabJebJebJebJebJeaaaaQxaaaaaaaaaaaaaahaahciGciFciLczfczgczfceEceBceHceHceHczhcziczjceHceHczkbZpcznbWHczmciHczJczIczqczrczscyvcztczuczvcwKczwczxczyczzczAcwKciJczCcwLcwLczDcdCcjncwRczKczHczMczLcEicGtcFPcGucEicABczPczQcvcczRczSczTczUczVczWcvdczXczYczZcAacyVcoUbWHbWHbWHcqobWHcAbbWHbWHbWHbWHaahaahaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaahaaaaahaahaahaaabKIaaaaahaaaaahaaaaahaaaaQxaaaaaaaaaaahaahaaaabjabjbWHczpbWHceHchEceHceHcAdbWHbWHbWHbWHbWHchEczkcaQcgsbWHcAecAfcAgcAhcAicAjcAkciUcAmcAncAociVcAqcArcAscAtcAuciXcjbcAwcAxcwLcjmcAycAzcAAcAEcADcADcAGcEicGNcGNcGVcEicdHczPcAHcvccvccvccvccvccvccvccvdcvdcvdcAIcvdcvdcoUcxicAJckdcAKbWHceHcALcAMcANcAMabjabjaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaaabEybEybEybEybEyaahbEzaahbEybEybEybEybEyaahaQxaaaaaaaaaaafaaaaaaaahabjbWHbWHbWHcdebWHcgscAcczBbWHcAQcARcAQbWHcdeczkcBPcBPcBPcBPcBPcBPcBPcATcAUcAVcAWcAXcAYcAZcBacBbcBccBdcBecBfcBgcBhcBicBjcBkcBlcdCczEczFcBncACcACcBocEicGWcGXcGXcEicBrcBtcBucBvcGYcHkcBycBzcBAcBBcBCcBDcBEcBFcBGcBHcdecBIceHceHbWHbWHcBJbWHbWHbWHbWHaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaahbEXbFabFabFabFabFfbEzbFtbFrbFrbFrbFrbFEaahcrMaahaahaahaQxaahaahaahaahaahaaabWHbWHbWHbWHbWHbWHbWHbWHbWHbWHbWHcqsczkcBPcjQcBLcBMcBNcBOcBPcBQcBRcBScyvcBTcBUcBVcwKcBWcBXcBXcBXcBYcwKcBZcCacCbcCccCdcCecCgcwRcChczHcCYcDccEicHocHqcHpcGrcIScCicCjcDecClcCmcCncCocCpcCqcCrcCscCqcCtcCucBHbWHcCwbWHcCvcCvcCxcCycCzcCAcCBaahaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcCCcjScCCaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaahbJebJebJebJebJeaaabSbaahbJebJebJebJebJeaaaaQxaaaaaaaaaaahaaaaaaaaaaaaaahaaaaaaaaaaahaahaaaaaaaaaaahaaaaaabWHceHcCEcDfcCFcCGcCHcCIcCJcCKcCLcCMcCNcyvcjUcjTcCQcwKcCRcCScCTcCUcCVcwKcCWcCXcCXcwLcDRcDgcDUcDScEScDVcEUcETcEicHrcHBcHvcHDcEYcFQcDhcHMcDjcDkcDlcDmcDmcDncDocDpcDqcDrcjVcDtcDucDvcDwcDxcDycDzcDzcDzcDAcjWaahaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcjScCCckncCCcjSaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrMaaaaahaaaaahaaaaahaaabBkaaaaahaaaaahaahaahaahcrMaaaaaaaaaaahaaaaaaaaaaaaaahaaaaaaaaaaaaaahaaaaaaaaaaahaaaaaabWHchEcDEcBPcDFcDGcDHcDIcDJckqcDLcDMcDNcyvcyvckMcyvcwKcwKcwKcwKcwKcwKcwKckNcwLcwLcAlcFRcwOcwPcApcFScFScGTcGRcEicIhcItcImcIucHLcHQcHPcIdcDXcDYcDZcEacEbcEccEdcEecEfcEgcEhcIycEjcEkcElcEmcEncEocEpcEqcErcjWaahaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcEtcjScEvckRcExcjScEtaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaaabEybEybEybEybEyaahcaBaahbEybEybEybEybEyaahaQxaaaaaaaaaaafaahcEycEycEyckScEycEycEyaaaaahaaaaaaaaaaahaaaaaabWHcAvczkcBPcuEckTcDGcECclfcBPcEEcEFcEGcBPcEHcEIcEJcEKclgcEMclgcENclgcEOcEMcEPcEKcEQckycdCcIfcwRcwTcIgcDTcwTcGScGScGScGScGScFacuXcFbcBvcFccFccFdcFecFfcFgcFhcFicFjcFkcFlcBHcFmcFncFocBvcFpcjWcjWcCvcjWcCvatJaahaaaaaaaahaaaaaaaahaahaahaaaaaaaaaaaaaaaaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaahaahcjScjScFvcFwcFwcFwcFxcjScjSaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaahbEXbFabFabFabFabFfbEzbFtbFrbFrbFrbFrbFEaahaQxaaaaahaahaQxaaacEycFycFzcFycFAcFycEycEyckScEyckScEycEyaahaahbWHciRczkcBPcBPcBPcBPcBPcBPcBPcFBcFCcFDcFEcFFcFGcFHcEKclicFJclgcEMclgcFKcFLcFMcEKcFNckycdCcstctMcIlcIhcIscImcIucItcIAcIycEZcwUczPcwWcBHcBHcBHcBHcBHcBHcFWcFVcFXcFYcFZcGacBHbWHcCwbWHcCvcGbcGccGdcGecGfatJatJaahaahaahaahaahaahaahaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahcGgcGhcGgcFwcGicFwcGjcGkcCCaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaahbJebJebJebJebJeaaabSbaaabJebJebJebJebJeaaacrMaahaahaaaaQxaahcEycGlcGmcGncGocGlclHcAOcAFcGscAPcBwcEyaaaaaabWHbWHcGvcGwcGwcGxcGwcGycGzcIDcGAcGBcGCcGDcGEcGFcGGcGHcGIcGJcGIcGIcGKcGLcGMclMcGOcGPcGQcCecIOcINcFOcIRcJdcJccJccJecFTcFUcEZcdHczPcGZcBHcHacHbcHccHdcHecHfcHecHgcHhcHicBHcoUcHjbZkcddcCvcCvcCvcCvcCvbEMagqatJaahaaaaaaaaaaaaaaaaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaahaahcjScjScHlcFwcFwcFwcHmcjScjSaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaaaaaaaahaahaahaaaaaacfraahaaaaaaaahaahaaaaaaaQxaaaaaaaaaaafaaacEycHncmccmecmdcHncHncBxcHscHtcHucBKcEyaaaaaaaaacoUcoUcoUcoUcoUbWHcHwcBPcBPcHxcHycHzcBPcHAcCkcHCcEKcmfcEMclgcEMclgcHEcHFcHGcHHcHIcHJcHKcJjcGScGScJpcHOcJtcGUcJwcGXcJxcEZcHRcHScHTcjWcHacHbcHUcHUcHVcHWcHXcHYcFYcHZcBHcaQcIacbOceHcIbbWHaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcEtcjScIccmgcIecjScEtaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrMaaaaaaaaaaaaaaaaaaaaacfraaaaaaaaaaaaaahaaaaaacrMaaaaaaaaaaQxaahcEycCDcmhcIicIjcIkcmjcmxcIncIocIpcIqcIrcnfcnfcnfcIrcIvcIwcIxcEycJzcIzcBPcCOcIBcICcvjbWHbWHbWHbWHcEKclgcEMclgcIEclgcIFcIGcIHcEKcIIcIJcdCcjncGScJDcHNcILcIMcIMcJEcIPcIQcnEcIScITcIUcBHcHacHbcHUcIVcHecIWcHecIXcIYcIZcBHcJaceHcbOceHcJbbWHaahaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcjScCCcnFcCCcjSaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaafaQxaQxaQxaaaaaaaaacfraaaaaaaaaaQxaQxaQxcrMaQxaahaahaaaaQxaaackScCPcJfcJgcJhcJicnGcJkcJlcJmcJncJocnJcJqcJrcJscnKcJucJgcJvcnMcJAcJycnNcJAcJBcJCcvncvkcvqcvocvtcEKcEKcEKcEKcEKcEKcEKcJFcEKcEKbWHcJGcdCcjncGScIKcHNcHOcJtcGUcJHcJJcJKcJLcJMcJNcJIcDscJPcJPcJPcJPcJPcJQcJPcJRcJOcJTcBHceHceHcJUceHbWHbWHbWHaahaahaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcCCcjScCCaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaaaaaaaaaQxaahczcaahaQxaaaaaaaahaaaaaaaahaaaaahaahaahaaacEycDBcJWcJXcJYcJZcnOcKbcKccKdcKecKfcEyckSckSckScEycKjcKkcKlcEycoacKncBPcDCcDKcDDcDObWHcwucwhcwvbWHcKvckacKwckbckacKxcKycAJckecKzcKAcKBcCZcGScovcKDcKEcKEcKEcKFcKGcKHcoEcKJcKKcKLcKMcKNcKOcKPcoHcKRcKScKTcKUcKVcKWcKXckdckdcKYcKZcLacDPbWHbWHbWHabjaaaaahaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaQxaaaaahaaaaQxaaaaaaaahaahaahaahaaaaaaaaaaahaahcEycpccoXcHncpdcpccLfcLgcLhcLicLjcLkcEycLlaaaaaacoUcoUcoUcoUcoUbWHcLmcBPcBPcBPcBPcBPbWHcJScKtcwxbWHcLqbWHbWHbWHbWHbWHbWHbWHbWHcxWcLrcLscLtcDQcpecLwcLxcpfcGUcLzcLAcLBcEZcfkcLCcJVcLEcLFcLGcLHcLIcLJcLKcKTciPcLLbWHbWHbWHbWHbWHcLocLMcLNciLcLOciLcpgaahaahaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaQxaQxaQxaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacEycLQcLRcHncLRcLScLTcHncHncpucHncHncEyaahaahaahbWHcgscdecDWcLVcLWcLXckdcLYcLZcEscMbbWHcwQcwCcxtcxmcMebWHcMfcMgcMhbWHcMicMjcMkbWHcMlcMmcMncGScpAcMpcMqcpBcGUcMscGScKacGScMucMvcEucLEcMxcMycMzcpCcMBcMCcKTceHcMDbWHcEwcMFcEzbWHcMHcMIcEAbWHbWHbWHabjaaaaahaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacEycMKcMLcHncMMcMNcLTcEBcMPcMQcEDcELcEyaaaaahaaabWHcMTcMUcMVcMWcMXcMYcMZcMYcMYcNacMDbWHbWHbWHbWHbWHcLqbWHcNbcNccNdcNecNfcNgcNhcNicNjcNkcNlcGScGScGScGScGScKgcGScGSbZncoUcNncNocjAcKTcKTcKTcKTcKTcKTcKTcKTceHcNpcNqcNrcNscNtcNucNucNvcNwcNuaaaaaaaaaaaaaahaahaaaaaaaahaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaaacEycFqcERcHncERcFqcNzcFrcNBcNCcNDcNEckSaaaaaacNFbWHcNGbWHbWHbWHcNHbWHbWHbWHbWHcNIcNJcNKcNLcNMcNKcNNcNOcNPcNQcNRcNScNTcNUcNVcNWcNWcNXcNYcNZcOacObcOcckdckdcOdckdcOeckecOfcOgcOhcOicOfcOjckdckdcOkcKXckdckdckdcOlbWHckVcFscOncNucOocOpcOqcNuaahaahaahaahaahaahaahaahaahaahaahaahaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcEycEyckScEyckScEycOrcOscOtcOucOvcOwcEyaahaahcNFcpEcOycNFcOzcOAcOBcOCcODcpGbWHbWHbWHbWHcOFbWHbWHbWHbWHbWHcOGcNRcOHcNRcOIcOJcOKcNRcOLcOMcONbWHbWHbWHbWHbWHbWHczacOOcdebWHcOPcOQcORbWHcgscdecOSbWHbWHbWHbWHbWHbWHbWHbWHbWHcrFcNucOTcOUcOVcNuaaaaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaahaahaahcOWcOXcKicKhcPacKmcpOcpNcpPcEyaaaaaacNFcPfcPgcNFcpTcPicqgcPkcNFcNFcPlcqhcqicPocPpcPqcqkcFtcFucPucPvcNRcOHcNRcPwcPxcPycNRcPzcPAcPBcPCcPDcPEcPFcPGbWHcPHbWHbWHbWHcPIcKocPKbWHbWHbWHbLQbWHcPLcPMcPNbWHcPOcPPcPQbWHcqqcNucPRcPScPTcNuaaaaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaaaaahaaaaaacPUaahbzXcEycEycEycEycEycEycEyaaaaaacNFcqmcPWcNFcqxcqncqycQacNFcQbcQccQdcQecQfcQgcQhcQicQicQjcQkcQlcQmcQncNRcPwcQocPycNRcOLcOMcPwcqzcQqcNRcQrcQsbWHcQtbWHaahaaacqAcQvcqAaaaaaaaahaaabWHcjEceHceHcQwcgncQxcgncQycQzcNucqLcQBcqLcNuaaaaahaaaaahaahaaaaaaaahcrMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaahaahaahaaaaaaaaaaahaahaahaaaaaaaaaaahaaaaaaaaacNFcQDcQEcQFcQGcQHcQIcQJcNFcQKcNFcQLcQMcQNcQOcQPcQecQecQQcQRcQScQTcQUcQVcPwcQWcPycNRcOLcQXcQYcQZcRacRbcRccRdbWHcPHbWHaahaahcqAcRfcqAaahaahaahaaabWHcRgceHceHcRhcRibZlcRjbWHbLQcNucqLcRlcqLaahaaaaahaaaaaaaahaahaahaahaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaahaaaaaaaaaaahaaaaaaaaacNFcqmcRmcNFcRncRocRpcRqcRrcRscNFcRtcRucRvcRwcRxcRycRzcFucPucPycNRcRAcRBcRCcRDcREcQTcRFcRGcRHcRIcRIcqQcqUcRIbWHabjaahaaaaaacqAcRMcqAaaaaaaaahaahbWHcRNcROcRPbWHcRQcRRcRPbWHaaaaahcqLcQBcqLaahaaaaahaaaaaaaahaahaaaaaaaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaaaaaaaahaafaagaafaahaafaafaafaahcPlcPlcPlcNFcNFcNFcNFcRTcRUcNFcNFcNFcRVcRWcRXcRwcRYcRZcSacPlcPlcPycNRcNRcNRcPwcPxcPycNRcSbcSccSdcqVaahaahaaaaaaaahabjaahaaacSfcSgcKpcSgcSfaaaaahaaabWHbWHbWHbWHbWHbWHbWHbWHbWHaaaaahaaacqWaaaaahaahaahaahaahaahaaaaaaaahaQxaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaacKqcSkcSlcPlcrgcrycrlcSpcSqcrzcPlcSscStcSucSvcRwcRxcRycRzcSwcPlcSxcNRcSycSzcSAcSBcSCcSzcSDcNRcSEcRIaaaaahaahaahaahaahaahaahcSgcKrcSGcSHcSgaahaahaaaaaaaahaaaaaaaaaaaaaaaaahaaaaaaaahaaacqWaaaaahaahaaaaaaaaaaahaaaaaaaaacrMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaacKqcSJcSlcSKcSLcSLcSLcSMcSNcSOcSPcSQcSRcSQcSScSLcSTcSScSUcSVcFucSWcSXcSYcSXcSXcSXcSXcSXcSYcSXcSZcqVaaaaahaaaaaaaahaaaaaaaaacSgcTacTbcTccTdcpoaahaahaahaahaahaahaahaahaahaahaahaahaahaaacrBcrAcrAcrAcrCaaaaaaaaaaaaaaaaaaaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaacKqcSJcThcSqcTicTjcTicTkcTlcTmcTncTocTpcTqcTqcrDcTqcTqcTscTtcPlcTucTvcTwcTvcTvcTxcTvcTvcTycTzcTAcRIaahaahaaacSgcSgcSgcSgcSgcSgcTBcTCcTDcSgcSgcSgcSgcSgcSgaahaaaaaaaaaaaaaahaaaaaaaahaaaaaaaaaaaaaaacqWaaaaaaaahaaaaaaaaacrMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahaaacKqcTFcSlcSqcTicTicTicTGcPlcPlcPlcPlcFIcrEcRwcTJcRwcrEcTKcPlcPlcqVcTMcqVcTMcqVcqVcqVcTMcTMcqVcqVcRIaaaaahaahcSgcKucKscKIcKCcSgcTXcKQcSgcSgcLbcLdcLccLecSgaahaahaahaaaaaaaahaahcrMaQxcrMaahaahaahaahcqWaahaahaahaahaahaafaQxaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcPlcPlcPlcUdcRwcRwcUecRwcUfcUgcPlcUhcUicUjcUjcUkcUjcUjcGpcPlaaacqVcLncqVcTvcqVaaacqVcTvcLpcqVaaaaaaaaaaahaaacqAcLvcLucLDcLycLUcLPcUrcMacMccMccMdcMccMocqAaahaaaaahaahaahaahaahaaaaahaaaaahaaaaaaaaacrJaaaaaaaahaaaaaaaaaaaacrMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacKqcUwcUxcMrcUzcUzcUAcUkcrLcUCcPlcPlcPlcGqcGqcGqcGqcGqcPlcPlaahcqVcTMcqVcTMcqVaahcqVcTMcTMcqVaahaahaahaahaaacqAcMtcUIcUKcUJcUJcULcUMcUNcUNcUNcUNcUPcMwcqAaahaaaaaaaaaaaaaaaaafaaacrOcrOcrOcrOcrOaahcrQaahcrOcrOcrOcrOcrOaaaaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcPlcKqcPlcPlcKqcKqcKqcKqcPlcUScPlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsgaaaaaaaaaaaaaahaaacSgcMEcMAcMGcUYcMOcMJcMRcWKcMScVbcNxcNmcNycSgaahaaaaaaaaaaaaaaaaQxaahcsRcsQcsQcsQcsQcsScsUcsTcsVcsVcsVcsVcsWaahaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaahaaaaaaaaaaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacSgcPKcPKcPKcPKcPIcNAcOxcOmcPIcPKcPKcPKcPKcSgaahaahaahaahaahaahaQxaahcsXcsXcsXcsXcsXaaacrQaaacsXcsXcsXcsXcsXaahaQxaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacSgcVrcVscVscGrcVucOEcOZcOYcVxcGtcVzcVzcVzcSgaaaaaaaaaaaaaaaaaaaafaaaaahaaaaahaahaahaaacrQaaaaahaaaaahaaaaahaaaaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahcSgcVzcVzcVzcVAcVBcVvcVwcUtcVCcVDcVzcVEcVzcSgaahaaaaaaaaaaaaaaaaQxaaacrOcrOcrOcrOcrOaahcrQaahcrOcrOcrOcrOcrOaahaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacSgcVzcVzcVzcGucVGcPbcVIcPccVKcGNcVscVscVMcSgaahaaaaaaaaaaahaahaQxaahcsRcsQcsQcsQcsQcsScrQcsTcsVcsVcsVcsVcsWaahaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacSgcPKcPKcPKcPKcVNcPdcVPcPecVNcPKcPKcPKcPKcSgaahaaaaaaaaaaaaaahaQxaahcsXcsXcsXcsXcsXaaacrQaahcsXcsXcsXcsXcsXaaaaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacSgcVrcVscVscHkcVucPhcVPcPjcVScHocVzcVzcVzcSgaahaahaaaaaaaaaaahcrMaaaaahaaaaahaaaaahaaacrQaaaaahaaaaahaahaahaahcrMaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacSgcVzcVEcVzcVVcVWcVvcVXcUtcVYcVZcVzcVzcVzcSgaahaaaaaaaaaaaaaaaaQxaaacrOcrOcrOcrOcrOaahcuhaahcrOcrOcrOcrOcrOaahaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahcSgcVzcVzcVzcHpcWccPbcWdcPmcVKcHqcVscVscVMcSgaahaaaaaaaaaaaaaahaQxaahcsRcsQcsQcsQcsQcuicrQcujcsVcsVcsVcsVcsWaahaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacSgcSgcPKcPKcPKcPKcVNcPncVPcPrcVNcPKcPKcPKcPKcSgcSgaahaahaahaahaahaahaahcsXcsXcsXcsXcsXaaacukaaacsXcsXcsXcsXcsXaaaaQxaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacSgcVrcVscVscHrcVucPtcPscVPcPjcOYcPJcHvcWocVzcVzcSgaaaaaaaaaaaaaaaaafaaaaaaaahaahaahaaaaaacqWaahaaaaaaaahaahaaaaaaaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaculaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacSgcVzcVzcVzcWpcWqcUtcUtcWrcUtcUtcWscWtcWucVzcVzcSgaaaaaaaaaaaaaaaaQxaafaQxaQxaQxaaaaaaaaacqWaaaaaaaaaaQxaQxaQxcrMaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacSgcVzcVzcVzcHBcWwcWxcWycWzcWAcWBcWCcHDcWEcVscVMcSgaahaahaaaaahaahaaaaaaaaaaaaaahaaaaQxaahcWFaahaQxaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacSgcSgcSgcSgcSgcxxcWHcWIcWJcWKcWLcxycSgcSgcSgcSgcSgaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaaaaahaaaaQxaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaacSgcWNcWOcWPcWQcWRcWScWTcWUcWVcWWcWXcWYcWZcSgaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaQxaQxaQxaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaacSgcSgcXacSgcXbcuZcuOcXecvacvbcXbcSgcWYcSgcSgaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacvgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahcSgcXacSgcSgcXhcXicVzcXjcXhcSgcSgcWYcSgaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacSgcXacSgcVzcVzcXicVzcVzcVzcXkcSgcWYcSgaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSgcXacSgcXmcVzcXncVzcXocVzcXpcSgcWYcSgaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcSgcXacSgcXqcVzcVzcXrcVzcXscXtcSgcWYcSgaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacSgcXacSgcSgcSgcSgcSgcSgcSgcSgcSgcWYcSgaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSgcXucXvcXvcXvcXwcXxcWYcWYcWYcWYcWYcSgaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacSgcSgcSgcSgcSgcqAcXzcqAcSgcSgcSgcSgcSgaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaahbEXbFabFabFabFabFfbEzbFtbFrbFrbFrbFrbFEaahaQxaaaaahaahaQxaaacEycFycFzcFycFAcFycEycEyckScEyckScEycEyaahaahbWHciRczkcBPcBPcBPcBPcBPcBPcBPcFBcFCcFDcFEcFFcFGcFHcEKclicFJclgcEMclgcFKcFLcFMcEKcFNckycdCcstctMcIlcIAcIscILcIPcIMcJccIQcEZcwUczPcwWcBHcBHcBHcBHcBHcBHcFWcFVcFXcFYcFZcGacBHbWHcCwbWHcCvcGbcGccGdcGecGfatJatJaahaahaahaahaahaahaahaaaaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahaahcGgcGhcGgcFwcGicFwcGjcGkcCCaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaahbJebJebJebJebJeaaabSbaaabJebJebJebJebJeaaacrMaahaahaaaaQxaahcEycGlcGmcGncGocGlclHcAOcAFcGscAPcBwcEyaaaaaabWHbWHcGvcGwcGwcGxcGwcGycGzcIDcGAcGBcGCcGDcGEcGFcGGcGHcGIcGJcGIcGIcGKcGLcGMclMcGOcGPcGQcCecIOcINcFOcIRcJecJdcJdcJdcJwcJtcEZcdHczPcGZcBHcHacHbcHccHdcHecHfcHecHgcHhcHicBHcoUcHjbZkcddcCvcCvcCvcCvcCvbEMagqatJaahaaaaaaaaaaaaaaaaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaahaahcjScjScHlcFwcFwcFwcHmcjScjSaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaaaaaaaahaahaahaaaaaacfraahaaaaaaaahaahaaaaaaaQxaaaaaaaaaaafaaacEycHncmccmecmdcHncHncBxcHscHtcHucBKcEyaaaaaaaaacoUcoUcoUcoUcoUbWHcHwcBPcBPcHxcHycHzcBPcHAcCkcHCcEKcmfcEMclgcEMclgcHEcHFcHGcHHcHIcHJcHKcJjcGScGScJpcJEcJxcHOcGUcJKcJHcEZcHRcHScHTcjWcHacHbcHUcHUcHVcHWcHXcHYcFYcHZcBHcaQcIacbOceHcIbbWHaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcEtcjScIccmgcIecjScEtaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrMaaaaaaaaaaaaaaaaaaaaacfraaaaaaaaaaaaaahaaaaaacrMaaaaaaaaaaQxaahcEycCDcmhcIicIjcIkcmjcmxcIncIocIpcIqcIrcnfcnfcnfcIrcIvcIwcIxcEycJzcIzcBPcJLcIBcICcvjbWHbWHbWHbWHcEKclgcEMclgcIEclgcIFcIGcIHcEKcIIcIJcdCcjncGScJDcHNcJMcHOcHOcJOcKpcKocEZcKrcITcIUcBHcHacHbcHUcIVcHecIWcHecIXcIYcIZcBHcJaceHcbOceHcJbbWHaahaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcjScCCcnFcCCcjSaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaafaQxaQxaQxaaaaaaaaacfraaaaaaaaaaQxaQxaQxcrMaQxaahaahaaaaQxaaackScCPcJfcJgcJhcJicnGcJkcJlcJmcJncJocnJcJqcJrcJscnKcJucJgcJvcnMcJAcJycnNcJAcJBcJCcvncvkcvqcvocvtcEKcEKcEKcEKcEKcEKcEKcJFcEKcEKbWHcJGcdCcjncGScIKcHNcHOcGUcHOcKscJJcKucKIcKCcJNcJIcDscJPcJPcJPcJPcJPcJQcJPcJRcKJcJTcBHceHceHcJUceHbWHbWHbWHaahaahaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcCCcjScCCaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaaaaaaaaaQxaahczcaahaQxaaaaaaaahaaaaaaaahaaaaahaahaahaaacEycDBcJWcJXcJYcJZcnOcKbcKccKdcKecKfcEyckSckSckScEycKjcKkcKlcEycoacKncBPcDCcDKcDDcDObWHcwucwhcwvbWHcKvckacKwckbckacKxcKycAJckecKzcKAcKBcCZcGScovcKDcKEcKEcKEcKFcKGcKHcLbcKQcKKcKLcKMcKNcKOcKPcoHcKRcKScKTcKUcKVcKWcKXckdckdcKYcKZcLacDPbWHbWHbWHabjaaaaahaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaQxaaaaahaaaaQxaaaaaaaahaahaahaahaaaaaaaaaaahaahcEycpccoXcHncpdcpccLfcLgcLhcLicLjcLkcEycLlaaaaaacoUcoUcoUcoUcoUbWHcLmcBPcBPcBPcBPcBPbWHcJScKtcwxbWHcLqbWHbWHbWHbWHbWHbWHbWHbWHcxWcLrcLscLtcDQcpecLwcLxcpfcLdcLccGUcLecLvcLucLCcJVcLEcLFcLGcLHcLIcLJcLKcKTciPcLLbWHbWHbWHbWHbWHcLocLMcLNciLcLOciLcpgaahaahaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaQxaQxaQxaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacEycLQcLRcHncLRcLScLTcHncHncpucHncHncEyaahaahaahbWHcgscdecDWcLVcLWcLXckdcLycLZcEscMbbWHcwQcwCcxtcxmcMebWHcMfcMgcMhbWHcMicMjcMkbWHcMlcMmcMncGScpAcMpcMqcpBcLAcLzcGUcLBcGScMucMvcLDcLEcMxcMycMzcpCcMBcMCcKTceHcMDbWHcEwcMFcEzbWHcMHcMIcEAbWHbWHbWHabjaaaaahaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaacEycMKcMLcHncMMcMNcLTcEBcMPcMQcEDcELcEyaaaaahaaabWHcMTcMUcMVcMWcMXcMYcMZcMYcMYcNacMDbWHbWHbWHbWHbWHcLqbWHcNbcNccNdcNecNfcNgcNhcNicNjcNkcNlcGScGScGScGScGScKacGScKgcoUcoUcLPcLUcjAcKTcKTcKTcKTcKTcKTcKTcKTceHcNpcNqcNrcNscNtcNucNucNvcNwcNuaaaaaaaaaaaaaahaahaaaaaaaahaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaaacEycFqcERcHncERcFqcNzcFrcNBcNCcNDcNEckSaaaaaacNFbWHcNGbWHbWHbWHcNHbWHbWHbWHbWHcNIcNJcNKcNLcNMcNKcNNcNOcNPcNQcNRcNScNTcNUcNVcNWcNWcNXcNYcNZcOacObcOcckdckdcOdckdcLYckecOfcMacMdcMccOfcOjckdckdcOkcKXckdckdckdcOlbWHckVcFscOncNucOocOpcOqcNuaahaahaahaahaahaahaahaahaahaahaahaahaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcEycEyckScEyckScEycOrcOscOtcOucOvcOwcEyaahaahcNFcpEcOycNFcOzcOAcOBcOCcODcMobWHbWHbWHbWHcOFbWHbWHbWHbWHbWHcMscNRcOHcNRcOIcOJcOKcNRcOLcOMcMtbWHbWHbWHbWHbWHbWHczacOOcdebWHcMwcMEcMAbWHcgscdecOSbWHbWHbWHbWHbWHbWHbWHbWHbWHcrFcNucOTcOUcOVcNuaaaaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaahaahaahcOWcOXcKicKhcPacKmcpOcpNcpPcEyaaaaaacNFcPfcPgcNFcpTcPicqgcPkcNFcNFcPlcqhcqicPocPpcPqcMGcFtcFucPucPvcNRcOHcNRcPwcPxcPycNRcPzcPAcPBcPCcPDcPEcPFcPGbWHcPHbWHbWHbWHcMJcMRcMObWHbWHbWHbLQbWHcPLcPMcPNbWHcPOcPPcPQbWHcqqcNucPRcPScPTcNuaaaaahaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaaaaahaaaaaacPUaahbzXcEycEycEycEycEycEycEyaaaaaacNFcqmcPWcNFcqxcqncqycQacNFcQbcQccQdcQecQfcQgcQhcQicQicQjcQkcQlcQmcQncNRcPwcQocPycNRcOLcOMcPwcqzcQqcNRcQrcQsbWHcQtbWHaahaaacMScNmcMSaaaaaaaahaaabWHcjEceHceHcQwcgncQxcgncQycQzcNucqLcQBcqLcNuaaaaahaaaaahaahaaaaaaaahcrMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaahaahaahaaaaaaaaaaahaahaahaaaaaaaaaaahaaaaaaaaacNFcQDcQEcQFcQGcQHcQIcQJcNFcQKcNFcQLcQMcQNcQOcQPcQecQecQQcQRcQScQTcQUcQVcPwcQWcPycNRcOLcQXcQYcQZcRacRbcRccRdbWHcPHbWHaahaahcMScNncMSaahaahaahaaabWHcRgceHceHcRhcRibZlcRjbWHbLQcNucqLcRlcqLaahaaaaahaaaaaaaahaahaahaahaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaahaaaaaaaaaaahaaaaaaaaacNFcqmcRmcNFcRncRocRpcRqcRrcRscNFcRtcRucRvcRwcRxcRycRzcFucPucPycNRcRAcRBcRCcRDcREcQTcRFcRGcRHcRIcRIcqQcqUcRIbWHabjaahaaaaaacMScNocMSaaaaaaaahaahbWHcRNcROcRPbWHcRQcRRcRPbWHaaaaahcqLcQBcqLaahaaaaahaaaaaaaahaahaaaaaaaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaaaaaaaahaafaagaafaahaafaafaafaahcPlcPlcPlcNFcNFcNFcNFcRTcRUcNFcNFcNFcRVcRWcRXcRwcRYcRZcSacPlcPlcPycNRcNRcNRcPwcPxcPycNRcSbcSccSdcqVaahaahaaaaaaaahabjaahaaacNycNxcNAcNxcOeaaaaahaaabWHbWHbWHbWHbWHbWHbWHbWHbWHaaaaahaaacqWaaaaahaahaahaahaahaahaaaaaaaahaQxaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaacKqcSkcSlcPlcrgcrycrlcSpcSqcrzcPlcSscStcSucSvcRwcRxcRycRzcSwcPlcOgcNRcSycSzcSAcSBcSCcSzcSDcNRcOhcRIaaaaahaahaahaahaahaahaahcNxcOicOxcOmcNxaahaahaaaaaaaahaaaaaaaaaaaaaaaaahaaaaaaaahaaacqWaaaaahaahaaaaaaaaaaahaaaaaaaaacrMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaacKqcSJcSlcSKcSLcSLcSLcSMcSNcSOcOEcSQcSRcSQcSScSLcSTcSScSUcSVcFucSWcSXcSYcSXcSXcSXcSXcSXcSYcSXcSZcqVaaaaahaaaaaaaahaaaaaaaaacNxcOGcOPcONcORcOQaahaahaahaahaahaahaahaahaahaahaahaahaahaaacrBcrAcrAcrAcrCaaaaaaaaaaaaaaaaaaaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaacKqcSJcThcSqcTicTjcTicTkcTlcTmcOYcTocTpcTqcTqcrDcTqcTqcTscTtcPlcTucTvcTwcTvcTvcTxcTvcTvcTycTzcTAcRIaahaahaaacNxcNxcNxcNxcNxcNxcOZcPccPbcNxcNxcNxcNxcNxcNxaaaaahaaaaaaaaaaahaaaaaaaahaaaaaaaaaaaaaaacqWaaaaaaaahaaaaaaaaacrMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaahaaacKqcTFcSlcSqcTicTicTicTGcPlcPlcPlcPlcFIcrEcRwcTJcRwcrEcTKcPlcPlcqVcTMcqVcTMcqVcqVcqVcTMcTMcqVcqVcRIaaaaahaahcNxcPecPdcPjcPhcNxcPmcPncNxcNxcPrcPtcPscPIcNxaahaahaahaahaaaaahaahcrMaQxcrMaahaahaahaahcqWaahaahaahaahaahaafaQxaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcPlcPlcPlcUdcRwcRwcUecRwcUfcUgcPlcUhcUicUjcUjcUkcUjcUjcGpcPlaaacqVcLncqVcTvcqVaaacqVcTvcLpcqVaaaaaaaaaaahaaacMScPKcPJcPXcPVcPVcPYcQpcPZcQucQucQAcQvcQCcMSaaaaahaaaaahaahaahaahaaaaahaaaaahaaaaaaaaacrJaaaaaaaahaaaaaaaaaaaacrMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacKqcUwcUxcMrcUzcUzcUAcUkcrLcUCcPlcPlcPlcGqcGqcGqcGqcGqcPlcPlaahcqVcTMcqVcTMcqVaahcqVcTMcTMcqVaahaahaahaahaaacMScRfcRecRJcRkcRkcRKcRMcRLcRLcRLcRLcRScSecMSaaaaahaaaaaaaaaaaaaafaaacrOcrOcrOcrOcrOaahcrQaahcrOcrOcrOcrOcrOaaaaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcPlcKqcPlcPlcKqcKqcKqcKqcPlcUScPlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsgaaaaaaaaaaaaaahaaacNxcSgcSfcSicShcSmcSjcSocSncSxcSrcSFcSEcSGcNxaaaaahaaaaaaaaaaaaaQxaahcsRcsQcsQcsQcsQcsScsUcsTcsVcsVcsVcsVcsWaahaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaahaaaaaaaaaaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacNxcSHcSHcSHcSHcMJcSIcTacSPcMJcSHcSHcSHcSHcNxaahaahaahaahaahaahaQxaahcsXcsXcsXcsXcsXaaacrQaaacsXcsXcsXcsXcsXaahaQxaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahaahaahaahaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacNxcTccTbcTbcTdcTfcTecTncTgcTBcTrcTCcTCcTCcNxaaaaahaaaaaaaaaaaaaafaaaaahaaaaahaahaahaaacrQaaaaahaaaaahaaaaahaaaaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahcNxcTCcTCcTCcTDcTHcTEcTLcTIcTOcTNcTCcTCcTCcNxaaaaahaaaaaaaaaaaaaQxaaacrOcrOcrOcrOcrOaahcrQaahcrOcrOcrOcrOcrOaahaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacNxcTPcTCcTCcTQcTScTRcTUcTTcTWcTVcTbcTbcTXcNxaaaaahaahaaaaahaahaQxaahcsRcsQcsQcsQcsQcsScrQcsTcsVcsVcsVcsVcsWaahaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacNxcSHcSHcSHcSHcTZcTYcUbcUacTZcSHcSHcSHcSHcNxaaaaahaaaaaaaaaaahaQxaahcsXcsXcsXcsXcsXaaacrQaahcsXcsXcsXcsXcsXaaaaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacNxcTccTbcTbcUccTfcUlcUbcUmcUocUncTCcTCcTPcNxaahaahaaaaaaaaaaahcrMaaaaahaaaaahaaaaahaaacrQaaaaahaaaaahaahaahaahcrMaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacNxcTCcTCcTCcUpcUqcTEcUrcTIcUtcUscTCcTCcTCcNxaaaaahaahaaaaaaaaaaQxaaacrOcrOcrOcrOcrOaahcuhaahcrOcrOcrOcrOcrOaahaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahcNxcTPcTCcTCcUucUvcTRcUBcUycTWcUDcTbcTbcTXcNxaaaaaaaahaaaaaaaahaQxaahcsRcsQcsQcsQcsQcuicrQcujcsVcsVcsVcsVcsWaahaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacNxcNxcSHcSHcSHcSHcTZcUEcUbcUFcTZcSHcSHcSHcSHcNxcNxaaaaahaahaahaahaahaahcsXcsXcsXcsXcsXaaacukaaacsXcsXcsXcsXcsXaaaaQxaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacNxcTccTbcTbcUGcTfcUIcUHcUbcUmcTgcUJcULcUKcTCcTCcNxaahaahaaaaaaaaaaafaaaaaaaahaahaahaaaaaacqWaahaaaaaaaahaahaaaaaaaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaculaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacNxcTCcTCcTCcUNcUMcTIcTIcUOcTIcTIcUPcURcUQcTCcTCcNxaaaaahaaaaaaaaaaQxaafaQxaQxaQxaaaaaaaaacqWaaaaaaaaaaQxaQxaQxcrMaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacNxcTCcTCcTCcUUcUTcUWcUVcUYcUXcVacUZcVccVbcTbcTXcNxaaaaahaaaaahaahaaaaaaaaaaaaaahaaaaQxaahcWFaahaQxaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacNxcNxcNxcNxcNxcVdcVfcVecVgcSncVicVhcNxcNxcNxcNxcNxaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaaaaahaaaaQxaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaacNxcVkcVjcVmcVlcVocVncVqcVpcVscVrcVucVtcVvcNxaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaQxaQxaQxaQxaQxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaacNxcNxcVwcNxcVxcVzcVycVBcVAcVCcVxcNxcVtcNxcNxaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacvgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaahcNxcVwcNxcNxcVEcVDcTCcVFcVEcNxcNxcVtcNxaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacNxcVwcNxcTCcTCcVDcTCcTCcTCcVGcNxcVtcNxaahaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNxcVwcNxcVHcTCcVIcTCcVJcTCcVKcNxcVtcNxaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahcNxcVwcNxcVLcTCcTCcVMcTCcVOcVNcNxcVtcNxaahaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacNxcVwcNxcNxcNxcNxcNxcNxcNxcNxcNxcVtcNxaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNxcVPcVQcVQcVQcVRcVScVtcVtcVtcVtcVtcNxaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaacNxcNxcNxcNxcNxcMScVTcMScNxcNxcNxcNxcNxaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaahaaaaahaahaaaaaacXAaaaaahaahaahaahaahaahaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaahaaaaaaaaaaaaaaacXBaaaaaaaahaaaaahaaaaahaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaaaaaaaaaaahaaaaaaaaaaaaaaaaahaaaaaaaaaaagaafaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaagaagaahaaaaaaaaaaaaaaaaahaagaafaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaagaafaagaaaaaaaahaagaagaagaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaagaafaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaagaagaaaaahaaaaaaaaaaaaaahaagaafaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaagaaaaaaaahaagaagaagaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/MetaStation/z2.dmm b/_maps/map_files/MetaStation/z2.dmm index e9ab0f0813f..ed87bda5846 100644 --- a/_maps/map_files/MetaStation/z2.dmm +++ b/_maps/map_files/MetaStation/z2.dmm @@ -882,6 +882,36 @@ "qX" = (/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/holding) "qY" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/centcom/holding) "qZ" = (/obj/effect/landmark{name = "Holding Facility"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/holding) +"ra" = (/turf/unsimulated/wall/vault,/area/abductor_ship) +"rb" = (/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rc" = (/obj/effect/landmark/abductor/console,/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rd" = (/obj/effect/landmark/abductor/console{team = 4},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"re" = (/obj/structure/table,/obj/item/weapon/circular_saw,/obj/item/weapon/surgicaldrill,/obj/item/weapon/paper/abductor,/obj/item/weapon/scalpel/alien,/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rf" = (/obj/effect/landmark/abductor/scientist,/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rg" = (/obj/structure/table,/obj/item/weapon/retractor/alien,/obj/item/weapon/hemostat/alien,/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rh" = (/obj/effect/landmark/abductor/agent,/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"ri" = (/obj/structure/optable,/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rj" = (/obj/machinery/abductor/gland_dispenser,/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rk" = (/obj/effect/landmark/abductor/scientist{team = 4},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rl" = (/obj/effect/landmark/abductor/agent{team = 4},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rm" = (/obj/structure/table,/obj/item/weapon/cautery,/obj/item/weapon/surgical_drapes,/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rn" = (/obj/machinery/abductor/experiment{team = 1},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"ro" = (/obj/effect/landmark/abductor/console{team = 2},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rp" = (/obj/effect/landmark/abductor/console{team = 3},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rq" = (/obj/effect/landmark/abductor/scientist{team = 2},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rr" = (/obj/effect/landmark/abductor/agent{team = 2},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rs" = (/obj/effect/landmark/abductor/scientist{team = 3},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rt" = (/obj/effect/landmark/abductor/agent{team = 3},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"ru" = (/obj/machinery/abductor/pad{team = 1},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rv" = (/obj/machinery/abductor/experiment{team = 4},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rw" = (/obj/machinery/abductor/pad{team = 4},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rx" = (/obj/structure/rack,/obj/item/weapon/storage/box/handcuffs,/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"ry" = (/obj/structure/rack,/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rz" = (/obj/machinery/computer/security{name = "Human Observation Console"; network = list("SS13","Abductor")},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rA" = (/obj/machinery/abductor/experiment{team = 2},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rB" = (/obj/machinery/abductor/pad{team = 2},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rC" = (/obj/machinery/abductor/experiment{team = 3},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"rD" = (/obj/machinery/abductor/pad{team = 3},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababadaeaeaeaeaeafaeaeaeaeaeafaeaeaeaeaeafaeaeaeaeaeag @@ -1097,24 +1127,24 @@ abababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababrararararaabababrararararaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababrarararararnrcruraraabrararvrdrwrararararaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababrarxryrarbrbrbrbreraabrarerbrbrbrbrarxryraababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababrarbrbrarjrfrzrhrgraabrargrkrzrlrjrarbrbraababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababrarbrbrbrbrbrbrbrmraabrarmrbrbrbrbrbrbrbraababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababrarararararbrirbraraabrararbrirbrararararaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababrararararaabababrararararaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababrararararaabababrararararaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababrararArorBraraabrararCrprDraraabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababrarerbrbrbrbraabrarerbrbrbrbraabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababrargrqrzrrrjraabrargrsrzrtrjraabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababrarmrbrbrbrbraabrarmrbrbrbrbraabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababrararbrirbraraabrararbrirbraraabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababrarararbraabababrarararbraababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababrarxrbrbraabababrarxrbrbraababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababraryrbrbraabababraryrbrbraababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababrararararaabababrararararaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab @@ -1140,3 +1170,4 @@ abababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab "} + diff --git a/_maps/map_files/MetaStation/z4.dmm b/_maps/map_files/MetaStation/z4.dmm index 2f3c901147a..8f1e302b0f2 100644 --- a/_maps/map_files/MetaStation/z4.dmm +++ b/_maps/map_files/MetaStation/z4.dmm @@ -744,7 +744,7 @@ "op" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar) "oq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar) "or" = (/turf/simulated/floor/plasteel/airless{icon_state = "damaged4"},/area/derelict/se_solar) -"os" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar) +"os" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/module/power_control,/obj/item/weapon/module/power_control,/obj/item/weapon/module/power_control,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar) "ot" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/airlock_painter,/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar) "ou" = (/obj/docking_port/stationary{dheight = 0; dir = 2; dwidth = 11; height = 15; id = "whiteship_z4"; name = "KC13: Space, Station-Aft"; width = 27},/turf/space,/area/space) "ov" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plasteel/airless,/area/derelict/se_solar) diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm index 6b5ff650249..0a65abb9367 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -1987,7 +1987,7 @@ "aMk" = (/obj/machinery/door/window{dir = 4; name = "Theatre Stage"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/theatre) "aMl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aMm" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aMn" = (/obj/machinery/computer/slot_machine,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"aMn" = (/obj/machinery/computer/slot_machine,/obj/machinery/light/small{dir = 4},/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aMo" = (/obj/structure/closet/secure_closet/bar{req_access_txt = "25"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/wood,/area/crew_quarters/bar) "aMp" = (/obj/structure/closet/gmcloset,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/wood,/area/crew_quarters/bar) "aMq" = (/obj/structure/kitchenspike,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) @@ -2037,7 +2037,7 @@ "aNi" = (/obj/structure/window/reinforced,/turf/simulated/floor/wood,/area/crew_quarters/theatre) "aNj" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/wood,/area/crew_quarters/theatre) "aNk" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/theatre) -"aNl" = (/obj/machinery/status_display{density = 0; layer = 3; pixel_x = 32; pixel_y = 0},/obj/machinery/computer/slot_machine,/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"aNl" = (/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aNm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/crew_quarters/bar) "aNn" = (/obj/machinery/door/airlock{name = "Bar Storage"; req_access_txt = "25"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "wood"},/area/crew_quarters/bar) "aNo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/crew_quarters/bar) @@ -2108,9 +2108,9 @@ "aOB" = (/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aOC" = (/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aOD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aOE" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"aOE" = (/obj/structure/table/wood/poker,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aOF" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aOG" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/chem_dispenser/drinks/beer,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"aOG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aOH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/crew_quarters/kitchen) "aOI" = (/obj/machinery/door/airlock{name = "Kitchen cold room"; req_access_txt = "28"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "aOJ" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "green"},/area/hydroponics) @@ -2175,9 +2175,9 @@ "aPQ" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/wrench,/obj/item/device/assembly/timer,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/turf/simulated/floor/plasteel,/area/bridge) "aPR" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "aPS" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aPT" = (/obj/structure/stool/bed/chair,/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aPU" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aPV" = (/obj/structure/table/reinforced,/obj/structure/sign/securearea{desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; pixel_x = 4; pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"aPT" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = 29},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"aPU" = (/obj/machinery/disposal,/obj/structure/sign/securearea{desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; pixel_x = 4; pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"aPV" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/chem_dispenser/drinks/beer,/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aPW" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aPX" = (/obj/machinery/vending/boozeomat,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aPY" = (/obj/machinery/vending/dinnerware,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) @@ -2242,11 +2242,11 @@ "aRf" = (/obj/machinery/atmospherics/pipe/simple/general/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/prison) "aRg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aRh" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 1; icon_state = "comfychair"},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/secondary/entry) -"aRi" = (/obj/structure/table,/obj/item/weapon/kitchen/utensil/fork,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aRj" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aRk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aRl" = (/obj/structure/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aRm" = (/obj/structure/table/reinforced,/obj/item/weapon/lighter/zippo,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"aRi" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"aRj" = (/obj/structure/table/wood/poker,/obj/item/toy/cards/deck,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"aRk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"aRl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/table/wood/poker,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"aRm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aRn" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aRo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/mob/living/carbon/monkey{name = "Pun Pun"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aRp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) @@ -2267,7 +2267,7 @@ "aRE" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/wood,/area/library) "aRF" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/ai_monitored/security/armory) "aRG" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main) -"aRH" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"aRH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/table/wood/poker,/obj/item/stack/spacecash/c100{amount = 5},/obj/item/stack/spacecash/c10{amount = 10},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aRI" = (/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "chapel"},/area/chapel/main) "aRJ" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel{dir = 8; icon_state = "chapel"},/area/chapel/main) "aRK" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "chapel"},/area/chapel/main) @@ -2318,11 +2318,11 @@ "aSD" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plasteel{dir = 10; icon_state = "brown"},/area/bridge) "aSE" = (/obj/machinery/computer/ordercomp,/turf/simulated/floor/plasteel{dir = 2; icon_state = "brown"},/area/bridge) "aSF" = (/obj/machinery/computer/security/mining,/turf/simulated/floor/plasteel{dir = 6; icon_state = "brown"},/area/bridge) -"aSG" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera{c_tag = "Bar West"; dir = 4; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"aSG" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/camera{c_tag = "Bar West"; dir = 4; network = list("SS13")},/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aSH" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "chapel"},/area/chapel/main) -"aSI" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (WEST)"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aSJ" = (/obj/structure/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aSK" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"aSI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table/reinforced,/obj/item/clothing/head/that{throwforce = 1; throwing = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"aSJ" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (WEST)"; dir = 8},/obj/structure/stool,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"aSK" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aSL" = (/obj/effect/landmark/start{name = "Bartender"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aSM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aSN" = (/obj/machinery/requests_console{department = "Bar"; departmentType = 2; pixel_x = 30; pixel_y = 0},/obj/machinery/camera{c_tag = "Bar"; dir = 8; network = list("SS13")},/obj/structure/table,/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/obj/machinery/chem_dispenser/drinks,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) @@ -2391,9 +2391,9 @@ "aTY" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{dir = 9; icon_state = "blue"},/area/hallway/primary/central) "aTZ" = (/obj/machinery/camera{c_tag = "Bridge East Entrance"; dir = 2},/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/hallway/primary/central) "aUa" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aUb" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aUc" = (/obj/structure/table/reinforced,/obj/item/clothing/head/that{throwforce = 1; throwing = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aUd" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/snacks/pie,/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"aUb" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"aUc" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/item/weapon/reagent_containers/food/snacks/pie/cream,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) +"aUd" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -31},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aUe" = (/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) "aUf" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) "aUg" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/enzyme{layer = 5},/obj/item/stack/packageWrap,/turf/simulated/floor/plasteel{icon_state = "cafeteria"},/area/crew_quarters/kitchen) @@ -2481,12 +2481,9 @@ "aVK" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "aVL" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "aVM" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/hallway/primary/central) -"aVN" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -31},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aVO" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"aVN" = (/obj/structure/table/reinforced,/obj/item/weapon/lighter/zippo,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) +"aVO" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aVP" = (/obj/structure/table,/obj/item/weapon/kitchen/utensil/fork,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aVQ" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aVR" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) -"aVS" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aVT" = (/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aVU" = (/obj/machinery/door/window/southright{name = "Bar Door"; req_access_txt = "0"; req_one_access_txt = "25;28"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) "aVV" = (/obj/structure/table/reinforced,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/obj/item/weapon/book/manual/barman_recipes,/obj/item/weapon/reagent_containers/glass/rag,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/crew_quarters/bar) @@ -6460,7 +6457,7 @@ "cuA" = (/obj/structure/sign/directions/medical{dir = 4; icon_state = "direction_med"; pixel_x = 32; pixel_y = -24; tag = "icon-direction_med (EAST)"},/obj/structure/sign/directions/science{dir = 4; icon_state = "direction_sci"; pixel_x = 32; pixel_y = -32; tag = "icon-direction_sci (EAST)"},/obj/structure/sign/directions/engineering{pixel_x = 32; pixel_y = -40},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "cuB" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sign/directions/engineering{pixel_x = -32; pixel_y = -40},/obj/structure/sign/directions/medical{dir = 4; icon_state = "direction_med"; pixel_x = -32; pixel_y = -24; tag = "icon-direction_med (EAST)"},/obj/structure/sign/directions/evac{dir = 4; icon_state = "direction_evac"; pixel_x = -32; pixel_y = -32; tag = "icon-direction_evac (EAST)"},/turf/simulated/floor/plasteel,/area/hallway/primary/central) "cuD" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/camera{c_tag = "Custodial Closet"},/obj/structure/stool/bed/chair/janicart,/turf/simulated/floor/plasteel,/area/janitor) - + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -6577,14 +6574,14 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanTaekaekaCXaCYalQalQalQalQalQalQaIMalQaDgaINavMaBGaxaaIOaIPaIPaIPaIPaIPaIPaIPaIQaxaayuaIRaISaIRayuayuaITaIUaIVaADaADaADaADaIVaIWaIXaAEaIYaIZaIZaJaaJbaJaaIZaIZaJcaxoaJdaxvaJeaxvaJfaJfaJgaxvaJhaJiaxKaxKaxKaAgaDHaAgaxKaxKaxKaHUaHUaHUaJjaHYaHYaHYaHYaHYaJkaHUaHUaHUaIcaJlaIeaJmayZayZayZayZayZayZayZayZayZayZaJnaJoaJpaJqaJraJsaJtaJuaIkaJvaImaJwaJxaJwaIpaJyaJzaIpaJAaIpaJBaJCaJDaJEaJFaJFaJFaJGaJHaJIaGWaGXaEfaJJaIwaJKaIyaIzaJLaEfaJMaJNaJOaJPaJQaJRaJSaJTaJUaJVaJWaCTaHlaHmaFYaaaaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanTaekaJXaekaeZaeZaeZaeZaekaBEaJYafOaqpaJZaxaaKaaHbaKbaKcaKbaKdarpaKeaKfaxaaKgaKhaKiaKiaKjaKiaKkaKlaKiaKiaKiaKiaKiaKiaKiaKmaKnaKoaKpaKqaKqaKraKsaKqaKqaKqaKtaKuaKvaKraKqaKqaKqaKwaGyaKxaHYaKyaKzaHZaIaaIaaIaaHXaHYaHYaKAaHYaKBaKCaKDaKEaKFaKGaKHaKIaHYaHYaKAaKJaKKaKLaKMaKNaKOaKPaKQaHYaKRaHYaBdaKSaKTaKUaJoaKVaKWaKXaKYaKZaLaaIkaLbaLcaLdaLeaLfaIpaLgaJzaLhaLiaIpaIpaLjaLkaLlaLmaLnaLoaLpaLqaLraGWaGXaEfaLsaLtaLuaLvaLwaLxaEfaLyaLzaEiaLAaLAaLAaLAaEiaLBaCRaJWaCTaBDaBDaBDaLCaLCaLCaLDaLDaLDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMaylavMavMavMavMavMavMaylavMaaaaqpaAuaLEaKaaLFaLGaLHaLHaLIarpaLJaKfaLKaLLaKhaLMaLNaLOaLPaLQaLRaKiaKiaKiaKiaKiaKiaKiaKmaKiaKhaKiaKiaKiaLSaLTaLUaLUaLUaLUaLVaLUaLWaLUaLUaLXaKhaGyaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaHYaKAaHYaLYaLZaMaaMbaMcaMdaMeaMfaHYaHYaKAaHYaHYaHYaHYaHYaHYaHYaHYaHYaMgaHYaBdaKUaKUaKUaMhaMiaMjaMkaMlaMmaMnaIkaMoaImaMpaIkaIkaIpaMqaJzaMraLiaMsaIpaGWaGWaGWaGWaGWaGWaMtaMuaMvaGWaGXaEfaMwaGZaMxaMyaGZaMzaEfaEiaEiaEiaEiaEiaEiaMAaEiaEjaEjaEkaCTaMCaMDaBDaMEaMFaMGaMHaMIaLDaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaafaafaafaztaqpavMatBavMaNTaNUaNVaNWavMatBavMavMaqpaBGaxaaKaaMJaMKaLHaLHaLIarpaMLaKfaxaaLLaKhaKiaMMaMNaMNaMNaMOaMPaMQaMNaMRaMNaMNaMNaMSaMNaMTaMNaMNaMNaMUaMVaMWaMXaMXaMYaMZaNaaNbaNcaKicrraKhaGyaHYaNeaHYaNfaNfaNfaNfaNfaNfaNfaNfaNgaNfaNfaNfaNfaNfaNfaNfaNfaNfaNfaNfaNhaNfaNfaNfaNfaNfaNfaNfaNfaHYaHYaHYaBdaNiaNiaNiaNiaNiaNjaNkaJsaKZaNlaIkaNmaNnaNoaIkaNpaIpaNqaNraNsaLiaNtaIpaGWaNuaNvaNwaNxaNwaNyaNzaNAaGWaGXaEfaNBaNBaNCaNDaNEaNEbqoaEfaNGaNHaNIaBDaNJaNKaNLaEjaEjaNMaNNaBDaNOaBDaNPaNQaNRaNRaNSaLDaLDaLDaLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafarpavMaylavMaBGaxaaxaaMBavMaylavMaNXaNYaNZaxaaKaaOaaRhaKcaOaaKdarpaObaKfaxaaOcaOcaOcaOdaOcaOeaOeaOeaOeaOeaOfaOgaOeaOhaOeaOeaOeaOiaOjaOkaOjaOlaOmaOnaKiaKiaOoaOpaOqaOraKlaKiaNdaOsaOsaHYaHYaHZaHUaHUaHUaHUaHUaHUaHUaHUaOtbUPbUObUQbUObUObUObVMbUObWHbUObXtaOtaHUaHUaHUaHUaHUaHUaHUaHUaHXaHYaHYaIkaOAaOBaOCaOCaOCaOCaOCaJsaODaOCaIkaOEaOFaOGaIpaIpaIpaOHaOIaIpaIpaIpaIpaIpaNwaOJaOKaOKaOKaOLaOMaNwaGWaGXaEfaONaGZaNCaNDaGZaGZaOOaEfaOPaOQaORaBDaEjaOSaOTaOUaOUaOVaOWaOXaOYaBDaOZaPaaNRaPbaNRaPcaPdaPdaPcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMaPeaxaavNaNZaxaaxaaPfavNaxaaPeaNZaxaaxaaxaaPgaPhaPhaPhaPhaPhaPhaPhaPiaxaaOcaPjaOcaPkaOeaPlaPmaPnaPoaPpaPmaPqaPraPsaPtaPuaPvaOiaPwaPxaPyaOlaPzaOnaOnaPAaOnaOnaOsaPBaPCaPDaPEaOsaOsaPFaHYaHZaHUaaaaaaaaaaaaaaaaaaaaaaOtaPGaPHaPIaPJaPKaPLaPMaPNaPOaPPaPQaOtaaaaaaaaaaaaaaaaaaaaaaHUaHXaHYaPRaIkaPSaOCaOCaOCaOCaOCaUaaJsaODaPUaPVaJsaPWaPXaIpaPYaPZaQaaQbaQcaQdaQeaQfaIpaNwaQgaQhaQhaQhaQiaQjaNwaGWaQkaEfaQlaQlaNCaNDaQmaQmaQnaEfaEfaQoaEfaBDaQpaNKaNLaQqaQqaNMaNNaBDaBDaBDaLDaQraQsaQtaLDaLDaLDaLDaQuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaavMaQvaQwaQwaQwaQwaQwaQwaQwaQwaQvaQwaQxaxaaxaaLLaxaaQyaQzaxaaQAaQBaxaaQCaQDaOcaQEaOcaPkaOeaQFaPmaQGaPmaPmaPmaPqaQHaPmaPmaPmaPvaOiaQIaPxaPxaOlaPzaOnaQJaQKaQKaQLaOsaQMaQNaQOaQPaQQaQRaHYaHYaHZaHUaaaaaaaaaaaaaOtaOtaOtaOtaQSaQTaQUaQVaQWaQXaQYaQZaRaaRbaRcaOtaOtaOtaOtaaaaaaaaaaaaaHUaHXaHYaHYaRdaOCaReaRgaRgaRgaRjaRiaRHaRkaRlaRmaRnaRoaRpaRqaRraRraRsaRtaRuaRuaRvaRraRwaRxaRyaRzaRAaRBaRCaQjaNwaGWaGXaEfaGZaGZaNCaNDaGZaGZaGZaRDaREaGZbqpaBDaRGaUyaRIaQqaQqaSHaRKaRLaBDaRMaRNaPaaNRaROaNRaRPaPdaPdaRQaRRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaqpaqpavMavMavMavMavMavMavMavMaqpaqparpaLLaRSaRTaRTaRUaRTaRTaRTaRVaRTaRTaRTaOcaQEaRWaRXaOeaRYaPmaRZaTfaSbaScaSdaSaaPmaPmaPmaSeaOiaSfaSgaShaOlaPzaOnaSiaSjaSkaSlaOsaSmaSnaSoaSpaSqaQRaHYaHYaHZaHUaHUaIcaSraOtaOtaSsaStaSuaSvaSwaSxaSyaSzaSxaSAaSxaSxaSBaSCaSDaSEaSFaOtaOtaSraIcaHUaHUaHXaHYaHYaIkaSGaJsaOCaOCaOCaOCaXsaOCaSIaSJaSKaSLaSMaSNaSOaSPaSQaSRaSSaSTaSUaSVaSPaSWaSXaSYaSZaTaaTbaSZaTcaTdaGWaGXaEfaTeaTeaNCaNDaTlaGZaGZaTgaGZaThaTiaBDaTjaTkaTpaQqaQqaTmaTnaEjaBDaToaNRaPaaNRaROaNSaLDaLDaLDaLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMaymaxbaTqaRTaTraTsaTtaTuaTtaTvaTraTtaRTaQEaQEaTwaTxaOeaTyaPmaTzaTAaTBaTCaTDaTfaPmaPmaPmaPvaOiaOiaOiaOiaOlaPzaOnaOnaOnaOnaOnaOsaTEaQOaQOaQOaQOaQRaHYaHYaHZaIaaIaaTFaTGaTHaOtaTIaTJaTKaTLaTMaTLaTNaTOaTPaTQaTRaTSaTTaTRaTUaTVaTWaOtaTXaTGaTYaTZaIaaHXaHYaHYaRdaOCaJsaPTaOCaUbaOCaPTaOCaODaPUaUcaOCaOCaOCaUdaUeaUfaUgaUhaUiaUjaUkaUlaIpaUmaUnaUoaQhaUpaQhaUqaUraGWaUsaEfaEfaEfaNCaNDaUtaUuaGZaUvaUwaJKaUxaBDaEjaUyaRIaQqaQqaRJaRKaUAaBDaUBaNRaPaaUCaUDaUEaLDaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUFavMavMaBGaUGaUHaUIaUJaUKaULaUMaUNaTraTtaRTaUOaUPaUQaOcaOeaURaUSaUTaUUaUTaUVaUWaUVaUVaUVaUXaUYaOeaUZaVaaVbaVcaVdaVeaVfaVgaOcaVhaOsaViaVjaVkaVlaVlaQRaHYaHYaHYaHYaHYaVmaVnaVoaVpaVqaVraVsaVtaVuaVvaVwaVxaVyaVzaVAaVBaVCaVDaVsaVEaVFaVGaVHaVIaVJaVKaVLaVMaHYaHYaIkaVNaVOaVPaVQaOCaVRaVSaVQaODaPUaVTaVTaVUaVVaIpaUeaUeaUeaVWaUeaUeaUkaVXaIpaNwaUnaQhaQhaUpaQhaVYaNwaGWaVZaWaaWbaWcaWdaWeaWfaWfaWfaWfaWfaWfaWgaWhaWiaWiaWiaWiaWiaWjaWkaWlaWhaWmaWnaWoaWpaNRaWqaLDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWraWsatBaWsaxaaxaaRTaWtaWuaWvaWvaWvaWwaWxaWyaRTaWzaQEaUQaWAaWAaWAaWBaWCaWAaWDaWEaWFaWGaWHaWHaWIaWJaOeaWKaWLaWMaWNaWOaWPaWPaWQaWRaWRaWSaWSaWSaWSaWSaWTaOsaHYaHYaWUaWVaWWaWXaWYaWZaOtaXaaXbaXcaXdaXeaXfaXfaXgaXhaXiaXjaXkaXlaXmaXcaXnaXaaOtaWZaWYaXoaXpaWVaXqaHYaHYaRdaOCaXraXsaOCaOCaOCaXsaOCaODaOCaPUaPUaOCaOCaXtaXuaXvaUeaUeaUeaUeaXwaXxaIpaXyaXzaQhaXAaXBaXCaXzaXDaGWaXEaXFaXFaXGaXHaXIaXJaXKaXLaXJaXJaXJaXMaXNaXOaXPaXPaXPaXPaXPaXQaXRaXNaXSaXTaXUaXVaNRaXWaLDaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaafaafaafaafaztaqpavMatBavMaNTaNUaNVaNWavMatBavMavMaqpaBGaxaaKaaMJaMKaLHaLHaLIarpaMLaKfaxaaLLaKhaKiaMMaMNaMNaMNaMOaMPaMQaMNaMRaMNaMNaMNaMSaMNaMTaMNaMNaMNaMUaMVaMWaMXaMXaMYaMZaNaaNbaNcaKicrraKhaGyaHYaNeaHYaNfaNfaNfaNfaNfaNfaNfaNfaNgaNfaNfaNfaNfaNfaNfaNfaNfaNfaNfaNfaNhaNfaNfaNfaNfaNfaNfaNfaNfaHYaHYaHYaBdaNiaNiaNiaNiaNiaNjaNkaJsaODaRdaIkaNmaNnaNoaIkaNpaIpaNqaNraNsaLiaNtaIpaGWaNuaNvaNwaNxaNwaNyaNzaNAaGWaGXaEfaNBaNBaNCaNDaNEaNEbqoaEfaNGaNHaNIaBDaNJaNKaNLaEjaEjaNMaNNaBDaNOaBDaNPaNQaNRaNRaNSaLDaLDaLDaLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafarpavMaylavMaBGaxaaxaaMBavMaylavMaNXaNYaNZaxaaKaaOaaRhaKcaOaaKdarpaObaKfaxaaOcaOcaOcaOdaOcaOeaOeaOeaOeaOeaOfaOgaOeaOhaOeaOeaOeaOiaOjaOkaOjaOlaOmaOnaKiaKiaOoaOpaOqaOraKlaKiaNdaOsaOsaHYaHYaHZaHUaHUaHUaHUaHUaHUaHUaHUaOtbUPbUObUQbUObUObUObVMbUObWHbUObXtaOtaHUaHUaHUaHUaHUaHUaHUaHUaHXaHYaHYaIkaOAaOBaNlaVPaNlaNlaOCaJsaOGaOEaPUaPTaOFaPVaIpaIpaIpaOHaOIaIpaIpaIpaIpaIpaNwaOJaOKaOKaOKaOLaOMaNwaGWaGXaEfaONaGZaNCaNDaGZaGZaOOaEfaOPaOQaORaBDaEjaOSaOTaOUaOUaOVaOWaOXaOYaBDaOZaPaaNRaPbaNRaPcaPdaPdaPcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMaPeaxaavNaNZaxaaxaaPfavNaxaaPeaNZaxaaxaaxaaPgaPhaPhaPhaPhaPhaPhaPhaPiaxaaOcaPjaOcaPkaOeaPlaPmaPnaPoaPpaPmaPqaPraPsaPtaPuaPvaOiaPwaPxaPyaOlaPzaOnaOnaPAaOnaOnaOsaPBaPCaPDaPEaOsaOsaPFaHYaHZaHUaaaaaaaaaaaaaaaaaaaaaaOtaPGaPHaPIaPJaPKaPLaPMaPNaPOaPPaPQaOtaaaaaaaaaaaaaaaaaaaaaaHUaHXaHYaPRaIkaPSaOCaRiaXsaXsaXsaOCaJsaOGaRjaOBaJsaPWaPXaIpaPYaPZaQaaQbaQcaQdaQeaQfaIpaNwaQgaQhaQhaQhaQiaQjaNwaGWaQkaEfaQlaQlaNCaNDaQmaQmaQnaEfaEfaQoaEfaBDaQpaNKaNLaQqaQqaNMaNNaBDaBDaBDaLDaQraQsaQtaLDaLDaLDaLDaQuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaavMaQvaQwaQwaQwaQwaQwaQwaQwaQwaQvaQwaQxaxaaxaaLLaxaaQyaQzaxaaQAaQBaxaaQCaQDaOcaQEaOcaPkaOeaQFaPmaQGaPmaPmaPmaPqaQHaPmaPmaPmaPvaOiaQIaPxaPxaOlaPzaOnaQJaQKaQKaQLaOsaQMaQNaQOaQPaQQaQRaHYaHYaHZaHUaaaaaaaaaaaaaOtaOtaOtaOtaQSaQTaQUaQVaQWaQXaQYaQZaRaaRbaRcaOtaOtaOtaOtaaaaaaaaaaaaaHUaHXaHYaHYaRdaOCaReaRgaRgaRgaRkaRgaRnaRmaRlaRHaRnaRoaRpaRqaRraRraRsaRtaRuaRuaRvaRraRwaRxaRyaRzaRAaRBaRCaQjaNwaGWaGXaEfaGZaGZaNCaNDaGZaGZaGZaRDaREaGZbqpaBDaRGaUyaRIaQqaQqaSHaRKaRLaBDaRMaRNaPaaNRaROaNRaRPaPdaPdaRQaRRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaqpaqpavMavMavMavMavMavMavMavMaqpaqparpaLLaRSaRTaRTaRUaRTaRTaRTaRVaRTaRTaRTaOcaQEaRWaRXaOeaRYaPmaRZaTfaSbaScaSdaSaaPmaPmaPmaSeaOiaSfaSgaShaOlaPzaOnaSiaSjaSkaSlaOsaSmaSnaSoaSpaSqaQRaHYaHYaHZaHUaHUaIcaSraOtaOtaSsaStaSuaSvaSwaSxaSyaSzaSxaSAaSxaSxaSBaSCaSDaSEaSFaOtaOtaSraIcaHUaHUaHXaHYaHYaIkaSGaJsaUaaUaaUaaUaaOCaOCaSJaSIaSMaSLaSMaSNaSOaSPaSQaSRaSSaSTaSUaSVaSPaSWaSXaSYaSZaTaaTbaSZaTcaTdaGWaGXaEfaTeaTeaNCaNDaTlaGZaGZaTgaGZaThaTiaBDaTjaTkaTpaQqaQqaTmaTnaEjaBDaToaNRaPaaNRaROaNSaLDaLDaLDaLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMaymaxbaTqaRTaTraTsaTtaTuaTtaTvaTraTtaRTaQEaQEaTwaTxaOeaTyaPmaTzaTAaTBaTCaTDaTfaPmaPmaPmaPvaOiaOiaOiaOiaOlaPzaOnaOnaOnaOnaOnaOsaTEaQOaQOaQOaQOaQRaHYaHYaHZaIaaIaaTFaTGaTHaOtaTIaTJaTKaTLaTMaTLaTNaTOaTPaTQaTRaTSaTTaTRaTUaTVaTWaOtaTXaTGaTYaTZaIaaHXaHYaHYaRdaNlaJsaNlaSKaUbaNlaOCaOCaOGaVTaOCaOCaOCaOCaUcaUeaUfaUgaUhaUiaUjaUkaUlaIpaUmaUnaUoaQhaUpaQhaUqaUraGWaUsaEfaEfaEfaNCaNDaUtaUuaGZaUvaUwaJKaUxaBDaEjaUyaRIaQqaQqaRJaRKaUAaBDaUBaNRaPaaUCaUDaUEaLDaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUFavMavMaBGaUGaUHaUIaUJaUKaULaUMaUNaTraTtaRTaUOaUPaUQaOcaOeaURaUSaUTaUUaUTaUVaUWaUVaUVaUVaUXaUYaOeaUZaVaaVbaVcaVdaVeaVfaVgaOcaVhaOsaViaVjaVkaVlaVlaQRaHYaHYaHYaHYaHYaVmaVnaVoaVpaVqaVraVsaVtaVuaVvaVwaVxaVyaVzaVAaVBaVCaVDaVsaVEaVFaVGaVHaVIaVJaVKaVLaVMaHYaHYaIkaUdaJsaXsaXsaRiaXsaOCaOCaOGaVTaVNaVTaVUaVVaIpaUeaUeaUeaVWaUeaUeaUkaVXaIpaNwaUnaQhaQhaUpaQhaVYaNwaGWaVZaWaaWbaWcaWdaWeaWfaWfaWfaWfaWfaWfaWgaWhaWiaWiaWiaWiaWiaWjaWkaWlaWhaWmaWnaWoaWpaNRaWqaLDaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWraWsatBaWsaxaaxaaRTaWtaWuaWvaWvaWvaWwaWxaWyaRTaWzaQEaUQaWAaWAaWAaWBaWCaWAaWDaWEaWFaWGaWHaWHaWIaWJaOeaWKaWLaWMaWNaWOaWPaWPaWQaWRaWRaWSaWSaWSaWSaWSaWTaOsaHYaHYaWUaWVaWWaWXaWYaWZaOtaXaaXbaXcaXdaXeaXfaXfaXgaXhaXiaXjaXkaXlaXmaXcaXnaXaaOtaWZaWYaXoaXpaWVaXqaHYaHYaRdaOCaXraOCaOCaOCaOCaOCaOCaODaOBaVOaOBaOCaOCaXtaXuaXvaUeaUeaUeaUeaXwaXxaIpaXyaXzaQhaXAaXBaXCaXzaXDaGWaXEaXFaXFaXGaXHaXIaXJaXKaXLaXJaXJaXJaXMaXNaXOaXPaXPaXPaXPaXPaXQaXRaXNaXSaXTaXUaXVaNRaXWaLDaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMavMavMaBGaxaaXXaTraXYaWvaWvaWvaXZaYaaTraRTaYbaYcaUQaWAaYdaYeaYfaYgaWAaYhaYiaYjaOeaYkaYlaYmaRZaOeaYnaYoaYpaYpaYpaYpaYqaYpaYpaYraYsaYsaYsaYtaYsaYuaYvaKAaKAaYwaYxaYxaYxaYxaYxaYxaYyaYzaYAaYBaXgaYCaYDaYDaYEaYFaYDaYCaXiaYGaYHaYIaYJaYHaYHaYHaYHaYHaYHaYKaKAaKAaIkaYLaYMaYNaYOaOCaOCaOCaYPaYQaYRaOCaYSaYTaYUaIpaIpaIpaYVaYWaYWaYWaIpaIpaIpaYXaQhaQhaYYaYZaZaaZbaYYaGWaZcaXFaZdaEfaZeaUzaZgaZfaZiaZjaTgaUuaZkaBDaZlaEjaZmaQqaQqaZmaEjaZnaBDaZoaZpaZqaROaNRaNSaLDaLDaLDaLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavMaZraNZaZsaRTaTtaZtaTtaTraZuaZvaZwaTtaRTaZxaZyaZzaWAaWAaWAaZAaZBaWAaZCaYiaZEaOeaYkaYlaYmaRZaOeaYnaYoaYpaZFaZGaZGaZGaZHaYpaZIaZJaZKaZLaYvaYvaYvaYvaHYaHYaZMaZNaZOaZPaZQaZRaZSaZTaZUaZVaZWaZXaYDaYDaZYaZZaZYaYDaYDbaababbacbadbaebafbagbahbaibajaYHaXqaHYaHYaIkaIkaIkaIkaIkbakaRdbakbalaIkaIkaIkaIkaIkaIkaIkbaobaobaobaobaobaobapbaoaGWaYYbaqbaqaYYbaraXFaXFaXFbanaZcaXFaZdaEfaEfaEfbasbatbasaEfbasaEfaEfaBDaBDbaubaubaubaubaubauaBDaBDbavaNRbawaROaNRaNRaRQaPdaPdaRQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaqpaqpavMavMavMavMavMavMavMavMaqpaqparpaQyaxaaRTaRTaRUaRTaRTaRTaRVaRTaRTaRTbaxbaybazaWAaYdbaBaZAbaCaWAbaDbaEbaDaOeaYkaYlaYmaRZaOeaYnaYoaYpaZGbaFbaFaZGbaFaYpaZIbaGbaHbaHbaIbaJbaKaYvbaLaHYaWUbXubaNbaObaPbaQbaQbaRbaSbaTaZWbaUaYDaYDaZYbaVaZYaYDaYDbaWbabbaXbaYbaZbbabbbbbcbajbbdaYHaXqbbecrtaGybbfaXFaXFaXFaXFaXFaXFaXFaXFbbgaXFaXFaXFaXFbbhaXFaXFaXFaXFaXFaXFaXFaXFbbfaXFaXFaXFaXFbaraXFaXFaXFbbibbjaXFaXFbbkaXFaXFaXFbblaXFaXFaXFaXFaXFbbhbbmaXFaXFaXFaXFaXFaXFbbfbbnaRNaNRbbobbpbbqbbraLDaLDaLDaQuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/generic/z2.dmm b/_maps/map_files/generic/z2.dmm index 2fe61ad1702..c28ec5172f8 100644 --- a/_maps/map_files/generic/z2.dmm +++ b/_maps/map_files/generic/z2.dmm @@ -834,7 +834,37 @@ "qb" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/centcom/holding) "qc" = (/obj/effect/landmark{name = "Holding Facility"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/holding) "qd" = (/obj/docking_port/stationary/transit{dheight = 0; dir = 2; dwidth = 11; height = 22; id = "whiteship_transit"; width = 35},/turf/space/transit/horizontal,/area/space) - +"qe" = (/turf/unsimulated/wall/vault,/area/abductor_ship) +"qf" = (/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qg" = (/obj/effect/landmark/abductor/console,/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qh" = (/obj/structure/table,/obj/item/weapon/circular_saw,/obj/item/weapon/surgicaldrill,/obj/item/weapon/paper/abductor,/obj/item/weapon/scalpel/alien,/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qi" = (/obj/effect/landmark/abductor/scientist,/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qj" = (/obj/structure/table,/obj/item/weapon/retractor/alien,/obj/item/weapon/hemostat/alien,/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qk" = (/obj/effect/landmark/abductor/agent,/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"ql" = (/obj/structure/optable,/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qm" = (/obj/machinery/abductor/gland_dispenser,/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qn" = (/obj/structure/table,/obj/item/weapon/cautery,/obj/item/weapon/surgical_drapes,/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qo" = (/obj/machinery/abductor/experiment{team = 1},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qp" = (/obj/effect/landmark/abductor/console{team = 2},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qq" = (/obj/effect/landmark/abductor/console{team = 3},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qr" = (/obj/effect/landmark/abductor/scientist{team = 2},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qs" = (/obj/effect/landmark/abductor/agent{team = 2},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qt" = (/obj/effect/landmark/abductor/scientist{team = 3},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qu" = (/obj/effect/landmark/abductor/agent{team = 3},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qv" = (/obj/effect/landmark/abductor/console{team = 4},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qw" = (/obj/effect/landmark/abductor/scientist{team = 4},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qx" = (/obj/effect/landmark/abductor/agent{team = 4},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qy" = (/obj/machinery/abductor/pad{team = 1},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qz" = (/obj/machinery/abductor/experiment{team = 4},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qA" = (/obj/machinery/abductor/pad{team = 4},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qB" = (/obj/structure/rack,/obj/item/weapon/storage/box/handcuffs,/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qC" = (/obj/structure/rack,/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qD" = (/obj/machinery/computer/security{name = "Human Observation Console"; network = list("SS13","Abductor")},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qE" = (/obj/machinery/abductor/experiment{team = 2},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qF" = (/obj/machinery/abductor/pad{team = 2},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qG" = (/obj/machinery/abductor/experiment{team = 3},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) +"qH" = (/obj/machinery/abductor/pad{team = 3},/turf/unsimulated/floor/bluegrid,/area/abductor_ship) + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababadaeaeaeaeaeafaeaeaeaeaeafaeaeaeaeaeafaeaeaeaeaeag aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahaiaiaiaiaiajakakakakakajalalalalalajamanananaoap @@ -1058,24 +1088,24 @@ abababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqeqeqeabababqeqeqeqeqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqeqeqeqoqgqyqeqeabqeqeqzqvqAqeqeqeqeqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqBqCqeqfqfqfqfqhqeabqeqhqfqfqfqfqeqBqCqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqfqfqeqmqiqDqkqjqeabqeqjqwqDqxqmqeqfqfqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqfqfqfqfqfqfqfqnqeabqeqnqfqfqfqfqfqfqfqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqeqeqeqfqlqfqeqeabqeqeqfqlqfqeqeqeqeqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqeqeqeabababqeqeqeqeqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab -ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqeqeqeabababqeqeqeqeqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqEqpqFqeqeabqeqeqGqqqHqeqeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqhqfqfqfqfqeabqeqhqfqfqfqfqeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqjqrqDqsqmqeabqeqjqtqDquqmqeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqnqfqfqfqfqeabqeqnqfqfqfqfqeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqfqlqfqeqeabqeqeqfqlqfqeqeabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqeqfqeabababqeqeqeqfqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqBqfqfqeabababqeqBqfqfqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqCqfqfqeabababqeqCqfqfqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab +abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababqeqeqeqeqeabababqeqeqeqeqeababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab diff --git a/_maps/metastation.dm b/_maps/metastation.dm index 1e0e8b973c9..b0b2d87d0a5 100644 --- a/_maps/metastation.dm +++ b/_maps/metastation.dm @@ -15,7 +15,7 @@ z7 = empty space #if !defined(MAP_FILE) - #include "map_files\MetaStation\MetaStation.v41A.dmm" + #include "map_files\MetaStation\MetaStation.v41A.II.dmm" #include "map_files\MetaStation\z2.dmm" #include "map_files\MetaStation\z3.dmm" #include "map_files\MetaStation\z4.dmm" @@ -23,7 +23,7 @@ z7 = empty space #include "map_files\generic\z6.dmm" #include "map_files\generic\z7.dmm" - #define MAP_FILE "MetaStation.v41A.dmm" + #define MAP_FILE "MetaStation.v41A.II.dmm" #define MAP_NAME "MetaStation" #elif !defined(MAP_OVERRIDE) diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index 0126fde5384..d2c854462a8 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -24,4 +24,5 @@ #define ANTAG_HUD_OPS 7 #define ANTAG_HUD_GANG_A 8 #define ANTAG_HUD_GANG_B 9 -#define ANTAG_HUD_WIZ 10 \ No newline at end of file +#define ANTAG_HUD_WIZ 10 +#define ANTAG_HUD_SHADOW 11 diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index 8f17fbaed20..cbb48c707c5 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -41,3 +41,4 @@ #define BE_MONKEY 2048 #define BE_GANG 4096 #define BE_SHADOWLING 8192 +#define BE_ABDUCTOR 16384 diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 8d30dd0343a..aa2578347df 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -53,18 +53,10 @@ return 0 return 1 - -//Magic constants obtained by using linear regression on right-angled triangles of sides 0=dy) return (k1*dx) + (k2*dy) //No sqrt or powers :) - else return (k2*dx) + (k1*dy) -#undef k1 -#undef k2 +//We used to use linear regression to approximate the answer, but Mloc realized this was actually faster. +//And lo and behold, it is, and it's more accurate to boot. +/proc/cheap_hypotenuse(Ax,Ay,Bx,By) + return sqrt(abs(Ax - Bx)**2 + abs(Ay - By)**2) //A squared + B squared = C squared /proc/circlerange(center=usr,radius=3) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 168024d0702..51f52265cde 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -828,8 +828,6 @@ Turf and target are seperate in case you want to teleport some distance from a t //else populates the list first before returning it /proc/SortAreas() for(var/area/A in world) - if(A.lighting_subarea) - continue sortedAreas.Add(A) sortTim(sortedAreas, /proc/cmp_name_asc) @@ -888,152 +886,6 @@ Turf and target are seperate in case you want to teleport some distance from a t var/y_pos = null var/z_pos = null -/area/proc/move_contents_to(var/area/A, var/turftoleave=null, var/direction = null) - //Takes: Area. Optional: turf type to leave behind. - //Returns: Nothing. - //Notes: Attempts to move the contents of one area to another area. - // Movement based on lower left corner. Tiles that do not fit - // into the new area will not be moved. - - if(!A || !src) return 0 - - var/list/turfs_src = get_area_turfs(src.type) - var/list/turfs_trg = get_area_turfs(A.type) - - var/src_min_x = 0 - var/src_min_y = 0 - for (var/turf/T in turfs_src) - if(T.x < src_min_x || !src_min_x) src_min_x = T.x - if(T.y < src_min_y || !src_min_y) src_min_y = T.y - - var/trg_min_x = 0 - var/trg_min_y = 0 - for (var/turf/T in turfs_trg) - if(T.x < trg_min_x || !trg_min_x) trg_min_x = T.x - if(T.y < trg_min_y || !trg_min_y) trg_min_y = T.y - - var/list/refined_src = new/list() - for(var/turf/T in turfs_src) - refined_src += T - refined_src[T] = new/datum/coords - var/datum/coords/C = refined_src[T] - C.x_pos = (T.x - src_min_x) - C.y_pos = (T.y - src_min_y) - - var/list/refined_trg = new/list() - for(var/turf/T in turfs_trg) - refined_trg += T - refined_trg[T] = new/datum/coords - var/datum/coords/C = refined_trg[T] - C.x_pos = (T.x - trg_min_x) - C.y_pos = (T.y - trg_min_y) - - var/list/fromupdate = new/list() - var/list/toupdate = new/list() - - moving: - for (var/turf/T in refined_src) - var/datum/coords/C_src = refined_src[T] - for (var/turf/B in refined_trg) - var/datum/coords/C_trg = refined_trg[B] - if(C_src.x_pos == C_trg.x_pos && C_src.y_pos == C_trg.y_pos) - - var/old_dir1 = T.dir - var/old_icon_state1 = T.icon_state - var/old_icon1 = T.icon - - var/turf/X = new T.type(B) - X.dir = old_dir1 - X.icon_state = old_icon_state1 - X.icon = old_icon1 //Shuttle floors are in shuttle.dmi while the defaults are floors.dmi - - - // Give the new turf our air, if simulated - if(istype(X, /turf/simulated) && istype(T, /turf/simulated)) - var/turf/simulated/sim = X - sim.copy_air_with_tile(T) - - /* Quick visual fix for some weird shuttle corner artefacts when on transit space tiles */ - if(direction && findtext(X.icon_state, "swall_s")) - - // Spawn a new shuttle corner object - var/obj/corner = new() - corner.loc = X - corner.density = 1 - corner.anchored = 1 - corner.icon = X.icon - corner.icon_state = replacetext(X.icon_state, "_s", "_f") - corner.tag = "delete me" - corner.name = "wall" - - // Find a new turf to take on the property of - var/turf/nextturf = get_step(corner, direction) - if(!nextturf || !istype(nextturf, /turf/space)) - nextturf = get_step(corner, turn(direction, 180)) - - - // Take on the icon of a neighboring scrolling space icon - X.icon = nextturf.icon - X.icon_state = nextturf.icon_state - - - for(var/obj/O in T) - - // Reset the shuttle corners - if(O.tag == "delete me") - X.icon = 'icons/turf/shuttle.dmi' - X.icon_state = replacetext(O.icon_state, "_f", "_s") // revert the turf to the old icon_state - X.name = "wall" - qdel(O) // prevents multiple shuttle corners from stacking - continue - if(!istype(O,/obj)) continue - O.loc = X - for(var/mob/M in T) - if(!M.move_on_shuttle) - continue - M.loc = X - -// var/area/AR = X.loc - -// if(AR.lighting_use_dynamic) //TODO: rewrite this code so it's not messed by lighting ~Carn -// X.opacity = !X.opacity -// X.SetOpacity(!X.opacity) - - toupdate += X - - if(turftoleave) - var/turf/ttl = new turftoleave(T) - -// var/area/AR2 = ttl.loc - -// if(AR2.lighting_use_dynamic) //TODO: rewrite this code so it's not messed by lighting ~Carn -// ttl.opacity = !ttl.opacity -// ttl.sd_SetOpacity(!ttl.opacity) - - fromupdate += ttl - - else - T.ChangeTurf(/turf/space) - - refined_src -= T - refined_trg -= B - continue moving - - - if(toupdate.len) - for(var/turf/simulated/T1 in toupdate) - SSair.remove_from_active(T1) - T1.CalculateAdjacentTurfs() - SSair.add_to_active(T1,1) - - if(fromupdate.len) - for(var/turf/simulated/T2 in fromupdate) - SSair.remove_from_active(T2) - T2.CalculateAdjacentTurfs() - SSair.add_to_active(T2,1) - - - /proc/DuplicateObject(obj/original, var/perfectcopy = 0 , var/sameloc = 0) if(!original) return null diff --git a/code/_compile_options.dm b/code/_compile_options.dm index 417bedd80e3..6c6718d4ec7 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -31,7 +31,7 @@ #define AGE_MAX 85 //oldest a character can be #define SHOES_SLOWDOWN 0 //How much shoes slow you down by default. Negative values speed you up #define POCKET_STRIP_DELAY 40 //time taken (in deciseconds) to search somebody's pockets -#define DOOR_CRUSH_DAMAGE 10 //the amount of damage that airlocks deal when they crush you +#define DOOR_CRUSH_DAMAGE 15 //the amount of damage that airlocks deal when they crush you #define HUNGER_FACTOR 0.1 //factor at which mob nutrition decreases #define REAGENTS_METABOLISM 0.4 //How many units of reagent are consumed per tick, by default. diff --git a/code/_globalvars/configuration.dm b/code/_globalvars/configuration.dm index 062be18c68d..fb04d0dd356 100644 --- a/code/_globalvars/configuration.dm +++ b/code/_globalvars/configuration.dm @@ -46,5 +46,6 @@ var/list/be_special_flags = list( "Blob" = BE_BLOB, "Ninja" = BE_NINJA, "Monkey" = BE_MONKEY, - "Gang" = BE_GANG + "Gang" = BE_GANG, + "Abductor" = BE_ABDUCTOR ) diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm index 1312331ff49..1775761d6a2 100644 --- a/code/_onclick/hud/_defines.dm +++ b/code/_onclick/hud/_defines.dm @@ -17,38 +17,6 @@ Therefore, the top right corner (except during admin shenanigans) is at "15,15" */ -//Upper left action buttons, displayed when you pick up an item that has this enabled. -#define ui_action_slot1 "WEST :0, NORTH:0" -#define ui_action_slot2 "WEST+1 :0, NORTH:0" -#define ui_action_slot3 "WEST+2 :0, NORTH:0" -#define ui_action_slot4 "WEST+3 :0, NORTH:0" -#define ui_action_slot5 "WEST+4 :0, NORTH:0" -#define ui_action_slot6 "WEST+5 :0, NORTH:0" -#define ui_action_slot7 "WEST+6 :0, NORTH:0" -#define ui_action_slot8 "WEST+7 :0, NORTH:0" -#define ui_action_slot9 "WEST+8 :0, NORTH:0" -#define ui_action_slot10 "WEST+9 :0, NORTH:0" -#define ui_action_slot11 "WEST+10 :0, NORTH:0" -#define ui_action_slot12 "WEST+11 :0, NORTH:0" -#define ui_action_slot13 "WEST+12 :0, NORTH:0" -#define ui_action_slot14 "WEST+13 :0, NORTH:0" -#define ui_action_slot15 "WEST+14 :0, NORTH:0" -#define ui_action_slot16 "WEST :0, NORTH-1:0" -#define ui_action_slot17 "WEST+1 :0, NORTH-1:0" -#define ui_action_slot18 "WEST+2 :0, NORTH-1:0" -#define ui_action_slot19 "WEST+3 :0, NORTH-1:0" -#define ui_action_slot20 "WEST+4 :0, NORTH-1:0" -#define ui_action_slot21 "WEST+5 :0, NORTH-1:0" -#define ui_action_slot22 "WEST+6 :0, NORTH-1:0" -#define ui_action_slot23 "WEST+7 :0, NORTH-1:0" -#define ui_action_slot24 "WEST+8 :0, NORTH-1:0" -#define ui_action_slot25 "WEST+9 :0, NORTH-1:0" -#define ui_action_slot26 "WEST+10 :0, NORTH-1:0" -#define ui_action_slot27 "WEST+11 :0, NORTH-1:0" -#define ui_action_slot28 "WEST+12 :0, NORTH-1:0" -#define ui_action_slot29 "WEST+13 :0, NORTH-1:0" -#define ui_action_slot30 "WEST+14 :0, NORTH-1:0" - //Lower left, persistant menu #define ui_inventory "WEST:6,SOUTH:5" @@ -155,4 +123,3 @@ #define ui_head "WEST+1:8,SOUTH+3:11" - diff --git a/code/_onclick/hud/action.dm b/code/_onclick/hud/action.dm new file mode 100644 index 00000000000..df88cf950d4 --- /dev/null +++ b/code/_onclick/hud/action.dm @@ -0,0 +1,247 @@ +#define AB_ITEM 1 +#define AB_SPELL 2 +#define AB_INNATE 3 +#define AB_GENERIC 4 + +#define AB_CHECK_RESTRAINED 1 +#define AB_CHECK_STUNNED 2 +#define AB_CHECK_LYING 4 +#define AB_CHECK_ALIVE 8 +#define AB_CHECK_INSIDE 16 + + +/datum/action + var/name = "Generic Action" + var/action_type = AB_ITEM + var/procname = null + var/atom/movable/target = null + var/check_flags = 0 + var/processing = 0 + var/active = 0 + var/obj/screen/movable/action_button/button = null + var/button_icon = 'icons/mob/actions.dmi' + var/button_icon_state = "default" + var/background_icon_state = "bg_default" + var/mob/living/owner + +/datum/action/New(var/Target) + target = Target + +/datum/action/Destroy() + if(owner) + Remove(owner) + +/datum/action/proc/Grant(mob/living/T) + if(owner) + if(owner == T) + return + Remove(owner) + owner = T + owner.actions.Add(src) + owner.update_action_buttons() + return + +/datum/action/proc/Remove(mob/living/T) + if(button) + if(T.client) + T.client.screen -= button + del(button) + T.actions.Remove(src) + T.update_action_buttons() + owner = null + return + +/datum/action/proc/Trigger() + if(!Checks()) + return + switch(action_type) + if(AB_ITEM) + if(target) + var/obj/item/item = target + item.ui_action_click() + if(AB_SPELL) + if(target) + var/obj/effect/proc_holder/spell = target + spell.Click() + if(AB_INNATE) + if(!active) + Activate() + else + Deactivate() + if(AB_GENERIC) + if(target && procname) + call(target,procname)(usr) + return + +/datum/action/proc/Activate() + return + +/datum/action/proc/Deactivate() + return + +/datum/action/proc/Process() + return + +/datum/action/proc/CheckRemoval(mob/living/user) // 1 if action is no longer valid for this mob and should be removed + return 0 + +/datum/action/proc/IsAvailable() + return Checks() + +/datum/action/proc/Checks()// returns 1 if all checks pass + if(!owner) + return 0 + if(check_flags & AB_CHECK_RESTRAINED) + if(owner.restrained()) + return 0 + if(check_flags & AB_CHECK_STUNNED) + if(owner.stunned) + return 0 + if(check_flags & AB_CHECK_LYING) + if(owner.lying) + return 0 + if(check_flags & AB_CHECK_ALIVE) + if(owner.stat) + return 0 + if(check_flags & AB_CHECK_INSIDE) + if(!(target in owner)) + return 0 + return 1 + +/datum/action/proc/UpdateName() + return name + +/obj/screen/movable/action_button + var/datum/action/owner + screen_loc = "WEST,NORTH" + +/obj/screen/movable/action_button/Click(location,control,params) + var/list/modifiers = params2list(params) + if(modifiers["shift"]) + moved = 0 + return 1 + if(usr.next_move >= world.time) // Is this needed ? + return + owner.Trigger() + return 1 + +/obj/screen/movable/action_button/proc/UpdateIcon() + if(!owner) + return + icon = owner.button_icon + icon_state = owner.background_icon_state + + overlays.Cut() + var/image/img + if(owner.action_type == AB_ITEM && owner.target) + var/obj/item/I = owner.target + img = image(I.icon, src , I.icon_state) + else if(owner.button_icon && owner.button_icon_state) + img = image(owner.button_icon,src,owner.button_icon_state) + img.pixel_x = 0 + img.pixel_y = 0 + overlays += img + + if(!owner.IsAvailable()) + color = rgb(128,0,0,128) + else + color = rgb(255,255,255,255) + +//Hide/Show Action Buttons ... Button +/obj/screen/movable/action_button/hide_toggle + name = "Hide Buttons" + icon = 'icons/mob/actions.dmi' + icon_state = "bg_default" + var/hidden = 0 + +/obj/screen/movable/action_button/hide_toggle/Click() + usr.hud_used.action_buttons_hidden = !usr.hud_used.action_buttons_hidden + + hidden = usr.hud_used.action_buttons_hidden + if(hidden) + name = "Show Buttons" + else + name = "Hide Buttons" + UpdateIcon() + usr.update_action_buttons() + + +/obj/screen/movable/action_button/hide_toggle/proc/InitialiseIcon(var/mob/living/user) + if(isalien(user)) + icon_state = "bg_alien" + else + icon_state = "bg_default" + UpdateIcon() + return + +/obj/screen/movable/action_button/hide_toggle/UpdateIcon() + overlays.Cut() + var/image/img = image(icon,src,hidden?"show":"hide") + overlays += img + return + +//This is the proc used to update all the action buttons. Properly defined in /mob/living/ +/mob/proc/update_action_buttons() + return + +#define AB_WEST_OFFSET 4 +#define AB_NORTH_OFFSET 26 +#define AB_MAX_COLUMNS 10 + +/datum/hud/proc/ButtonNumberToScreenCoords(var/number) // TODO : Make this zero-indexed for readabilty + var/row = round((number-1)/AB_MAX_COLUMNS) + var/col = ((number - 1)%(AB_MAX_COLUMNS)) + 1 + var/coord_col = "+[col-1]" + var/coord_col_offset = 4+2*col + var/coord_row = "[-1 - row]" + var/coord_row_offset = 26 + return "WEST[coord_col]:[coord_col_offset],NORTH[coord_row]:[coord_row_offset]" + +/datum/hud/proc/SetButtonCoords(var/obj/screen/button,var/number) + var/row = round((number-1)/AB_MAX_COLUMNS) + var/col = ((number - 1)%(AB_MAX_COLUMNS)) + 1 + var/x_offset = 32*(col-1) + 4 + 2*col + var/y_offset = -32*(row+1) + 26 + + var/matrix/M = matrix() + M.Translate(x_offset,y_offset) + button.transform = M + +//Presets for item actions +/datum/action/item_action + check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_LYING|AB_CHECK_ALIVE|AB_CHECK_INSIDE + +/datum/action/item_action/CheckRemoval(mob/living/user) + return !(target in user) + +/datum/action/item_action/hands_free + check_flags = AB_CHECK_ALIVE|AB_CHECK_INSIDE + + +//Preset for spells +/datum/action/spell_action + action_type = AB_SPELL + check_flags = 0 + background_icon_state = "bg_spell" + +/datum/action/spell_action/UpdateName() + var/obj/effect/proc_holder/spell/spell = target + return spell.name + +/datum/action/spell_action/IsAvailable() + if(!target) + return 0 + var/obj/effect/proc_holder/spell/spell = target + + if(usr) + return spell.can_cast(usr) + else + if(owner) + return spell.can_cast(owner) + return 1 + +/datum/action/spell_action/CheckRemoval() + if(owner.mind) + if(target in owner.mind.spell_list) + return 0 + return !(target in owner.mob_spell_list) \ No newline at end of file diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index c84ae5a071c..c896fb76999 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -110,8 +110,8 @@ var/datum/global_hud/global_hud = new() var/list/other var/list/obj/screen/hotkeybuttons - var/list/obj/screen/item_action/item_action_list = list() //Used for the item action ui buttons. - + var/obj/screen/movable/action_button/hide_toggle/hide_actions_toggle + var/action_buttons_hidden = 0 datum/hud/New(mob/owner) mymob = owner @@ -243,8 +243,6 @@ datum/hud/New(mob/owner) mymob.client.screen -= other if(hotkeybuttons) mymob.client.screen -= hotkeybuttons - if(item_action_list) - mymob.client.screen -= item_action_list //These ones are not a part of 'adding', 'other' or 'hotkeybuttons' but we want them gone. mymob.client.screen -= mymob.zone_sel //zone_sel is a mob variable for some reason. @@ -269,8 +267,6 @@ datum/hud/New(mob/owner) mymob.client.screen -= other if(hotkeybuttons) mymob.client.screen -= hotkeybuttons - if(item_action_list) - mymob.client.screen -= item_action_list //These ones are not a part of 'adding', 'other' or 'hotkeybuttons' but we want them gone. mymob.client.screen -= mymob.zone_sel //zone_sel is a mob variable for some reason. diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 774c6f24900..64e8cdc77e9 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -323,100 +323,3 @@ else client.screen -= hud_used.hotkeybuttons hud_used.hotkey_ui_hidden = 1 - - -/mob/living/carbon/human/update_action_buttons() - var/num = 1 - if(!hud_used) return - if(!client) return - - if(hud_used.hud_shown != 1) //Hud toggled to minimal - return - - client.screen -= hud_used.item_action_list - - for(var/obj/item/I in src) - if(I.action_button_name) - if(hud_used.item_action_list.len < num) - var/obj/screen/item_action/N = new(hud_used) - hud_used.item_action_list += N - - var/obj/screen/item_action/A = hud_used.item_action_list[num] - - A.icon = ui_style2icon(client.prefs.UI_style) - A.icon_state = "template" - - A.overlays = list() - var/image/img = image(I.icon, A, I.icon_state) - img.pixel_x = 0 - img.pixel_y = 0 - A.overlays += img - - A.name = I.action_button_name - A.owner = I - - client.screen += hud_used.item_action_list[num] - - switch(num) - if(1) - A.screen_loc = ui_action_slot1 - if(2) - A.screen_loc = ui_action_slot2 - if(3) - A.screen_loc = ui_action_slot3 - if(4) - A.screen_loc = ui_action_slot4 - if(5) - A.screen_loc = ui_action_slot5 - if(6) - A.screen_loc = ui_action_slot6 - if(7) - A.screen_loc = ui_action_slot7 - if(8) - A.screen_loc = ui_action_slot8 - if(9) - A.screen_loc = ui_action_slot9 - if(10) - A.screen_loc = ui_action_slot10 - if(11) - A.screen_loc = ui_action_slot11 - if(12) - A.screen_loc = ui_action_slot12 - if(13) - A.screen_loc = ui_action_slot13 - if(14) - A.screen_loc = ui_action_slot14 - if(15) - A.screen_loc = ui_action_slot15 - if(16) - A.screen_loc = ui_action_slot16 - if(17) - A.screen_loc = ui_action_slot17 - if(18) - A.screen_loc = ui_action_slot18 - if(19) - A.screen_loc = ui_action_slot19 - if(20) - A.screen_loc = ui_action_slot20 - if(21) - A.screen_loc = ui_action_slot21 - if(22) - A.screen_loc = ui_action_slot22 - if(23) - A.screen_loc = ui_action_slot23 - if(24) - A.screen_loc = ui_action_slot24 - if(25) - A.screen_loc = ui_action_slot25 - if(26) - A.screen_loc = ui_action_slot26 - if(27) - A.screen_loc = ui_action_slot27 - if(28) - A.screen_loc = ui_action_slot28 - if(29) - A.screen_loc = ui_action_slot29 - if(30) - A.screen_loc = ui_action_slot30 - break //30 slots available, so no more can be added. - num++ diff --git a/code/_onclick/hud/movable_screen_objects.dm b/code/_onclick/hud/movable_screen_objects.dm index 8e0455db14d..a0dc4827ba9 100644 --- a/code/_onclick/hud/movable_screen_objects.dm +++ b/code/_onclick/hud/movable_screen_objects.dm @@ -10,7 +10,7 @@ /obj/screen/movable var/snap2grid = FALSE - + var/moved = FALSE //Snap Screen Object //Tied to the grid, snaps to the nearest turf @@ -43,6 +43,7 @@ var/pix_Y = text2num(screen_loc_Y[2]) - 16 screen_loc = "[screen_loc_X[1]]:[pix_X],[screen_loc_Y[1]]:[pix_Y]" + moved = TRUE //Debug procs diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 69d9dfe534a..e15c104de11 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -42,32 +42,6 @@ return 1 -/obj/screen/item_action - var/obj/item/owner - -/obj/screen/item_action/Click() - if(!usr || !owner) - return 1 - if(usr.next_move >= world.time) - return - - if(!owner.action_button_is_hands_free && (usr.restrained() || usr.stunned || usr.lying)) - return 1 - - if(usr.stat) - return 1 - - if(!(owner in usr)) - return 1 - - owner.ui_action_click() - return 1 - -//This is the proc used to update all the action buttons. It just returns for all mob types except humans. -/mob/proc/update_action_buttons() - return - - /obj/screen/drop name = "drop" icon = 'icons/mob/screen_midnight.dmi' diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 515f0368ec6..ba55e9cf993 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -42,6 +42,10 @@ for(var/datum/mutation/human/HM in dna.mutations) HM.on_ranged_attack(src, A) + var/turf/T = A + if(istype(T) && get_dist(src,T) <= 1) + src.Move_Pulled(T) + /* Animals & All Unspecified */ diff --git a/code/controllers/_DynamicAreaLighting_TG.dm b/code/controllers/_DynamicAreaLighting_TG.dm deleted file mode 100644 index ea1b76b1ce2..00000000000 --- a/code/controllers/_DynamicAreaLighting_TG.dm +++ /dev/null @@ -1,308 +0,0 @@ -/* - Modified DynamicAreaLighting for TGstation - Coded by Carnwennan - - This is TG's 'new' lighting system. It's basically a heavily modified combination of Forum_Account's and - ShadowDarke's respective lighting libraries. Credits, where due, to them. - - Like sd_DAL (what we used to use), it changes the shading overlays of areas by splitting each type of area into sub-areas - by using the var/tag variable and moving turfs into the contents list of the correct sub-area. This method is - much less costly than using overlays or objects. - - Unlike sd_DAL however it uses a queueing system. Everytime we call a change to opacity or luminosity - (through SetOpacity() or SetLuminosity()) we are simply updating variables and scheduling certain lights/turfs for an - update. Actual updates are handled periodically by the SSlighting subsystem. This carries additional overheads, however it - means that each thing is changed only once per SSlighting.wait deciseconds. Allowing for greater control - over how much priority we'd like lighting updates to have. - - UPDATE: we no longer postpone lighting updates by editting variables, there is now a subsystem/proc/postpone() procedure. - So you would do SSlighting.postpone() - - Unlike our old system there are hardcoded maximum luminositys (different for certain atoms). - This is to cap the cost of creating lighting effects. - (without this, an atom with luminosity of 20 would have to update 41^2 turfs!) :s - - Also, in order for the queueing system to work, each light remembers the effect it casts on each turf. This is going to - have larger memory requirements than our previous system but it's easily worth the hassle for the greater control we - gain. It also reduces cost of removing lighting effects by a lot! - - Known Issues/TODO: - Shuttles still do not have support for dynamic lighting (I hope to fix this at some point) - No directional lighting support. (prototype looked ugly) -*/ - -#define USE_CIRCULAR_LIGHTING //comment this out to use old square lighting effects. - -/datum/light_source - var/atom/owner - var/changed = 1 - var/list/effect = list() - var/__x = 0 //x coordinate at last update - var/__y = 0 //y coordinate at last update - - -/datum/light_source/New(atom/A) - if(!istype(A)) - CRASH("The first argument to the light object's constructor must be the atom that is the light source. Expected atom, received '[A]' instead.") - ..() - owner = A - __x = owner.x - __y = owner.y - // the lighting object maintains a list of all light sources - SSlighting.lights += src - - -//Check a light to see if its effect needs reprocessing. If it does, remove any old effect and create a new one -/datum/light_source/proc/check() - if(!owner) - remove_effect() - return 1 //causes it to be removed from our list of lights. The garbage collector will then destroy it. - - // check to see if we've moved since last update - if(owner.x != __x || owner.y != __y) - __x = owner.x - __y = owner.y - changed = 1 - - if(changed) - changed = 0 - remove_effect() - return add_effect() - return 0 - - -/datum/light_source/proc/remove_effect() - // before we apply the effect we remove the light's current effect. - for(var/turf/T in effect) // negate the effect of this light source - T.update_lumcount(-effect[T]) - - if(T.affecting_lights && T.affecting_lights.len) - T.affecting_lights -= src - else - T.affecting_lights = null - - effect.Cut() // clear the effect list - -/datum/light_source/proc/add_effect() - // only do this if the light is turned on and is on the map - if(owner.loc && owner.luminosity > 0) - effect = list() - var/turf/To = get_turf(owner) - var/range = owner.get_light_range() - - for(var/turf/T in view(range, To)) - var/delta_lumcount = T.lumen(src) - if(delta_lumcount > 0) - effect[T] = delta_lumcount - T.update_lumcount(delta_lumcount) - - if(!T.affecting_lights) - T.affecting_lights = list() - T.affecting_lights += src - - return 0 - else - owner.light = null - return 1 //cause the light to be removed from the lights list and garbage collected once it's no - //longer referenced by the queue - -/turf/proc/lumen(datum/light_source/L) - . = L.owner.luminosity -#ifdef USE_CIRCULAR_LIGHTING - . -= cheap_hypotenuse(x, y, L.__x, L.__y) -#else - . -= max(abs(x - L.__x), abs(y - L.__y)) -#endif - return . - -/turf/space/lumen() - return 0 - - -/atom - var/datum/light_source/light - - -//Turfs with opacity when they are constructed will trigger nearby lights to update -//Turfs and atoms with luminosity when they are constructed will create a light_source automatically -/turf/New() - ..() - if(luminosity) - if(light) WARNING("[type] - Don't set lights up manually during New(), We do it automatically.") - light = new(src) - -//Movable atoms with opacity when they are constructed will trigger nearby lights to update -//Movable atoms with luminosity when they are constructed will create a light_source automatically -/atom/movable/New() - ..() - if(opacity) - UpdateAffectingLights() - if(luminosity) - if(light) WARNING("[type] - Don't set lights up manually during New(), We do it automatically.") - light = new(src) - -//Objects with opacity will trigger nearby lights to update at next lighting process. -/atom/movable/Destroy() - if(opacity) - UpdateAffectingLights() - return ..() - -//Sets our luminosity. -//If we have no light it will create one. -//If we are setting luminosity to 0 the light will be cleaned up by the controller and garbage collected once all its -//queues are complete. -//if we have a light already it is merely updated, rather than making a new one. -/atom/proc/SetLuminosity(new_luminosity) - if(new_luminosity < 0) - new_luminosity = 0 - if(light) - if(luminosity != new_luminosity) //non-luminous lights are removed from the lights list in add_effect() - light.changed = 1 - else - if(new_luminosity) - light = new(src) - luminosity = new_luminosity - -/atom/proc/AddLuminosity(delta_luminosity) - SetLuminosity(luminosity + delta_luminosity) - -/area/SetLuminosity(new_luminosity) //we don't want dynamic lighting for areas - luminosity = !!new_luminosity - - -//change our opacity (defaults to toggle), and then update all lights that affect us. -/atom/proc/SetOpacity(new_opacity) - if(new_opacity == null) - new_opacity = !opacity //default = toggle opacity - else if(opacity == new_opacity) - return 0 //opacity hasn't changed! don't bother doing anything - opacity = new_opacity //update opacity, the below procs now call light updates. - UpdateAffectingLights() - - -/turf - var/lighting_lumcount = 0 - var/lighting_changed = 0 - var/list/affecting_lights //not initialised until used (even empty lists reserve a fair bit of memory) - -/turf/space - lighting_lumcount = 4 //starlight - -/turf/proc/update_lumcount(amount) - lighting_lumcount += amount - if(!lighting_changed) - SSlighting.changed_turfs += src - lighting_changed = 1 - -/area/proc/lighting_tag(level) - return tagbase + "sd_L[level]" - -/area/proc/build_lighting_area(tag, level) - var/area/A = locate(tag) // find an appropriate area - if(A) - return A - A = new type() // create area if it wasn't found - // replicate vars - for(var/V in vars) - switch(V) - if("contents","last_light","overlays") continue - else - if(issaved(vars[V])) A.vars[V] = vars[V] - - A.tag = tag - A.lighting_subarea = 1 - A.lighting_space = 0 // in case it was copied from a space subarea - A.SetLightLevel(level) - - related += A - return A - -/turf/proc/shift_to_subarea() - lighting_changed = 0 - var/area/Area = loc - - if(!istype(Area) || !Area.lighting_use_dynamic) return - - var/level = min(max(round(lighting_lumcount,1),0),SSlighting.lighting_images.len) - var/new_tag = Area.lighting_tag(level) - if(Area.tag!=new_tag) //skip if already in this area - var/area/A = Area.build_lighting_area(new_tag,level) - A.contents += src // move the turf into the area - -/area - var/lighting_use_dynamic = 1 //Turn this flag off to prevent sd_DynamicAreaLighting from affecting this area - var/last_light //tracks the last light level set for this area (used for removing previously applied lighting overlays) - var/lighting_subarea = 0 //tracks whether we're a lighting sub-area - var/lighting_space = 0 // true for space-only lighting subareas - var/tagbase - -/area/proc/SetLightLevel(light) - if(!src) return - if(light <= 1) - light = 1 - luminosity = 0 - else - if(light > SSlighting.lighting_images.len) - light = SSlighting.lighting_images.len - luminosity = 1 - - if(last_light != light) - if(last_light) - overlays -= SSlighting.lighting_images[last_light] - overlays += SSlighting.lighting_images[light] - last_light = light - -/area/proc/SetDynamicLighting() - lighting_use_dynamic = 1 - for(var/turf/T in contents) - T.update_lumcount(0) - -/area/proc/InitializeLighting() //TODO: could probably improve this bit ~Carn - tagbase = "[type]" - if(!tag) tag = tagbase - if(!lighting_use_dynamic) - if(!lighting_subarea) // see if this is a lighting subarea already - //show the dark overlay so areas, not yet in a lighting subarea, won't be bright as day and look silly. - SetLightLevel(4) - -#undef USE_CIRCULAR_LIGHTING - -//set the changed status of all lights which could have possibly lit this atom. -//We don't need to worry about lights which lit us but moved away, since they will have change status set already -//This proc can cause lots of lights to be updated. :( -/atom/proc/UpdateAffectingLights() - -/atom/movable/UpdateAffectingLights() - if(isturf(loc)) - loc.UpdateAffectingLights() - -/turf/UpdateAffectingLights() - if(affecting_lights) - for(var/thing in affecting_lights) - thing:changed = 1 //force it to update at next process() - - -#define LIGHTING_MAX_LUMINOSITY_STATIC 8 //Maximum luminosity to reduce lag. -#define LIGHTING_MAX_LUMINOSITY_MOBILE 5 //Moving objects have a lower max luminosity since these update more often. (lag reduction) -#define LIGHTING_MAX_LUMINOSITY_MOB 5 -#define LIGHTING_MAX_LUMINOSITY_TURF 1 //turfs have a severely shortened range to protect from inevitable floor-lighttile spam. - -//caps luminosity effects max-range based on what type the light's owner is. -/atom/proc/get_light_range() - return min(luminosity, LIGHTING_MAX_LUMINOSITY_STATIC) - -/atom/movable/get_light_range() - return min(luminosity, LIGHTING_MAX_LUMINOSITY_MOBILE) - -/mob/get_light_range() - return min(luminosity, LIGHTING_MAX_LUMINOSITY_MOB) - -/obj/machinery/light/get_light_range() - return min(luminosity, LIGHTING_MAX_LUMINOSITY_STATIC) - -/turf/get_light_range() - return min(luminosity, LIGHTING_MAX_LUMINOSITY_TURF) - -#undef LIGHTING_MAX_LUMINOSITY_STATIC -#undef LIGHTING_MAX_LUMINOSITY_MOBILE -#undef LIGHTING_MAX_LUMINOSITY_MOB -#undef LIGHTING_MAX_LUMINOSITY_TURF diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 8b31f3a7c74..ec38e7265bb 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -92,6 +92,7 @@ var/traitor_scaling_coeff = 6 //how much does the amount of players get divided by to determine traitors var/changeling_scaling_coeff = 6 //how much does the amount of players get divided by to determine changelings var/security_scaling_coeff = 8 //how much does the amount of players get divided by to determine open security officer positions + var/abductor_scaling_coeff = 15 //how many players per abductor team var/traitor_objectives_amount = 2 var/protect_roles_from_antagonist = 0 //If security and such can be traitor/cult/other @@ -421,6 +422,8 @@ config.changeling_scaling_coeff = text2num(value) if("security_scaling_coeff") config.security_scaling_coeff = text2num(value) + if("abductor_scaling_coeff") + config.abductor_scaling_coeff = text2num(value) if("traitor_objectives_amount") config.traitor_objectives_amount = text2num(value) if("probability") diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index 3a329379f97..6ebee701170 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -82,7 +82,8 @@ var/datum/subsystem/garbage_collector/SSgarbage // Return true if the the GC controller should allow the object to continue existing. (Useful if pooling objects.) /datum/proc/Destroy() //del(src) - return + tag = null + return 0 /datum/var/gc_destroyed //Time when this object was destroyed. diff --git a/code/controllers/subsystem/lighting.dm b/code/controllers/subsystem/lighting.dm index 0754b284c67..0aacf50f5b6 100644 --- a/code/controllers/subsystem/lighting.dm +++ b/code/controllers/subsystem/lighting.dm @@ -1,56 +1,50 @@ var/datum/subsystem/lighting/SSlighting #define MC_AVERAGE(average, current) (0.8*(average) + 0.2*(current)) -#define LIGHTING_ICON 'icons/effects/ss13_dark_alpha6.dmi' -#define LIGHTING_LAYER 10 //Drawing layer for lighting overlays /datum/subsystem/lighting name = "Lighting" wait = 5 priority = 1 - var/list/lighting_images = list() //replaces lighting_states (use lighting_images.len) ~carn - var/list/lights = list() //list of all datum/light_source - var/lights_workload = 0 //stats on the largest number of lights (max lights.len) - var/list/changed_turfs = list() //list of all turfs which need moving to a new lighting subarea + var/list/changed_lights = list() //list of all datum/light_source that need updating + var/changed_lights_workload = 0 //stats on the largest number of lights (max changed_lights.len) + var/list/changed_turfs = list() //list of all turfs which may have a different light level var/changed_turfs_workload = 0 //stats on the largest number of turfs changed (max changed_turfs.len) /datum/subsystem/lighting/New() NEW_SS_GLOBAL(SSlighting) - //cache lighting images - if(!lighting_images.len) - for(var/icon_state in icon_states(LIGHTING_ICON)) - lighting_images += image(LIGHTING_ICON, null, icon_state, LIGHTING_LAYER) - return ..() /datum/subsystem/lighting/stat_entry() - stat(name, "[round(cost,0.001)]ds (CPU:[round(cpu,1)]%) L:[round(lights_workload,1)]/T:[round(changed_turfs_workload,1)]") + stat(name, "[round(cost,0.001)]ds (CPU:[round(cpu,1)]%) L:[round(changed_lights_workload,1)]/T:[round(changed_turfs_workload,1)]") -//Workhorse of lighting. It cycles through each light to see which ones need their effects updating. It updates their -//effects and then processes every turf in the queue, moving the turfs to the corresponing lighting sub-area. -//All queue lists prune themselves, which will cause lights with no luminosity to be garbage collected (cheaper and safer -//than deleting them). +//Workhorse of lighting. It cycles through each light that needs updating. It updates their +//effects and then processes every turf in the queue, updating their lighting object's appearance +//Any light that returns 1 in check() deletes itself //By using queues we are ensuring we don't perform more updates than are necessary /datum/subsystem/lighting/fire() - lights_workload = MC_AVERAGE(lights_workload, lights.len) - var/i=1 - for(var/thing in lights) - if(thing && !thing:check()) //yes, cry that I'm using the : operator, it's much faster looping like this. And this gets called a lot. Dealwithit. - ++i - continue - lights.Cut(i, i+1) + changed_lights_workload = MC_AVERAGE(changed_lights_workload, changed_lights.len) + +// for(var/area/A in sortedAreas) +// A.luminosity = 1 + + for(var/datum/light_source/thing in changed_lights) + thing.check() + changed_lights.Cut() changed_turfs_workload = MC_AVERAGE(changed_turfs_workload, changed_turfs.len) - for(var/thing in changed_turfs) - if(thing && thing:lighting_changed) - thing:shift_to_subarea() + for(var/turf/thing in changed_turfs) + if(thing && thing.lighting_changed) + thing.redraw_lighting() changed_turfs.Cut() +// for(var/area/A in sortedAreas) +// A.luminosity = !A.lighting_use_dynamic //same as above except it attempts to shift ALL turfs in the world regardless of lighting_changed status //Does not loop. Should be run prior to process() being called for the first time. @@ -58,12 +52,13 @@ var/datum/subsystem/lighting/SSlighting //z-levels with the z_level argument /datum/subsystem/lighting/Initialize(timeofday, z_level) - var/i=1 - for(var/thing in lights) - if(thing && !thing:check()) - ++i - continue - lights.Cut(i, i+1) +// for(var/area/A in sortedAreas) +// A.luminosity = 1 + + for(var/datum/light_source/thing in changed_lights) + thing.add_effect() + thing.changed = 0 + changed_lights.Cut() var/z_start = 1 var/z_finish = world.maxz @@ -72,28 +67,24 @@ var/datum/subsystem/lighting/SSlighting z_start = z_level z_finish = z_level - for(var/z=z_start, z<=z_finish, ++z) - for(var/x=1, x<=world.maxx, ++x) - for(var/y=1, y<=world.maxy, ++y) - var/turf/T = locate(x,y,z) - if(T) - T.shift_to_subarea() + var/list/turfs_to_init = block(locate(1, 1, z_start), locate(world.maxx, world.maxy, z_finish)) + + for(var/turf/T in turfs_to_init) + T.init_lighting() if(z_level) //we need to loop through to clear only shifted turfs from the list. or we will cause errors - i=1 - for(var/thing in changed_turfs) - if(thing && thing:z < z_start && z_finish < thing:z) + var/i=1 + for(var/turf/thing in changed_turfs) + if(thing && thing.z < z_start && z_finish < thing.z) ++i continue changed_turfs.Cut(i, i+1) else changed_turfs.Cut() - if(config.starlight) - set background = 1 - for(var/turf/space/S in world) - S.update_starlight() +// for(var/area/A in sortedAreas) +// A.luminosity = !A.lighting_use_dynamic ..() @@ -103,21 +94,20 @@ var/datum/subsystem/lighting/SSlighting /datum/subsystem/lighting/Recover() if(!istype(SSlighting.changed_turfs)) SSlighting.changed_turfs = list() - if(!istype(SSlighting.lights)) - SSlighting.lights = list() + if(!istype(SSlighting.changed_lights)) + SSlighting.changed_lights = list() - if(istype(SSlighting.lighting_images)) - lighting_images = SSlighting.lighting_images +// for(var/area/A in sortedAreas) +// A.luminosity = 1 - for(var/datum/light_source/L in SSlighting.lights) + for(var/datum/light_source/L in SSlighting.changed_lights) spawn(-1) //so we don't crash the loop (inefficient) L.check() - lights += L //If we didn't runtime then this will get transferred over for(var/turf/T in changed_turfs) if(T.lighting_changed) spawn(-1) - T.shift_to_subarea() + T.redraw_lighting() var/msg = "## DEBUG: [time2text(world.timeofday)] [name] subsystem restarted. Reports:\n" for(var/varname in SSlighting.vars) @@ -132,5 +122,5 @@ var/datum/subsystem/lighting/SSlighting msg += "\t [varname] = [varval1] -> [varval2]\n" world.log << msg -#undef LIGHTING_ICON -#undef LIGHTING_LAYER \ No newline at end of file +// for(var/area/A in sortedAreas) +// A.luminosity = !A.lighting_use_dynamic \ No newline at end of file diff --git a/code/controllers/subsystem/npcpool.dm b/code/controllers/subsystem/npcpool.dm index 743435ec989..92fbccae6b6 100644 --- a/code/controllers/subsystem/npcpool.dm +++ b/code/controllers/subsystem/npcpool.dm @@ -110,7 +110,7 @@ var/datum/subsystem/npcpool/SSbp if(needsHelp_non.len) for(var/obj/machinery/bot/B in needsHelp_non) if(canBeUsed_non.len) - var/obj/machinery/bot/candidate = pick(canBeUsed_non.len) + var/obj/machinery/bot/candidate = pick(canBeUsed_non) candidate.call_bot(B,get_turf(B),FALSE) canBeUsed_non -= B needsHelp_non -= candidate diff --git a/code/datums/browser.dm b/code/datums/browser.dm index 0285f2be06c..a43a3996271 100644 --- a/code/datums/browser.dm +++ b/code/datums/browser.dm @@ -70,6 +70,7 @@ return {" + [head_content] diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm index 49991b32bea..48abda03c83 100644 --- a/code/datums/diseases/_MobProcs.dm +++ b/code/datums/diseases/_MobProcs.dm @@ -38,6 +38,7 @@ DD.holder = src if(DD.disease_flags & CAN_CARRY && prob(5)) DD.carrier = 1 + DD.strain_data = D.strain_data.Copy() DD.affected_mob.med_hud_set_status() diff --git a/code/datums/diseases/_disease.dm b/code/datums/diseases/_disease.dm index f7772c5ac2b..05ea21602c3 100644 --- a/code/datums/diseases/_disease.dm +++ b/code/datums/diseases/_disease.dm @@ -179,7 +179,9 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease /datum/disease/proc/Copy() - return new type() + var/datum/disease/D = new type() + D.strain_data = strain_data.Copy() + return D /datum/disease/proc/GetDiseaseID() diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index 28b08852240..541fef7bef7 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -13,7 +13,7 @@ var/list/archive_diseases = list() var/list/advance_cures = list( "nutriment", "sugar", "orangejuice", "spaceacillin", "salglu_solution", "ethanol", - "leporazine", "synaptizine", "lipozine", + "leporazine", "synaptizine", "lipolicide", "silver", "gold" ) diff --git a/code/datums/diseases/dna_spread.dm b/code/datums/diseases/dna_spread.dm index c24e13668e0..eb38e8689af 100644 --- a/code/datums/diseases/dna_spread.dm +++ b/code/datums/diseases/dna_spread.dm @@ -8,7 +8,7 @@ disease_flags = CAN_CARRY|CAN_RESIST agent = "S4E1 retrovirus" viable_mobtypes = list(/mob/living/carbon/human) - var/list/original_dna = list() + var/datum/dna/original_dna = null var/transformed = 0 desc = "This disease transplants the genetic code of the intial vector into new hosts." severity = MEDIUM @@ -16,6 +16,17 @@ /datum/disease/dnaspread/stage_act() ..() + if(!affected_mob.dna) + cure() + + if(!strain_data["dna"]) + //Absorbs the target DNA. + strain_data["dna"] = new affected_mob.dna.type + affected_mob.dna.copy_dna(strain_data["dna"]) + src.carrier = 1 + src.stage = 4 + return + switch(stage) if(2 || 3) //Pretend to be a cold and give time to spread. if(prob(8)) @@ -32,21 +43,18 @@ affected_mob.adjustToxLoss(2) affected_mob.updatehealth() if(4) - if(!src.transformed) - if ((!strain_data["name"]) || (!strain_data["UI"]) || (!strain_data["SE"])) - del(affected_mob.virus) - return - + if(!src.transformed && !src.carrier) //Save original dna for when the disease is cured. - src.original_dna["name"] = affected_mob.real_name - src.original_dna["UI"] = affected_mob.dna.uni_identity - src.original_dna["SE"] = affected_mob.dna.struc_enzymes + original_dna = new affected_mob.dna.type + affected_mob.dna.copy_dna(original_dna) affected_mob << "You don't feel like yourself.." - affected_mob.dna.uni_identity = strain_data["UI"] + var/datum/dna/transform_dna = strain_data["dna"] + + transform_dna.transfer_identity(affected_mob) + affected_mob.real_name = affected_mob.dna.real_name + updateappearance(affected_mob) - affected_mob.dna.struc_enzymes = strain_data["SE"] - affected_mob.real_name = strain_data["name"] domutcheck(affected_mob) src.transformed = 1 @@ -55,12 +63,12 @@ return /datum/disease/dnaspread/Del() - if ((original_dna["name"]) && (original_dna["UI"]) && (original_dna["SE"])) - if(affected_mob) - affected_mob.dna.uni_identity = original_dna["UI"] - updateappearance(affected_mob) - affected_mob.dna.struc_enzymes = original_dna["SE"] - affected_mob.real_name = original_dna["name"] + if (original_dna && transformed && affected_mob) + original_dna.transfer_identity(affected_mob) + affected_mob.real_name = affected_mob.dna.real_name - affected_mob << "You feel more like yourself." + updateappearance(affected_mob) + domutcheck(affected_mob) + + affected_mob << "You feel more like yourself." ..() \ No newline at end of file diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index de27718296c..4eac92f16b9 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -9,6 +9,7 @@ severity = HARMFUL stage_prob = 10 visibility_flags = HIDDEN_SCANNER|HIDDEN_PANDEMIC + disease_flags = CURABLE var/list/stage1 = list("You feel unremarkable.") var/list/stage2 = list("You feel boring.") var/list/stage3 = list("You feel utterly plain.") @@ -202,7 +203,7 @@ var/mob/living/carbon/human/human = affected_mob if(human.dna && human.dna.species.id != "slime") human.dna.species = new /datum/species/slime() - human.update_icons() + human.regenerate_icons() /datum/disease/transformation/corgi name = "The Barkening" diff --git a/code/datums/helper_datums/icon_snapshot.dm b/code/datums/helper_datums/icon_snapshot.dm new file mode 100644 index 00000000000..22b402be446 --- /dev/null +++ b/code/datums/helper_datums/icon_snapshot.dm @@ -0,0 +1,15 @@ +/datum/icon_snapshot + var/name + var/icon + var/icon_state + var/list/overlays + +/datum/icon_snapshot/proc/makeImg() + if(!icon || !icon_state) + return + var/obj/temp = new + temp.icon = icon + temp.icon_state = icon_state + temp.overlays = overlays.Copy() + var/icon/tempicon = getFlatIcon(temp) // TODO Actually write something less heavy-handed for this + return tempicon diff --git a/code/datums/hud.dm b/code/datums/hud.dm index f3315d1cfd6..e1fa433e26f 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -12,6 +12,7 @@ var/datum/atom_hud/huds = list( \ ANTAG_HUD_GANG_A = new/datum/atom_hud/antag(), \ ANTAG_HUD_GANG_B = new/datum/atom_hud/antag(), \ ANTAG_HUD_WIZ = new/datum/atom_hud/antag(), \ + ANTAG_HUD_SHADOW = new/datum/atom_hud/antag(), \ ) /datum/atom_hud diff --git a/code/datums/martial.dm b/code/datums/martial.dm new file mode 100644 index 00000000000..81e611df4f4 --- /dev/null +++ b/code/datums/martial.dm @@ -0,0 +1,324 @@ +/datum/martial_art + var/name = "Martial Art" + var/streak = "" + var/max_streak_length = 6 + var/current_target = null + var/temporary = 0 + var/datum/martial_art/base = null // The permanent style + +/datum/martial_art/proc/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + return 0 + +/datum/martial_art/proc/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + return 0 + +/datum/martial_art/proc/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + return 0 + +/datum/martial_art/proc/add_to_streak(var/element,var/mob/living/carbon/human/D) + if(D != current_target) + current_target = D + streak = "" + streak = streak+element + if(length(streak) > max_streak_length) + streak = copytext(streak,2) + return + +/datum/martial_art/proc/basic_hit(var/mob/living/carbon/human/A,var/mob/living/carbon/human/D) + add_logs(A, D, "punched") + A.do_attack_animation(D) + var/damage = rand(0,9) + + var/atk_verb = "punch" + if(D.lying) + atk_verb = "kick" + else if(A.dna) + atk_verb = A.dna.species.attack_verb + + if(A.dna) + damage += A.dna.species.punchmod + + if(!damage) + if(A.dna) + playsound(D.loc, A.dna.species.miss_sound, 25, 1, -1) + else + playsound(D.loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + D.visible_message("[A] has attempted to [atk_verb] [D]!") + return 0 + + var/obj/item/organ/limb/affecting = D.get_organ(ran_zone(A.zone_sel.selecting)) + var/armor_block = D.run_armor_check(affecting, "melee") + + if(A.dna) + playsound(D.loc, A.dna.species.attack_sound, 25, 1, -1) + else + playsound(D.loc, 'sound/weapons/punch1.ogg', 25, 1, -1) + + D.visible_message("[A] has [atk_verb]ed [D]!", \ + "[A] has [atk_verb]ed [D]!") + + D.apply_damage(damage, BRUTE, affecting, armor_block) + if((D.stat != DEAD) && damage >= 9) + D.visible_message("[A] has weakened [D]!!", \ + "[A] has weakened [D]!") + D.apply_effect(4, WEAKEN, armor_block) + D.forcesay(hit_appends) + else if(D.lying) + D.forcesay(hit_appends) + return 1 + +/datum/martial_art/proc/teach(var/mob/living/carbon/human/H,var/make_temporary=0) + if(make_temporary) + temporary = 1 + if(H.martial_art && H.martial_art.temporary) + if(temporary) + base = H.martial_art.base + else + H.martial_art.base = src //temporary styles have priority + return + H.martial_art = src + +/datum/martial_art/proc/remove(var/mob/living/carbon/human/H) + if(H.martial_art != src) + return + H.martial_art = base + +/datum/martial_art/boxing + name = "Boxing" + +/datum/martial_art/boxing/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + A << " Can't disarm while boxing!" + return 1 + +/datum/martial_art/boxing/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + A << " Can't grab while boxing!" + return 1 + +/datum/martial_art/boxing/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + add_logs(A, D, "punched") + A.do_attack_animation(D) + + var/atk_verb = pick("left hook","right hook","straight punch") + + var/damage = rand(5,8) + if(A.dna) + damage += A.dna.species.punchmod + if(!damage) + if(A.dna) + playsound(D.loc, A.dna.species.miss_sound, 25, 1, -1) + else + playsound(D.loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + D.visible_message("[A] has attempted to hit [D] with a [atk_verb]!") + return 0 + + + var/obj/item/organ/limb/affecting = D.get_organ(ran_zone(A.zone_sel.selecting)) + var/armor_block = D.run_armor_check(affecting, "melee") + + playsound(D.loc, 'sound/weapons/punch1.ogg', 25, 1, -1) + + + D.visible_message("[A] has hit [D] with a [atk_verb]!", \ + "[A] has hit [D] with a [atk_verb]!") + + D.apply_damage(damage, STAMINA, affecting, armor_block) + if(D.getStaminaLoss() > 50) + var/knockout_prob = D.getStaminaLoss() + rand(-15,15) + if((D.stat != DEAD) && prob(knockout_prob)) + D.visible_message("[A] has knocked [D] out with a haymaker!", \ + "[A] has knocked [D] out with a haymaker!") + D.apply_effect(10,WEAKEN,armor_block) + D.SetSleeping(5) + D.forcesay(hit_appends) + else if(D.lying) + D.forcesay(hit_appends) + return 1 + +/datum/martial_art/wrestling + name = "Wrestling" + +/datum/martial_art/wrestling/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + D.grabbedby(A,1) + var/obj/item/weapon/grab/G = A.get_active_hand() + if(G && prob(50)) + G.state = GRAB_AGGRESSIVE + D.visible_message("[A] has [D] in a clinch!", \ + "[A] has [D] in a clinch!") + else + D.visible_message("[A] fails to get [D] in a clinch!", \ + "[A] fails to get [D] in a clinch!") + return 1 + + +/datum/martial_art/wrestling/proc/Suplex(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + add_logs(A, D, "suplexed") + D.visible_message("[A] suplexes [D]!", \ + "[A] suplexes [D]!") + D.forceMove(A.loc) + var/armor_block = D.run_armor_check(null, "melee") + D.apply_damage(30, BRUTE, null, armor_block) + D.apply_effect(6, WEAKEN, armor_block) + A.SpinAnimation(10,1) + + D.SpinAnimation(10,1) + spawn(3) + armor_block = A.run_armor_check(null, "melee") + A.apply_effect(4, WEAKEN, armor_block) + return + +/datum/martial_art/wrestling/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + if(istype(A.get_inactive_hand(),/obj/item/weapon/grab)) + var/obj/item/weapon/grab/G = A.get_inactive_hand() + if(G.affecting == D) + Suplex(A,D) + return 1 + harm_act(A,D) + return 1 + +/datum/martial_art/wrestling/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + D.grabbedby(A,1) + D.visible_message("[A] holds [D] down!", \ + "[A] holds [D] down!") + var/obj/item/organ/limb/affecting = D.get_organ(ran_zone(A.zone_sel.selecting)) + var/armor_block = D.run_armor_check(affecting, "melee") + D.apply_damage(10, STAMINA, affecting, armor_block) + return 1 + +#define TORNADO_COMBO "HHD" +#define THROWBACK_COMBO "DHD" +#define PLASMA_COMBO "HDDDH" + +/datum/martial_art/plasma_fist + name = "Plasma Fist" + +/datum/martial_art/plasma_fist/proc/check_streak(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + if(findtext(streak,TORNADO_COMBO)) + streak = "" + Tornado(A,D) + return 1 + if(findtext(streak,THROWBACK_COMBO)) + streak = "" + Throwback(A,D) + return 1 + if(findtext(streak,PLASMA_COMBO)) + streak = "" + Plasma(A,D) + return 1 + return 0 + +/datum/martial_art/plasma_fist/proc/Tornado(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + A.say("TORNADO SWEEP!") + spawn(0) + for(var/i in list(NORTH,SOUTH,EAST,WEST,EAST,SOUTH,NORTH,SOUTH,EAST,WEST,EAST,SOUTH)) + A.dir = i + playsound(A.loc, 'sound/weapons/punch1.ogg', 15, 1, -1) + sleep(1) + var/obj/effect/proc_holder/spell/aoe_turf/repulse/R = new(null) + var/list/turfs = list() + for(var/turf/T in range(1,A)) + turfs.Add(T) + R.cast(turfs) + return + +/datum/martial_art/plasma_fist/proc/Throwback(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + D.visible_message("[A] has hit [D] with Plasma Punch!", \ + "[A] has hit [D] with Plasma Punch!") + playsound(D.loc, 'sound/weapons/punch1.ogg', 50, 1, -1) + var/atom/throw_target = get_edge_target_turf(D, get_dir(D, get_step_away(D, A))) + D.throw_at(throw_target, 200, 4) + A.say("HYAH!") + return + +/datum/martial_art/plasma_fist/proc/Plasma(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + A.do_attack_animation(D) + playsound(D.loc, 'sound/weapons/punch1.ogg', 50, 1, -1) + A.say("PLASMA FIST!") + D.visible_message("[A] has hit [D] with THE PLASMA FIST TECHNIQUE!", \ + "[A] has hit [D] with THE PLASMA FIST TECHNIQUE!") + var/obj/item/organ/brain/B = D.getorgan(/obj/item/organ/brain) + if(B) + B.loc = get_turf(D) + B.transfer_identity(D) + D.internal_organs -= B + D.gib() + return + +/datum/martial_art/plasma_fist/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + add_to_streak("H") + if(check_streak(A,D)) + return 1 + basic_hit(A,D) + return 1 + +/datum/martial_art/plasma_fist/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + add_to_streak("D") + if(check_streak(A,D)) + return 1 + basic_hit(A,D) + return 1 + +/datum/martial_art/plasma_fist/grab_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) + add_to_streak("G") + if(check_streak(A,D)) + return 1 + basic_hit(A,D) + return 1 + + +//ITEMS +/obj/item/clothing/gloves/boxing + var/datum/martial_art/boxing/style = new + +/obj/item/clothing/gloves/boxing/equipped(mob/user, slot) + if(!ishuman(user)) + return + if(slot == slot_gloves) + var/mob/living/carbon/human/H = user + style.teach(H,1) + return + +/obj/item/clothing/gloves/boxing/dropped(mob/user) + if(!ishuman(user)) + return + var/mob/living/carbon/human/H = user + if(H.get_item_by_slot(slot_gloves) == src) + style.remove(H) + return + +/obj/item/weapon/storage/belt/champion/wrestling + name = "Wrestling Belt" + var/datum/martial_art/wrestling/style = new + +/obj/item/weapon/storage/belt/champion/wrestling/equipped(mob/user, slot) + if(!ishuman(user)) + return + if(slot == slot_belt) + var/mob/living/carbon/human/H = user + style.teach(H,1) + return + +/obj/item/weapon/storage/belt/champion/wrestling/dropped(mob/user) + if(!ishuman(user)) + return + var/mob/living/carbon/human/H = user + if(H.get_item_by_slot(slot_belt) == src) + style.remove(H) + return + +/obj/item/weapon/plasma_fist_scroll + name = "Plasma Fist Scroll" + desc = "Teaches the traditional wizard martial art." + icon = 'icons/obj/wizard.dmi' + icon_state ="scroll2" + var/used = 0 + +/obj/item/weapon/plasma_fist_scroll/attack_self(mob/user as mob) + if(!ishuman(user)) + return + if(!used) + var/mob/living/carbon/human/H = user + var/datum/martial_art/plasma_fist/F = new/datum/martial_art/plasma_fist(null) + F.teach(H) + H << "You learn the PLASMA FIST style" + used = 1 + desc += "It looks like it's magic was used up." diff --git a/code/datums/mind.dm b/code/datums/mind.dm index b7b6317a083..e2ff2b5bfc7 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -80,6 +80,7 @@ current = new_character //associate ourself with our new body new_character.mind = src //and associate our new body with ourself transfer_antag_huds(new_character) //inherit the antag HUDs from this mind (TODO: move this to a possible antag datum) + transfer_actions(new_character) if(active) new_character.key = key //now transfer the key to link the client to our new body @@ -1057,6 +1058,7 @@ else if(href_list["shadowling"]) switch(href_list["shadowling"]) if("clear") + ticker.mode.update_shadow_icons_removed(src) src.spell_list = null if(src in ticker.mode.shadows) ticker.mode.shadows -= src @@ -1082,9 +1084,8 @@ current << "You notice a brightening around you. No, it isn't that. The shadows grow, darken, swirl. The darkness has a new welcome for you, and you realize with a \ start that you can't be human. No, you are a shadowling, a harbringer of the shadows! Your alien abilities have been unlocked from within, and you may both commune with your allies and use \ a chrysalis to reveal your true form. You are to ascend at all costs." - src.spell_list += new /obj/effect/proc_holder/spell/targeted/shadowling_hivemind - src.spell_list += new /obj/effect/proc_holder/spell/targeted/enthrall - current.verbs += /mob/living/carbon/human/proc/shadowling_hatch + ticker.mode.finalize_shadowling(src) + ticker.mode.update_shadow_icons_added(src) if("thrall") if(!ishuman(current)) usr << "This only works on humans!" @@ -1096,7 +1097,6 @@ current << "You may use the Hivemind Commune ability to communicate with your fellow enlightened ones." message_admins("[key_name_admin(usr)] has thrall'ed [current].") log_admin("[key_name(usr)] has thrall'ed [current].") - src.spell_list += new /obj/effect/proc_holder/spell/targeted/shadowling_hivemind else if (href_list["monkey"]) var/mob/living/L = current @@ -1373,6 +1373,37 @@ ticker.mode.greet_gang(src) ticker.mode.equip_gang(current) + + +/datum/mind/proc/AddSpell(var/obj/effect/proc_holder/spell/spell) + spell_list += spell + if(!spell.action) + spell.action = new/datum/action/spell_action + spell.action.target = spell + spell.action.name = spell.name + spell.action.button_icon = spell.action_icon + spell.action.button_icon_state = spell.action_icon_state + spell.action.background_icon_state = spell.action_background_icon_state + spell.action.Grant(current) + return +/datum/mind/proc/transfer_actions(var/mob/living/new_character) + if(current && current.actions) + for(var/datum/action/A in current.actions) + A.Grant(new_character) + transfer_mindbound_actions(new_character) + +/datum/mind/proc/transfer_mindbound_actions(var/mob/living/new_character) + for(var/obj/effect/proc_holder/spell/spell in spell_list) + if(!spell.action) // Unlikely but whatever + spell.action = new/datum/action/spell_action + spell.action.target = spell + spell.action.name = spell.name + spell.action.button_icon = spell.action_icon + spell.action.button_icon_state = spell.action_icon_state + spell.action.background_icon_state = spell.action_background_icon_state + spell.action.Grant(new_character) + return + /mob/proc/sync_mind() mind_initialize() //updates the mind (or creates and initializes one if one doesn't exist) mind.active = 1 //indicates that the mind is currently synced with a client diff --git a/code/datums/spell.dm b/code/datums/spell.dm index 587d5f1c646..b6978142e01 100644 --- a/code/datums/spell.dm +++ b/code/datums/spell.dm @@ -53,6 +53,11 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin var/critfailchance = 0 var/centcom_cancast = 1 //Whether or not the spell should be allowed on z2 + var/datum/action/spell_action/action = null + var/action_icon = 'icons/mob/actions.dmi' + var/action_icon_state = "spell_default" + var/action_background_icon_state = "bg_spell" + /obj/effect/proc_holder/spell/proc/cast_check(skipcharge = 0,mob/user = usr) //checks if the spell can be cast based on its settings; skipcharge is used when an additional cast_check is called inside the spell if(((!user.mind) || !(src in user.mind.spell_list)) && !(src in user.mob_spell_list)) @@ -347,4 +352,45 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin qdel(dummy) return 0 qdel(dummy) + return 1 + +/obj/effect/proc_holder/spell/proc/can_cast(mob/user = usr) + if(((!user.mind) || !(src in user.mind.spell_list)) && !(src in user.mob_spell_list)) + return 0 + + if(user.z == ZLEVEL_CENTCOM && !centcom_cancast) //Certain spells are not allowed on the centcom zlevel + return 0 + if(user.z == ZLEVEL_CENTCOM && ticker.mode.name == "ragin' mages") + return 0 + + switch(charge_type) + if("recharge") + if(charge_counter < charge_max) + return 0 + if("charges") + if(!charge_counter) + return 0 + + if(user.stat && !stat_allowed) + return 0 + + if(ishuman(user)) + + var/mob/living/carbon/human/H = user + + if((invocation_type == "whisper" || invocation_type == "shout") && H.is_muzzled()) + return 0 + + if(clothes_req) //clothes check + if(!istype(H.wear_suit, /obj/item/clothing/suit/wizrobe) && !istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit/wizard)) + return 0 + if(!istype(H.shoes, /obj/item/clothing/shoes/sandal)) + return 0 + if(!istype(H.head, /obj/item/clothing/head/wizard) && !istype(H.head, /obj/item/clothing/head/helmet/space/hardsuit/wizard)) + return 0 + else + if(clothes_req || human_req) + return 0 + if(nonabstract_req && (isbrain(user) || ispAI(user))) + return 0 return 1 \ No newline at end of file diff --git a/code/datums/spells/barnyard.dm b/code/datums/spells/barnyard.dm index 7b62eb90a81..5b81f684b44 100644 --- a/code/datums/spells/barnyard.dm +++ b/code/datums/spells/barnyard.dm @@ -14,6 +14,8 @@ selection_type = "range" var/list/compatible_mobs = list(/mob/living/carbon/human,/mob/living/carbon/monkey) + action_icon_state = "barn" + /obj/effect/proc_holder/spell/targeted/barnyardcurse/cast(list/targets, mob/user = usr) if(!targets.len) user << "No target found in range." diff --git a/code/datums/spells/emplosion.dm b/code/datums/spells/emplosion.dm index 33ad284421c..e27814a6fde 100644 --- a/code/datums/spells/emplosion.dm +++ b/code/datums/spells/emplosion.dm @@ -5,6 +5,8 @@ var/emp_heavy = 2 var/emp_light = 3 + action_icon_state = "emp" + /obj/effect/proc_holder/spell/targeted/emplosion/cast(list/targets) for(var/mob/living/target in targets) diff --git a/code/datums/spells/ethereal_jaunt.dm b/code/datums/spells/ethereal_jaunt.dm index dc098de63f3..da2b438ebbb 100644 --- a/code/datums/spells/ethereal_jaunt.dm +++ b/code/datums/spells/ethereal_jaunt.dm @@ -13,6 +13,7 @@ centcom_cancast = 0 //Prevent people from getting to centcom nonabstract_req = 1 var/jaunt_duration = 50 //in deciseconds + action_icon_state = "jaunt" /obj/effect/proc_holder/spell/targeted/ethereal_jaunt/cast(list/targets) //magnets, so mostly hardcoded for(var/mob/living/target in targets) diff --git a/code/datums/spells/knock.dm b/code/datums/spells/knock.dm index b96c96455a8..85bcaa0c6da 100644 --- a/code/datums/spells/knock.dm +++ b/code/datums/spells/knock.dm @@ -10,6 +10,8 @@ range = 3 cooldown_min = 20 //20 deciseconds reduction per rank + action_icon_state = "knock" + /obj/effect/proc_holder/spell/aoe_turf/knock/cast(list/targets) for(var/turf/T in targets) for(var/obj/machinery/door/door in T.contents) diff --git a/code/datums/spells/lightning.dm b/code/datums/spells/lightning.dm index b3e813c7e0e..38249722221 100644 --- a/code/datums/spells/lightning.dm +++ b/code/datums/spells/lightning.dm @@ -14,6 +14,8 @@ var/ready = 0 var/image/halo = null + action_icon_state = "lightning" + /obj/effect/proc_holder/spell/targeted/lightning/Click() if(!ready) if(cast_check()) diff --git a/code/datums/spells/mime.dm b/code/datums/spells/mime.dm index 12c4a8e837b..122c89c8c74 100644 --- a/code/datums/spells/mime.dm +++ b/code/datums/spells/mime.dm @@ -12,6 +12,8 @@ range = 0 cast_sound = null + action_icon_state = "mime" + action_background_icon_state = "bg_mime" /obj/effect/proc_holder/spell/aoe_turf/conjure/mime_wall/Click() if(usr && usr.mind) @@ -35,6 +37,9 @@ range = -1 include_user = 1 + action_icon_state = "mime" + action_background_icon_state = "bg_mime" + /obj/effect/proc_holder/spell/targeted/mime/speak/Click() if(!usr) return diff --git a/code/datums/spells/mind_transfer.dm b/code/datums/spells/mind_transfer.dm index 0c8032c9b7e..710d98ba015 100644 --- a/code/datums/spells/mind_transfer.dm +++ b/code/datums/spells/mind_transfer.dm @@ -13,6 +13,8 @@ var/paralysis_amount_caster = 20 //how much the caster is paralysed for after the spell var/paralysis_amount_victim = 20 //how much the victim is paralysed for after the spell + action_icon_state = "mindswap" + /* Urist: I don't feel like figuring out how you store object spells so I'm leaving this for you to do. Make sure spells that are removed from spell_list are actually removed and deleted when mind transfering. diff --git a/code/datums/spells/summonitem.dm b/code/datums/spells/summonitem.dm index 70becd17a9f..bdd35c2dd01 100644 --- a/code/datums/spells/summonitem.dm +++ b/code/datums/spells/summonitem.dm @@ -13,6 +13,8 @@ var/obj/marked_item + action_icon_state = "summons" + /obj/effect/proc_holder/spell/targeted/summonitem/cast(list/targets) for(var/mob/living/user in targets) var/list/hand_items = list(user.get_active_hand(),user.get_inactive_hand()) diff --git a/code/datums/spells/wizard.dm b/code/datums/spells/wizard.dm index a0b201d9dd7..14ba4bad123 100644 --- a/code/datums/spells/wizard.dm +++ b/code/datums/spells/wizard.dm @@ -24,6 +24,8 @@ proj_trail_lifespan = 5 proj_trail_icon_state = "magicmd" + action_icon_state = "magicm" + /obj/effect/proc_holder/spell/targeted/inflict_handler/magic_missile amt_weakened = 3 amt_dam_fire = 10 @@ -46,6 +48,8 @@ duration = 300 cooldown_min = 300 //25 deciseconds reduction per rank + action_icon_state = "mutate" + /obj/effect/proc_holder/spell/targeted/inflict_handler/disintegrate name = "Disintegrate" desc = "This spell instantly kills somebody adjacent to you with the vilest of magick." @@ -63,6 +67,8 @@ sparks_spread = 1 sparks_amt = 4 + action_icon_state = "gib" + /obj/effect/proc_holder/spell/targeted/smoke name = "Smoke" desc = "This spell spawns a cloud of choking smoke at your location and does not require wizard garb." @@ -79,6 +85,8 @@ smoke_spread = 2 smoke_amt = 10 + action_icon_state = "smoke" + /obj/effect/proc_holder/spell/targeted/emplosion/disable_tech name = "Disable Tech" desc = "This spell disables all weapons, cameras and most other technology in range." @@ -115,6 +123,8 @@ centcom_cancast = 0 //prevent people from getting to centcom + action_icon_state = "blink" + /obj/effect/proc_holder/spell/targeted/area_teleport/teleport name = "Teleport" desc = "This spell teleports you to a type of area of your selection." @@ -146,6 +156,8 @@ summon_type = list("/obj/effect/forcefield") summon_lifespan = 300 + action_icon_state = "shield" + /obj/effect/proc_holder/spell/aoe_turf/conjure/carp name = "Summon Carp" @@ -174,6 +186,8 @@ summon_type = list(/obj/structure/constructshell) + action_icon_state = "artificer" + /obj/effect/proc_holder/spell/aoe_turf/conjure/creature name = "Summon Creature Swarm" @@ -203,6 +217,8 @@ starting_spells = list("/obj/effect/proc_holder/spell/targeted/inflict_handler/blind","/obj/effect/proc_holder/spell/targeted/genetic/blind") + action_icon_state = "blind" + /obj/effect/proc_holder/spell/targeted/inflict_handler/blind amt_eye_blind = 10 amt_eye_blurry = 20 @@ -226,6 +242,8 @@ summon_type = "/obj/structure/closet/statue" + action_icon_state = "statue" + /obj/effect/proc_holder/spell/dumbfire/fireball name = "Fireball" desc = "This spell fires a fireball at a target and does not require wizard garb." @@ -245,6 +263,8 @@ proj_lifespan = 200 proj_step_delay = 1 + action_icon_state = "fireball" + /obj/effect/proc_holder/spell/turf/fireball/cast(var/turf/T) explosion(T, -1, 0, 2, 3, 0, flame_range = 2) @@ -271,6 +291,8 @@ selection_type = "view" var/maxthrow = 5 + action_icon_state = "repulse" + /obj/effect/proc_holder/spell/aoe_turf/repulse/cast(list/targets) var/mob/user = usr var/list/thrownatoms = list() @@ -279,10 +301,10 @@ for(var/turf/T in targets) //Done this way so things don't get thrown all around hilariously. for(var/atom/movable/AM in T) thrownatoms += AM - + for(var/atom/movable/AM in thrownatoms) if(AM == user || AM.anchored) continue - + var/obj/effect/overlay/targeteffect = new /obj/effect/overlay{icon='icons/effects/effects.dmi'; icon_state="shieldsparkles"; mouse_opacity=0; density = 0}() AM.overlays += targeteffect throwtarget = get_edge_target_turf(user, get_dir(user, get_step_away(AM, user))) diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index 030f4890756..980cca93832 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -120,6 +120,10 @@ var/list/uplink_items = list() gamemodes = list(/datum/game_mode/nuclear) surplus = 40 +/datum/uplink_item/dangerous/smg/unrestricted + item = /obj/item/weapon/gun/projectile/automatic/c20r/unrestricted + gamemodes = list(/datum/game_mode/gang) + /datum/uplink_item/dangerous/carbine name = "M-90gl Carbine" desc = "A fully-loaded three-round burst carbine that uses 30-round 5.56mm magazines with a togglable underslung 40mm grenade launcher." @@ -128,6 +132,10 @@ var/list/uplink_items = list() gamemodes = list(/datum/game_mode/nuclear) surplus = 50 +/datum/uplink_item/dangerous/carbine/unrestricted + item = /obj/item/weapon/gun/projectile/automatic/m90/unrestricted + gamemodes = list(/datum/game_mode/gang) + /datum/uplink_item/dangerous/machinegun name = "L6 Squad Automatic Weapon" desc = "A fully-loaded Aussec Armoury belt-fed machine gun. This deadly weapon has a massive 50-round magazine of devastating 7.62x51mm ammunition." @@ -142,7 +150,7 @@ var/list/uplink_items = list() 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 = 12 - excludefrom = list(/datum/game_mode/nuclear) + excludefrom = list(/datum/game_mode/nuclear,/datum/game_mode/gang) surplus = 50 /datum/uplink_item/dangerous/flamethrower @@ -150,7 +158,7 @@ var/list/uplink_items = list() desc = "A flamethrower, fueled by a portion of highly flammable biotoxins stolen previously from Nanotrasen stations. Make a statement by roasting the filth in their own greed. Use with caution." item = /obj/item/weapon/flamethrower/full/tank cost = 11 - gamemodes = list(/datum/game_mode/nuclear) + gamemodes = list(/datum/game_mode/nuclear,/datum/game_mode/gang) surplus = 40 /datum/uplink_item/dangerous/sword @@ -201,7 +209,7 @@ var/list/uplink_items = list() Use with extreme caution, to prevent exposure to yourself and your fellow operatives." item = /obj/item/weapon/reagent_containers/spray/chemsprayer/bioterror cost = 20 - gamemodes = list(/datum/game_mode/nuclear) + gamemodes = list(/datum/game_mode/nuclear,/datum/game_mode/gang) surplus = 0 /datum/uplink_item/dangerous/gygax @@ -258,7 +266,7 @@ var/list/uplink_items = list() desc = "An additional 20-round .45 magazine for use in the C-20r submachine gun. These bullets pack a lot of punch that can knock most targets down, but do limited overall damage." item = /obj/item/ammo_box/magazine/smgm45 cost = 2 - gamemodes = list(/datum/game_mode/nuclear) + gamemodes = list(/datum/game_mode/nuclear,/datum/game_mode/gang) /datum/uplink_item/ammo/bullbuck name = "Drum Magazine - 12g Buckshot" @@ -286,7 +294,7 @@ var/list/uplink_items = list() desc = "An additional 30-round 5.56 magazine for use in the M-90gl carbine. These bullets don't have the punch to knock most targets down, but dish out higher overall damage." item = /obj/item/ammo_box/magazine/m556 cost = 2 - gamemodes = list(/datum/game_mode/nuclear) + gamemodes = list(/datum/game_mode/nuclear,/datum/game_mode/gang) /datum/uplink_item/ammo/a40mm name = "Ammo Box - 40mm grenades" @@ -330,6 +338,7 @@ var/list/uplink_items = list() item = /obj/item/weapon/gun/projectile/automatic/toy/pistol/riot cost = 10 surplus = 10 + excludefrom = list(/datum/game_mode/gang) /datum/uplink_item/stealthy_weapons/sleepy_pen name = "Sleepy Pen" @@ -337,7 +346,7 @@ var/list/uplink_items = list() The pen holds one dose of the mixture, and cannot be refilled." item = /obj/item/weapon/pen/sleepy cost = 4 - excludefrom = list(/datum/game_mode/nuclear) + excludefrom = list(/datum/game_mode/nuclear,/datum/game_mode/gang) /datum/uplink_item/stealthy_weapons/soap name = "Syndicate Soap" @@ -374,6 +383,12 @@ var/list/uplink_items = list() cost = 4 surplus = 8 +/datum/uplink_item/stealthy_weapons/dehy_carp + name = "Dehydrated Space Carp" + desc = "Just add water to make your very own hostile to everything space carp. It looks just like a plushie." + item = /obj/item/toy/carpplushie/dehy_carp + cost = 3 + // STEALTHY TOOLS /datum/uplink_item/stealthy_tools @@ -416,6 +431,7 @@ var/list/uplink_items = list() desc = "Projects an image across a user, disguising them as an object scanned with it, as long as they don't move the projector from their hand. The disguised user cannot run and rojectiles pass over them." item = /obj/item/device/chameleon cost = 7 + excludefrom = list(/datum/game_mode/gang) /datum/uplink_item/stealthy_tools/camera_bug name = "Camera Bug" @@ -448,6 +464,7 @@ var/list/uplink_items = list() desc = "The emag is a small card that unlocks hidden functions in electronic devices, subverts intended functions and characteristically breaks security mechanisms." item = /obj/item/weapon/card/emag cost = 6 + excludefrom = list(/datum/game_mode/gang) /datum/uplink_item/device_tools/toolbox name = "Full Syndicate Toolbox" @@ -461,7 +478,7 @@ var/list/uplink_items = list() and other medical supplies helpful for a medical field operative." item = /obj/item/weapon/storage/firstaid/tactical cost = 9 - gamemodes = list(/datum/game_mode/nuclear) + gamemodes = list(/datum/game_mode/nuclear,/datum/game_mode/gang) /datum/uplink_item/badass/syndiecigs name = "Syndicate Smokes" @@ -474,6 +491,7 @@ var/list/uplink_items = list() desc = "The red and black syndicate space suit is less encumbering than Nanotrasen variants, fits inside bags, and has a weapon slot. Nanotrasen crewmembers are trained to report red space suit sightings." item = /obj/item/weapon/storage/box/syndie_kit/space cost = 5 + excludefrom = list(/datum/game_mode/gang) /datum/uplink_item/device_tools/hardsuit name = "Blood-red Hardsuit" @@ -483,6 +501,7 @@ var/list/uplink_items = list() Nanotrasen crewmembers are trained to report red space suit sightings, these suits in particular are known to drive employees into a panic." item = /obj/item/clothing/suit/space/hardsuit/syndi cost = 8 + excludefrom = list(/datum/game_mode/gang) /datum/uplink_item/device_tools/thermal name = "Thermal Imaging Glasses" @@ -547,6 +566,7 @@ var/list/uplink_items = list() leading to an emergency evacuation. Because of its size, it cannot be carried. Ordering this sends you a small beacon that will teleport the larger beacon to your location on activation." item = /obj/item/device/sbeacondrop cost = 14 + excludefrom = list(/datum/game_mode/gang) /datum/uplink_item/device_tools/syndicate_bomb name = "Syndicate Bomb" @@ -584,7 +604,7 @@ var/list/uplink_items = list() desc = "An incredibly useful personal shield projector, capable of reflecting energy projectiles and defending against other attacks." item = /obj/item/weapon/shield/energy cost = 16 - gamemodes = list(/datum/game_mode/nuclear) + gamemodes = list(/datum/game_mode/nuclear,/datum/game_mode/gang) surplus = 20 @@ -630,7 +650,7 @@ var/list/uplink_items = list() desc = "Syndicate Bundles are specialised groups of items that arrive in a plain box. These items are collectively worth more than 10 telecrystals, but you do not know which specialisation you will receive." item = /obj/item/weapon/storage/box/syndicate cost = 20 - excludefrom = list(/datum/game_mode/nuclear) + excludefrom = list(/datum/game_mode/nuclear,/datum/game_mode/gang) /datum/uplink_item/badass/syndiecards name = "Syndicate Playing Cards" diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index fb9b8f856d3..de1f395efb4 100644 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -194,8 +194,7 @@ proc/process_ghost_teleport_locs() /area/asteroid/artifactroom/New() ..() - lighting_use_dynamic = 1 - InitializeLighting() + SetDynamicLighting() /area/planet/clown name = "\improper Clown Planet" @@ -246,9 +245,12 @@ proc/process_ghost_teleport_locs() requires_power = 0 has_gravity = 1 - - - +//Abductors +/area/abductor_ship + name = "\improper Abductor Ship" + icon_state = "yellow" + requires_power = 0 + has_gravity = 1 //PRISON diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 86520169a27..0eb02295941 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -43,7 +43,6 @@ ..() power_change() // all machines set to current power level, also updates lighting icon - InitializeLighting() blend_mode = BLEND_MULTIPLY // Putting this in the constructure so that it stops the icons being screwed up in the map editor. @@ -223,7 +222,7 @@ return /area/proc/updateicon() - if ((fire || eject || party) && (!requires_power||power_environ) && !lighting_space)//If it doesn't require power, can still activate this proc. + if ((fire || eject || party) && (!requires_power||power_environ))//If it doesn't require power, can still activate this proc. if(fire && !eject && !party) icon_state = "blue" /*else if(atmosalm && !fire && !eject && !party) @@ -238,6 +237,8 @@ // new lighting behaviour with obj lights icon_state = null +/area/space/updateicon() + icon_state = null /* #define EQUIP 1 @@ -251,8 +252,6 @@ return 1 if(master.always_unpowered) return 0 - if(src.lighting_space) - return 0 // Nope sorry switch(chan) if(EQUIP) return master.power_equip @@ -263,6 +262,9 @@ return 0 +/area/space/powered(chan) //Nope.avi + return 0 + // called when power status changes /area/proc/power_change() @@ -330,11 +332,11 @@ L.lastarea = newarea // Ambience goes down here -- make sure to list each area seperately for ease of adding things in later, thanks! Note: areas adjacent to each other should have the same sounds to prevent cutoff when possible.- LastyScratch - if(!L.client.ambience_playing && L.client.prefs.toggles & SOUND_SHIP_AMBIENCE) + if(L.client && !L.client.ambience_playing && L.client.prefs.toggles & SOUND_SHIP_AMBIENCE) L.client.ambience_playing = 1 L << sound('sound/ambience/shipambience.ogg', repeat = 1, wait = 0, volume = 35, channel = 2) - if(!(L && L.client && (L.client.prefs.toggles & SOUND_AMBIENCE))) return //General ambience check is below the ship ambience so one can play without the other + if(!(L.client && (L.client.prefs.toggles & SOUND_AMBIENCE))) return //General ambience check is below the ship ambience so one can play without the other if(prob(35)) var/sound = pick(ambientsounds) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 66042f4f67b..2404daaba58 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -20,7 +20,7 @@ //var/chem_is_open_container = 0 // replaced by OPENCONTAINER flags and atom/proc/is_open_container() ///Chemistry. - + var/allow_spin = 1 /atom/proc/onCentcom() var/turf/T = get_turf(src) if(!T) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index a0eaf523e16..86f153923a5 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -15,6 +15,7 @@ var/pass_flags = 0 glide_size = 8 + /atom/movable/Move(atom/newloc, direct = 0) if(!loc || !newloc) return 0 var/atom/oldloc = loc @@ -46,11 +47,13 @@ else if (step(src, WEST)) . = step(src, SOUTH) - if(!loc || (loc == oldloc && oldloc != newloc)) last_move = 0 return + if(.) + Moved(oldloc, direct) + last_move = direct spawn(5) // Causes space drifting. /tg/station has no concept of speed, we just use 5 @@ -58,6 +61,10 @@ if(loc == newloc) //Remove this check and people can accelerate. Not opening that can of worms just yet. newtonian_move(last_move) +//Called after a successful Move(). By this point, we've already moved +/atom/movable/proc/Moved(atom/OldLoc, Dir) + return 1 + /atom/movable/Del() if(isnull(gc_destroyed) && loc) testing("GC: -- [type] was deleted via del() rather than qdel() --") @@ -68,14 +75,13 @@ ..() /atom/movable/Destroy() + . = ..() if(reagents) qdel(reagents) for(var/atom/movable/AM in contents) qdel(AM) - tag = null loc = null invisibility = 101 - // Do not call ..() // Previously known as HasEntered() // This is automatically called when something enters your square @@ -96,12 +102,15 @@ /atom/movable/proc/forceMove(atom/destination) if(destination) - if(loc) - loc.Exited(src) + var/atom/oldloc = loc + if(oldloc) + oldloc.Exited(src, destination) loc = destination - loc.Entered(src) - for(var/atom/movable/AM in loc) + destination.Entered(src, oldloc) + for(var/atom/movable/AM in destination) + if(AM == src) continue AM.Crossed(src) + Moved(oldloc, 0) return 1 return 0 @@ -159,7 +168,8 @@ //use a modified version of Bresenham's algorithm to get from the atom's current position to that of the target src.throwing = 1 - SpinAnimation(5, 1) + if(target.allow_spin) // turns out 1000+ spinning objects being thrown at the singularity creates lag - Iamgoofball + SpinAnimation(5, 1) var/dist_x = abs(target.x - src.x) var/dist_y = abs(target.y - src.y) var/dx = (target.x > src.x) ? EAST : WEST diff --git a/code/game/communications.dm b/code/game/communications.dm index 16cd14b7fb7..895d36813ce 100644 --- a/code/game/communications.dm +++ b/code/game/communications.dm @@ -173,12 +173,7 @@ var/const/RADIO_CHAT = "3" //deprecated var/const/RADIO_ATMOSIA = "4" var/const/RADIO_NAVBEACONS = "5" var/const/RADIO_AIRLOCK = "6" -var/const/RADIO_SECBOT = "7" -var/const/RADIO_MULEBOT = "8" var/const/RADIO_MAGNETS = "9" -var/const/RADIO_CLEANBOT = "10" -var/const/RADIO_FLOORBOT = "11" -var/const/RADIO_MEDBOT = "12" /datum/radio_frequency diff --git a/code/game/dna.dm b/code/game/dna.dm index 21f94b0ce29..43f11afb6e7 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -36,9 +36,20 @@ destination.dna.uni_identity = uni_identity destination.dna.blood_type = blood_type destination.dna.species = species + destination.dna.mutant_color = mutant_color destination.dna.real_name = real_name destination.dna.mutations = mutations +/datum/dna/proc/copy_dna(var/datum/dna/new_dna) + new_dna.unique_enzymes = unique_enzymes + new_dna.struc_enzymes = struc_enzymes + new_dna.uni_identity = uni_identity + new_dna.blood_type = blood_type + new_dna.species = new species.type + new_dna.mutant_color = mutant_color + new_dna.real_name = real_name + new_dna.mutations = mutations + /datum/dna/proc/add_mutation(mutation_name) var/datum/mutation/human/HM = mutations_list[mutation_name] HM.on_acquiring(holder) diff --git a/code/game/gamemodes/abduction/abduction.dm b/code/game/gamemodes/abduction/abduction.dm new file mode 100644 index 00000000000..cd605c9e280 --- /dev/null +++ b/code/game/gamemodes/abduction/abduction.dm @@ -0,0 +1,356 @@ +/datum/game_mode + var/list/datum/mind/abductors = list() + +/datum/game_mode/abduction + name = "Abduction" + config_tag = "abduction" + antag_flag = BE_ABDUCTOR + pre_setup_before_jobs = 1 + recommended_enemies = 2 + required_players = 15 + var/max_teams = 4 + var/teams = 1 + var/list/datum/mind/scientists = list() + var/list/datum/mind/agents = list() + var/list/datum/objective/team_objectives = list() + var/list/team_names = list() + +/datum/game_mode/abduction/announce() + world << "The current game mode is - Abduction!" + +/datum/game_mode/abduction/pre_setup() + teams = max(1, min(max_teams,round(num_players()/config.abductor_scaling_coeff))) + var/possible_teams = max(1,round(antag_candidates.len / 2)) + teams = min(teams,possible_teams) + + abductors.len = 2*teams + scientists.len = teams + agents.len = teams + team_objectives.len = teams + team_names.len = teams + + for(var/i=1,i<=teams,i++) + if(!make_abductor_team(i)) + return 0 + + return 1 + +/datum/game_mode/abduction/proc/make_abductor_team(var/team_number) + //Team Name + team_names[team_number] = "Mothership [pick(possible_changeling_IDs)]" //TODO Ensure unique and actual alieny names + //Team Objective + var/datum/objective/experiment/team_objective = new + team_objective.team = team_number + team_objectives[team_number] = team_objective + //Team Members + if(antag_candidates.len >=2) + var/datum/mind/scientist = pick(antag_candidates) + antag_candidates -= scientist + var/datum/mind/agent = pick(antag_candidates) + antag_candidates -= agent + + scientist.assigned_role = "MODE" + scientist.special_role = "Abductor" + log_game("[scientist.key] (ckey) has been selected as an abductor team [team_number] scientist.") + + agent.assigned_role = "MODE" + agent.special_role = "Abductor" + log_game("[agent.key] (ckey) has been selected as an abductor team [team_number] agent.") + + abductors += agent + abductors += scientist + scientists[team_number] = scientist + agents[team_number] = agent + return 1 + return 0 + +/datum/game_mode/abduction/post_setup() + //Spawn Team + var/list/obj/effect/landmark/abductor/agent_landmarks = new + var/list/obj/effect/landmark/abductor/scientist_landmarks = new + agent_landmarks.len = max_teams + scientist_landmarks.len = max_teams + for(var/obj/effect/landmark/abductor/A in landmarks_list) + if(istype(A,/obj/effect/landmark/abductor/agent)) + agent_landmarks[text2num(A.team)] = A + else if(istype(A,/obj/effect/landmark/abductor/scientist)) + scientist_landmarks[text2num(A.team)] = A + + var/datum/mind/agent + var/obj/effect/landmark/L + var/datum/mind/scientist + var/team_name + var/mob/living/carbon/human/H + var/datum/species/abductor/S + for(var/team_number=1,team_number<=teams,team_number++) + team_name = team_names[team_number] + agent = agents[team_number] + H = agent.current + L = agent_landmarks[team_number] + H.loc = L.loc + H.dna.species = new /datum/species/abductor() + S = H.dna.species + S.agent = 1 + S.team = team_number + H.real_name = team_name + " Agent" + equip_common(H,team_number) + equip_agent(H,team_number) + greet_agent(agent,team_number) + H.regenerate_icons() + + scientist = scientists[team_number] + H = scientist.current + L = scientist_landmarks[team_number] + H.loc = L.loc + H.dna.species = new /datum/species/abductor() + S = H.dna.species + S.scientist = 1 + S.team = team_number + H.real_name = team_name + " Scientist" + equip_common(H,team_number) + equip_scientist(H,team_number) + greet_scientist(scientist,team_number) + H.regenerate_icons() + return ..() + +//Used for create antag buttons +/datum/game_mode/abduction/proc/post_setup_team(var/team_number) + var/list/obj/effect/landmark/abductor/agent_landmarks = new + var/list/obj/effect/landmark/abductor/scientist_landmarks = new + agent_landmarks.len = max_teams + scientist_landmarks.len = max_teams + for(var/obj/effect/landmark/abductor/A in landmarks_list) + if(istype(A,/obj/effect/landmark/abductor/agent)) + agent_landmarks[text2num(A.team)] = A + else if(istype(A,/obj/effect/landmark/abductor/scientist)) + scientist_landmarks[text2num(A.team)] = A + + var/datum/mind/agent + var/obj/effect/landmark/L + var/datum/mind/scientist + var/team_name + var/mob/living/carbon/human/H + var/datum/species/abductor/S + + team_name = team_names[team_number] + agent = agents[team_number] + H = agent.current + L = agent_landmarks[team_number] + H.loc = L.loc + H.dna.species = new /datum/species/abductor() + S = H.dna.species + S.agent = 1 + S.team = team_number + H.real_name = team_name + " Agent" + equip_common(H,team_number) + equip_agent(H,team_number) + greet_agent(agent,team_number) + H.regenerate_icons() + + scientist = scientists[team_number] + H = scientist.current + L = scientist_landmarks[team_number] + H.loc = L.loc + H.dna.species = new /datum/species/abductor() + S = H.dna.species + S.scientist = 1 + S.team = team_number + H.real_name = team_name + " Scientist" + equip_common(H,team_number) + equip_scientist(H,team_number) + greet_scientist(scientist,team_number) + H.regenerate_icons() + + +/datum/game_mode/abduction/proc/greet_agent(var/datum/mind/abductor,var/team_number) + abductor.objectives += team_objectives[team_number] + var/team_name = team_names[team_number] + + abductor.current << "You are an Abductor Agent of [team_name]!" + abductor.current << "With the help of your teammate kidnap and experiment on station members!" + abductor.current << "Use your stealth technology and equipment to incapacitate humans for your scientist to retrieve." + + var/obj_count = 1 + for(var/datum/objective/objective in abductor.objectives) + abductor.current << "Objective #[obj_count]: [objective.explanation_text]" + obj_count++ + return + +/datum/game_mode/abduction/proc/greet_scientist(var/datum/mind/abductor,var/team_number) + abductor.objectives += team_objectives[team_number] + var/team_name = team_names[team_number] + + abductor.current << "You are an Abductor Scientist of [team_name]!" + abductor.current << "With the help of your teammate kidnap and experiment on station members!" + abductor.current << "Use your tool and ship consoles to support the agent and retrieve human specimens." + + var/obj_count = 1 + for(var/datum/objective/objective in abductor.objectives) + abductor.current << "Objective #[obj_count]: [objective.explanation_text]" + obj_count++ + return + +/datum/game_mode/abduction/proc/equip_common(var/mob/living/carbon/human/agent,var/team_number) + var/radio_freq = SYND_FREQ + + var/obj/item/device/radio/R = new /obj/item/device/radio/headset/syndicate/alt(agent) + R.set_frequency(radio_freq) + agent.equip_to_slot_or_del(R, slot_ears) + agent.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(agent), slot_shoes) + agent.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(agent), slot_w_uniform) //they're greys gettit + agent.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(agent), slot_back) + +/datum/game_mode/abduction/proc/get_team_console(var/team) + var/obj/machinery/abductor/console/console + for(var/obj/machinery/abductor/console/c in machines) + if(c.team == team) + console = c + break + return console + +/datum/game_mode/abduction/proc/equip_agent(var/mob/living/carbon/human/agent,var/team_number) + var/obj/machinery/abductor/console/console = get_team_console(team_number) + var/obj/item/clothing/suit/armor/abductor/vest/V = new /obj/item/clothing/suit/armor/abductor/vest(agent) + if(console!=null) + console.vest = V + V.flags |= NODROP + agent.equip_to_slot_or_del(V, slot_wear_suit) + agent.equip_to_slot_or_del(new /obj/item/weapon/abductor_baton(agent), slot_in_backpack) + agent.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/decloner/alien(agent), slot_belt) + agent.equip_to_slot_or_del(new /obj/item/device/abductor/silencer(agent), slot_in_backpack) + + +/datum/game_mode/abduction/proc/equip_scientist(var/mob/living/carbon/human/scientist,var/team_number) + var/obj/machinery/abductor/console/console = get_team_console(team_number) + var/obj/item/device/abductor/gizmo/G = new /obj/item/device/abductor/gizmo(scientist) + if(console!=null) + console.gizmo = G + G.console = console + scientist.equip_to_slot_or_del(G, slot_in_backpack) + + var/obj/item/weapon/implant/abductor/beamplant = new /obj/item/weapon/implant/abductor(scientist) + beamplant.imp_in = scientist + beamplant.implanted = 1 + beamplant.implanted(scientist) + beamplant.home = console.pad + + +/datum/game_mode/abduction/check_finished() + var/all_dead = 1 + for(var/team_number=1,team_number<=teams,team_number++) + var/datum/mind/smind = scientists[team_number] + if(smind.current) + var/mob/living/M = smind.current + if(M.stat != DEAD) + all_dead = 0 + var/obj/machinery/abductor/console/con = get_team_console(team_number) + var/datum/objective/objective = team_objectives[team_number] + if (con.experiment.points > objective.target_amount) + return 1 + if(all_dead) + return 1 + return ..() + +/datum/game_mode/abduction/declare_completion() + for(var/team_number=1,team_number<=teams,team_number++) + var/obj/machinery/abductor/console/console = get_team_console(team_number) + var/datum/objective/objective = team_objectives[team_number] + var/team_name = team_names[team_number] + var/datum/mind/amind = agents[team_number] + var/datum/mind/smind = scientists[team_number] + var/mob/living/carbon/human/agent = amind.current + var/mob/living/carbon/human/scientist = smind.current + if (console.experiment.points > objective.target_amount) + world << "[team_name] team fullfilled its mission! " + world << "Team Members : [agent.name]([agent.ckey]),[scientist.name]([scientist.ckey])" + else + world << "[team_name] team failed its mission! " + world << "Team Members: [agent.name]([agent.ckey])
[scientist.name]([scientist.ckey])" + + world << "Abductees:" + display_abductees(console) + + ..() + return 1 + +/datum/game_mode/abduction/proc/display_abductees(var/obj/machinery/abductor/console/console) + var/list/mob/living/abductees = console.experiment.history + for(var/mob/living/abductee in abductees) + if(!abductee.mind) + continue + world << "[abductee.name]([abductee.ckey]))" + var/count = 1 + for(var/datum/objective/objective in abductee.mind.objectives) + if(objective.check_completion()) + world << "
Objective #[count]: [objective.explanation_text] Success!" + else + world << "
Objective #[count]: [objective.explanation_text] Fail." + count++ + +/datum/game_mode/proc/auto_declare_completion_abduction() + if(abductors.len) + world << "Abductors:" + for(var/datum/mind/M in abductors) + world << "Abductor [M.current ? M.current.name : "Abductor"]([M.key])" + return + +//Landmarks +// TODO: Split into seperate landmarks for prettier ships +/obj/effect/landmark/abductor + var/team = 1 + +/obj/effect/landmark/abductor/console/New() + var/obj/machinery/abductor/console/c = new /obj/machinery/abductor/console(src.loc) + c.team = team + + spawn(5) // I'd do this properly when i got some time, temporary hack for mappers + c.Initialize() + qdel(src) + + +/obj/effect/landmark/abductor/agent +/obj/effect/landmark/abductor/scientist + + +// OBJECTIVES +datum/objective/experiment + dangerrating = 10 + target_amount = 6 + var/team + +datum/objective/experiment/New() + explanation_text = "Experiment on [target_amount] humans" + +datum/objective/experiment/check_completion() + return 0 + +datum/objective/abductee + dangerrating = 5 + completed = 1 + +datum/objective/abductee/steal + explanation_text = "Steal all" + +datum/objective/abductee/steal/New() + var/target = pick(list("Pets","Lights","Monkeys","Fruits","Shoes","Soap Bars")) + explanation_text+=" [target]" + +datum/objective/abductee/capture + explanation_text = "Capture" + +datum/objective/abductee/capture/New() + var/list/jobs = SSjob.occupations + for(var/datum/job/J in jobs) + if(J.current_positions < 1) + jobs -= J + if(jobs.len > 0) + var/datum/job/target = pick(jobs) + explanation_text += " \a [target.title]." + else + explanation_text += " someone." + +datum/objective/abductee/shuttle + explanation_text = "You must escape the station! Get the shuttle called!" + +datum/objective/abductee/noclone + explanation_text = "Don't allow anyone to be cloned." \ No newline at end of file diff --git a/code/game/gamemodes/abduction/abduction_gear.dm b/code/game/gamemodes/abduction/abduction_gear.dm new file mode 100644 index 00000000000..689d8555d04 --- /dev/null +++ b/code/game/gamemodes/abduction/abduction_gear.dm @@ -0,0 +1,498 @@ +#define VEST_STEALTH 1 +#define VEST_COMBAT 2 +#define GIZMO_SCAN 1 +#define GIZMO_MARK 2 + +//AGENT VEST +/obj/item/clothing/suit/armor/abductor/vest + name = "Agent Vest" + desc = "Vest outfitted with alien stealth technology." + icon = 'icons/obj/abductor.dmi' + icon_state = "vest_stealth" + item_state = "armor" + blood_overlay_type = "armor" + armor = list(melee = 15, bullet = 15, laser = 15, energy = 15, bomb = 15, bio = 15, rad = 15) + action_button_name = "Activate" + action_button_is_hands_free = 1 + var/mode = VEST_STEALTH + var/stealth_active = 0 + var/combat_cooldown = 10 + var/datum/icon_snapshot/disguise + var/stealth_armor = list(melee = 15, bullet = 15, laser = 15, energy = 15, bomb = 15, bio = 15, rad = 15) + var/combat_armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 50, rad = 50) + + var/obj/machinery/camera/portable/vest_cam = null + + +/obj/item/clothing/suit/armor/abductor/vest/New() + ..() + vest_cam = new /obj/machinery/camera/portable(src) + vest_cam.c_tag = "Agent Vest Cam" + vest_cam.network = list("Abductor") + +/obj/item/clothing/suit/armor/abductor/vest/proc/flip_mode() + switch(mode) + if(VEST_STEALTH) + mode = VEST_COMBAT + DeactivateStealth() + armor = combat_armor + icon_state = "vest_combat" + if(istype(loc, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = loc + H.update_inv_wear_suit() + return + if(VEST_COMBAT)// TO STEALTH + mode = VEST_STEALTH + armor = stealth_armor + icon_state = "vest_stealth" + if(istype(loc, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = loc + H.update_inv_wear_suit() + return + + + +/obj/item/clothing/suit/armor/abductor/vest/proc/SetDisguise(var/datum/icon_snapshot/entry) + disguise = entry + +/obj/item/clothing/suit/armor/abductor/vest/proc/ActivateStealth() + if(disguise == null) + return + stealth_active = 1 + if(istype(src.loc, /mob/living/carbon/human)) + var/mob/living/carbon/human/M = src.loc + spawn(0) + anim(M.loc,M,'icons/mob/mob.dmi',,"cloak",,M.dir) + + M.name_override = disguise.name + M.icon = disguise.icon + M.icon_state = disguise.icon_state + M.overlays = disguise.overlays + M.update_inv_r_hand() + M.update_inv_l_hand() + return + +/obj/item/clothing/suit/armor/abductor/vest/proc/DeactivateStealth() + if(!stealth_active) + return + stealth_active = 0 + if(istype(src.loc, /mob/living/carbon/human)) + var/mob/living/carbon/human/M = src.loc + spawn(0) + anim(M.loc,M,'icons/mob/mob.dmi',,"uncloak",,M.dir) + M.name_override = null + M.overlays.Cut() + M.regenerate_icons() + return + +/obj/item/clothing/suit/armor/abductor/vest/IsShield() + DeactivateStealth() + return 0 +/obj/item/clothing/suit/armor/abductor/vest/IsReflect() + DeactivateStealth() + return 0 + +/obj/item/clothing/suit/armor/abductor/vest/ui_action_click() + switch(mode) + if(VEST_COMBAT) + Adrenaline() + if(VEST_STEALTH) + if(stealth_active) + DeactivateStealth() + else + ActivateStealth() + +/obj/item/clothing/suit/armor/abductor/vest/proc/Adrenaline() + if(istype(src.loc, /mob/living/carbon/human)) + if(combat_cooldown != initial(combat_cooldown)) + src.loc << "Combat injection is still recharging." + var/mob/living/carbon/human/M = src.loc + M.stat = 0 + M.SetParalysis(0) + M.SetStunned(0) + M.SetWeakened(0) + M.lying = 0 + M.update_canmove() + M.adjustStaminaLoss(-75) + combat_cooldown = 0 + SSobj.processing |= src + +/obj/item/clothing/suit/armor/abductor/vest/process() + combat_cooldown++ + if(combat_cooldown==initial(combat_cooldown)) + SSobj.processing.Remove(src) + +/obj/item/device/abductor/proc/IsAbductor(var/user) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(H.dna.species.id != "abductor") + return 0 + return 1 + return 0 + +/obj/item/device/abductor/proc/AbductorCheck(var/user) + if(IsAbductor(user)) + return 1 + user << "You can't figure how this works." + return 0 + +/obj/item/device/abductor/proc/ScientistCheck(var/user) + var/mob/living/carbon/human/H = user + var/datum/species/abductor/S = H.dna.species + return S.scientist + +/obj/item/device/abductor/gizmo + name = "Science Tool" + desc = "Alien science is 90% dissections 10% probings." + icon = 'icons/obj/abductor.dmi' + icon_state = "gizmo_scan" + item_state = "silencer" + var/mode = GIZMO_SCAN + var/mob/living/marked = null + var/obj/machinery/abductor/console/console + +/obj/item/device/abductor/gizmo/attack_self(mob/user) + if(!AbductorCheck(user)) + return + if(!ScientistCheck(user)) + user << "You're not trained to use this" + return + if(mode == GIZMO_SCAN) + mode = GIZMO_MARK + icon_state = "gizmo_mark" + else + mode = GIZMO_SCAN + icon_state = "gizmo_scan" + user << "You switch the device to [mode==GIZMO_SCAN? "SCAN": "MARK"] MODE" + +/obj/item/device/abductor/gizmo/attack(mob/living/M, mob/user) + if(!AbductorCheck(user)) + return + if(!ScientistCheck(user)) + user << "You're not trained to use this" + return + switch(mode) + if(GIZMO_SCAN) + scan(M, user) + if(GIZMO_MARK) + mark(M, user) + + +/obj/item/device/abductor/gizmo/afterattack(var/atom/target, var/mob/living/user, flag, params) + if(flag) + return + if(!AbductorCheck(user)) + return + if(!ScientistCheck(user)) + user << "You're not trained to use this" + return + switch(mode) + if(GIZMO_SCAN) + scan(target, user) + if(GIZMO_MARK) + mark(target, user) + +/obj/item/device/abductor/gizmo/proc/scan(var/atom/target, var/mob/living/user) + if(istype(target,/mob/living/carbon/human)) + if(console!=null) + console.AddSnapshot(target) + user << "You scan and add the being to the database" + +/obj/item/device/abductor/gizmo/proc/mark(var/atom/target, var/mob/living/user) + if(marked == target) + user << "This specimen is already marked." + return + if(istype(target,/mob/living/carbon/human)) + if(IsAbductor(target)) + marked = target + user << "You mark the target for future retrieval." + else + prepare(target,user) + +/obj/item/device/abductor/gizmo/proc/prepare(var/atom/target, var/mob/living/user) + if(get_dist(target,user)>1) + user << "You need to be next to the specimen to prepare it for transport." + return + user << "You start preparing the specimen for transport " + if(do_after(user, 100)) + marked = target + user << "You finish preparing the specimen for transport " + + +/obj/item/device/abductor/silencer + name = "Abductor Silencer" + desc = "Device used to break communication equipment" + icon = 'icons/obj/abductor.dmi' + icon_state = "silencer" + item_state = "gizmo" + +/obj/item/device/abductor/silencer/attack(mob/living/M, mob/user) + if(!AbductorCheck(user)) + return + radio_off(M, user) + +/obj/item/device/abductor/silencer/afterattack(var/atom/target, var/mob/living/user, flag, params) + if(flag) + return + if(!AbductorCheck(user)) + return + radio_off(target, user) + +/obj/item/device/abductor/silencer/proc/radio_off(var/atom/target, var/mob/living/user) + if( !(user in (viewers(7,target))) ) + return + + var/turf/targloc = get_turf(target) + + var/mob/living/carbon/human/M + for(M in view(2,targloc)) + user << "You silence [M.name] radio devices." + radio_off_mob(M) + +/obj/item/device/abductor/silencer/proc/radio_off_mob(var/mob/living/carbon/human/M) + var/list/all_items = M.GetAllContents() + + for(var/obj/I in all_items) + if(istype(I,/obj/item/device/radio/)) + var/obj/item/device/radio/r = I + r.listening = 0 + if(!istype(I,/obj/item/device/radio/headset)) + r.broadcasting = 0 //goddamned headset hacks + + +/obj/item/weapon/implant/abductor + name = "Emergency Beam" + desc = "Gets you back on the ship." + icon = 'icons/obj/abductor.dmi' + icon_state = "implant" + activated = 1 + var/obj/machinery/abductor/pad/home + var/cooldown = 30 + +/obj/item/weapon/implant/abductor/activate() + if(cooldown == initial(cooldown)) + home.Retrieve(imp_in,1) + cooldown = 0 + SSobj.processing |= src + else + imp_in << "The emergency beam is still recharging!" + return + +/obj/item/weapon/implant/abductor/process() + if(cooldown < initial(cooldown)) + cooldown++ + if(cooldown == initial(cooldown)) + SSobj.processing.Remove(src) + + +/obj/item/device/firing_pin/alien + name = "alien-looking pin" + desc = "Only non-humans can use this pin" + fail_message = "Human DNA detected! Authorization revoked!" + +/obj/item/device/firing_pin/alien/pin_auth(mob/living/user) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(H.dna.species.id == "human") //stealth lizard buff go + return 0 + return 1 + +/obj/item/weapon/gun/energy/decloner/alien + ammo_type = list(/obj/item/ammo_casing/energy/declone) + pin = /obj/item/device/firing_pin/alien + icon_state = "alienpistol" + item_state = "alienpistol" + +/obj/item/weapon/gun/energy/decloner/alien/update_icon() // No charge levels + return + +/obj/item/weapon/paper/abductor + name = "Dissection Guide" + info = {"Dissection for Dummies
+
+ 1.Acquire fresh specimen.
+ 2.Put the specimen on operating table
+ 3.Apply surgical drapes preparing for dissection
+ 4.Apply scalpel to specimen torso
+ 5.Stop the bleeders and retract skin
+ 6.Cut out organs you find with a scalpel
+ 7.Use your hands to remove the remaining organs
+ 8.Insert replacement gland (Retrieve one from gland storage)
+ 9.Consider dressing the specimen back to not disturb the habitat
+ 10.Put the specimen in the experiment machinery
+ 11.Choose one of the machine options and follow displayed instructions
+
+Congratulations! You are now trained for xenobiology research!"} + +#define BATON_STUN 0 +#define BATON_SLEEP 1 +#define BATON_CUFF 2 +#define BATON_MODES 3 + +/obj/item/weapon/abductor_baton + name = "Advanced Baton" + var/mode = BATON_STUN + icon = 'icons/obj/abductor.dmi' + icon_state = "wonderprod" + item_state = "wonderprod" + slot_flags = SLOT_BELT + force = 7 + w_class = 3 + action_button_name = "Toggle Mode" + +/obj/item/weapon/abductor_baton/proc/toggle(mob/living/user=usr) + mode = (mode+1)%BATON_MODES + var/txt + switch(mode) + if(BATON_STUN) + txt = "stun" + if(BATON_SLEEP) + txt = "sleep inducment" + if(BATON_CUFF) + txt = "restraining" + + usr << "You switch the baton to [txt] mode" + update_icon() + +/obj/item/weapon/abductor_baton/update_icon() + switch(mode) + if(BATON_STUN) + icon_state = "wonderprod" + if(BATON_SLEEP) + icon_state = "wonderprod" + if(BATON_CUFF) + icon_state = "wonderprod" + +/obj/item/weapon/abductor_baton/proc/IsAbductor(var/mob/living/user) + if(!ishuman(user)) + return 0 + var/mob/living/carbon/human/H = user + if(!H.dna) + return 0 + if(H.dna.species.id != "abductor") + return 0 + return 1 + +/obj/item/weapon/abductor_baton/attack(mob/target as mob, mob/living/user as mob) + if(!IsAbductor(user)) + return + + if(isrobot(target)) + ..() + return + + if(!isliving(target)) + return + + if(user.a_intent == "help") + target.visible_message("[user] probes [target] with [src]!", \ + "[user] probed [target]!") + return + + var/mob/living/L = target + + user.do_attack_animation(L) + switch(mode) + if(BATON_STUN) + StunAttack(L,user) + if(BATON_SLEEP) + SleepAttack(L,user) + if(BATON_CUFF) + CuffAttack(L,user) + +/obj/item/weapon/abductor_baton/attack_self(mob/living/user) + toggle(user) + +/obj/item/weapon/abductor_baton/proc/StunAttack(mob/living/L,mob/living/user) + user.lastattacked = L + L.lastattacker = user + + L.Stun(7) + L.Weaken(7) + L.apply_effect(STUTTER, 7) + + L.visible_message("[user] has stunned [L] with [src]!", \ + "[user] has stunned you with [src]!") + playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1) + + if(ishuman(L)) + var/mob/living/carbon/human/H = L + H.forcesay(hit_appends) + + add_logs(user, L, "stunned") + return + +/obj/item/weapon/abductor_baton/proc/SleepAttack(mob/living/L,mob/living/user) + if(L.stunned) + L.SetSleeping(60) + L.visible_message("[user] has induced sleep in [L] with [src]!", \ + "You suddenly feel very drowsy!") + playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1) + + add_logs(user, L, "put to sleep") + return + +/obj/item/weapon/abductor_baton/proc/CuffAttack(mob/living/L,mob/living/user) + if(!iscarbon(L)) + return + var/mob/living/carbon/C = L + if(!C.handcuffed) + playsound(loc, 'sound/weapons/cablecuff.ogg', 30, 1, -2) + C.visible_message("[user] is trying to put energy cuffs on [C]!", \ + "[user] is trying to put energy cuffs on [C]!") + if(do_mob(user, C, 30)) + if(!C.handcuffed) + C.handcuffed = new /obj/item/weapon/restraints/handcuffs/energy/used(C) + C.update_inv_handcuffed(0) + user << "You handcuff [C]." + add_logs(user, C, "handcuffed") + else + user << "You fail to handcuff [C]." + return + +/obj/item/weapon/restraints/handcuffs/energy + name = "energy cuffs" + desc = "Energy field restraining the hands." + icon_state = "cuff_white" // Needs sprite + breakouttime = 450 + trashtype = /obj/item/weapon/restraints/handcuffs/energy/used + +/obj/item/weapon/restraints/handcuffs/energy/used + desc = "Energy Discharge" + +/obj/item/weapon/restraints/handcuffs/energy/used/dropped(mob/user) + user.visible_message("[user] cuffs break in a discharge of energy!", \ + "[user] cuffs break in a discharge of energy!") + var/datum/effect/effect/system/spark_spread/S = new + S.set_up(4,0,user.loc) + S.start() + qdel(src) + +/obj/item/weapon/abductor_baton/examine(mob/user) + ..() + switch(mode) + if(BATON_STUN) + user <<"The baton is in stun mode." + if(BATON_SLEEP) + user <<"The baton is in sleep induction mode." + if(BATON_CUFF) + user <<"The baton is in restrain mode." + + +obj/item/weapon/scalpel/alien + name = "alien scalpel" + icon = 'icons/obj/abductor.dmi' + +obj/item/weapon/hemostat/alien + name = "alien hemostat" + icon = 'icons/obj/abductor.dmi' + +obj/item/weapon/retractor/alien + name = "alien retractor" + icon = 'icons/obj/abductor.dmi' + +/obj/item/clothing/head/helmet/abductor + name = "Agent Headgear" + desc = "Abducting with style. Spiky style." + icon_state = "alienhelmet" + item_state = "alienhelmet" diff --git a/code/game/gamemodes/abduction/abduction_machinery.dm b/code/game/gamemodes/abduction/abduction_machinery.dm new file mode 100644 index 00000000000..05a99e9eb34 --- /dev/null +++ b/code/game/gamemodes/abduction/abduction_machinery.dm @@ -0,0 +1,500 @@ +/obj/machinery/abductor + var/team = 0 + +/obj/machinery/abductor/console + name = "Abductor console" + desc = "Ship command center." + icon = 'icons/obj/abductor.dmi' + icon_state = "console" + density = 1 + anchored = 1.0 + var/obj/item/device/abductor/gizmo/gizmo + var/obj/item/clothing/suit/armor/abductor/vest/vest + var/obj/machinery/abductor/experiment/experiment + var/obj/machinery/abductor/pad/pad + var/list/datum/icon_snapshot/disguises = list() + +/obj/machinery/abductor/console/attack_hand(var/mob/user as mob) + if(..()) + return + if(!IsAbductor(user)) + return + user.set_machine(src) + var/dat = "" + dat += "

Abductsoft 3000

" + + if(experiment != null) + var/points = experiment.points + dat += "Collected Samples : [points]
" + else + dat += "NO EXPERIMENT MACHINE DETECTED
" + + if(pad!=null) + dat += "Activate Teleporter
" + dat += "Set Teleporter
" + if(gizmo!=null && gizmo.marked!=null) + dat += "Retrieve Mark
" + else + dat += "Retrieve Mark
" + else + dat += "NO TELEPAD DETECTED
" + + if(vest!=null) + dat += "

Agent Vest Mode


" + var/mode = vest.mode + if(mode == VEST_STEALTH) + dat += "Combat" + dat += "Stealth" + else + dat += "Combat" + dat += "Stealth" + + dat+="
" + dat += "Select Agent Vest Disguise
" + else + dat += "NO AGENT VEST DETECTED" + var/datum/browser/popup = new(user, "computer", "Abductor Console", 400, 500) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/obj/machinery/abductor/console/Topic(href, href_list) + if(..()) + return + if((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) + usr.set_machine(src) + if(href_list["teleporter_set"]) + TeleporterSet() + else if(href_list["teleporter_send"]) + TeleporterSend() + else if(href_list["teleporter_retrieve"]) + TeleporterRetrieve() + else if(href_list["flip_vest"]) + FlipVest() + else if(href_list["select_disguise"]) + SelectDisguise() + src.updateUsrDialog() + +/obj/machinery/abductor/console/proc/TeleporterSet() + var/A = null + A = input("Select area to teleport to", "Teleport", A) in teleportlocs + if(pad!=null) + pad.teleport_target = teleportlocs[A] + return + +/obj/machinery/abductor/console/proc/TeleporterRetrieve() + if(gizmo!=null && pad!=null && gizmo.marked) + pad.Retrieve(gizmo.marked) + return + +/obj/machinery/abductor/console/proc/TeleporterSend() + if(pad!=null) + pad.Send() + return + +/obj/machinery/abductor/console/proc/FlipVest() + if(vest!=null) + vest.flip_mode() + return + +/obj/machinery/abductor/console/proc/SelectDisguise() + var/list/entries = list() + var/tempname + var/datum/icon_snapshot/temp + for(var/i = 1; i <= disguises.len; i++) + temp = disguises[i] + tempname = temp.name + entries["[tempname]"] = disguises[i] + var/entry_name = input( "Choose Disguise", "Disguise") in entries + var/datum/icon_snapshot/chosen = entries[entry_name] + if(chosen) + vest.SetDisguise(chosen) + return + +/obj/machinery/abductor/console/proc/Initialize() + + for(var/obj/machinery/abductor/pad/p in machines) + if(p.team == team) + pad = p + break + + for(var/obj/machinery/abductor/experiment/e in machines) + if(e.team == team) + experiment = e + e.console = src + +/obj/machinery/abductor/console/proc/AddSnapshot(var/mob/living/carbon/human/target) + var/datum/icon_snapshot/entry = new + entry.name = target.name + entry.icon = target.icon + entry.icon_state = target.icon_state + entry.overlays = target.get_overlays_copy(list(L_HAND_LAYER,R_HAND_LAYER)) + for(var/i=1,i<=disguises.len,i++) + var/datum/icon_snapshot/temp = disguises[i] + if(temp.name == entry.name) + disguises[i] = entry + return + disguises.Add(entry) + return + +/obj/machinery/abductor/pad + name = "Alien Telepad" + desc = "Use this to transport to and from human habitat" + icon = 'icons/obj/abductor.dmi' + icon_state = "alien-pad-idle" + anchored = 1 + var/area/teleport_target + +/obj/machinery/abductor/proc/IsAbductor(var/mob/living/carbon/human/H) + if(!H.dna) + return 0 + return H.dna.species.id == "abductor" + +/obj/machinery/abductor/proc/IsAgent(var/mob/living/carbon/human/H) + if(H.dna.species.id == "abductor") + var/datum/species/abductor/S = H.dna.species + return S.agent + return 0 + +/obj/machinery/abductor/proc/IsScientist(var/mob/living/carbon/human/H) + if(H.dna.species.id == "abductor") + var/datum/species/abductor/S = H.dna.species + return S.scientist + return 0 + +/obj/machinery/abductor/proc/TeleportToArea(var/mob/living/target,var/area/thearea) + var/list/L = list() + for(var/turf/T in get_area_turfs(thearea.type)) + if(!T.density) + var/clear = 1 + for(var/obj/O in T) + if(O.density) + clear = 0 + break + if(clear) + L+=T + if(!L.len) + return + + if(target && target.buckled) + target.buckled.unbuckle_mob() + + var/list/tempL = L + var/attempt = null + var/success = 0 + while(tempL.len) + attempt = pick(tempL) + target.Move(attempt) + if(get_turf(target) == attempt) + success = 1 + break + else + tempL.Remove(attempt) + if(!success) + target.loc = pick(L) + +/obj/machinery/abductor/pad/proc/Warp(var/mob/living/target) + target.Move(src.loc) + +/obj/machinery/abductor/pad/proc/Send() + flick("alien-pad", src) + for(var/mob/living/target in src.loc) + TeleportToArea(target,teleport_target) + spawn(0) + anim(target.loc,target,'icons/mob/mob.dmi',,"uncloak",,target.dir) + +/obj/machinery/abductor/pad/proc/Retrieve(var/mob/living/carbon/human/target) + flick("alien-pad", src) + spawn(0) + anim(target.loc,target,'icons/mob/mob.dmi',,"uncloak",,target.dir) + Warp(target) + +/obj/machinery/abductor/experiment + name = "Experimental machinery" + desc = "A human-sized coffin sporting wide array of automatic surgery tools" + icon = 'icons/obj/abductor.dmi' + icon_state = "experiment-open" + density = 0 + anchored = 1 + state_open = 1 + var/points = 0 + var/list/history = new + var/flash = " - || - " + var/obj/machinery/abductor/console/console + +/obj/machinery/abductor/experiment/MouseDrop_T(mob/target, mob/user) + if(user.stat || user.lying || !Adjacent(user) || !target.Adjacent(user) || !ishuman(target)) + return + if(IsAbductor(target)) + return + close_machine(target) + +/obj/machinery/abductor/experiment/allow_drop() + return 0 + +/obj/machinery/abductor/experiment/attack_hand(mob/user) + if(..()) + return + + experimentUI(user) + +/obj/machinery/abductor/experiment/open_machine() + if(!state_open && !panel_open) + ..() + +/obj/machinery/abductor/experiment/close_machine(mob/target) + for(var/mob/living/carbon/C in loc) + if(IsAbductor(C)) + return + if(state_open && !panel_open) + ..(target) + +/obj/machinery/abductor/experiment/proc/dissection_icon(var/mob/living/carbon/human/H) + var/icon/photo = null + var/g = (H.gender == FEMALE) ? "f" : "m" + if(!config.mutant_races || H.dna.species.use_skintones) + photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.skin_tone]_[g]_s") + else + photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.dna.species.id]_[g]_s") + photo.Blend("#[H.dna.mutant_color]", ICON_MULTIPLY) + + var/icon/eyes_s + if(EYECOLOR in H.dna.species.specflags) + eyes_s = icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = "[H.dna.species.eyes]_s") + eyes_s.Blend("#[H.eye_color]", ICON_MULTIPLY) + + var/datum/sprite_accessory/S + S = hair_styles_list[H.hair_style] + if(S && (HAIR in H.dna.species.specflags)) + var/icon/hair_s = icon("icon" = S.icon, "icon_state" = "[S.icon_state]_s") + hair_s.Blend("#[H.hair_color]", ICON_MULTIPLY) + eyes_s.Blend(hair_s, ICON_OVERLAY) + + S = facial_hair_styles_list[H.facial_hair_style] + if(S && (FACEHAIR in H.dna.species.specflags)) + var/icon/facial_s = icon("icon" = S.icon, "icon_state" = "[S.icon_state]_s") + facial_s.Blend("#[H.facial_hair_color]", ICON_MULTIPLY) + eyes_s.Blend(facial_s, ICON_OVERLAY) + + if(eyes_s) + photo.Blend(eyes_s, ICON_OVERLAY) + + var/icon/splat = icon("icon" = 'icons/mob/dam_human.dmi',"icon_state" = "chest30") + photo.Blend(splat,ICON_OVERLAY) + + return photo + +/obj/machinery/abductor/experiment/proc/experimentUI(mob/user) + var/dat + dat += "

Experiment

" + if(occupant) + var/obj/item/weapon/photo/P = new + P.photocreate(null, icon(dissection_icon(occupant), dir = SOUTH)) + user << browse_rsc(P.img, "dissection_img") + dat += "
" + dat += "" //Avert your eyes + dat += "" + dat += "Probe
" + dat += "Dissect
" + dat += "Analyze
" + dat += "
" + else + dat += " Experiment " + + if(!occupant) + dat += "

Machine Unoccupied

" + else + dat += "

Subject Status :

" + dat += "[occupant.name] => " + switch(occupant.stat) + if(0) + dat += "Conscious" + if(1) + dat += "Unconscious" + else + dat += "DEAD" + dat += "
" + dat += "[flash]" + dat += "
" + dat += "Scan" + dat += "Close" : "open=1'>Open"]" + var/datum/browser/popup = new(user, "experiment", "Probing Console", 300, 300) + popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) + popup.set_content(dat) + popup.open() + +/obj/machinery/abductor/experiment/Topic(href, href_list) + if(..() || usr == occupant) + return + usr.set_machine(src) + if(href_list["refresh"]) + updateUsrDialog() + return + if(href_list["open"]) + open_machine() + return + if(href_list["close"]) + close_machine() + return + if(occupant && occupant.stat != DEAD) + if(href_list["experiment"]) + flash = Experiment(occupant,href_list["experiment"]) + updateUsrDialog() + add_fingerprint(usr) + +/obj/machinery/abductor/experiment/proc/Experiment(var/mob/occupant,var/type) + var/mob/living/carbon/human/H = occupant + var/point_reward = 0 + if(H in history) + return "Specimen already in the database" + if(H.stat == DEAD) + say("Specimen deceased - please provide fresh sample.") + return "Specimen Deceased" + var/obj/item/gland/GlandTest = locate() in H + if(!GlandTest) + say("Experimental dissection not detected!") + return "No glands detected!" + if(H.mind != null || H.ckey != null) + history += H + say("Processing Specimen...") + sleep(5) + switch(text2num(type)) + if(1) + H << "You feel violated." + if(2) + H << "You feel being sliced and put back together." + if(3) + H << "You feel under intense scrutiny." + sleep(5) + H << "Your mind snaps!" + var/objtype = pick(typesof(/datum/objective/abductee/) - /datum/objective/abductee/) + var/datum/objective/abductee/O = new objtype() + H.mind.objectives += O + var/obj_count = 1 + H << "Your current objectives:" + for(var/datum/objective/objective in H.mind.objectives) + H << "Objective #[obj_count]: [objective.explanation_text]" + obj_count++ + + for(var/obj/item/gland/G in H) + G.Start() + point_reward++ + if(point_reward > 0) + open_machine() + SendBack(H) + playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) + points += point_reward + return "Experiment Successfull! [point_reward] new data-points collected." + else + playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, 1) + return "Experiment Failed! No replacement organ detected." + else + say("Brain Activity Nonexistant - Disposing Sample...") + open_machine() + SendBack(H) + return "Specimen Braindead - Disposed" + return "ERROR" + + +/obj/machinery/abductor/experiment/proc/SendBack(var/mob/living/carbon/human/H) + H.Sleeping(8) + var/area/A + if(console && console.pad && console.pad.teleport_target) + A = console.pad.teleport_target + else + A = teleportlocs[pick(teleportlocs)] + TeleportToArea(H,A) + +/obj/machinery/abductor/experiment/update_icon() + if(state_open) + icon_state = "experiment-open" + else + icon_state = "experiment" + +/obj/machinery/abductor/experiment/say_quote(text) + return "beeps, \"[text]\"" + + +/obj/machinery/abductor/gland_dispenser + name = "Replacement Organ Storage" + desc = "A tank filled with replacement organs" + icon = 'icons/obj/abductor.dmi' + icon_state = "dispenser" + density = 1 + anchored = 1 + var/list/gland_types + var/list/gland_colors + var/list/amounts + +/obj/machinery/abductor/gland_dispenser/proc/random_color() + //TODO : replace with presets or spectrum + return rgb(rand(0,255),rand(0,255),rand(0,255)) + +/obj/machinery/abductor/gland_dispenser/New() + gland_types = typesof(/obj/item/gland) - /obj/item/gland + gland_types = shuffle(gland_types) + gland_colors = new/list(gland_types.len) + amounts = new/list(gland_types.len) + for(var/i=1,i<=gland_types.len,i++) + gland_colors[i] = random_color() + amounts[i] = rand(1,5) + +/obj/machinery/abductor/gland_dispenser/attack_hand(var/mob/user as mob) + if(..()) + return + if(!IsAbductor(user)) + return + user.set_machine(src) + var/box_css = {" + "} + var/dat = "" + var/item_count = 0 + for(var/i=1,i<=gland_colors.len,i++) + item_count++ + var/g_color = gland_colors[i] + var/amount = amounts[i] + dat += "[amount]" + if(item_count == 3) // Three boxes per line + dat +="

" + item_count = 0 + var/datum/browser/popup = new(user, "glands", "Gland Dispenser", 200, 200) + popup.add_head_content(box_css) + popup.set_content(dat) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) + popup.open() + return + +/obj/machinery/abductor/gland_dispenser/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/gland)) + user.drop_item() + W.loc = src + for(var/i=1,i<=gland_colors.len,i++) + if(gland_types[i] == W.type) + amounts[i]++ + +/obj/machinery/abductor/gland_dispenser/Topic(href, href_list) + if(..()) + return + if((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon))) + usr.set_machine(src) + if(href_list["dispense"]) + Dispense(text2num(href_list["dispense"])) + src.updateUsrDialog() + +/obj/machinery/abductor/gland_dispenser/proc/Dispense(var/count) + if(amounts[count]>0) + amounts[count]-- + var/T = gland_types[count] + new T(get_turf(src)) \ No newline at end of file diff --git a/code/game/gamemodes/abduction/abduction_surgery.dm b/code/game/gamemodes/abduction/abduction_surgery.dm new file mode 100644 index 00000000000..62308897062 --- /dev/null +++ b/code/game/gamemodes/abduction/abduction_surgery.dm @@ -0,0 +1,46 @@ +/datum/surgery/organ_extraction + name = "experimental dissection" + steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin,/datum/surgery_step/incise, /datum/surgery_step/extract_organ ,/datum/surgery_step/gland_insert) + species = list(/mob/living/carbon/human) + location = "chest" + user_species_restricted = 1 + user_species_ids = list("abductor") + +/datum/surgery_step/extract_organ + accept_hand = 1 + time = 32 + var/obj/item/IC = null + var/list/organ_types = list(/obj/item/organ/heart) + +/datum/surgery_step/extract_organ/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + for(var/obj/item/I in target.internal_organs) + if(I.type in organ_types) + IC = I + break + user.visible_message("[user] starts to remove [target]'s organs.") + +/datum/surgery_step/extract_organ/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + if(IC) + user.visible_message("[user] pulls [IC] out of [target]'s [target_zone]!") + user.put_in_hands(IC) + target.internal_organs -= IC + return 1 + else + user.visible_message("[user] doesn't find anything in [target]'s [target_zone].") + return 0 + +/datum/surgery_step/gland_insert + implements = list(/obj/item/gland = 100) + time = 32 + +/datum/surgery_step/gland_insert/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + user.visible_message("[user] starts to insert [tool] into [target].") + +/datum/surgery_step/gland_insert/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + user.visible_message("[user] inserts [tool] into [target].") + user.drop_item() + var/obj/item/gland/gland = tool + gland.Inject(target) + return 1 + + diff --git a/code/game/gamemodes/abduction/gland.dm b/code/game/gamemodes/abduction/gland.dm new file mode 100644 index 00000000000..4a0110ac30b --- /dev/null +++ b/code/game/gamemodes/abduction/gland.dm @@ -0,0 +1,172 @@ +/obj/item/gland/ + name = "Fleshy mass" + desc = "Eww" + icon = 'icons/obj/abductor.dmi' + icon_state = "gland" + var/cooldown_low = 30 + var/cooldown_high = 30 + var/cooldown_current = 0 + var/cooldown = 0 + var/uses // -1 For inifinite + var/active = 0 + var/mob/living/carbon/human/host + +/obj/item/gland/proc/HostCheck() + if(ishuman(host) && host == src.loc) + if(host.stat != DEAD) + return 1 + return 0 + +/obj/item/gland/proc/Start() + active = 1 + SSobj.processing |= src + +/obj/item/gland/proc/Inject(var/mob/living/carbon/human/target) + host = target + target.internal_organs += src + src.loc = target + +/obj/item/gland/process() + if(!active) + SSobj.processing.Remove(src) + return + cooldown++ + if(cooldown >= cooldown_current) + //This gives a chance to transplant the gland active into someone else if you're fast + if(!HostCheck()) + active = 0 + return + activate() + uses-- + cooldown = 0 + cooldown_current = rand(cooldown_low,cooldown_high) + if(uses == 0) + active = 0 + +/obj/item/gland/proc/activate() + return + +/obj/item/gland/heals + cooldown_low = 20 + cooldown_high = 40 + uses = -1 + icon_state = "health" + +obj/item/gland/heals/activate() + host << "You feel weird." + host.adjustBruteLoss(-20) + host.adjustOxyLoss(-20) + host.adjustFireLoss(-20) + +/obj/item/gland/slime + cooldown_low = 60 + cooldown_high = 120 + uses = -1 + icon_state = "slime" + +obj/item/gland/slime/activate() + host << "You feel weird." + + host.visible_message("[host] vomits on the floor!", \ + "You throw up on the floor!") + + host.nutrition -= 20 + host.adjustToxLoss(-3) + + var/turf/pos = get_turf(host) + pos.add_vomit_floor(host) + playsound(pos, 'sound/effects/splat.ogg', 50, 1) + + var/mob/living/simple_animal/slime/Slime = new/mob/living/simple_animal/slime(pos) + Slime.Friends = list(host) + Slime.Leader = host + +/obj/item/gland/mindshock + cooldown_low = 30 + cooldown_high = 30 + uses = -1 + icon_state = "mindshock" + +/obj/item/gland/mindshock/activate() + host << "You feel weird." + + var/turf/T = get_turf(host) + for(var/mob/living/carbon/human/H in orange(4,T)) + if(H == host) + continue + H << " You hear a buzz in your head " + H.confused += 20 + +/obj/item/gland/pop + cooldown_low = 120 + cooldown_high = 180 + uses = 5 + icon_state = "species" + +/obj/item/gland/pop/activate() + host << "You feel weird." + var/species = pick(list(/datum/species/lizard,/datum/species/slime,/datum/species/plant/pod,/datum/species/fly)) + host.dna.species = new species() + host.regenerate_icons() + return + +/obj/item/gland/ventcrawling + cooldown_low = 180 + cooldown_high = 240 + uses = 1 + icon_state = "vent" + +/obj/item/gland/ventcrawling/activate() + host << "You feel weird." + host << "You feel very stretchy." + host.ventcrawler = 2 + return + + +/obj/item/gland/viral + cooldown_low = 180 + cooldown_high = 240 + uses = 1 + icon_state = "viral" + +/obj/item/gland/viral/activate() + var/virus_type = pick(/datum/disease/beesease, /datum/disease/brainrot, /datum/disease/magnitis) + var/datum/disease/D = new virus_type() + D.carrier = 1 + host.viruses += D + D.affected_mob = host + D.holder = host + host.med_hud_set_status() + + +/obj/item/gland/emp //TODO : Replace with something more interesting + cooldown_low = 90 + cooldown_high = 160 + uses = 5 + icon_state = "emp" + +/obj/item/gland/emp/activate() + empulse(get_turf(host), 2, 5, 1) + + +/obj/item/gland/spiderman + cooldown_low = 90 + cooldown_high = 160 + uses = 10 + icon_state = "spider" + +/obj/item/gland/spiderman/activate() + if(uses == initial(uses)) + host.faction += "spiders" + new /obj/effect/spider/spiderling(host.loc) + +/obj/item/gland/egg + cooldown_low = 60 + cooldown_high = 90 + uses = -1 + icon_state = "egg" + +/obj/item/gland/egg/activate() + var/obj/item/weapon/reagent_containers/food/snacks/egg/egg = new(host.loc) + egg.reagents.add_reagent("sacid",20) + egg.desc += " It smells bad." \ No newline at end of file diff --git a/code/game/gamemodes/antag_spawner.dm b/code/game/gamemodes/antag_spawner.dm index 7be421ee470..549243bf86c 100644 --- a/code/game/gamemodes/antag_spawner.dm +++ b/code/game/gamemodes/antag_spawner.dm @@ -71,21 +71,21 @@ M << "You are the [usr.real_name]'s apprentice! You are bound by magic contract to follow their orders and help them in accomplishing their goals." switch(type) if("destruction") - M.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/projectile/magic_missile(null) - M.mind.spell_list += new /obj/effect/proc_holder/spell/dumbfire/fireball(null) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/projectile/magic_missile(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/dumbfire/fireball(null)) M << "Your service has not gone unrewarded, however. Studying under [usr.real_name], you have learned powerful, destructive spells. You are able to cast magic missile and fireball." if("bluespace") - M.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport(null) - M.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(null) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(null)) M << "Your service has not gone unrewarded, however. Studying under [usr.real_name], you have learned reality bending mobility spells. You are able to cast teleport and ethereal jaunt." if("healing") - M.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/charge(null) - M.mind.spell_list += new /obj/effect/proc_holder/spell/aoe_turf/conjure/forcewall(null) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/charge(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/forcewall(null)) M.equip_to_slot_or_del(new /obj/item/weapon/gun/magic/staff/healing(M), slot_r_hand) M << "Your service has not gone unrewarded, however. Studying under [usr.real_name], you have learned livesaving survival spells. You are able to cast charge and forcewall." if("robeless") - M.mind.spell_list += new /obj/effect/proc_holder/spell/aoe_turf/knock(null) - M.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/mind_transfer(null) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/knock(null)) + M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/mind_transfer(null)) M << "Your service has not gone unrewarded, however. Studying under [usr.real_name], you have learned stealthy, robeless spells. You are able to cast knock and mindswap." equip_antag(M) diff --git a/code/game/gamemodes/blob/blob_finish.dm b/code/game/gamemodes/blob/blob_finish.dm index c16c462e1a1..cc0ddf0eb9a 100644 --- a/code/game/gamemodes/blob/blob_finish.dm +++ b/code/game/gamemodes/blob/blob_finish.dm @@ -9,14 +9,15 @@ return 1 if(!blob_cores.len) // blob is dead if(config.continuous["blob"]) - if(config.midround_antag["blob"]) - round_converted = convert_roundtype() - if(!round_converted) - return 1 if(SSshuttle.emergency.mode == SHUTTLE_STRANDED) SSshuttle.emergency.mode = SHUTTLE_DOCKED SSshuttle.emergency.timer = world.time priority_announce("Hostile enviroment resolved. You have 3 minutes to board the Emergency Shuttle.", null, 'sound/AI/shuttledock.ogg', "Priority") + + if(config.midround_antag["blob"]) + round_converted = convert_roundtype() + if(!round_converted) + return 1 return ..() return 1 if(station_was_nuked)//Nuke went off diff --git a/code/game/gamemodes/blob/blob_report.dm b/code/game/gamemodes/blob/blob_report.dm index 736fa2e7df9..9d6de20b142 100644 --- a/code/game/gamemodes/blob/blob_report.dm +++ b/code/game/gamemodes/blob/blob_report.dm @@ -57,9 +57,7 @@ /datum/station_state/proc/count() - for(var/turf/T in world) - if(T.z != ZLEVEL_STATION) - continue + for(var/turf/T in block(locate(1,1,1), locate(world.maxx,world.maxy,1))) if(istype(T,/turf/simulated/floor)) if(!(T:burnt)) @@ -79,19 +77,16 @@ else src.r_wall += 1 - for(var/obj/O in world) - if(O.z != ZLEVEL_STATION) - continue - if(istype(O, /obj/structure/window)) - src.window += 1 - else if(istype(O, /obj/structure/grille) && (!O:destroyed)) - src.grille += 1 - else if(istype(O, /obj/machinery/door)) - src.door += 1 - else if(istype(O, /obj/machinery)) - src.mach += 1 - return + for(var/obj/O in T.contents) + if(istype(O, /obj/structure/window)) + src.window += 1 + else if(istype(O, /obj/structure/grille) && (!O:destroyed)) + src.grille += 1 + else if(istype(O, /obj/machinery/door)) + src.door += 1 + else if(istype(O, /obj/machinery)) + src.mach += 1 /datum/station_state/proc/score(var/datum/station_state/result) diff --git a/code/game/gamemodes/blob/blobs/blob_mobs.dm b/code/game/gamemodes/blob/blobs/blob_mobs.dm index 4965aae660e..04508a5e2d0 100644 --- a/code/game/gamemodes/blob/blobs/blob_mobs.dm +++ b/code/game/gamemodes/blob/blobs/blob_mobs.dm @@ -35,6 +35,7 @@ melee_damage_upper = 4 attacktext = "hits" attack_sound = 'sound/weapons/genhit1.ogg' + speak_emote = list("pulses") var/obj/effect/blob/factory/factory = null var/list/human_overlays = list() var/is_zombie = 0 @@ -77,6 +78,7 @@ melee_damage_lower = 10 melee_damage_upper = 15 icon = H.icon + speak_emote = list("groans") icon_state = "zombie_s" H.hair_style = null H.update_hair() @@ -144,6 +146,7 @@ melee_damage_upper = 20 attacktext = "hits" attack_sound = 'sound/effects/blobattack.ogg' + speak_emote = list("gurgles") minbodytemp = 0 maxbodytemp = 360 force_threshold = 10 diff --git a/code/game/gamemodes/changeling/powers/headcrab.dm b/code/game/gamemodes/changeling/powers/headcrab.dm index 5970b10de9c..b8c82315c59 100644 --- a/code/game/gamemodes/changeling/powers/headcrab.dm +++ b/code/game/gamemodes/changeling/powers/headcrab.dm @@ -8,9 +8,15 @@ /obj/effect/proc_holder/changeling/headcrab/sting_action(var/mob/user) explosion(get_turf(user),0,0,2,0,silent=1) var/turf = get_turf(user) + var/client/C + if(user.client) + C = user.client spawn(5) // So it's not killed in explosion var/mob/living/simple_animal/hostile/headcrab/crab = new(turf) crab.origin = user.mind + if(C) + crab.key = C.key + crab << "You burst out of the remains of your former body in a shower of gore!" user.gib() feedback_add_details("changeling_powers","LR") return 1 \ No newline at end of file diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 7be427bcb97..6096836308c 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -229,6 +229,7 @@ if(BE_GANG) roletext="gangster" if(BE_CULTIST) roletext="cultist" if(BE_MONKEY) roletext="monkey" + if(BE_ABDUCTOR) roletext="abductor" // Ultimate randomizing code right here diff --git a/code/game/gamemodes/gang/gang.dm b/code/game/gamemodes/gang/gang.dm index 7bd6c7f0f17..45d23881221 100644 --- a/code/game/gamemodes/gang/gang.dm +++ b/code/game/gamemodes/gang/gang.dm @@ -174,14 +174,6 @@ . = 0 - var/spray = mob.equip_in_one_of_slots(SC,slots) - - if (!spray) - mob << "Your Syndicate benefactors were unfortunately unable to get you some spraypaint." - else - mob << "The Spraypaint in your [spray] will help you spread your message of unrest." - mob.update_icons() - var/where2 = mob.equip_in_one_of_slots(recaller, slots) if (!where2) mob << "Your Syndicate benefactors were unfortunately unable to get you a Recaller." @@ -196,6 +188,7 @@ mob << "The flash in your [where] will help you to persuade the crew to work for you." . += 1 + mob.equip_in_one_of_slots(SC,slots) mob.update_icons() return . diff --git a/code/game/gamemodes/malfunction/malfunction.dm b/code/game/gamemodes/malfunction/malfunction.dm index 0fa77a06c92..7271875daee 100644 --- a/code/game/gamemodes/malfunction/malfunction.dm +++ b/code/game/gamemodes/malfunction/malfunction.dm @@ -172,7 +172,7 @@ /datum/game_mode/malfunction/check_finished() if(replacementmode && round_converted == 2) return replacementmode.check_finished() - if((config.continuous["malfunction"] && !config.midround_antag["malfunction"]) || round_converted == 1) //No reason to waste resources + if(round_converted == 1) //No reason to waste resources return ..() //Check for evacuation/nuke if (station_captured && !to_nuke_or_not_to_nuke) return 1 @@ -186,7 +186,11 @@ malf_mode_declared = 0 if(get_security_level() == "delta") set_security_level("red") - round_converted = convert_roundtype() + if(config.midround_antag["malfunction"]) + round_converted = convert_roundtype() + if(!round_converted) + return 1 + return ..() else return 1 return ..() //check for shuttle and nuke diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index 43992706cd4..a8a74bbffb1 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -238,7 +238,7 @@ explosion(src.loc, 0, 0, 4, 3, 0) new /obj/effect/decal/cleanable/greenglow(get_turf(src)) for(var/mob/living/L in view(5, src)) - L.apply_effect(40, IRRADIATE) + L.irradiate(40) //Meaty Ore /obj/effect/meteor/meaty diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm index bfccd051890..d61191f9334 100644 --- a/code/game/gamemodes/nuclear/pinpointer.dm +++ b/code/game/gamemodes/nuclear/pinpointer.dm @@ -170,12 +170,13 @@ /obj/item/weapon/pinpointer/nukeop/attack_self(mob/user as mob) if(!active) active = 1 + var/mode_text = "Authentication Disk Locator mode" if(!mode) workdisk() - user << "Authentication Disk Locator active." else + mode_text = "Shuttle Locator mode" worklocation() - user << "Shuttle Locator active." + user << "You activate the pinpointer([mode_text])." else active = 0 icon_state = "pinoff" @@ -191,7 +192,7 @@ mode = 1 //Ensures worklocation() continues to work worklocation() playsound(loc, 'sound/machines/twobeep.ogg', 50, 1) //Plays a beep - visible_message("Shuttle Locator active.") //Lets the mob holding it know that the mode has changed + visible_message("Shuttle Locator mode actived.") //Lets the mob holding it know that the mode has changed return //Get outta here scandisk() if(!the_disk) @@ -221,7 +222,7 @@ mode = 0 workdisk() playsound(loc, 'sound/machines/twobeep.ogg', 50, 1) - visible_message("Authentication Disk Locator active.") + visible_message("Authentication Disk Locator mode actived.") return if(!home) home = SSshuttle.getShuttle("syndicate") diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index 22e80ad7b4b..2002cb82d6e 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -146,18 +146,15 @@ "left hand" = slot_l_hand, "right hand" = slot_r_hand, ) - var/spray = mob.equip_in_one_of_slots(R,slots) var/where = mob.equip_in_one_of_slots(T, slots) - if (!spray) - mob << "The Syndicate were unfortunately unable to get you some spraypaint." - else - mob << "The Spraypaint in your [spray] will help you spread your message of unrest and revolution." - mob.update_icons() + mob.equip_in_one_of_slots(R,slots) + + mob.update_icons() + if (!where) mob << "The Syndicate were unfortunately unable to get you a flash." else mob << "The flash in your [where] will help you to persuade the crew to join your cause." - mob.update_icons() return 1 ///////////////////////////////// diff --git a/code/game/gamemodes/shadowling/shadowling.dm b/code/game/gamemodes/shadowling/shadowling.dm index 2cd6e7d9ef6..372ee45ff10 100644 --- a/code/game/gamemodes/shadowling/shadowling.dm +++ b/code/game/gamemodes/shadowling/shadowling.dm @@ -1,3 +1,7 @@ +#define LIGHT_DAM_THRESHOLD 4 +#define LIGHT_HEAL_THRESHOLD 2 +#define LIGHT_DAMAGE_TAKEN 10 + /* SHADOWLING: A gamemode based on previously-run events @@ -72,7 +76,7 @@ Made by Xhuis /datum/game_mode/shadowling/announce() world << "The current game mode is - Shadowling!" - world << "There are alien shadowlings on the station. Crew: Kill the shadowlings before they can eat or enthrall the crew. Shadowlings: Enthrall the crew while remaining in hiding." + world << "There are alien shadowlings on the station. Crew: Kill the shadowlings before they can eat or enthrall the crew. Shadowlings: Enthrall the crew while remaining in hiding." /datum/game_mode/shadowling/pre_setup() if(config.protect_roles_from_antagonist) @@ -114,6 +118,7 @@ Made by Xhuis /datum/game_mode/proc/greet_shadow(var/datum/mind/shadow) shadow.current << "Currently, you are disguised as an employee aboard [world.name]." shadow.current << "In your limited state, you have three abilities: Enthrall, Hatch, and Hivemind Commune." + shadow.current << "Any other shadowlings are you allies. You must assist them as they shall assist you." shadow.current << "If you are new to shadowling, or want to read about abilities, check the wiki page at https://tgstation13.org/wiki/Shadowling
" @@ -131,17 +136,25 @@ Made by Xhuis var/mob/living/carbon/human/S = shadow_mind.current shadow_mind.current.verbs += /mob/living/carbon/human/proc/shadowling_hatch shadow_mind.spell_list += new /obj/effect/proc_holder/spell/targeted/enthrall - shadow_mind.spell_list += new /obj/effect/proc_holder/spell/targeted/shadowling_hivemind - if(shadow_mind.assigned_role == "Clown") - S << "Your alien nature has allowed you to overcome your clownishness." - S.dna.remove_mutation(CLOWNMUT) + spawn(0) + shadow_mind.spell_list += new /obj/effect/proc_holder/spell/targeted/shadowling_hivemind + update_shadow_icons_added(shadow_mind) + if(shadow_mind.assigned_role == "Clown") + S << "Your alien nature has allowed you to overcome your clownishness." + S.dna.remove_mutation(CLOWNMUT) /datum/game_mode/proc/add_thrall(datum/mind/new_thrall_mind) if (!istype(new_thrall_mind)) return 0 if(!(new_thrall_mind in thralls)) + update_shadow_icons_added(new_thrall_mind) thralls += new_thrall_mind new_thrall_mind.current.attack_log += "\[[time_stamp()]\] Became a thrall" + new_thrall_mind.memory += "The Shadowlings' Objectives: Ascend to your true form by use of the Ascendance ability. \ + This may only be used with [required_thralls] collective thralls, while hatched, and is unlocked with the Collective Mind ability." + new_thrall_mind.current << "The objectives of your shadowlings:: Ascend to your true form by use of the Ascendance ability. \ + This may only be used with [required_thralls] collective thralls, while hatched, and is unlocked with the Collective Mind ability." + new_thrall_mind.spell_list += new /obj/effect/proc_holder/spell/targeted/shadowling_hivemind return 1 @@ -175,11 +188,11 @@ Made by Xhuis /datum/game_mode/shadowling/declare_completion() if(check_shadow_victory() && SSshuttle.emergency.mode >= SHUTTLE_ESCAPE) //Doesn't end instantly - this is hacky and I don't know of a better way ~X - world << "The shadowlings have ascended and taken over the station!" + world << "The shadowlings have ascended and taken over the station!" else if(shadowling_dead && !check_shadow_victory()) //If the shadowlings have ascended, they can not lose the round - world << "The shadowlings have been killed by the crew!" + world << "The shadowlings have been killed by the crew!" else if(!check_shadow_victory() && SSshuttle.emergency.mode >= SHUTTLE_ESCAPE) - world << "The crew has escaped the station before the shadowlings could ascend!" + world << "The crew has escaped the station before the shadowlings could ascend!" ..() return 1 @@ -187,15 +200,14 @@ Made by Xhuis /datum/game_mode/proc/auto_declare_completion_shadowling() var/text = "" if(shadows.len) - text += "
The shadowlings were:" + text += "
The shadowlings were:" for(var/datum/mind/shadow in shadows) text += printplayer(shadow) + text += "
" if(thralls.len) - text += "
The thralls were:" + text += "
The thralls were:" for(var/datum/mind/thrall in thralls) text += printplayer(thrall) - else - world << "Round-end code broke! Please report this and its circumstances on GitHub at https://github.com/tgstation/-tg-station/issues" text += "
" world << text @@ -224,16 +236,24 @@ Made by Xhuis if(A) if(A.lighting_use_dynamic) light_amount = T.lighting_lumcount else light_amount = 10 - if(light_amount > 2) //Rapid death while in the light, countered by... - H.take_overall_damage(0,6) + if(light_amount > LIGHT_DAM_THRESHOLD) //Not complete blackness - they can live in very small light levels plus starlight + H.take_overall_damage(0, LIGHT_DAMAGE_TAKEN) H << "The light burns you!" H << 'sound/weapons/sear.ogg' - else if (light_amount < 2) //...extreme benefits while in the dark - H.heal_overall_damage(5,3) - H.adjustToxLoss(-3) + else if (light_amount < LIGHT_HEAL_THRESHOLD) + H.heal_overall_damage(5,5) + H.adjustToxLoss(-5) + H.adjustBrainLoss(-25) //gibbering shadowlings are hilarious but also bad to have + H.adjustCloneLoss(-1) H.SetWeakened(0) H.SetStunned(0) -/datum/species/human/thrall - name = "Human?" //Can discern from a health analyzer; one of the few ways of finding thralls. Fluff-wise, it's close enough to human to give it that assumption, but altered in some ways - id = "thrall" +/datum/game_mode/proc/update_shadow_icons_added(datum/mind/shadow_mind) + var/datum/atom_hud/antag/shadow_hud = huds[ANTAG_HUD_SHADOW] + shadow_hud.join_hud(shadow_mind.current) + set_antag_hud(shadow_mind.current, ((shadow_mind in shadows) ? "shadowling" : "thrall")) + +/datum/game_mode/proc/update_shadow_icons_removed(datum/mind/shadow_mind) //This should never actually occur, but it's here anyway. + var/datum/atom_hud/antag/shadow_hud = huds[ANTAG_HUD_SHADOW] + shadow_hud.leave_hud(shadow_mind.current) + set_antag_hud(shadow_mind.current, null) diff --git a/code/game/gamemodes/shadowling/shadowling_abilities.dm b/code/game/gamemodes/shadowling/shadowling_abilities.dm index 79028097a94..844f52bbe5b 100644 --- a/code/game/gamemodes/shadowling/shadowling_abilities.dm +++ b/code/game/gamemodes/shadowling/shadowling_abilities.dm @@ -21,7 +21,7 @@ usr.visible_message("[usr]'s eyes flash a blinding red!") target.visible_message("[target] freezes in place, their eyes glazing over...") if(in_range(target, usr)) - target << "Your gaze is forcibly drawn into [src]'s eyes, and you are mesmerized by the heavenly lights..." + target << "Your gaze is forcibly drawn into [usr]'s eyes, and you are mesmerized by the heavenly lights..." else //Only alludes to the shadowling if the target is close by target << "Red lights suddenly dance in your vision, and you are mesmerized by the heavenly lights..." target.Stun(10) @@ -53,9 +53,26 @@ L.on = 0 L.visible_message("[L] flickers and falls dark.") L.update(0) - for(var/obj/item/device/pda/P in orange(5, usr)) + for(var/obj/item/device/pda/P in T.contents) P.fon = 0 - P.SetLuminosity(0) //failsafe + P.SetLuminosity(0) + for(var/obj/effect/glowshroom/G in orange(2, usr)) //Very small radius + G.visible_message("\The [G] withers away!") + qdel(G) + for(var/mob/living/carbon/human/H in T.contents) + for(var/obj/item/device/flashlight/F in H) + if(is_type_in_list(F, blacklisted_lights)) + F.visible_message("[F] goes slightly dim for a moment.") + return + F.on = 0 + F.visible_message("[F] gutters and falls dark.") + F.update_brightness() + for(var/obj/item/device/pda/P in H) + P.fon = 0 + P.SetLuminosity(0) //failsafe + if(H != usr) + H << "You feel a chill and are plunged into darkness." + H.luminosity = 0 //This is required with the object-based lighting @@ -164,11 +181,23 @@ usr.visible_message("[usr] leans over [target], their eyes glowing a deep crimson, and stares into their face.") target << "Your gaze is forcibly drawn into a blinding red light. You fall to the floor as conscious thought is wiped away." target.Weaken(12) + sleep(20) + if(isloyal(target)) + usr << "They are enslaved by Nanotrasen. You begin to shut down the nanobot implant - this will take some time." + usr.visible_message("[usr] halts for a moment, then begins passing its hand over [target]'s body.") + target << "You feel your loyalties begin to weaken!" + sleep(150) //15 seconds - not spawn() so the enthralling takes longer + usr << "The nanobots composing the loyalty implant have been rendered inert. Now to continue." + usr.visible_message("[usr] halts thier hand and resumes staring into [target]'s face.") + for(var/obj/item/weapon/implant/loyalty/L in target) + if(L && L.implanted) + qdel(L) + target << "Your unwavering loyalty to Nanotrasen falters, dims, dies." if(3) usr << "You begin rearranging [target]'s memories." usr.visible_message("[usr]'s eyes flare brightly, and a horrible grin begins to spread across [target]'s face...") target << "Your head cries out. The veil of reality begins to crumple and something evil bleeds through." //Ow the edge - if(!do_mob(usr, target, 100)) //around 30 seconds total for enthralling + if(!do_mob(usr, target, 100)) //around 30 seconds total for enthralling, 45 for someone with a loyalty implant usr << "The enthralling has been interrupted - your target's mind returns to its previous state." target << "Your thoughts become coherent once more. Already you can barely remember what's happened to you." enthralling = 0 @@ -183,9 +212,6 @@ target.adjustOxyLoss(-200) //In case the shadowling was choking them out ticker.mode.add_thrall(target.mind) target.mind.special_role = "Thrall" - hardset_dna(target, null, null, null, null, /datum/species/human/thrall) - var/datum/mind/thrall_mind = target.mind - thrall_mind.spell_list += new /obj/effect/proc_holder/spell/targeted/shadowling_hivemind //Lets thralls hive-chat @@ -209,6 +235,30 @@ +/obj/effect/proc_holder/spell/targeted/shadowling_regenarmor + name = "Regenerate Chitin" + desc = "Re-forms protective chitin that may be lost during cloning or similar processes." + panel = "Shadowling Abilities" + charge_max = 600 + clothes_req = 0 + range = -1 + include_user = 1 + +/obj/effect/proc_holder/spell/targeted/shadowling_regenarmor/cast(list/targets) + for(var/mob/living/user in targets) + user.visible_message("[user]'s skin suddenly bubbles and begins to shift around their body!", \ + "You regenerate your protective armor and cleanse your form of defects.") + user.equip_to_slot_or_del(new /obj/item/clothing/under/shadowling(usr), slot_w_uniform) + user.equip_to_slot_or_del(new /obj/item/clothing/shoes/shadowling(usr), slot_shoes) + user.equip_to_slot_or_del(new /obj/item/clothing/suit/space/shadowling(usr), slot_wear_suit) + user.equip_to_slot_or_del(new /obj/item/clothing/head/shadowling(usr), slot_head) + user.equip_to_slot_or_del(new /obj/item/clothing/gloves/shadowling(usr), slot_gloves) + user.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/shadowling(usr), slot_wear_mask) + user.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/shadowling(usr), slot_glasses) + hardset_dna(user, null, null, null, null, /datum/species/shadow/ling) //can't be a shadowling without being a shadowling + + + /obj/effect/proc_holder/spell/targeted/collective_mind name = "Collective Hivemind" desc = "Gathers the power of all of your thralls and compares it to what is needed for ascendance. Also gains you new abilities." @@ -255,7 +305,7 @@ user << "The power of your thralls has granted you the Sonic Screech ability. This ability will shatter nearby windows and deafen enemies." user.mind.spell_list += new /obj/effect/proc_holder/spell/aoe_turf/unearthly_screech - if(thralls >= 10 && !thrall_swap_acquired) + if(thralls >= 9 && !thrall_swap_acquired) thrall_swap_acquired = 1 user << "The power of your thralls has granted you the Spatial Relocation ability. This will, allow you to instantly swap places with one of your thralls in \ addition to shattering nearby lights." @@ -352,7 +402,6 @@ datum/reagent/shadowling_blindness_smoke/on_mob_life(var/mob/living/M as mob) if(iscarbon(target)) var/mob/living/carbon/M = target M << "A spike of pain drives into your head and scrambles your thoughts!" - M.Weaken(2) M.confused += 10 M.setEarDamage(M.ear_damage + 3) else if(issilicon(target)) @@ -365,7 +414,7 @@ datum/reagent/shadowling_blindness_smoke/on_mob_life(var/mob/living/M as mob) sp.start() S.Weaken(6) for(var/obj/structure/window/W in T.contents) - W.hit(rand(25,50)) + W.hit(rand(50,100)) @@ -449,7 +498,7 @@ datum/reagent/shadowling_blindness_smoke/on_mob_life(var/mob/living/M as mob) charge_counter = charge_max return - for(var/mob/boom in targets) + for(var/mob/living/carbon/human/boom in targets) if(is_shadow_or_thrall(boom)) usr << "Making an ally explode seems unwise." charge_counter = charge_max @@ -507,7 +556,6 @@ datum/reagent/shadowling_blindness_smoke/on_mob_life(var/mob/living/M as mob) target << "You can communicate with the other enlightened ones by using the Hivemind Commune ability." ticker.mode.add_thrall(target.mind) target.mind.special_role = "Thrall" - hardset_dna(target, null, null, null, null, /datum/species/human/thrall) var/datum/mind/thrall_mind = target.mind thrall_mind.spell_list += new /obj/effect/proc_holder/spell/targeted/shadowling_hivemind diff --git a/code/game/gamemodes/shadowling/shadowling_items.dm b/code/game/gamemodes/shadowling/shadowling_items.dm index 683d0a4bb81..01e0f5ae928 100644 --- a/code/game/gamemodes/shadowling/shadowling_items.dm +++ b/code/game/gamemodes/shadowling/shadowling_items.dm @@ -46,7 +46,7 @@ /obj/item/clothing/gloves/shadowling name = "chitin hands" - desc = "An electricity-resistant yet thin covering of the hands." + desc = "An electricity-resistant covering of the hands." icon_state = "golem" item_state = null origin_tech = null @@ -75,10 +75,11 @@ vision_flags = SEE_MOBS darkness_view = 3 invis_view = 2 - flash_protect = 2 + flash_protect = -1 unacidable = 1 flags = ABSTRACT | NODROP + /obj/structure/shadow_vortex name = "vortex" desc = "A swirling hole in the fabric of reality. Eye-watering chimes sound from its depths." diff --git a/code/game/gamemodes/shadowling/special_shadowling_abilities.dm b/code/game/gamemodes/shadowling/special_shadowling_abilities.dm index 472bee1cd61..b1ff12edd22 100644 --- a/code/game/gamemodes/shadowling/special_shadowling_abilities.dm +++ b/code/game/gamemodes/shadowling/special_shadowling_abilities.dm @@ -85,6 +85,7 @@ usr.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/shadow_walk usr.mind.spell_list += new /obj/effect/proc_holder/spell/aoe_turf/flashfreeze usr.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/collective_mind + usr.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/shadowling_regenarmor @@ -158,4 +159,5 @@ sleep(50) if(!ticker.mode.shadowling_ascended) SSshuttle.emergency.request(null, 0.3) + ticker.mode.shadowling_ascended = 1 qdel(usr) diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index 7df187b1aa6..138a77305c1 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -100,7 +100,7 @@ dat += "Knock (10)
" dat += "This spell opens nearby doors and does not require wizard garb.
" - dat += "Curse of the Barnyward (15)
" + dat += "Curse of the Barnyward (15)
" dat += " This Spell dooms any unlucky soul to the life of a barnyard animal. Well not exactly but you still get to laugh at them when they MOO!. It does not require a wizard garb.
" dat += "Flesh to Stone (60)
" @@ -259,71 +259,71 @@ switch(href_list["spell_choice"]) if("magicmissile") feedback_add_details("wizard_spell_learned","MM") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/projectile/magic_missile(null) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/projectile/magic_missile(null)) temp = "You have learned magic missile." if("fireball") feedback_add_details("wizard_spell_learned","FB") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.mind.spell_list += new /obj/effect/proc_holder/spell/dumbfire/fireball(null) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/dumbfire/fireball(null)) temp = "You have learned fireball." if("disintegrate") feedback_add_details("wizard_spell_learned","DG") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/inflict_handler/disintegrate(null) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/inflict_handler/disintegrate(null)) temp = "You have learned disintegrate." if("disabletech") feedback_add_details("wizard_spell_learned","DT") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/emplosion/disable_tech(null) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/emplosion/disable_tech(null)) temp = "You have learned disable technology." if("repulse") feedback_add_details("wizard_spell_learned","RP") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.mind.spell_list += new /obj/effect/proc_holder/spell/aoe_turf/repulse(null) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/repulse(null)) temp = "You have learned repulse." if("smoke") feedback_add_details("wizard_spell_learned","SM") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/smoke(null) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/smoke(null)) temp = "You have learned smoke." if("blind") feedback_add_details("wizard_spell_learned","BD") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/trigger/blind(null) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/trigger/blind(null)) temp = "You have learned blind." if("mindswap") feedback_add_details("wizard_spell_learned","MT") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/mind_transfer(null) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/mind_transfer(null)) temp = "You have learned mindswap." if("forcewall") feedback_add_details("wizard_spell_learned","FW") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.mind.spell_list += new /obj/effect/proc_holder/spell/aoe_turf/conjure/forcewall(null) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/forcewall(null)) temp = "You have learned forcewall." if("blink") feedback_add_details("wizard_spell_learned","BL") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/turf_teleport/blink(null) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/turf_teleport/blink(null)) temp = "You have learned blink." if("teleport") feedback_add_details("wizard_spell_learned","TP") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport(null) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport(null)) temp = "You have learned teleport." if("mutate") feedback_add_details("wizard_spell_learned","MU") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/genetic/mutate(null) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/genetic/mutate(null)) temp = "You have learned mutate." if("etherealjaunt") feedback_add_details("wizard_spell_learned","EJ") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(null) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(null)) temp = "You have learned ethereal jaunt." if("knock") feedback_add_details("wizard_spell_learned","KN") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.mind.spell_list += new /obj/effect/proc_holder/spell/aoe_turf/knock(null) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/knock(null)) temp = "You have learned knock." if("fleshtostone") feedback_add_details("wizard_spell_learned","FS") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/inflict_handler/flesh_to_stone(null) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/inflict_handler/flesh_to_stone(null)) temp = "You have learned flesh to stone." if("summonitem") feedback_add_details("wizard_spell_learned","IS") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/summonitem(null) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/summonitem(null)) temp = "You have learned instant summons." if("lightningbolt") feedback_add_details("wizard_spell_learned","LB") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/lightning(null) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/lightning(null)) temp = "You have learned lightning bolt." if("summonguns") feedback_add_details("wizard_spell_learned","SG") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells @@ -352,7 +352,7 @@ if("soulstone") feedback_add_details("wizard_spell_learned","SS") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells new /obj/item/weapon/storage/belt/soulstone/full(get_turf(H)) - H.mind.spell_list += new /obj/effect/proc_holder/spell/aoe_turf/conjure/construct(null) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/construct(null)) temp = "You have purchased a belt full of soulstones and have learned the artificer spell." max_uses-- if("necrostone") @@ -384,7 +384,7 @@ max_uses-- if("barnyard") feedback_add_details("wizard_spell_learned","BC") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/barnyardcurse(null) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/barnyardcurse(null)) temp = "You have learned the curse of the barnyard." if("wands") feedback_add_details("wizard_spell_learned","WA") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells @@ -439,7 +439,7 @@ if(used) recoil(user) else - user.mind.spell_list += S + user.mind.AddSpell(S) user <<"you rapidly read through the arcane book. Suddenly you realize you understand [spellname]!" user.attack_log += text("\[[time_stamp()]\] [user.real_name] ([user.ckey]) learned the spell [spellname] ([S]).") onlearned(user) diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index 4a946eb6f4b..62799672ab5 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -174,7 +174,7 @@ if(replacementmode && round_converted == 2) return replacementmode.check_finished() - if((config.continuous["wizard"] && !config.midround_antag["wizard"]) || round_converted == 1 || !wizards) //No reason to waste resources + if(round_converted == 1 || !wizards) //No reason to waste resources return ..() //Check for evacuation/nuke for(var/datum/mind/wizard in wizards) @@ -185,18 +185,19 @@ if(traitor.current.stat != DEAD) return ..() - if(!config.continuous["wizard"] || !config.midround_antag["wizard"]) + if(!config.continuous["wizard"]) return 1 - else + if(SSevent.wizardmode) //If summon events was active, turn it off + SSevent.toggleWizardmode() + SSevent.resetFrequency() + + if(config.midround_antag["wizard"]) round_converted = convert_roundtype() if(!round_converted) finished = 1 return 1 - else - if(SSevent.wizardmode) //If summon events was active, turn it off - SSevent.toggleWizardmode() - SSevent.resetFrequency() + return ..() /datum/game_mode/wizard/declare_completion() diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index cd2e564b41b..90700b72776 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -78,8 +78,8 @@ Mime H.equip_to_slot_or_del(new /obj/item/clothing/suit/suspenders(H), slot_wear_suit) if(H.mind) - H.mind.spell_list += new /obj/effect/proc_holder/spell/aoe_turf/conjure/mime_wall(null) - H.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/mime/speak(null) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/mime_wall(null)) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/mime/speak(null)) H.mind.miming = 1 H.rename_self("mime") diff --git a/code/game/machinery/bots/bots.dm b/code/game/machinery/bots/bots.dm index 19883679181..c0b32b5d4d8 100644 --- a/code/game/machinery/bots/bots.dm +++ b/code/game/machinery/bots/bots.dm @@ -48,8 +48,6 @@ var/beacon_freq = 1445 // navigation beacon frequency var/control_freq = 1447 // bot control frequency - var/bot_filter // The radio filter the bot uses to identify itself on the network. - var/bot_type = 0 //The type of bot it is, for radio control. #define SEC_BOT 1 // Secutritrons (Beepsky) and ED-209s #define MULE_BOT 2 // MULEbots @@ -69,7 +67,7 @@ #define BOT_SUMMON 6 // summoned by PDA #define BOT_CLEANING 7 // cleaning (cleanbots) #define BOT_REPAIRING 8 // repairing hull breaches (floorbots) - #define BOT_MOVING 9 // for clean/floor bots, when moving. + #define BOT_MOVING 9 // for clean/floor/med bots, when moving. #define BOT_HEALING 10 // healing people (medbots) #define BOT_RESPONDING 11 // responding to a call from the AI #define BOT_LOADING 12 // loading/unloading @@ -103,19 +101,19 @@ set_custom_texts() Radio = new /obj/item/device/radio(src) Radio.listening = 0 //Makes bot radios transmit only so no one hears things while adjacent to one. + spawn(5) + add_to_beacons() /obj/machinery/bot/Destroy() if(radio_controller) radio_controller.remove_object(src,beacon_freq) - if(bot_filter) - radio_controller.remove_object(src,control_freq) + radio_controller.remove_object(src,control_freq) ..() -/obj/machinery/bot/proc/add_to_beacons(bot_filter) //Master filter control for bots. Must be placed in the bot's local New() to support map spawned bots. +/obj/machinery/bot/proc/add_to_beacons() //Master radio control for bots. Must be placed in the bot's local New() to support map spawned bots. if(radio_controller) radio_controller.add_object(src, beacon_freq, filter = RADIO_NAVBEACONS) - if(bot_filter) - radio_controller.add_object(src, control_freq, filter = bot_filter) + radio_controller.add_object(src, control_freq) /obj/machinery/bot/proc/explode() @@ -376,12 +374,13 @@ obj/machinery/bot/proc/scan(var/scan_type, var/old_target, var/scan_range = DEFA for (var/scan in view (scan_range, src) ) //Search for something in range! if(!istype(scan, scan_type)) //Check that the thing we found is the type we want! continue //If not, keep searching! - if( !(scan in ignore_list) && (scan != old_target) ) //Filter for blacklisted elements, usually unreachable or previously processed oness - var/scan_result = process_scan(scan) //Some bots may require additional processing when a result is selected. - if( scan_result ) - final_result = scan_result - else - continue //The current element failed assessment, move on to the next. + if( (scan in ignore_list) || (scan == old_target) ) //Filter for blacklisted elements, usually unreachable or previously processed oness + continue + var/scan_result = process_scan(scan) //Some bots may require additional processing when a result is selected. + if( scan_result ) + final_result = scan_result + else + continue //The current element failed assessment, move on to the next. return final_result //When the scan finds a target, run bot specific processing to select it for the next step. Empty by default. @@ -405,8 +404,13 @@ obj/machinery/bot/proc/bot_move(var/dest, var/move_speed) if(!dest || !path || path.len == 0) //A-star failed or a path/destination was not set. path = list() return 0 - if(get_turf(src) == get_turf(dest)) //We have arrived, no need to move again. + dest = get_turf(dest) //We must always compare turfs, so get the turf of the dest var if dest was originally something else. + var/turf/last_node = get_turf(path[path.len]) //This is the turf at the end of the path, it should be equal to dest. + if(get_turf(src) == dest) //We have arrived, no need to move again. return 1 + else if (dest != last_node) //The path should lead us to our given destination. If this is not true, we must stop. + path = list() + return 0 var/success var/step_count = move_speed ? move_speed : speed //If a value is passed into move_speed, use that instead of the default speed var. if(step_count >= 1 && tries < 4) @@ -703,8 +707,6 @@ obj/machinery/bot/proc/start_patrol() // send a radio signal with multiple data key/values /obj/machinery/bot/proc/post_signal_multiple(var/freq, var/list/keyval) - if(!z || z != 1) //Bot control will only work on station. - return var/datum/radio_frequency/frequency = radio_controller.return_frequency(freq) if(!frequency) return @@ -718,8 +720,6 @@ obj/machinery/bot/proc/start_patrol() // world << "sent [key],[keyval[key]] on [freq]" if(signal.data["findbeacon"]) frequency.post_signal(src, signal, filter = RADIO_NAVBEACONS) - else if(signal.data["type"] == bot_type) - frequency.post_signal(src, signal, filter = bot_filter) else frequency.post_signal(src, signal) @@ -731,7 +731,8 @@ obj/machinery/bot/proc/start_patrol() "type" = bot_type, "name" = name, "loca" = get_area(src), // area - "mode" = mode + "mode" = mode, + "sect" = z // z-level, or "sector" ) post_signal_multiple(control_freq, kv) diff --git a/code/game/machinery/bots/cleanbot.dm b/code/game/machinery/bots/cleanbot.dm index b9b28435749..2b327a0da30 100644 --- a/code/game/machinery/bots/cleanbot.dm +++ b/code/game/machinery/bots/cleanbot.dm @@ -27,7 +27,6 @@ var/blood = 1 var/list/target_types = list() var/obj/effect/decal/cleanable/target - var/obj/effect/decal/cleanable/oldtarget var/max_targets = 50 //Maximum number of targets a cleanbot can ignore. var/oldloc = null req_one_access = list(access_janitor, access_robotics) @@ -40,7 +39,6 @@ var/next_dest_loc radio_frequency = SERV_FREQ //Service bot_type = CLEAN_BOT - bot_filter = RADIO_CLEANBOT /obj/machinery/bot/cleanbot/New() ..() @@ -51,9 +49,6 @@ botcard.access = J.get_access() prev_access = botcard.access - spawn(5) - add_to_beacons(bot_filter) - /obj/machinery/bot/cleanbot/turn_on() ..() icon_state = "cleanbot[on]" @@ -68,7 +63,6 @@ ..() ignore_list = list() //Allows the bot to clean targets it previously ignored due to being unreachable. target = null - oldtarget = null oldloc = null /obj/machinery/bot/cleanbot/set_custom_texts() @@ -163,21 +157,14 @@ text("[on ? "On" : "Off"]")) visible_message("[src] makes an excited beeping booping sound!") if(!target) //Search for cleanables it can see. - target = scan(/obj/effect/decal/cleanable/, oldtarget) - oldtarget = target + target = scan(/obj/effect/decal/cleanable/) - if(!target) - if(loc != oldloc) - oldtarget = null + if(!target && auto_patrol) //Search for cleanables it can see. + if(mode == BOT_IDLE || mode == BOT_START_PATROL) + start_patrol() - if(auto_patrol) - if(mode == BOT_IDLE || mode == BOT_START_PATROL) - start_patrol() - - if(mode == BOT_PATROL) - bot_patrol() - - return + if(mode == BOT_PATROL) + bot_patrol() if(target) if(!path || path.len == 0) //No path, need a new one diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index 87f53d40a0c..0e210e2918a 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -35,7 +35,6 @@ var/shoot_sound = 'sound/weapons/Taser.ogg' radio_frequency = SEC_FREQ bot_type = SEC_BOT - bot_filter = RADIO_SECBOT /obj/item/weapon/ed209_assembly @@ -62,8 +61,6 @@ botcard.access = J.get_access() prev_access = botcard.access - - add_to_beacons(bot_filter) if(lasercolor) shot_delay = 6//Longer shot delay because JESUS CHRIST check_records = 0//Don't actively target people set to arrest diff --git a/code/game/machinery/bots/floorbot.dm b/code/game/machinery/bots/floorbot.dm index 17ccdcc5830..11885135158 100644 --- a/code/game/machinery/bots/floorbot.dm +++ b/code/game/machinery/bots/floorbot.dm @@ -45,13 +45,11 @@ var/nagged = 0 //Prevents the Floorbot nagging more than once per refill. var/max_targets = 50 var/turf/target - var/turf/oldtarget var/oldloc = null req_one_access = list(access_construction, access_robotics) var/targetdirection radio_frequency = ENG_FREQ //Engineering channel bot_type = FLOOR_BOT - bot_filter = RADIO_FLOORBOT var/process_type //Determines what to do when process_scan() recieves a target. See process_scan() for details. #define HULL_BREACH 1 #define BRIDGE_MODE 2 @@ -67,9 +65,6 @@ botcard.access = J.get_access() prev_access = botcard.access - spawn(5) - add_to_beacons(bot_filter) - /obj/machinery/bot/floorbot/turn_on() . = ..() updateicon() @@ -83,7 +78,6 @@ /obj/machinery/bot/floorbot/bot_reset() ..() target = null - oldtarget = null oldloc = null ignore_list = list() nagged = 0 @@ -209,11 +203,11 @@ if(amount <= 0 && !target) //Out of tiles! We must refill! if(eattiles) //Configured to find and consume floortiles! - target = scan(/obj/item/stack/tile/plasteel, oldtarget) + target = scan(/obj/item/stack/tile/plasteel) process_type = null if(!target && maketiles) //We did not manage to find any floor tiles! Scan for metal stacks and make our own! - target = scan(/obj/item/stack/sheet/metal, oldtarget) + target = scan(/obj/item/stack/sheet/metal) process_type = null return else @@ -232,24 +226,24 @@ target = T else //Find a space tile farther way! - target = scan(/turf/space, oldtarget) + target = scan(/turf/space) process_type = BRIDGE_MODE if(!target) process_type = HULL_BREACH //Ensures the floorbot does not try to "fix" space areas or shuttle docking zones. - target = scan(/turf/space, oldtarget) + target = scan(/turf/space) if(!target && replacetiles) //Finds a floor without a tile and gives it one. process_type = REPLACE_TILE //The target must be the floor and not a tile. The floor must not already have a floortile. - target = scan(/turf/simulated/floor, oldtarget) + target = scan(/turf/simulated/floor) if(!target && fixfloors) //Repairs damaged floors and tiles. process_type = FIX_TILE - target = scan(/turf/simulated/floor, oldtarget) + target = scan(/turf/simulated/floor) if(!target && emagged == 2) //We are emagged! Time to rip up the floors! process_type = TILE_EMAG - target = scan(/turf/simulated/floor, oldtarget) + target = scan(/turf/simulated/floor) if(!target) @@ -261,11 +255,6 @@ if(mode == BOT_PATROL) bot_patrol() - if(!target) - if(loc != oldloc) - oldtarget = null - return - if(target) if(path.len == 0) if(!istype(target, /turf/)) @@ -276,12 +265,10 @@ if(!bot_move(target)) add_to_ignore(target) - oldtarget = target target = null mode = BOT_IDLE return else if( !bot_move(target) ) - oldtarget = target target = null mode = BOT_IDLE return diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index 4445626eb5e..04be70bdf3c 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -40,7 +40,6 @@ var/treat_virus = 1 //If on, the bot will attempt to treat viral infections, curing them if possible. var/shut_up = 0 //self explanatory :) bot_type = MED_BOT - bot_filter = RADIO_MEDBOT /obj/machinery/bot/medbot/mysterious name = "\improper Mysterious Medibot" @@ -104,7 +103,6 @@ else botcard.access = botcard_access prev_access = botcard.access - add_to_beacons(bot_filter) /obj/machinery/bot/medbot/turn_on() . = ..() @@ -124,6 +122,12 @@ last_found = world.time declare_cooldown = 0 +/obj/machinery/bot/medbot/proc/soft_reset() //Allows the medibot to still actively perform its medical duties without being completely halted as a hard reset does. + path = list() + patient = null + mode = BOT_IDLE + last_found = world.time + /obj/machinery/bot/medbot/set_custom_texts() text_hack = "You corrupt [name]'s reagent processor circuits." @@ -271,7 +275,7 @@ if (H.stat == 2) return - if ((H == oldpatient) && (world.time < last_found + 100)) + if ((H == oldpatient) && (world.time < last_found + 200)) return if(assess_patient(H)) @@ -306,10 +310,7 @@ if(frustration > 8) oldpatient = patient - patient = null - mode = BOT_IDLE - last_found = world.time - path = list() + soft_reset() if(!patient) if(!shut_up && prob(1)) @@ -334,21 +335,19 @@ last_found = world.time else if(stationary_mode && patient) //Since we cannot move in this mode, ignore the patient and wait for another. - patient = null - mode = BOT_IDLE - last_found = world.time + soft_reset() return if(patient && path.len == 0 && (get_dist(src,patient) > 1)) - spawn(0) - path = get_path_to(loc, get_turf(patient), /turf/proc/CardinalTurfsWithAccess, /turf/proc/Distance_cardinal, 0, 30,id=botcard) + path = get_path_to(loc, get_turf(patient), /turf/proc/CardinalTurfsWithAccess, /turf/proc/Distance_cardinal, 0, 30,id=botcard) + mode = BOT_MOVING + if(!path.len) //Do not chase a patient we cannot reach. + soft_reset() if(path.len > 0 && patient) if(!bot_move(patient)) oldpatient = patient - patient = null - mode = BOT_IDLE - last_found = world.time + soft_reset() return if(path.len > 8 && patient) diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index c810c626fbe..5b5b65e1ea1 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -23,7 +23,6 @@ var/global/mulebot_count = 0 beacon_freq = 1400 control_freq = 1447 bot_type = MULE_BOT - bot_filter = RADIO_MULEBOT blood_DNA = list() suffix = "" @@ -71,8 +70,6 @@ var/global/mulebot_count = 0 cell.maxcharge = 2000 spawn(5) // must wait for map loading to finish - add_to_beacons(bot_filter) - mulebot_count += 1 if(!suffix) suffix = "#[mulebot_count]" @@ -883,8 +880,6 @@ obj/machinery/bot/mulebot/bot_reset() //world << "sent [key],[keyval[key]] on [freq]" if (signal.data["findbeacon"]) frequency.post_signal(src, signal, filter = RADIO_NAVBEACONS) - else if (signal.data["type"] == MULE_BOT) - frequency.post_signal(src, signal, filter = RADIO_MULEBOT) else frequency.post_signal(src, signal) diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index 0596bbe5b5e..fd2ac1c9d82 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -25,7 +25,6 @@ var/arrest_type = 0 //If true, don't handcuff radio_frequency = SEC_FREQ //Security channel bot_type = SEC_BOT - bot_filter = RADIO_SECBOT /obj/machinery/bot/secbot/beepsky name = "Officer Beep O'sky" @@ -58,7 +57,6 @@ var/datum/job/detective/J = new/datum/job/detective botcard.access = J.get_access() prev_access = botcard.access - add_to_beacons(bot_filter) /obj/machinery/bot/secbot/turn_on() diff --git a/code/game/machinery/computer/shuttle.dm b/code/game/machinery/computer/shuttle.dm index 692bf826437..ce874f42abc 100644 --- a/code/game/machinery/computer/shuttle.dm +++ b/code/game/machinery/computer/shuttle.dm @@ -87,7 +87,7 @@ return prob(60) var/obj/structure/stool/bed/B = A - if (istype(A, /obj/structure/stool/bed) && B.buckled_mob)//if it's a bed/chair and someone is buckled, it will not pass + if (istype(A, /obj/structure/stool/bed) && (B.buckled_mob || B.density))//if it's a bed/chair and is dense or someone is buckled, it will not pass return 0 else if(istype(A, /mob/living)) // You Shall Not Pass! diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 2b1ef80ccff..003ac40d218 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -215,7 +215,7 @@ /obj/machinery/door/airlock/uranium/proc/radiate() for(var/mob/living/L in range (3,src)) - L.apply_effect(15,IRRADIATE,0) + L.irradiate(15) return /obj/machinery/door/airlock/plasma diff --git a/code/game/machinery/doors/brigdoors.dm b/code/game/machinery/doors/brigdoors.dm index 9e51ce6bcf3..21a4ba0fff2 100644 --- a/code/game/machinery/doors/brigdoors.dm +++ b/code/game/machinery/doors/brigdoors.dm @@ -42,15 +42,15 @@ pixel_y = ((src.dir & 3)? (src.dir ==1 ? 24 : -32) : (0)) spawn(20) - for(var/obj/machinery/door/window/brigdoor/M in world) + for(var/obj/machinery/door/window/brigdoor/M in range(20, src)) if (M.id == src.id) targets += M - for(var/obj/machinery/flasher/F in world) + for(var/obj/machinery/flasher/F in range(20, src)) if(F.id == src.id) targets += F - for(var/obj/structure/closet/secure_closet/brig/C in world) + for(var/obj/structure/closet/secure_closet/brig/C in range(20, src)) if(C.id == src.id) targets += C diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 00d896cc6c0..1ba38ab9140 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -181,7 +181,7 @@ var/list/obj/machinery/requests_console/allConsoles = list() if (Console.department == department) Console.newmessagepriority = 0 Console.update_icon() - Console.luminosity = 1 + Console.SetLuminosity(1) newmessagepriority = 0 update_icon() var/messageComposite = "" @@ -317,7 +317,7 @@ var/list/obj/machinery/requests_console/allConsoles = list() else // Normal priority Console.createmessage(src, "Message from [department]", sending, 1, 1) screen = 6 - Console.luminosity = 2 + Console.SetLuminosity(2) switch(priority) if(2) @@ -431,7 +431,7 @@ var/list/obj/machinery/requests_console/allConsoles = list() var/obj/item/weapon/paper/slip = new /obj/item/weapon/paper(src.loc) slip.info = "From: [unlinkedsender]
[message]" slip.name = "Message - [unlinkedsender]" - src.luminosity = 2 + SetLuminosity(2) /obj/machinery/requests_console/attackby(var/obj/item/weapon/O as obj, var/mob/user as mob, params) if (istype(O, /obj/item/weapon/crowbar)) diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm index 85107a4deb7..957f0665266 100644 --- a/code/game/machinery/syndicatebeacon.dm +++ b/code/game/machinery/syndicatebeacon.dm @@ -111,7 +111,7 @@ anchored = 0 density = 1 - layer = MOB_LAYER - 0.1 //so people can't hide it and it's REALLY OBVIOUS + layer = MOB_LAYER - 0.2 //so people can't hide it and it's REALLY OBVIOUS stat = 0 var/active = 0 diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index a0ef6a5fc31..bff628e32d3 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -6,7 +6,7 @@ anchored = 0 density = 0 - layer = MOB_LAYER - 0.1 //so people can't hide it and it's REALLY OBVIOUS + layer = MOB_LAYER - 0.2 //so people can't hide it and it's REALLY OBVIOUS unacidable = 1 var/datum/wires/syndicatebomb/wires = null diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm index 05cb1cb48a4..99324003e72 100644 --- a/code/game/mecha/equipment/tools/tools.dm +++ b/code/game/mecha/equipment/tools/tools.dm @@ -1138,9 +1138,9 @@ if(..()) for(var/mob/living/carbon/M in view(EG.chassis)) if(istype(M,/mob/living/carbon/human)) - M.apply_effect((EG.rad_per_cycle*3),IRRADIATE,0) + M.irradiate(EG.rad_per_cycle*3) else - M.radiation += EG.rad_per_cycle + M.irradiate(EG.rad_per_cycle) return 1 diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 88b7cc77e2d..2e9ddccfaaf 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -16,7 +16,7 @@ opacity = 1 ///opaque. Menacing. anchored = 1 //no pulling around. unacidable = 1 //and no deleting hoomans inside - layer = MOB_LAYER //icon draw layer + layer = MOB_LAYER - 0.2//icon draw layer infra_luminosity = 15 //byond implementation is bugged. force = 5 var/can_move = 1 diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index e68ef779d94..e820cc57eaf 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -190,13 +190,35 @@ var/mob/living/simple_animal/hostile/poison/giant_spider/S = new grow_as(src.loc) if(player_spiders) var/list/candidates = get_candidates(BE_ALIEN, ALIEN_AFK_BRACKET) - var/client/C = null - if(candidates.len) - C = pick(candidates) + shuffle(candidates) + + var/time_passed = world.time + var/list/consenting_candidates = list() + + for(var/candidate in candidates) + + spawn(0) + switch(alert(candidate, "Would you like to play as [S.name]? Please choose quickly!","Confirmation","Yes","No")) + if("Yes") + if((world.time-time_passed)>=50 || !src) + return + consenting_candidates += candidate + + sleep(50) + + if(!src) + return + + if(consenting_candidates.len) + var/client/C = null + C = pick(consenting_candidates) S.key = C.key qdel(src) + + + /obj/effect/spider/cocoon name = "cocoon" desc = "Something wrapped in silky spider web" diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 20706d966fb..045886e7065 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -24,6 +24,7 @@ //If this is set, The item will make an action button on the player's HUD when picked up. var/action_button_name //It is also the text which gets displayed on the action button. If not set it defaults to 'Use [name]'. If it's not set, there'll be no button. var/action_button_is_hands_free = 0 //If 1, bypass the restrained, lying, and stunned checks action buttons normally test for + var/datum/action/item_action/action = null //Since any item can now be a piece of clothing, this has to be put here so all items share it. var/flags_inv //This flag is used to determine when items in someone's inventory cover others. IE helmets making it so you can't see glasses, etc. @@ -307,9 +308,7 @@ //The default action is attack_self(). //Checks before we get to here are: mob is alive, mob is not restrained, paralyzed, asleep, resting, laying, item is on the mob. /obj/item/proc/ui_action_click() - if(src in usr) - attack_self(usr) - + attack_self(usr) /obj/item/proc/IsShield() return 0 @@ -441,4 +440,4 @@ //Reset regardless of if we hit a human. throw_speed = initial(throw_speed) //explosions change this. - ..() + ..() \ No newline at end of file diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm index 0c5002a60f5..d8389f36327 100644 --- a/code/game/objects/items/blueprints.dm +++ b/code/game/objects/items/blueprints.dm @@ -148,7 +148,6 @@ return var/area/A = new A.name = str - A.tagbase="[A.type]_[md5(str)]" // without this dynamic light system ruin everithing //var/ma //ma = A.master ? "[A.master]" : "(null)" //world << "DEBUG: create_area:
A.name=[A.name]
A.tag=[A.tag]
A.master=[ma]" diff --git a/code/game/objects/items/dehy_carp.dm b/code/game/objects/items/dehy_carp.dm new file mode 100644 index 00000000000..f69e9025637 --- /dev/null +++ b/code/game/objects/items/dehy_carp.dm @@ -0,0 +1,43 @@ +/* + * Dehydrated Carp + * Instant carp, just add water + */ + +// Child of carpplushie because this should do everything the toy does and more +/obj/item/toy/carpplushie/dehy_carp + var/mob/owner = null // Carp doesn't attack owner, set when using in hand + var/owned = 1 // Boolean, no owner to begin with + +// Attack self +/obj/item/toy/carpplushie/dehy_carp/attack_self(mob/user as mob) + src.add_fingerprint(user) // Anyone can add their fingerprints to it with this + if(owned) + user << "[src] stares up at you with friendly eyes." + owner = user + owned = 0 + return ..() + + +/obj/item/toy/carpplushie/dehy_carp/afterattack(obj/O, mob/user,proximity) + if(!proximity) return + if(istype(O,/obj/structure/sink)) + user << "You place [src] under a stream of water..." + user.drop_item() + loc = get_turf(O) + return Swell() + ..() + +/obj/item/toy/carpplushie/dehy_carp/proc/Swell() + desc = "It's growing!" + visible_message("[src] swells up!") + + // Animation + icon = 'icons/mob/animal.dmi' + flick("carp_swell", src) + // Wait for animation to end + sleep(6) + // Make space carp + var/mob/living/simple_animal/hostile/carp/C = new /mob/living/simple_animal/hostile/carp(get_turf(src)) + // Make carp non-hostile to user, yes this means + C.faction |= "\ref[owner]" + qdel(src) \ No newline at end of file diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 46d41aff01f..e93ceeb89dc 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -195,6 +195,7 @@ var/global/list/obj/item/device/pda/PDAs = list() /obj/item/device/pda/ai icon_state = "NONE" ttone = "data" + fon = 0 mode = 5 noreturn = 1 detonate = 0 @@ -223,6 +224,12 @@ var/global/list/obj/item/device/pda/PDAs = list() /obj/item/device/pda/New() ..() + if(fon) + if(!isturf(loc)) + loc.AddLuminosity(f_lum) + SetLuminosity(0) + else + SetLuminosity(f_lum) PDAs += src if(default_cartridge) cartridge = new default_cartridge(src) @@ -311,7 +318,7 @@ var/global/list/obj/item/device/pda/PDAs = list() dat += "

Engineering Functions

" dat += "
    " dat += "
  • Power Monitor
  • " - if(istype(cartridge.radio, /obj/item/radio/integrated/floorbot)) + if(cartridge.access_floorbots) dat += "
  • Floorbot Access
  • " dat += "
" if (cartridge.access_medical) @@ -319,7 +326,7 @@ var/global/list/obj/item/device/pda/PDAs = list() dat += "" else @@ -328,7 +335,7 @@ var/global/list/obj/item/device/pda/PDAs = list() dat += "

Security Functions

" dat += "" else dat += "" @@ -343,10 +350,12 @@ var/global/list/obj/item/device/pda/PDAs = list() dat += "

Utilities

" dat += "
    " if (cartridge) + if(cartridge.access_multibots) + dat += "
  • Bots Access
  • " if (cartridge.access_janitor) dat += "
  • Custodial Locator
  • " - if(istype(cartridge.radio, /obj/item/radio/integrated/cleanbot)) - dat += "
  • Cleanbot Access
  • " + if(cartridge.access_cleanbots) + dat += "
  • Cleanbot Access
  • " if (istype(cartridge.radio, /obj/item/radio/integrated/signal)) dat += "
  • Signaler System
  • " if (cartridge.access_newscaster) diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index 9f9b4164c3e..12cf2d1f3bb 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -23,6 +23,11 @@ var/access_status_display = 0 var/access_quartermaster = 0 var/access_hydroponics = 0 + var/access_secbots = 0 + var/access_medbots = 0 + var/access_floorbots = 0 + var/access_cleanbots = 0 + var/access_multibots = 0 var/mode = null var/menu var/datum/data/record/active1 = null //General @@ -39,6 +44,7 @@ name = "\improper Power-ON cartridge" icon_state = "cart-e" access_engine = 1 + access_floorbots = 1 /obj/item/weapon/cartridge/engineering/New() ..() @@ -48,6 +54,7 @@ name = "\improper BreatheDeep cartridge" icon_state = "cart-a" access_atmos = 1 + access_floorbots = 1 /obj/item/weapon/cartridge/atmos/New() ..() @@ -57,6 +64,7 @@ name = "\improper Med-U cartridge" icon_state = "cart-m" access_medical = 1 + access_medbots = 1 /obj/item/weapon/cartridge/medical/New() ..() @@ -66,6 +74,7 @@ name = "\improper ChemWhiz cartridge" icon_state = "cart-chem" access_reagent_scanner = 1 + access_medbots = 1 /obj/item/weapon/cartridge/chemistry/New() ..() @@ -75,6 +84,7 @@ name = "\improper R.O.B.U.S.T. cartridge" icon_state = "cart-s" access_security = 1 + access_secbots = 1 /obj/item/weapon/cartridge/security/New() ..() @@ -86,6 +96,7 @@ access_security = 1 access_medical = 1 access_manifest = 1 + access_secbots = 1 /obj/item/weapon/cartridge/detective/New() ..() @@ -96,6 +107,7 @@ desc = "The ultimate in clean-room design." icon_state = "cart-j" access_janitor = 1 + access_cleanbots = 1 /obj/item/weapon/cartridge/janitor/New() ..() @@ -171,6 +183,7 @@ access_quartermaster = 1 access_janitor = 1 access_security = 1 + access_newscaster = 1 /obj/item/weapon/cartridge/hop/New() ..() @@ -182,6 +195,7 @@ access_manifest = 1 access_status_display = 1 access_security = 1 + access_medbots = 1 /obj/item/weapon/cartridge/hos/New() ..() @@ -194,6 +208,7 @@ access_status_display = 1 access_engine = 1 access_atmos = 1 + access_floorbots = 1 /obj/item/weapon/cartridge/ce/New() ..() @@ -206,6 +221,7 @@ access_status_display = 1 access_reagent_scanner = 1 access_medical = 1 + access_medbots = 1 /obj/item/weapon/cartridge/cmo/New() ..() @@ -225,7 +241,7 @@ /obj/item/weapon/cartridge/captain name = "\improper Value-PAK cartridge" - desc = "Now with 200% more value!" + desc = "Now with 250% more value!" icon_state = "cart-c" access_manifest = 1 access_engine = 1 @@ -234,10 +250,12 @@ access_reagent_scanner = 1 access_status_display = 1 access_atmos = 1 + access_newscaster = 1 + access_multibots = 1 /obj/item/weapon/cartridge/captain/New() ..() - radio = new /obj/item/radio/integrated/beepsky(src) + radio = new /obj/item/radio/integrated/multi(src) /obj/item/weapon/cartridge/syndicate name = "\improper Detomatix cartridge" @@ -346,7 +364,7 @@ return menu -/obj/item/weapon/cartridge/proc/generate_menu() +/obj/item/weapon/cartridge/proc/generate_menu(mob/user) switch(mode) if(40) //signaller menu = "

    Remote Signaling System

    " @@ -689,7 +707,7 @@ Code: menu += "

    Located Cleanbots:

    " ldat = null - for (var/obj/machinery/bot/cleanbot/B in world) + for (var/obj/machinery/bot/cleanbot/B in SSbot.processing) var/turf/bl = get_turf(B) if(bl) @@ -732,10 +750,23 @@ Code: if(!current) menu += "
    ERROR : NO CHANNEL FOUND
    " return + var/i = 1 for(var/datum/feed_message/msg in current.messages) menu +="-[msg.body]
    \[Story by [msg.author]\]
    " + menu +="[msg.comments.len] comment[msg.comments.len > 1 ? "s" : ""]
    " + if(msg.img) + user << browse_rsc(msg.img, "tmp_photo[i].png") + menu +="
    " + i++ + for(var/datum/feed_comment/comment in msg.comments) + menu +="[comment.body]
    [comment.author] [comment.time_stamp]
    " menu += "
    Post Message" + if (54) // Beepsky, Medibot, Floorbot, and Cleanbot access + menu = "

    Multi-Bot Interlink

    " + var/obj/item/radio/integrated/multi/SC = radio + bot_control(SC) + /obj/item/weapon/cartridge/Topic(href, href_list) ..() @@ -825,5 +856,5 @@ Code: - generate_menu() + generate_menu(usr) print_to_host(menu) diff --git a/code/game/objects/items/devices/PDA/radio.dm b/code/game/objects/items/devices/PDA/radio.dm index 27e2b1613af..368bacc2bd1 100644 --- a/code/game/objects/items/devices/PDA/radio.dm +++ b/code/game/objects/items/devices/PDA/radio.dm @@ -8,7 +8,6 @@ var/obj/machinery/bot/active // the active bot; if null, show bot list var/list/botstatus // the status signal sent by the bot var/bot_type //The type of bot it is. - var/bot_filter //Determines which radio filter to use. var/control_freq = 1447 @@ -19,9 +18,8 @@ ..() if (istype(loc.loc, /obj/item/device/pda)) hostpda = loc.loc - if (bot_filter) - spawn(5) - add_to_radio(bot_filter) + spawn(5) + add_to_radio() /obj/item/radio/integrated/Destroy() if(radio_controller) @@ -30,7 +28,6 @@ /obj/item/radio/integrated/proc/post_signal(var/freq, var/key, var/value, var/key2, var/value2, var/key3, var/value3,var/key4, var/value4, s_filter) - //world << "Post: [freq]: [key]=[value], [key2]=[value2]" var/datum/radio_frequency/frequency = radio_controller.return_frequency(freq) if(!frequency) @@ -63,13 +60,14 @@ /obj/item/radio/integrated/receive_signal(datum/signal/signal) /*var/obj/item/device/pda/P = src.loc - world << "recvd:[P] : [signal.source]" for(var/d in signal.data) world << "- [d] = [signal.data[d]]" */ + if(signal.data["sect"] != ZLEVEL_STATION) //Only detect bots on the station! (Getting the current Z-level is too costly) + return - if (signal.data["type"] == bot_type) + if (signal.data["type"] & bot_type) if(!botlist) botlist = new() @@ -88,44 +86,43 @@ if("control") active = locate(href_list["bot"]) - post_signal(control_freq, "command", "bot_status", "active", active, s_filter = bot_filter) + post_signal(control_freq, "command", "bot_status", "active", active) if("scanbots") // find all bots botlist = null - post_signal(control_freq, "command", "bot_status", s_filter = bot_filter) + post_signal(control_freq, "command", "bot_status") if("botlist") active = null if("stop", "go") - post_signal(control_freq, "command", href_list["op"], "active", active, s_filter = bot_filter) - post_signal(control_freq, "command", "bot_status", "active", active, s_filter = bot_filter) + post_signal(control_freq, "command", href_list["op"], "active", active) + post_signal(control_freq, "command", "bot_status", "active", active) if("summon") - post_signal(control_freq, "command", "summon", "active", active, "target", get_turf(PDA) , "useraccess", PDA.GetAccess(), s_filter = bot_filter) - post_signal(control_freq, "command", "bot_status", "active", active, s_filter = bot_filter) + post_signal(control_freq, "command", "summon", "active", active, "target", get_turf(PDA) , "useraccess", PDA.GetAccess()) + post_signal(control_freq, "command", "bot_status", "active", active) PDA.cartridge.unlock() -/obj/item/radio/integrated/proc/add_to_radio(bot_filter) //Master filter control for bots. Must be placed in the bot's local New() to support map spawned bots. +/obj/item/radio/integrated/proc/add_to_radio() if(radio_controller) - radio_controller.add_object(src, control_freq, filter = bot_filter) + radio_controller.add_object(src, control_freq) /obj/item/radio/integrated/beepsky - bot_filter = RADIO_SECBOT bot_type = SEC_BOT /obj/item/radio/integrated/medbot - bot_filter = RADIO_MEDBOT bot_type = MED_BOT /obj/item/radio/integrated/floorbot - bot_filter = RADIO_FLOORBOT bot_type = FLOOR_BOT /obj/item/radio/integrated/cleanbot - bot_filter = RADIO_CLEANBOT bot_type = CLEAN_BOT +/obj/item/radio/integrated/multi + bot_type = SEC_BOT|CLEAN_BOT|MED_BOT|FLOOR_BOT + /obj/item/radio/integrated/mule //var/list/botlist = null // list of bots @@ -141,7 +138,7 @@ ..() spawn(5) if(radio_controller) - radio_controller.add_object(src, control_freq, filter = RADIO_MULEBOT) + radio_controller.add_object(src, control_freq) radio_controller.add_object(src, beacon_freq, filter = RADIO_NAVBEACONS) spawn(10) post_signal(beacon_freq, "findbeacon", "delivery", s_filter = RADIO_NAVBEACONS) @@ -203,28 +200,28 @@ active = null if("unload") - post_signal(control_freq, cmd, "unload", s_filter = RADIO_MULEBOT) + post_signal(control_freq, cmd, "unload") if("setdest") if(beacons) var/dest = input("Select Bot Destination", "Mulebot [active.suffix] Interlink", active.destination) as null|anything in beacons if(dest) - post_signal(control_freq, cmd, "target", "destination", dest, s_filter = RADIO_MULEBOT) + post_signal(control_freq, cmd, "target", "destination", dest) if("retoff") - post_signal(control_freq, cmd, "autoret", "value", 0, s_filter = RADIO_MULEBOT) + post_signal(control_freq, cmd, "autoret", "value", 0) if("reton") - post_signal(control_freq, cmd, "autoret", "value", 1, s_filter = RADIO_MULEBOT) + post_signal(control_freq, cmd, "autoret", "value", 1) if("pickoff") - post_signal(control_freq, cmd, "autopick", "value", 0, s_filter = RADIO_MULEBOT) + post_signal(control_freq, cmd, "autopick", "value", 0) if("pickon") - post_signal(control_freq, cmd, "autopick", "value", 1, s_filter = RADIO_MULEBOT) + post_signal(control_freq, cmd, "autopick", "value", 1) if("stop", "go", "home") - post_signal(control_freq, cmd, href_list["op"], s_filter = RADIO_MULEBOT) + post_signal(control_freq, cmd, href_list["op"]) - post_signal(control_freq, cmd, "bot_status", s_filter = RADIO_MULEBOT) + post_signal(control_freq, cmd, "bot_status") PDA.cartridge.unlock() diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 3594c570e2e..a9d6ec760ed 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -98,7 +98,7 @@ effective or pretty fucking useless. if(M) if(intensity >= 5) M.apply_effect(round(intensity/1.5), PARALYZE) - M.apply_effect(intensity*10, IRRADIATE) + M.irradiate(intensity*10) else user << "The radioactive microlaser is still recharging." diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index e30fe1dda80..775be481826 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -112,8 +112,6 @@ return 1 var/obj/structure/window/W W = new /obj/structure/window/fulltile( user.loc, 0 ) - W.dir = SOUTHWEST - W.ini_dir = SOUTHWEST W.anchored = 0 W.air_update_turf(1) W.add_fingerprint(user) @@ -213,8 +211,6 @@ var/obj/structure/window/W W = new /obj/structure/window/reinforced/fulltile(user.loc, 1) W.state = 0 - W.dir = SOUTHWEST - W.ini_dir = SOUTHWEST W.anchored = 0 W.add_fingerprint(user) src.use(2) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index dda26b4fef4..53321b2b4f8 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -1038,6 +1038,18 @@ obj/item/toy/cards/deck/syndicate icon = 'icons/obj/toy.dmi' icon_state = "carpplushie" w_class = 2.0 + attack_verb = list("bitten", "eaten", "fin slapped") + var/bitesound = 'sound/weapons/bite.ogg' + +// Attack mob +/obj/item/toy/carpplushie/attack(mob/M as mob, mob/user as mob) + playsound(loc, bitesound, 20, 1) // Play bite sound in local area + return ..() + +// Attack self +/obj/item/toy/carpplushie/attack_self(mob/user as mob) + playsound(src.loc, bitesound, 20, 1) + return ..() /* * Toy big red button diff --git a/code/game/objects/items/weapons/cosmetics.dm b/code/game/objects/items/weapons/cosmetics.dm index a78daf7096a..646a06d1d97 100644 --- a/code/game/objects/items/weapons/cosmetics.dm +++ b/code/game/objects/items/weapons/cosmetics.dm @@ -50,6 +50,9 @@ if(ishuman(M)) var/mob/living/carbon/human/H = M + if(H.is_mouth_covered()) + user << "Remove [ H == user ? "your" : "their" ] mask!" + return if(H.lip_style) //if they already have lipstick on user << "You need to wipe off the old lipstick first!" return diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index 3e6eade8206..6d1c95c9ff7 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -257,7 +257,7 @@ update_icon() return -/obj/item/weapon/defibrillator/compact/combat/attackby(obj/item/weapon/W, mob/user, params) +/obj/item/weapon/defibrillator/compact/combat/loaded/attackby(obj/item/weapon/W, mob/user, params) if(W == paddles) paddles.unwield() toggle_paddles() diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index 5826fe552f9..a7dbe0957aa 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -288,8 +288,8 @@ var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src) var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src) - B1.reagents.add_reagent("aluminium", 25) - B2.reagents.add_reagent("plasma", 25) + B1.reagents.add_reagent("phosphorus", 25) + B2.reagents.add_reagent("stable_plasma", 25) B2.reagents.add_reagent("sacid", 25) beakers += B1 diff --git a/code/game/objects/items/weapons/grenades/ghettobomb.dm b/code/game/objects/items/weapons/grenades/ghettobomb.dm index cc35b4024a9..37459241a78 100644 --- a/code/game/objects/items/weapons/grenades/ghettobomb.dm +++ b/code/game/objects/items/weapons/grenades/ghettobomb.dm @@ -32,7 +32,10 @@ /obj/item/weapon/grenade/iedcasing/CheckParts() var/obj/item/weapon/reagent_containers/food/drinks/soda_cans/can = locate() in contents if(can) + var/muh_layer = can.layer + can.layer = FLOAT_LAYER underlays += can + can.layer = muh_layer /obj/item/weapon/grenade/iedcasing/attack_self(mob/user as mob) // diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index a8b7ae88590..c644c33ab0d 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -173,7 +173,7 @@ /obj/item/weapon/implant/loyalty/implanted(mob/target) ..() - if((target.mind in ticker.mode.head_revolutionaries) || (target.mind in ticker.mode.A_bosses) || (target.mind in ticker.mode.B_bosses)) + if((target.mind in ticker.mode.head_revolutionaries) || (target.mind in ticker.mode.A_bosses) || (target.mind in ticker.mode.B_bosses) || is_shadow_or_thrall(target)) target.visible_message("[target] seems to resist the implant!", "You feel the corporate tendrils of Nanotrasen try to invade your mind!") return 0 if((target.mind in ticker.mode.revolutionaries) || (target.mind in ticker.mode.A_gangsters) || (target.mind in ticker.mode.B_gangsters)) diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index d1e142cd09f..886ce709f86 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -3,7 +3,7 @@ var/force_on = 30 //force when active var/throwforce_on = 20 var/icon_state_on = "axe1" - var/attack_verb_on = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + var/list/attack_verb_on = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") w_class = 2 var/w_class_on = 4 @@ -31,7 +31,7 @@ flags = CONDUCT | NOSHIELD origin_tech = "combat=3" attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") - attack_verb_on = null + attack_verb_on = list() /obj/item/weapon/melee/energy/axe/suicide_act(mob/user) user.visible_message("[user] swings the [src.name] towards /his head! It looks like \he's trying to commit suicide.") @@ -47,7 +47,6 @@ throw_speed = 3 throw_range = 5 flags = NOSHIELD - attack_verb = null origin_tech = "magnets=3;syndicate=4" var/hacked = 0 @@ -69,7 +68,7 @@ force = force_on throwforce = throwforce_on hitsound = 'sound/weapons/blade1.ogg' - if(attack_verb_on) + if(attack_verb_on.len) attack_verb = attack_verb_on if(!item_color) icon_state = icon_state_on @@ -82,7 +81,8 @@ force = initial(force) throwforce = initial(throwforce) hitsound = initial(hitsound) - attack_verb = initial(attack_verb) + if(attack_verb_on.len) + attack_verb = list() icon_state = initial(icon_state) w_class = initial(w_class) playsound(user, 'sound/weapons/saberoff.ogg', 35, 1) //changed it from 50% volume to 35% because deafness diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 83a70c95bb8..0fc3ddbf3d3 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -39,12 +39,11 @@ return //Close any open UI windows first - var/found = close_all() - if(!found) //No user had any windows closed - return + close_all() user << "You fold [src] flat." var/obj/item/I = new foldable(get_turf(src)) + user.drop_item() user.put_in_hands(I) user.update_inv_l_hand() user.update_inv_r_hand() diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 8fafce35f10..121a7b505ca 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -246,7 +246,7 @@ /obj/item/weapon/storage/fancy/cigarettes/cigpack_shadyjims/New() ..() for(var/i = 1 to storage_slots) - reagents.add_reagent("lipozine",4) + reagents.add_reagent("lipolicide",4) reagents.add_reagent("ammonia",2) reagents.add_reagent("plantbgone",1) reagents.add_reagent("toxin",1.5) diff --git a/code/game/objects/structures/barsigns.dm b/code/game/objects/structures/barsigns.dm index e303f91ece2..856559e6944 100644 --- a/code/game/objects/structures/barsigns.dm +++ b/code/game/objects/structures/barsigns.dm @@ -142,55 +142,55 @@ /datum/barsign/maltesefalcon name = "Maltese Falcon" icon = "maltesefalcon" - desc = "The Maltese Falcon, Space Bar and Grill" + desc = "The Maltese Falcon, Space Bar and Grill." /datum/barsign/thebark name = "The Bark" icon = "thebark" - desc = "Ian's bar of choice" + desc = "Ian's bar of choice." /datum/barsign/harmbaton name = "The Harmbaton" icon = "theharmbaton" - desc = "A great dining experience for both security members and assistants" + desc = "A great dining experience for both security members and assistants." /datum/barsign/thesingulo name = "The Singulo" icon = "thesingulo" - desc = "Where people go that'd rather not be called by their name" + desc = "Where people go that'd rather not be called by their name." /datum/barsign/thedrunkcarp name = "The Drunk Carp" icon = "thedrunkcarp" - desc = "Don't drink and Swim" + desc = "Don't drink and swim." /datum/barsign/scotchservinwill name = "Scotch Servin Willy's" icon = "scotchservinwill" - desc = "Willy sure moved up in the world from clown to bartender" + desc = "Willy sure moved up in the world from clown to bartender." /datum/barsign/officerbeersky name = "Officer Beersky's" icon = "officerbeersky" - desc = "Man eat a dong, these drinks are great" + desc = "Man eat a dong, these drinks are great." /datum/barsign/thecavern name = "The Cavern" icon = "thecavern" - desc = "Fine drinks while listening to some fine tunes" + desc = "Fine drinks while listening to some fine tunes." /datum/barsign/theouterspess name = "The Outer Spess" icon = "theouterspess" - desc = "This bar isn't actually located in outer space" + desc = "This bar isn't actually located in outer space." /datum/barsign/slipperyshots @@ -268,6 +268,10 @@ icon = "thealenath" desc = "All right, buddy. I think you've had EI NATH. Time to get a cab." +/datum/barsign/thealohasnackbar + name = "The Aloha Snackbar" + icon = "alohasnackbar" + desc = "A tasteful, inoffensive tiki bar sign." /datum/barsign/hiddensigns diff --git a/code/game/objects/structures/crates_lockers/closets/secure/misc.dm b/code/game/objects/structures/crates_lockers/closets/secure/misc.dm index 41242ba802f..fbfeb038a07 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/misc.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/misc.dm @@ -49,7 +49,7 @@ new /obj/item/weapon/storage/firstaid/brute(src) new /obj/item/weapon/storage/firstaid/regular(src) new /obj/item/weapon/melee/baton/loaded(src) - new /obj/item/weapon/defibrillator/compact/combat(src) + new /obj/item/weapon/defibrillator/compact/combat/loaded(src) new /obj/machinery/bot/medbot(src) /obj/structure/closet/secure_closet/ertEngi diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 71ad52a0388..3cb0bdbff92 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -525,21 +525,19 @@ obj/structure/door_assembly/New() playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) user.visible_message("[user] installs the electronics into the airlock assembly.", \ "You start to install electronics into the airlock assembly.") - user.drop_item() - W.loc = src + if(do_after(user, 40)) if( src.state != 1 ) - W.loc = src.loc return + + user.drop_item() + W.loc = src user << " You've installed the airlock electronics." src.state = 2 src.name = "near finished airlock assembly" src.electronics = W - else - W.loc = src.loc - //qdel(W) else if(istype(W, /obj/item/weapon/crowbar) && state == 2 ) playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index 7af569a1d13..45ca0a7748b 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -221,7 +221,7 @@ if(world.time > last_event+15) active = 1 for(var/mob/living/L in range(3,src)) - L.apply_effect(12,IRRADIATE,0) + L.irradiate(12) for(var/turf/simulated/wall/mineral/uranium/T in range(3,src)) T.radiate() last_event = world.time diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 03df21e80a9..43533768603 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -118,6 +118,8 @@ return /obj/structure/grille/Deconstruct() + if(!loc) //if already qdel'd somehow, we do nothing + return transfer_fingerprints_to(stored) var/turf/T = loc stored.loc = T diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 198ecc64993..3efe4925963 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -180,7 +180,7 @@ if(world.time > last_event+15) active = 1 for(var/mob/living/L in range(3,src)) - L.apply_effect(12,IRRADIATE,0) + L.irradiate(12) last_event = world.time active = null return 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 15c26a7a058..91b89fb8637 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 @@ -55,12 +55,12 @@ if(M == buckled_mob) M.pixel_y = 0 M.pixel_x = initial(M.pixel_x) + 2 - overlays += image('icons/mob/alien.dmi', "nestoverlay", layer=6) + M.layer = MOB_LAYER - 0.3 + overlays += image('icons/mob/alien.dmi', "nestoverlay", layer=MOB_LAYER - 0.2) else - M.pixel_x = initial(M.pixel_x) - M.pixel_y = initial(M.pixel_y) - if(M.lying) - M.pixel_y = M.lying_pixel_offset + M.pixel_x = M.get_standard_pixel_x_offset(M.lying) + M.pixel_y = M.get_standard_pixel_y_offset(M.lying) + M.layer = initial(M.layer) overlays.Cut() /obj/structure/stool/bed/nest/attackby(obj/item/weapon/W as obj, mob/user as mob, params) diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index 3a4588dcb3b..950e27b42eb 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -68,9 +68,8 @@ else density = 0 icon_state = "down" - M.pixel_y = initial(M.pixel_y) - if(M.lying) - M.pixel_y = M.lying_pixel_offset + M.pixel_x = M.get_standard_pixel_x_offset(M.lying) + M.pixel_y = M.get_standard_pixel_y_offset(M.lying) /obj/item/roller diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 42be0f87cec..0d0ccf7702e 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -16,20 +16,25 @@ var/disassembled = 0 var/wtype = "glass" var/fulltile = 0 - var/obj/item/stack/rods/storedrods - var/obj/item/weapon/shard/storedshard + var/list/storeditems = list() // var/silicate = 0 // number of units of silicate // var/icon/silicateIcon = null // the silicated icon /obj/structure/window/New(Loc,re=0) ..() health = maxhealth - if(re) reinf = re - storedshard = new/obj/item/weapon/shard(src) + if(re) + reinf = re + storeditems.Add(new/obj/item/weapon/shard(src)) + if(fulltile) + storeditems.Add(new/obj/item/weapon/shard(src)) ini_dir = dir if(reinf) state = 2*anchored - storedrods = new/obj/item/stack/rods(src) + var/obj/item/stack/rods/R = new/obj/item/stack/rods(src) + storeditems.Add(R) + if(fulltile) + R.add(1) air_update_turf(1) update_nearby_icons() @@ -123,9 +128,7 @@ ..(user, 1) user.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!")) user.visible_message("[user] smashes through [src]!") - storedshard.add_fingerprint(user) - if(storedrods) - storedrods.add_fingerprint(user) + add_fingerprint(user) hit(50) return 1 @@ -279,29 +282,23 @@ return 1 /obj/structure/window/proc/hit(var/damage, var/sound_effect = 1) - if(reinf) damage *= 0.5 + if(reinf) + damage *= 0.5 health = max(0, health - damage) update_nearby_icons() if(sound_effect) playsound(loc, 'sound/effects/Glasshit.ogg', 75, 1) if(health <= 0) - if(dir == SOUTHWEST) - var/index = null - index = 0 - while(index < 2) - spawnfragments() - index++ - else - spawnfragments() + spawnfragments() return /obj/structure/window/proc/spawnfragments() + if(!loc) //if already qdel'd somehow, we do nothing + return var/turf/T = loc - storedshard.loc = T - transfer_fingerprints_to(storedshard) - if(storedrods) - storedrods.loc = T - transfer_fingerprints_to(storedrods) + for(var/obj/item/I in storeditems) + I.loc = T + transfer_fingerprints_to(I) qdel(src) update_nearby_icons() diff --git a/code/game/turfs/simulated/floor/mineral_floor.dm b/code/game/turfs/simulated/floor/mineral_floor.dm index f550095c738..be064079ef9 100644 --- a/code/game/turfs/simulated/floor/mineral_floor.dm +++ b/code/game/turfs/simulated/floor/mineral_floor.dm @@ -164,7 +164,7 @@ if(world.time > last_event+15) active = 1 for(var/mob/living/L in range(3,src)) - L.apply_effect(1,IRRADIATE,0) + L.irradiate(1) for(var/turf/simulated/floor/mineral/uranium/T in range(3,src)) T.radiate() last_event = world.time diff --git a/code/game/turfs/simulated/walls_mineral.dm b/code/game/turfs/simulated/walls_mineral.dm index 817fd5be882..ffa184a2a66 100644 --- a/code/game/turfs/simulated/walls_mineral.dm +++ b/code/game/turfs/simulated/walls_mineral.dm @@ -64,7 +64,7 @@ if(world.time > last_event+15) active = 1 for(var/mob/living/L in range(3,src)) - L.apply_effect(12,IRRADIATE,0) + L.irradiate(12) for(var/turf/simulated/wall/mineral/uranium/T in range(3,src)) T.radiate() last_event = world.time diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 66019ef52b5..061a8db5665 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -126,8 +126,7 @@ /turf/proc/ChangeTurf(var/path) if(!path) return if(path == type) return src - var/old_lumcount = lighting_lumcount - initial(lighting_lumcount) - var/old_opacity = opacity + SSair.remove_from_active(src) var/turf/W = new path(src) @@ -136,18 +135,6 @@ W:Assimilate_Air() W.RemoveLattice() - W.lighting_lumcount += old_lumcount - if(old_lumcount != W.lighting_lumcount) //light levels of the turf have changed. We need to shift it to another lighting-subarea - W.lighting_changed = 1 - SSlighting.changed_turfs += W - - if(old_opacity != W.opacity) //opacity has changed. Need to update surrounding lights - if(W.lighting_lumcount) //unless we're being illuminated, don't bother (may be buggy, hard to test) - W.UpdateAffectingLights() - - for(var/turf/space/S in range(W,1)) - S.update_starlight() - W.levelupdate() W.CalculateAdjacentTurfs() return W diff --git a/code/game/turfs/unsimulated/walls.dm b/code/game/turfs/unsimulated/walls.dm index 7244345c7d1..e22ce3dd5fb 100644 --- a/code/game/turfs/unsimulated/walls.dm +++ b/code/game/turfs/unsimulated/walls.dm @@ -29,6 +29,9 @@ turf/unsimulated/wall/splashscreen icon_state = "r_wall" name = "reinforced wall" +/turf/unsimulated/wall/vault + icon_state = "rockvault" + /turf/unsimulated/shuttle name = "shuttle" icon = 'icons/turf/shuttle.dmi' diff --git a/code/game/verbs/suicide.dm b/code/game/verbs/suicide.dm index 7fc2486a184..ed21f09164a 100644 --- a/code/game/verbs/suicide.dm +++ b/code/game/verbs/suicide.dm @@ -33,22 +33,23 @@ //Do 175 damage divided by the number of damage types applied. if(damagetype & BRUTELOSS) - adjustBruteLoss(175/damage_mod) + adjustBruteLoss(200/damage_mod) if(damagetype & FIRELOSS) - adjustFireLoss(175/damage_mod) + adjustFireLoss(200/damage_mod) if(damagetype & TOXLOSS) - adjustToxLoss(175/damage_mod) + adjustToxLoss(200/damage_mod) if(damagetype & OXYLOSS) - adjustOxyLoss(175/damage_mod) + adjustOxyLoss(200/damage_mod) //If something went wrong, just do normal oxyloss if(!(damagetype | BRUTELOSS) && !(damagetype | FIRELOSS) && !(damagetype | TOXLOSS) && !(damagetype | OXYLOSS)) - adjustOxyLoss(max(175 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) + adjustOxyLoss(max(200 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) updatehealth() + death(0) return var/suicide_message = pick("[src] is attempting to bite \his tongue off! It looks like \he's trying to commit suicide.", \ @@ -58,8 +59,9 @@ visible_message("[suicide_message]", "[suicide_message]") - adjustOxyLoss(max(175 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) + adjustOxyLoss(max(200 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) updatehealth() + death(0) /mob/living/carbon/brain/verb/suicide() set hidden = 1 @@ -88,8 +90,9 @@ //instead of killing them instantly, just put them at -175 health and let 'em gasp for a while visible_message("[src] is attempting to bite \his tongue. It looks like \he's trying to commit suicide.", \ "[src] is attempting to bite \his tongue. It looks like \he's trying to commit suicide.") - adjustOxyLoss(max(175- getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) + adjustOxyLoss(max(200- getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) updatehealth() + death(0) /mob/living/silicon/ai/verb/suicide() set hidden = 1 @@ -105,6 +108,7 @@ //put em at -175 adjustOxyLoss(max(maxHealth * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) updatehealth() + death(0) /mob/living/silicon/robot/verb/suicide() set hidden = 1 @@ -120,6 +124,7 @@ //put em at -175 adjustOxyLoss(max(maxHealth * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) updatehealth() + death(0) /mob/living/silicon/pai/verb/suicide() set category = "pAI Commands" @@ -147,8 +152,9 @@ "[src] is thrashing wildly! It looks like \he's trying to commit suicide.", \ "You hear thrashing") //put em at -175 - adjustOxyLoss(max(175 - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) + adjustOxyLoss(max(200 - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) updatehealth() + death(0) /mob/living/simple_animal/verb/suicide() set hidden = 1 diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 05990a54129..d9a4d08f85b 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -862,4 +862,38 @@ proc/kick_clients_in_lobby(var/message, var/kick_only_afk = 0) C << message kicked_client_names.Add("[C.ckey]") del(C) - return kicked_client_names \ No newline at end of file + return kicked_client_names + +//returns 1 to let the dragdrop code know we are trapping this event +//returns 0 if we don't plan to trap the event +/datum/admins/proc/cmd_ghost_drag(var/mob/dead/observer/frommob, var/mob/living/tomob) + + //this is the exact two check rights checks required to edit a ckey with vv. + if (!check_rights(R_VAREDIT,0) || !check_rights(R_SPAWN|R_DEBUG,0)) + return 0 + + if (!frommob.ckey) + return 0 + + var/question = "" + if (tomob.ckey) + question = "This mob already has a user ([tomob.key]) in control of it! " + question += "Are you sure you want to place [frommob.name]([frommob.key]) in control of [tomob.name]?" + + var/ask = alert(question, "Place ghost in control of mob?", "Yes", "No") + if (ask != "Yes") + return 1 + + if (!frommob || !tomob) //make sure the mobs don't go away while we waited for a response + return 1 + + tomob.ghostize(0) + + message_admins("[key_name_admin(usr)] has put [frommob.ckey] in control of [tomob.name].") + log_admin("[key_name(usr)] stuffed [frommob.ckey] into [tomob.name].") + feedback_add_details("admin_verb","CGD") + + tomob.ckey = frommob.ckey + qdel(frommob) + + return 1 \ No newline at end of file diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 956e2d99bc7..106becf41c8 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -441,9 +441,9 @@ var/list/admin_verbs_hideable = list( message_admins("[key_name_admin(usr)] gave [key_name(T)] the spell [S].") if(T.mind) - T.mind.spell_list += new S + T.mind.AddSpell(new S) else - T.mob_spell_list += new S + T.AddSpell(new S) message_admins("Spells given to mindless mobs will not be transferred in mindswap or cloning!") diff --git a/code/modules/admin/create_object.dm b/code/modules/admin/create_object.dm index 7306af6e4ff..eae80abf304 100644 --- a/code/modules/admin/create_object.dm +++ b/code/modules/admin/create_object.dm @@ -15,7 +15,7 @@ var/quick_create_object_html = null var/pathtext = null - pathtext = input("Select the path of the object you wish to create.", "Path", "/obj") in list("/obj","/obj/structure","/obj/item","/obj/item/clothing","/obj/item/weapon/reagent_containers/food","/obj/item/weapon","/obj/machinery") + pathtext = input("Select the path of the object you wish to create.", "Path", "/obj") in list("/obj","/obj/structure","/obj/effect","/obj/item","/obj/item/clothing","/obj/item/weapon/reagent_containers/food","/obj/item/weapon","/obj/item/weapon/gun","/obj/machinery","/obj/item/stack") var path = text2path(pathtext) diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index 87739126ba9..087901ec941 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -480,6 +480,18 @@ dat += "PM" dat += "" + if(ticker.mode.abductors.len) + dat += "
    " + for(var/datum/mind/abductor in ticker.mode.abductors) + var/mob/M = abductor.current + if(M) + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "
    Abductors
    [M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]PMShow Objective
    Abductor not found!
    " + if(istype(ticker.mode, /datum/game_mode/blob)) var/datum/game_mode/blob/mode = ticker.mode dat += "
    " diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 44d926d1764..93ff19acc6b 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -74,8 +74,14 @@ log_admin("[key_name(usr)] created a emergency response team.") if(!src.makeEmergencyresponseteam()) usr << "Unfortunatly there were not enough candidates available." + if("14") + message_admins("[key_name(usr)] created abductor team.") + log_admin("[key_name(usr)] created abductor team.") + if(!src.makeAbductorTeam()) + usr << "Unfortunatly there were not enough candidates available." else if(href_list["forceevent"]) + if(!check_rights(R_FUN)) return var/datum/round_event_control/E = locate(href_list["forceevent"]) in SSevent.control if(E) var/datum/round_event/event = E.runEvent() diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index be22d3a4e25..76d63521dc0 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -22,6 +22,7 @@ client/proc/one_click_antag() Make Nuke Team (Requires Ghosts)
    Make Deathsquad (Requires Ghosts)
    Make Emergency Response Team (Requires Ghosts)
    + Make Abductor Team (Requires Ghosts)
    "} /* These dont work just yet Ninja, aliens and deathsquad I have not looked into yet @@ -541,6 +542,71 @@ client/proc/one_click_antag() return +//Abductors +/datum/admins/proc/makeAbductorTeam() + var/list/mob/dead/observer/candidates = list() + var/time_passed = world.time + + for(var/mob/dead/observer/G in player_list) + spawn(0) + switch(alert(G,"Do you wish to be considered for Abductor Team?","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 >= 2) + //Oh god why we can't have static functions + var/teams_finished = 0 + if(ticker.mode.config_tag == "abductor") + var/datum/game_mode/abduction/A = ticker.mode + teams_finished = A.teams + else + teams_finished = round(ticker.mode.abductors.len / 2) + var/number = teams_finished + 1 + + var/datum/game_mode/abduction/temp = new + + var/agent_mind = pick(candidates) + candidates -= agent_mind + var/scientist_mind = pick(candidates) + + var/mob/living/carbon/human/agent=makeBody(agent_mind) + var/mob/living/carbon/human/scientist=makeBody(scientist_mind) + + agent_mind = agent.mind + scientist_mind = scientist.mind + + temp.scientists.len = number + temp.agents.len = number + temp.abductors.len = 2*number + temp.team_objectives.len = number + temp.team_names.len = number + temp.scientists[number] = scientist_mind + temp.agents[number] = agent_mind + temp.abductors = list(agent_mind,scientist_mind) + temp.make_abductor_team(number) + temp.post_setup_team(number) + ticker.mode.abductors += temp.abductors + if(ticker.mode.config_tag == "abductor") + var/datum/game_mode/abduction/A = ticker.mode + A.teams += 1 + + return 1 + else + 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/client/preferences.dm b/code/modules/client/preferences.dm index cb3556a8990..bd3044071c4 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -17,7 +17,8 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set "ninja", //10 "monkey" = /datum/game_mode/monkey, //11 "gangster" = /datum/game_mode/gang, //12 - "shadowling" = /datum/game_mode/shadowling //13 + "shadowling" = /datum/game_mode/shadowling, //13 + "abductor" = /datum/game_mode/abduction //14 ) @@ -888,4 +889,4 @@ datum/preferences character.backbag = backbag character.update_body() - character.update_hair() \ No newline at end of file + character.update_hair() diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 4878387b59e..ac18e4dc922 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -92,7 +92,6 @@ BLIND // can't see anything icon = 'icons/obj/clothing/masks.dmi' body_parts_covered = HEAD slot_flags = SLOT_MASK - var/alloweat = 0 strip_delay = 40 put_on_delay = 40 var/mask_adjusted = 0 diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 6828d17dad4..f70bffdf3d7 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -222,7 +222,7 @@ /obj/item/clothing/mask/gas/clown_hat name = "clown wig and mask" desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask." - alloweat = 1 + flags = MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS icon_state = "clown" item_state = "clown_hat" @@ -245,28 +245,28 @@ obj/item/clothing/mask/gas/clown_hat/attack_self(mob/user) /obj/item/clothing/mask/gas/sexyclown name = "sexy-clown wig and mask" desc = "A feminine clown mask for the dabbling crossdressers or female entertainers." - alloweat = 1 + flags = MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS icon_state = "sexyclown" item_state = "sexyclown" /obj/item/clothing/mask/gas/mime name = "mime mask" desc = "The traditional mime's mask. It has an eerie facial posture." - alloweat = 1 + flags = MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS icon_state = "mime" item_state = "mime" /obj/item/clothing/mask/gas/monkeymask name = "monkey mask" desc = "A mask used when acting as a monkey." - alloweat = 1 + flags = MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS icon_state = "monkeymask" item_state = "monkeymask" /obj/item/clothing/mask/gas/sexymime name = "sexy mime mask" desc = "A traditional female mime's mask." - alloweat = 1 + flags = MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS icon_state = "sexymime" item_state = "sexymime" @@ -283,5 +283,5 @@ obj/item/clothing/mask/gas/clown_hat/attack_self(mob/user) /obj/item/clothing/mask/gas/owl_mask name = "owl mask" desc = "Twoooo!" - alloweat = 1 + flags = MASKCOVERSEYES | BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS icon_state = "owl" \ No newline at end of file diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index b8683c10cc7..b9ecf892582 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -61,7 +61,6 @@ permeability_coefficient = 0.50 body_parts_covered = CHEST|GROIN|ARMS allowed = list(/obj/item/weapon/kitchenknife) - action_button_name = "Toggle Jacket Sleeves" togglename = "sleeves" //Cook diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm index 380e0262597..b569f9b5fe6 100644 --- a/code/modules/clothing/suits/toggles.dm +++ b/code/modules/clothing/suits/toggles.dm @@ -57,6 +57,9 @@ ..() suit_toggle() +/obj/item/clothing/suit/toggle/ui_action_click() + suit_toggle() + /obj/item/clothing/suit/toggle/proc/suit_toggle() set src in usr diff --git a/code/modules/clothing/under/chameleon.dm b/code/modules/clothing/under/chameleon.dm index a92c45a0ab6..20acefb09d6 100644 --- a/code/modules/clothing/under/chameleon.dm +++ b/code/modules/clothing/under/chameleon.dm @@ -80,6 +80,7 @@ icon_state = A.icon_state item_state = A.item_state item_color = A.item_color + suit_color = A.suit_color usr.update_inv_w_uniform() //so our overlays update. diff --git a/code/modules/crafting/table.dm b/code/modules/crafting/table.dm index 89305cf1eb4..75847c323f4 100644 --- a/code/modules/crafting/table.dm +++ b/code/modules/crafting/table.dm @@ -91,6 +91,8 @@ if(istype(A, /obj/item)) var/atom/movable/B = A B.loc = I + B.pixel_x = initial(B.pixel_x) + B.pixel_y = initial(B.pixel_y) else if(!I.reagents) I.reagents = new /datum/reagents() diff --git a/code/modules/events/holiday/xmas.dm b/code/modules/events/holiday/xmas.dm index eacc8eacaba..3f40addebdf 100644 --- a/code/modules/events/holiday/xmas.dm +++ b/code/modules/events/holiday/xmas.dm @@ -143,9 +143,9 @@ santa_objective.completed = 1 //lets cut our santas some slack. santa_objective.owner = santa.mind santa.mind.objectives += santa_objective - santa.mind.spell_list += new /obj/effect/proc_holder/spell/aoe_turf/conjure/presents + santa.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/presents) var/obj/effect/proc_holder/spell/targeted/area_teleport/teleport/telespell = new(santa) telespell.clothes_req = 0 //santa robes aren't actually magical. - santa.mind.spell_list += telespell //does the station have chimneys? WHO KNOWS! + santa.mind.AddSpell(telespell) //does the station have chimneys? WHO KNOWS! santa << "You are Santa! Your objective is to bring joy to the people on this station. You can conjure more presents using a spell, and there are several presents in your bag." diff --git a/code/modules/events/radiation_storm.dm b/code/modules/events/radiation_storm.dm index 55b30f45011..f86ecdb5c42 100644 --- a/code/modules/events/radiation_storm.dm +++ b/code/modules/events/radiation_storm.dm @@ -36,9 +36,10 @@ if(istype(C, /mob/living/carbon/human)) var/mob/living/carbon/human/H = C - H.apply_effect((rand(15, 75)), IRRADIATE, 0) if(prob(5)) - H.apply_effect((rand(90, 150)), IRRADIATE, 0) + H.irradiate(rand(100, 160)) + else + H.irradiate(rand(15, 75)) if(prob(25)) if(prob(75)) randmutb(H) @@ -49,7 +50,7 @@ else if(istype(C, /mob/living/carbon/monkey)) var/mob/living/carbon/monkey/M = C - M.apply_effect((rand(15, 75)), IRRADIATE, 0) + M.irradiate(rand(15, 75)) /datum/round_event/radiation_storm/end() diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 75f860eb5f0..e4ec5e8fd5a 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -137,7 +137,7 @@ /datum/spacevine_mutation/light/on_grow(obj/effect/spacevine/holder) if(prob(10*severity)) - holder.luminosity = 4 + holder.SetLuminosity(4) /datum/spacevine_mutation/toxicity name = "toxic" diff --git a/code/modules/events/wizard/imposter.dm b/code/modules/events/wizard/imposter.dm index e3b4c5d1fb6..5d3567a9d47 100644 --- a/code/modules/events/wizard/imposter.dm +++ b/code/modules/events/wizard/imposter.dm @@ -33,9 +33,9 @@ I.key = C.key //Operation: Fuck off and scare people - I.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport(null) - I.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/turf_teleport/blink(null) - I.mind.spell_list += new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(null) + I.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport(null)) + I.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/turf_teleport/blink(null)) + I.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(null)) ticker.mode.traitors += I.mind I.mind.special_role = "imposter" diff --git a/code/modules/food&drinks/food/snacks/meat.dm b/code/modules/food&drinks/food/snacks/meat.dm index be5fc026d86..1fbb0e409a3 100644 --- a/code/modules/food&drinks/food/snacks/meat.dm +++ b/code/modules/food&drinks/food/snacks/meat.dm @@ -183,12 +183,16 @@ /obj/item/weapon/reagent_containers/food/snacks/meat/steak/plain/human /obj/item/weapon/reagent_containers/food/snacks/meat/steak/killertomato + name = "killer tomato steak" /obj/item/weapon/reagent_containers/food/snacks/meat/steak/bear + name = "bear steak" /obj/item/weapon/reagent_containers/food/snacks/meat/steak/xeno + name = "xeno steak" /obj/item/weapon/reagent_containers/food/snacks/meat/steak/spider + name = "spider steak" @@ -224,12 +228,20 @@ S.name = "[subjectjob] [initial(S.name)]" /obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/killertomato + name = "raw killer tomato cutlet" + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/killertomato /obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/bear + name = "raw bear cutlet" + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/bear /obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/xeno + name = "raw xeno cutlet" + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/xeno /obj/item/weapon/reagent_containers/food/snacks/meat/rawcutlet/spider + name = "raw spider cutlet" + cooked_type = /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/spider //Cooked cutlets @@ -248,9 +260,14 @@ /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/plain/human /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/killertomato + name = "killer tomato cutlet" /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/bear + name = "bear cutlet" /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/xeno + name = "xeno cutlet" + +/obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/spider + name = "spider cutlet" -/obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/spider \ No newline at end of file diff --git a/code/modules/food&drinks/food/snacks_meat.dm b/code/modules/food&drinks/food/snacks_meat.dm index 62cf5fcc05b..30a12799e00 100644 --- a/code/modules/food&drinks/food/snacks_meat.dm +++ b/code/modules/food&drinks/food/snacks_meat.dm @@ -98,14 +98,6 @@ ..() eatverb = pick("bite","chew","nibble","deep throat","gobble","chomp") -/obj/item/weapon/reagent_containers/food/snacks/wingfangchu - name = "wing fang chu" - desc = "A savory dish of alien wing wang in soy." - icon_state = "wingfangchu" - trash = /obj/item/weapon/reagent_containers/glass/bowl - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) - list_reagents = list("nutriment" = 6, "vitamin" = 2) - /obj/item/weapon/reagent_containers/food/snacks/kebab trash = /obj/item/stack/rods icon_state = "kebab" diff --git a/code/modules/food&drinks/food/snacks_soup.dm b/code/modules/food&drinks/food/snacks_soup.dm index 238d279674d..8248ab27aeb 100644 --- a/code/modules/food&drinks/food/snacks_soup.dm +++ b/code/modules/food&drinks/food/snacks_soup.dm @@ -44,6 +44,14 @@ bonus_reagents = list("nutriment" = 1, "vitamin" = 6) list_reagents = list("nutriment" = 2, "blood" = 10, "water" = 5, "vitamin" = 4) +/obj/item/weapon/reagent_containers/food/snacks/soup/wingfangchu + name = "wing fang chu" + desc = "A savory dish of alien wing wang in soy." + icon_state = "wingfangchu" + trash = /obj/item/weapon/reagent_containers/glass/bowl + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + list_reagents = list("nutriment" = 6, "soysauce" = 5, "vitamin" = 2) + /obj/item/weapon/reagent_containers/food/snacks/soup/clownstears name = "clown's tears" desc = "Not very funny." diff --git a/code/modules/food&drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food&drinks/recipes/tablecraft/recipes_meat.dm index 9bebc4b54d8..9681bea3478 100644 --- a/code/modules/food&drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food&drinks/recipes/tablecraft/recipes_meat.dm @@ -96,14 +96,6 @@ tools = list(/obj/item/weapon/lighter) result = /obj/item/weapon/reagent_containers/food/snacks/bearsteak -/datum/table_recipe/wingfangchu - name = "Wingfangchu" - reqs = list( - /datum/reagent/consumable/soysauce = 5, - /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/xeno = 2 - ) - result = /obj/item/weapon/reagent_containers/food/snacks/wingfangchu - /datum/table_recipe/enchiladas name = "Enchiladas" reqs = list( diff --git a/code/modules/food&drinks/recipes/tablecraft/recipes_soup.dm b/code/modules/food&drinks/recipes/tablecraft/recipes_soup.dm index 06721fd3430..b6e16173562 100644 --- a/code/modules/food&drinks/recipes/tablecraft/recipes_soup.dm +++ b/code/modules/food&drinks/recipes/tablecraft/recipes_soup.dm @@ -37,6 +37,15 @@ ) result = /obj/item/weapon/reagent_containers/food/snacks/soup/nettle +/datum/table_recipe/wingfangchu + name = "Wingfangchu" + reqs = list( + /obj/item/weapon/reagent_containers/glass/bowl = 1, + /datum/reagent/consumable/soysauce = 5, + /obj/item/weapon/reagent_containers/food/snacks/meat/cutlet/xeno = 2 + ) + result = /obj/item/weapon/reagent_containers/food/snacks/soup/wingfangchu + /datum/table_recipe/wishsoup name = "Wish soup" reqs = list( diff --git a/code/modules/holiday/easter.dm b/code/modules/holiday/easter.dm index d6cfdca9759..36c20650400 100644 --- a/code/modules/holiday/easter.dm +++ b/code/modules/holiday/easter.dm @@ -44,7 +44,7 @@ speak_emote = list("sniffles","twitches") emote_hear = list("hops.") emote_see = list("hops around","bounces up and down") - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat + meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/slab egg_type = /obj/item/weapon/reagent_containers/food/snacks/egg/loaded food_type = /obj/item/weapon/reagent_containers/food/snacks/grown/carrot meat_amount = 1 diff --git a/code/modules/lighting/lighting_system.dm b/code/modules/lighting/lighting_system.dm new file mode 100644 index 00000000000..d1a24a9a9bc --- /dev/null +++ b/code/modules/lighting/lighting_system.dm @@ -0,0 +1,379 @@ +/* + This is /tg/'s 'newer' lighting system. It's basically a combination of Forum_Account's and ShadowDarke's + respective lighting libraries heavily modified by Carnwennan for /tg/station with further edits by + MrPerson. Credits, where due, to them. + + Originally, like all other lighting libraries on BYOND, we used areas to render different hard-coded light levels. + The idea was that this was cheaper than using objects. Well as it turns out, the cost of the system is primarily from the + massive loops the system has to run, not from the areas or objects actually doing any work. Thus the newer system uses objects + so we can have more lighting states and smooth transitions between them. + + This is a queueing system. Everytime we call a change to opacity or luminosity throwgh SetOpacity() or SetLuminosity(), + we are simply updating variables and scheduling certain lights/turfs for an update. Actual updates are handled + periodically by the SSlighting subsystem. Specifically, it runs check() on every light datum that ran changed(). + Then it runs redraw_lighting() on every turf that ran update_lumcount(). + + Unlike our older system, there are hardcoded maximum luminosities (different for certain atoms). + This is to cap the cost of creating lighting effects. + (without this, an atom with luminosity of 20 would have to update 41^2 turfs!) :s + + Each light remembers the effect it casts on each turf. It reduces cost of removing lighting effects by a lot! + + Known Issues/TODO: + Shuttles still do not have support for dynamic lighting (I hope to fix this at some point) -probably trivial now + No directional lighting support. (prototype looked ugly) + Allow lights to be weaker than 'cap' radius + Colored lights +*/ + +#define LIGHTING_CIRCULAR 1 //comment this out to use old square lighting effects. +#define LIGHTING_LAYER 15 //Drawing layer for lighting +#define LIGHTING_CAP 10 //The lumcount level at which alpha is 0 and we're fully lit. +#define LIGHTING_CAP_FRAC (255/LIGHTING_CAP) //A precal'd variable we'll use in turf/redraw_lighting() +#define LIGHTING_ICON 'icons/effects/alphacolors.dmi' +#define LIGHTING_ICON_STATE "white" +#define LIGHTING_TIME 1.2 //Time to do any lighting change. Actual number pulled out of my ass +#define LIGHTING_DARKEST_VISIBLE_ALPHA 230 //Anything darker than this is so dark, we'll just consider the whole tile unlit + +/datum/light_source + var/atom/owner + var/radius = 0 + var/changed = 1 + var/list/effect = list() + var/__x = 0 //x coordinate at last update + var/__y = 0 //y coordinate at last update + +/datum/light_source/New(atom/A) + if(!istype(A)) + CRASH("The first argument to the light object's constructor must be the atom that is the light source. Expected atom, received '[A]' instead.") + ..() + owner = A + radius = A.luminosity + __x = owner.x + __y = owner.y + SSlighting.changed_lights |= src + +/datum/light_source/Destroy() + if(owner && owner.light == src) + remove_effect() + owner.light = null + owner = null + return ..() + +//Check a light to see if its effect needs reprocessing. If it does, remove any old effect and create a new one +/datum/light_source/proc/check() + if(!owner) + remove_effect() + return 0 + + if(changed) + changed = 0 + remove_effect() + return add_effect() + + return 1 + +//Tell the lighting subsystem to check() next fire +/datum/light_source/proc/changed() + if(owner) + __x = owner.x + __y = owner.y + if(!changed) + changed = 1 + SSlighting.changed_lights |= src + +//Remove current effect +/datum/light_source/proc/remove_effect(). + for(var/turf/T in effect) + T.update_lumcount(-effect[T]) + + if(T.affecting_lights && T.affecting_lights.len) + T.affecting_lights -= src + + effect.Cut() + +//Apply a new effect +/datum/light_source/proc/add_effect() + // only do this if the light is turned on and is on the map + if(owner && owner.loc && radius > 0) + effect = list() + var/turf/To = get_turf(owner) + var/range = owner.get_light_range(radius) + for(var/atom/movable/AM in To) + if(AM == owner) + continue + if(AM.opacity) + range = 0 + break + + for(var/turf/T in view(range, To)) + var/delta_lumcount = T.lumen(src) + if(delta_lumcount > 0) + effect[T] = delta_lumcount + T.update_lumcount(delta_lumcount) + + if(!T.affecting_lights) + T.affecting_lights = list() + T.affecting_lights |= src + + return 1 + else + return 0 + +//How much light light_source L should apply to src +/turf/proc/lumen(datum/light_source/L) + var/distance = 0 +#ifdef LIGHTING_CIRCULAR + distance = cheap_hypotenuse(x, y, L.__x, L.__y) +#else + distance = max(abs(x - L.__x), abs(y - L.__y)) +#endif + return LIGHTING_CAP * (L.radius - distance) / L.radius +//LIGHTING_CAP == strength for now + + +/atom + var/datum/light_source/light + + +//Turfs with opacity when they are constructed will trigger nearby lights to update +//Turfs and atoms with luminosity when they are constructed will create a light_source automatically +/turf/New() + ..() + if(luminosity) + light = new(src) +// luminosity = 0 + +//Movable atoms with opacity when they are constructed will trigger nearby lights to update +//Movable atoms with luminosity when they are constructed will create a light_source automatically +/atom/movable/New() + ..() + if(opacity) + UpdateAffectingLights() + if(luminosity) + light = new(src) +// luminosity = 0 + +//Objects with opacity will trigger nearby lights to update at next SSlighting fire +/atom/movable/Destroy() + qdel(light) + if(opacity) + UpdateAffectingLights() + return ..() + +//Objects with opacity will trigger nearby lights of the old location to update at next SSlighting fire +/atom/movable/Moved(atom/OldLoc, Dir) + if(isturf(loc)) + if(opacity) + OldLoc.UpdateAffectingLights() + else + if(light) + light.changed() + return ..() + +//Sets our luminosity. +//If we have no light it will create one. +//If we are setting luminosity to 0 the light will be cleaned up by the controller and garbage collected once all its +//queues are complete. +//if we have a light already it is merely updated, rather than making a new one. +/atom/proc/SetLuminosity(new_luminosity) + if(new_luminosity < 0) + new_luminosity = 0 + + if(!light) + if(!new_luminosity) + return + light = new(src) + else + if(light.radius == new_luminosity) + return + light.radius = new_luminosity + luminosity = new_luminosity + light.changed() + +/atom/proc/AddLuminosity(delta_luminosity) + if(light) + SetLuminosity(light.radius + delta_luminosity) + else + SetLuminosity(delta_luminosity) + +/area/SetLuminosity(new_luminosity) //we don't want dynamic lighting for areas + luminosity = !!new_luminosity + + +//change our opacity (defaults to toggle), and then update all lights that affect us. +/atom/proc/SetOpacity(new_opacity) + if(new_opacity == null) + new_opacity = !opacity //default = toggle opacity + else if(opacity == new_opacity) + return 0 //opacity hasn't changed! don't bother doing anything + opacity = new_opacity //update opacity, the below procs now call light updates. + UpdateAffectingLights() + return 1 + +/atom/movable/light + icon = LIGHTING_ICON + icon_state = LIGHTING_ICON_STATE + layer = LIGHTING_LAYER + mouse_opacity = 0 + blend_mode = BLEND_OVERLAY + invisibility = INVISIBILITY_LIGHTING + color = "#000" + luminosity = 0 + infra_luminosity = 1 + anchored = 1 + +/atom/movable/light/Destroy() + return 1 + +/atom/movable/light/Move() + return 0 + +/turf + var/lighting_lumcount = 0 + var/lighting_changed = 0 + var/atom/movable/light/lighting_object //Will be null for space turfs and anything in a static lighting area + var/list/affecting_lights //not initialised until used (even empty lists reserve a fair bit of memory) + +/turf/ChangeTurf(var/path) + if(!path || path == type) //Sucks this is here but it would cause problems otherwise. + return ..() + + if(light) + qdel(light) + + var/old_lumcount = lighting_lumcount - initial(lighting_lumcount) + + var/list/our_lights //reset affecting_lights if needed + if(opacity != initial(path:opacity) && old_lumcount) + UpdateAffectingLights() + + if(affecting_lights) + our_lights = affecting_lights.Copy() + + . = ..() //At this point the turf has changed + + affecting_lights = our_lights + + lighting_changed = 1 //Don't add ourself to SSlighting.changed_turfs + update_lumcount(old_lumcount) + lighting_object = locate() in src + init_lighting() + + for(var/turf/space/S in orange(src,1)) + S.update_starlight() + +/turf/proc/update_lumcount(amount) + lighting_lumcount += amount + if(!lighting_changed) + SSlighting.changed_turfs += src + lighting_changed = 1 + +/turf/space/update_lumcount(amount) //Keep track in case the turf becomes a floor at some point, but don't process. + lighting_lumcount += amount + +/turf/proc/init_lighting() + var/area/A = loc + if(!A.lighting_use_dynamic || istype(src, /turf/space)) + lighting_changed = 0 + if(lighting_object) + lighting_object.alpha = 0 + lighting_object = null + else + if(!lighting_object) + lighting_object = new (src) + redraw_lighting(1) + +/turf/space/init_lighting() + . = ..() + if(config.starlight) + update_starlight() + +/turf/proc/redraw_lighting(var/instantly = 0) + if(lighting_object) + var/newalpha + if(lighting_lumcount <= 0) + newalpha = 255 + else + lighting_object.luminosity = 1 + if(lighting_lumcount < LIGHTING_CAP) + var/num = Clamp(lighting_lumcount * LIGHTING_CAP_FRAC, 0, 255) + newalpha = 255-num + else //if(lighting_lumcount >= LIGHTING_CAP) + newalpha = 0 + + if(lighting_object.alpha != newalpha) + var/change_time = LIGHTING_TIME + if(instantly) + change_time = 0 + animate(lighting_object, alpha = newalpha, time = change_time) + if(newalpha >= LIGHTING_DARKEST_VISIBLE_ALPHA) //Doesn't actually make it darker or anything, just tells byond you can't see the tile + animate(luminosity = 0, time = 0) + + lighting_changed = 0 + +/area + var/lighting_use_dynamic = 1 //Turn this flag off to make the area fullbright + +/area/New() + . = ..() + if(!lighting_use_dynamic) + luminosity = 1 + +/area/proc/SetDynamicLighting() + lighting_use_dynamic = 1 + luminosity = 0 + for(var/turf/T in src.contents) + T.init_lighting() + T.update_lumcount(0) + +#undef LIGHTING_LAYER +#undef LIGHTING_CIRCULAR +#undef LIGHTING_ICON +#undef LIGHTING_ICON_STATE +#undef LIGHTING_TIME +#undef LIGHTING_CAP +#undef LIGHTING_CAP_FRAC +#undef LIGHTING_DARKEST_VISIBLE_ALPHA + + +//set the changed status of all lights which could have possibly lit this atom. +//We don't need to worry about lights which lit us but moved away, since they will have change status set already +//This proc can cause lots of lights to be updated. :( +/atom/proc/UpdateAffectingLights() + +/atom/movable/UpdateAffectingLights() + if(isturf(loc)) + loc.UpdateAffectingLights() + +/turf/UpdateAffectingLights() + if(affecting_lights) + for(var/datum/light_source/thing in affecting_lights) + thing.changed() //force it to update at next process() + + +#define LIGHTING_MAX_LUMINOSITY_STATIC 8 //Maximum luminosity to reduce lag. +#define LIGHTING_MAX_LUMINOSITY_MOBILE 5 //Moving objects have a lower max luminosity since these update more often. (lag reduction) +#define LIGHTING_MAX_LUMINOSITY_MOB 5 +#define LIGHTING_MAX_LUMINOSITY_TURF 8 //turfs are static too, why was this 1?! + +//caps luminosity effects max-range based on what type the light's owner is. +/atom/proc/get_light_range(radius) + return min(radius, LIGHTING_MAX_LUMINOSITY_STATIC) + +/atom/movable/get_light_range(radius) + return min(radius, LIGHTING_MAX_LUMINOSITY_MOBILE) + +/mob/get_light_range(radius) + return min(radius, LIGHTING_MAX_LUMINOSITY_MOB) + +/obj/machinery/light/get_light_range(radius) + return min(radius, LIGHTING_MAX_LUMINOSITY_STATIC) + +/turf/get_light_range(radius) + return min(radius, LIGHTING_MAX_LUMINOSITY_TURF) + +#undef LIGHTING_MAX_LUMINOSITY_STATIC +#undef LIGHTING_MAX_LUMINOSITY_MOBILE +#undef LIGHTING_MAX_LUMINOSITY_MOB +#undef LIGHTING_MAX_LUMINOSITY_TURF diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm index 843d2178793..62e7c97d47f 100644 --- a/code/modules/mining/equipment_locker.dm +++ b/code/modules/mining/equipment_locker.dm @@ -586,6 +586,7 @@ ranged_cooldown_cap = 3 projectiletype = /obj/item/projectile/kinetic projectilesound = 'sound/weapons/Gunshot4.ogg' + speak_emote = list("states") wanted_objects = list(/obj/item/weapon/ore/diamond, /obj/item/weapon/ore/gold, /obj/item/weapon/ore/silver, /obj/item/weapon/ore/plasma, /obj/item/weapon/ore/uranium, /obj/item/weapon/ore/iron, /obj/item/weapon/ore/bananium) diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 30ee011a5d8..717d2ea6512 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -130,6 +130,9 @@ desc = "An integrated electric mining drill." var/warned = 0 +/obj/item/weapon/pickaxe/drill/cyborg/attack_self(mob/user) + return //can't remove the drill's cell + /obj/item/weapon/pickaxe/drill/cyborg/proc/use_robot_power(var/mob/living/silicon/robot/R) if(!bcell.use(drillcost)) if(!warned) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 850f4d63cf7..e569986704f 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -61,9 +61,8 @@ var/list/image/ghost_darkness_images = list() //this is a list of images for thi verbs -= /mob/dead/observer/verb/possess animate(src, pixel_y = 2, time = 10, loop = -1) - - ..() + /mob/dead/observer/Destroy() if (ghostimage) ghost_darkness_images -= ghostimage @@ -102,7 +101,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp else var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost whilst still alive you may not play again this round! You can't change your mind so choose wisely!!)","Are you sure you want to ghost?","Ghost","Stay in body") if(response != "Ghost") return //didn't want to ghost after-all - resting = 1 ghostize(0) //0 parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3 return @@ -351,6 +349,15 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp src << browse(dat, "window=manifest;size=387x420;can_close=1") +//this is called when a ghost is drag clicked to something. +/mob/dead/observer/MouseDrop(atom/over) + if(!usr || !over) return + if (isobserver(usr) && usr.client.holder && isliving(over)) + if (usr.client.holder.cmd_ghost_drag(src,over)) + return + + return ..() + /mob/dead/observer/Topic(href, href_list) if(href_list["follow"]) var/atom/movable/target = locate(href_list["follow"]) diff --git a/code/modules/mob/interactive.dm b/code/modules/mob/interactive.dm index 00194761fb7..b23a2d439ec 100644 --- a/code/modules/mob/interactive.dm +++ b/code/modules/mob/interactive.dm @@ -286,6 +286,9 @@ else unEquip(I,TRUE) update_hands = 1 + +/mob/living/carbon/human/interactive/proc/targetRange(var/towhere) + return get_dist(get_turf(towhere), get_turf(src)) /mob/living/carbon/human/interactive/Life() ..() @@ -579,7 +582,7 @@ if((TARGET && (doing & FIGHTING)) || graytide) // this is a redundancy check var/mob/living/M = TARGET if(istype(M,/mob/living)) - if(M in range(FUZZY_CHANCE_LOW,src)) + if(targetRange(M) <= FUZZY_CHANCE_LOW) if(M.health > 1) if(main_hand) if(main_hand.force != 0) @@ -609,14 +612,14 @@ W.attack(TARGET,src) sleep(1) else - if(get_dist(src,TARGET) > 2) + if(targetRange(TARGET) > 2) tryWalk(TARGET) else if(Adjacent(TARGET)) M.attack_hand(src) sleep(1) timeout++ - else if(timeout >= 10 || M.health <= 1 || !(M in range(14,src))) + else if(timeout >= 10 || M.health <= 1 || !(targetRange(M) > 14)) doing = doing & ~FIGHTING timeout = 0 TARGET = null @@ -665,4 +668,4 @@ TRAITS |= TRAIT_DUMB faction = list("bot_grey") graytide = 1 - ..() \ No newline at end of file + ..() diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 86cd8abf179..79c1960f3a8 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -12,7 +12,6 @@ ventcrawler = 2 languages = ALIEN verb_say = "hisses" - lying_pixel_offset = 0 var/nightvision = 1 var/storedPlasma = 250 var/max_plasma = 500 @@ -138,9 +137,6 @@ /mob/living/carbon/alien/IsAdvancedToolUser() return has_fine_manipulation -/mob/living/carbon/alien/SpeciesCanConsume() - return 1 // Aliens can eat, and they can be fed food/drink - /mob/living/carbon/alien/Stat() ..() @@ -154,6 +150,16 @@ /mob/living/carbon/alien/proc/AddAbility(var/obj/effect/proc_holder/alien/A) abilities.Add(A) A.on_gain(src) + if(A.has_action) + if(!A.action) + A.action = new/datum/action/spell_action/alien + A.action.target = A + A.action.name = A.name + A.action.button_icon = A.action_icon + A.action.button_icon_state = A.action_icon_state + A.action.background_icon_state = A.action_background_icon_state + A.action.Grant(src) + /mob/living/carbon/alien/proc/add_abilities_to_panel() for(var/obj/effect/proc_holder/alien/A in abilities) @@ -198,6 +204,10 @@ Des: Removes all infected images from the alien. /mob/living/carbon/alien/canBeHandcuffed() return 1 +/mob/living/carbon/alien/get_standard_pixel_y_offset(lying = 0) + return initial(pixel_y) + + #undef HEAT_DAMAGE_LEVEL_1 #undef HEAT_DAMAGE_LEVEL_2 #undef HEAT_DAMAGE_LEVEL_3 diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index 43314e72e60..f5fa526654f 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -4,18 +4,47 @@ These are general powers. Specific powers are stored under the appropriate alien /*Alien spit now works like a taser shot. It won't home in on the target but will act the same once it does hit. Doesn't work on other aliens/AI.*/ + +/datum/action/spell_action/alien + +/datum/action/spell_action/alien/UpdateName() + var/obj/effect/proc_holder/alien/ab = target + return ab.name + +/datum/action/spell_action/alien/IsAvailable() + if(!target) + return 0 + var/obj/effect/proc_holder/alien/ab = target + + if(usr) + return ab.cost_check(ab.check_turf,usr,1) + else + if(owner) + return ab.cost_check(ab.check_turf,owner,1) + return 1 + +/datum/action/spell_action/alien/CheckRemoval() + return !isalien(owner) + + /obj/effect/proc_holder/alien name = "Alien Power" panel = "Alien" var/plasma_cost = 0 var/check_turf = 0 + var/has_action = 1 + var/datum/action/spell_action/alien/action = null + var/action_icon = 'icons/mob/actions.dmi' + var/action_icon_state = "spell_default" + var/action_background_icon_state = "bg_alien" + /obj/effect/proc_holder/alien/Click() if(!istype(usr,/mob/living/carbon/alien)) return 1 var/mob/living/carbon/alien/user = usr if(cost_check(check_turf,user)) - if(fire(user)) + if(fire(user) && user) // Second check to prevent runtimes when evolving user.adjustToxLoss(-plasma_cost) return 1 @@ -25,15 +54,18 @@ Doesn't work on other aliens/AI.*/ /obj/effect/proc_holder/alien/proc/fire(var/mob/living/carbon/alien/user) return 1 -/obj/effect/proc_holder/alien/proc/cost_check(check_turf=0,var/mob/living/carbon/alien/user) +/obj/effect/proc_holder/alien/proc/cost_check(check_turf=0,var/mob/living/carbon/alien/user,var/silent = 0) if(user.stat) - user << "You must be conscious to do this." + if(!silent) + user << "You must be conscious to do this." return 0 if(user.getPlasma() < plasma_cost) - user << "Not enough plasma stored." + if(!silent) + user << "Not enough plasma stored." return 0 if(check_turf && (!isturf(user.loc) || istype(user.loc, /turf/space))) - user << "Bad place for a garden!" + if(!silent) + user << "Bad place for a garden!" return 0 return 1 @@ -43,6 +75,8 @@ Doesn't work on other aliens/AI.*/ plasma_cost = 50 check_turf = 1 + action_icon_state = "alien_plant" + /obj/effect/proc_holder/alien/plant/fire(var/mob/living/carbon/alien/user) if(locate(/obj/structure/alien/weeds/node) in get_turf(user)) src << "There's already a weed node here." @@ -57,6 +91,8 @@ Doesn't work on other aliens/AI.*/ desc = "Whisper to someone" plasma_cost = 10 + action_icon_state = "alien_whisper" + /obj/effect/proc_holder/alien/whisper/fire(var/mob/living/carbon/alien/user) var/mob/M = input("Select who to whisper to:","Whisper to?",null) as mob in oview(user) if(!M) @@ -75,6 +111,8 @@ Doesn't work on other aliens/AI.*/ desc = "Transfer Plasma to another alien" plasma_cost = 0 + action_icon_state = "alien_transfer" + /obj/effect/proc_holder/alien/transfer/fire(var/mob/living/carbon/alien/user) var/list/mob/living/carbon/alien/aliens_around = list() for(var/mob/living/carbon/alien/A in oview(user)) @@ -101,6 +139,8 @@ Doesn't work on other aliens/AI.*/ desc = "Drench an object in acid, destroying it over time." plasma_cost = 200 + action_icon_state = "alien_acid" + /obj/effect/proc_holder/alien/acid/on_gain(var/mob/living/carbon/alien/user) user.verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid) @@ -157,6 +197,8 @@ Doesn't work on other aliens/AI.*/ desc = "Spits neurotoxin at someone, paralyzing them for a short time." plasma_cost = 50 + action_icon_state = "alien_neurotoxin" + /obj/effect/proc_holder/alien/neurotoxin/fire(var/mob/living/carbon/alien/user) user.visible_message("[user] spits neurotoxin!", "You spit neurotoxin.") @@ -180,6 +222,8 @@ Doesn't work on other aliens/AI.*/ plasma_cost = 55 check_turf = 1 + action_icon_state = "alien_resin" + /obj/effect/proc_holder/alien/resin/fire(var/mob/living/carbon/alien/user) if(locate(/obj/structure/alien/resin) in user.loc.contents) user << "There is already a resin structure there." @@ -206,6 +250,8 @@ Doesn't work on other aliens/AI.*/ desc = "Empties the contents of your stomach" plasma_cost = 0 + action_icon_state = "alien_barf" + /obj/effect/proc_holder/alien/regurgitate/fire(var/mob/living/carbon/alien/user) if(user.stomach_contents.len) for(var/atom/movable/A in user.stomach_contents) @@ -221,6 +267,8 @@ Doesn't work on other aliens/AI.*/ desc = "Toggles Night Vision" plasma_cost = 0 + has_action = 0 // Has dedicated GUI button already + /obj/effect/proc_holder/alien/nightvisiontoggle/fire(var/mob/living/carbon/alien/user) if(!user.nightvision) diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm index a572cd2d80e..a18f4b2ee00 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm @@ -29,6 +29,8 @@ desc = "Produce an interal egg sac capable of spawning children. Only one queen can exist at a time." plasma_cost = 500 + action_icon_state = "alien_evolve_drone" + /obj/effect/proc_holder/alien/evolve/fire(var/mob/living/carbon/alien/user) var/no_queen = 1 for(var/mob/living/carbon/alien/humanoid/queen/Q in living_mob_list) diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 1e993e79363..40c3574d756 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -8,6 +8,8 @@ var/leap_on_click = 0 var/pounce_cooldown = 0 var/pounce_cooldown_time = 30 + var/custom_pixel_x_offset = 0 //for admin fuckery. + var/custom_pixel_y_offset = 0 //This is fine right now, if we're adding organ specific damage this needs to be updated /mob/living/carbon/alien/humanoid/New() @@ -127,4 +129,20 @@ /mob/living/carbon/alien/humanoid/cuff_resist(obj/item/I) playsound(src, 'sound/voice/hiss5.ogg', 40, 1, 1) //Alien roars when starting to break free - ..(I, cuff_break = 1) + ..(I, cuff_break = 1) + +/mob/living/carbon/alien/humanoid/get_standard_pixel_y_offset(lying = 0) + if(leaping) + return -32 + else if(custom_pixel_y_offset) + return custom_pixel_y_offset + else + return initial(pixel_y) + +/mob/living/carbon/alien/humanoid/get_standard_pixel_x_offset(lying = 0) + if(leaping) + return -32 + else if(custom_pixel_x_offset) + return custom_pixel_x_offset + else + return initial(pixel_x) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 3919492a553..9670240e4aa 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -63,6 +63,8 @@ plasma_cost = 75 check_turf = 1 + action_icon_state = "alien_egg" + /obj/effect/proc_holder/alien/lay_egg/fire(var/mob/living/carbon/alien/user) if(locate(/obj/structure/alien/egg) in get_turf(user)) user << "There's already an egg here." diff --git a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm index 2ccc95f56cf..85a63338919 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm @@ -14,7 +14,6 @@ for(var/image/I in overlays_standing) overlays += I - if(stat == DEAD) //If we mostly took damage from fire if(fireloss > 125) @@ -35,9 +34,10 @@ icon_state = "alien[caste]_s" if(leaping) - var/old_icon = icon - icon = alt_icon - alt_icon = old_icon + if(alt_icon == initial(alt_icon)) + var/old_icon = icon + icon = alt_icon + alt_icon = old_icon icon_state = "alien[caste]_leap" pixel_x = -32 pixel_y = -32 @@ -46,9 +46,8 @@ var/old_icon = icon icon = alt_icon alt_icon = old_icon - pixel_x = initial(pixel_x) - pixel_y = initial(pixel_y) - + pixel_x = get_standard_pixel_x_offset(lying) + pixel_y = get_standard_pixel_y_offset(lying) /mob/living/carbon/alien/humanoid/regenerate_icons() ..() diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index edae69928ef..096f1e353a8 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -4,6 +4,7 @@ icon_state = "larva0" pass_flags = PASSTABLE | PASSMOB mob_size = MOB_SIZE_SMALL + density = 0 maxHealth = 25 health = 25 diff --git a/code/modules/mob/living/carbon/alien/larva/powers.dm b/code/modules/mob/living/carbon/alien/larva/powers.dm index 8a4cbfea95a..cf2c73a96c6 100644 --- a/code/modules/mob/living/carbon/alien/larva/powers.dm +++ b/code/modules/mob/living/carbon/alien/larva/powers.dm @@ -3,6 +3,8 @@ desc = "Allows to hide beneath tables or certain items. Toggled on or off." plasma_cost = 0 + action_icon_state = "alien_hide" + /obj/effect/proc_holder/alien/hide/fire(var/mob/living/carbon/alien/user) if(user.stat != CONSCIOUS) return @@ -23,6 +25,8 @@ desc = "Evolve into a fully grown Alien." plasma_cost = 0 + action_icon_state = "alien_evolve_larva" + /obj/effect/proc_holder/alien/larva_evolve/fire(var/mob/living/carbon/alien/user) if(!islarva(user)) return diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index a4c27b35cf4..f24f47f8f65 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -123,7 +123,7 @@ var/const/MAX_ACTIVE_TIME = 400 if(ishuman(L)) var/mob/living/carbon/human/H = L - if(H.head && H.head.flags & HEADCOVERSMOUTH) + if(H.is_mouth_covered(head_only = 1)) H.visible_message("[src] smashes against [H]'s [H.head]!", \ "[src] smashes against [H]'s [H.head]!") Die() @@ -239,7 +239,7 @@ var/const/MAX_ACTIVE_TIME = 400 var/mob/living/carbon/C = M if(ishuman(C)) var/mob/living/carbon/human/H = C - if(H.head && H.head.flags & HEADCOVERSMOUTH) + if(H.is_mouth_covered(head_only = 1)) return 0 return 1 return 0 diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index dca6c42554c..afd060e9fc3 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -458,6 +458,7 @@ var/const/GALOSHES_DONT_HELP = 8 if(handcuffed) handcuffed.loc = loc + handcuffed.dropped(src) handcuffed = null if(buckled && buckled.buckle_requires_restraints) buckled.unbuckle_mob() @@ -490,3 +491,13 @@ var/const/GALOSHES_DONT_HELP = 8 update_inv_legcuffed(0) else src << "You fail to break [I]!" + +/mob/living/carbon/proc/is_mouth_covered(head_only = 0, mask_only = 0) + if( (!mask_only && head && (head.flags & HEADCOVERSMOUTH)) || (!head_only && wear_mask && (wear_mask.flags & MASKCOVERSMOUTH)) ) + return 1 + +/mob/living/carbon/get_standard_pixel_y_offset(lying = 0) + if(lying) + return -6 + else + return initial(pixel_y) diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index b694d7c2ca5..14510956dab 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -22,5 +22,4 @@ var/co2overloadtime = null var/temperature_resistance = T0C+75 - lying_pixel_offset = -6 //offset for pixel_y when lying down. has_limbs = 1 diff --git a/code/modules/mob/living/carbon/human/blood.dm b/code/modules/mob/living/carbon/human/blood.dm index 48da639f97e..ac4e518258b 100644 --- a/code/modules/mob/living/carbon/human/blood.dm +++ b/code/modules/mob/living/carbon/human/blood.dm @@ -153,7 +153,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 */ for(var/datum/disease/D in src.viruses) - B.data["viruses"] += new D.type(0, D, 1) + B.data["viruses"] += D.Copy() B.data["blood_DNA"] = copytext(src.dna.unique_enzymes,1,0) if(src.resistances&&src.resistances.len) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index a8683a1f49c..676caeff4e7 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -665,13 +665,12 @@ if(prob(current_size * 5) && hand.w_class >= ((11-current_size)/2) && unEquip(hand)) step_towards(hand, src) src << "\The [S] pulls \the [hand] from your grip!" - apply_effect(current_size * 3, IRRADIATE) + irradiate(current_size * 3) if(mob_negates_gravity()) return ..() - /mob/living/carbon/human/help_shake_act(mob/living/carbon/M) if(!istype(M)) return @@ -730,6 +729,34 @@ ..() +/mob/living/carbon/human/proc/do_cpr(mob/living/carbon/C) + if(C.stat == DEAD) + src << "[C.name] is dead!" + return + if(is_mouth_covered()) + src << "Remove your mask!" + return 0 + if(C.is_mouth_covered()) + src << "Remove their mask!" + return 0 + + if(C.cpr_time < world.time + 30) + add_logs(src, C, "CPRed") + visible_message("[src] is trying to perform CPR on [C.name]!", \ + "You try to perform CPR on [C.name]. Hold still!") + if(!do_mob(src, C)) + src << "You fail to perform CPR on [C]!" + return 0 + + if(C.health <= config.health_threshold_crit) + C.cpr_time = world.time + var/suff = min(C.getOxyLoss(), 7) + C.adjustOxyLoss(-suff) + C.updatehealth() + visible_message("[src] performs CPR on [C.name]!") + C << "You feel a breath of fresh air enter your lungs. It feels good." + + /mob/living/carbon/human/generateStaticOverlay() var/image/staticOverlay = image(icon('icons/effects/effects.dmi', "static"), loc = src) staticOverlay.override = 1 diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 3a34e1f3acb..844f2399a19 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -124,12 +124,14 @@ mob/living/carbon/human/proc/hat_fall_prob() var/update = 0 while(parts.len && (brute>0 || burn>0) ) var/obj/item/organ/limb/picked = pick(parts) + var/brute_per_part = brute/parts.len + var/burn_per_part = burn/parts.len var/brute_was = picked.brute_dam var/burn_was = picked.burn_dam - update |= picked.take_damage(brute,burn) + update |= picked.take_damage(brute_per_part,burn_per_part) brute -= (picked.brute_dam - brute_was) burn -= (picked.burn_dam - burn_was) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index d37e3f89502..9b373ba72f4 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -47,4 +47,8 @@ var/blood_max = 0 //how much are we bleeding var/bleedsuppress = 0 //for stopping bloodloss, eventually this will be limb-based like bleeding - var/list/organs = list() //Gets filled up in the constructor (human.dm, New() proc. \ No newline at end of file + var/list/organs = list() //Gets filled up in the constructor (human.dm, New() proc. + + var/datum/martial_art/martial_art = null + + var/name_override //For temporary visible name changes \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index 902cce6896a..ecc7c49649e 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -39,6 +39,8 @@ /mob/living/carbon/human/get_visible_name() var/face_name = get_face_name("") var/id_name = get_id_name("") + if(name_override) + return name_override if(face_name) if(id_name && (id_name != face_name)) return "[face_name] (as [id_name])" @@ -125,9 +127,6 @@ /mob/living/carbon/human/IsAdvancedToolUser() return 1//Humans can use guns and such -/mob/living/carbon/human/SpeciesCanConsume() - return 1 // Humans can eat, drink, and be forced to do so - /mob/living/carbon/human/InCritical() return (health <= config.health_threshold_crit && stat == UNCONSCIOUS) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 5e914e68242..58189d56b4b 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -15,10 +15,11 @@ var/obj/item/weapon/tank/jetpack/J = back if((movement_dir || J.stabilization_on) && J.allow_thrust(0.01, src)) return 1 - if(istype(wear_suit, /obj/item/clothing/suit/space/hardsuit/engine) && isturf(loc)) //Second check is so you can't use a jetpack in a mech - var/obj/item/clothing/suit/space/hardsuit/engine/C = wear_suit - if((movement_dir || C.jetpack.stabilization_on) && C.jetpack.allow_thrust(0.01, src)) - return 1 + if(istype(wear_suit, /obj/item/clothing/suit/space/hardsuit) && isturf(loc)) //Second check is so you can't use a jetpack in a mech + var/obj/item/clothing/suit/space/hardsuit/C = wear_suit + if(C.jetpack) + if((movement_dir || C.jetpack.stabilization_on) && C.jetpack.allow_thrust(0.01, src)) + return 1 return 0 diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index c1e89721f8a..2bec9a1583b 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -301,9 +301,6 @@ s_store = null update_inv_s_store(0) - update_action_buttons() - - //This is an UNSAFE proc. Use mob_can_equip() before calling this one! Or rather use equip_to_slot_if_possible() or advanced_equip_to_slot_if_possible() //set redraw_mob to 0 if you don't wish the hud to be updated - if you're doing it manually in your own proc. /mob/living/carbon/human/equip_to_slot(obj/item/I, slot, redraw_mob = 1) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 67545dc5681..bde4a8899f2 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1,12 +1,5 @@ // This code handles different species in the game. -#define SPECIES_LAYER 26 -#define BODY_BEHIND_LAYER 25 -#define BODY_LAYER 24 -#define BODY_ADJ_LAYER 23 -#define HAIR_LAYER 9 -#define BODY_FRONT_LAYER 2 - #define TINT_IMPAIR 2 #define TINT_BLIND 3 @@ -248,7 +241,8 @@ for(var/layer in relevent_layers) for(var/bodypart in bodyparts_to_add) I = image("icon" = 'icons/mob/mutant_bodyparts.dmi', "icon_state" = "[icon_state_string]_[bodypart]_[layer]", "layer" =- layer) - I.color = "#[H.dna.mutant_color]" + if(!(H.disabilities & HUSK)) + I.color = "#[H.dna.mutant_color]" standing += I H.overlays_standing[layer] = standing.Copy() standing = list() @@ -656,7 +650,7 @@ if(istype(H.back, /obj/item/weapon/tank/jetpack)) J = H.back if(istype(H.wear_suit,/obj/item/clothing/suit/space/hardsuit)) //copypasta but faster implementation currently - var/obj/item/clothing/suit/space/hardsuit/engine/C = H.wear_suit + var/obj/item/clothing/suit/space/hardsuit/C = H.wear_suit P = C.jetpack if(J) if(J.allow_thrust(0.01, H)) @@ -703,11 +697,15 @@ ////////////////// /datum/species/proc/spec_attack_hand(var/mob/living/carbon/human/M, var/mob/living/carbon/human/H) + if(!istype(M)) //sanity check for drones. + return if((M != H) && H.check_shields(0, M.name)) add_logs(M, H, "attempted to touch") H.visible_message("[M] attempted to touch [H]!") return 0 + var/datum/martial_art/attacker_style = M.martial_art + switch(M.a_intent) if("help") if(H.health >= 0) @@ -715,132 +713,119 @@ if(H != M) add_logs(M, H, "shaked") return 1 - - //CPR - if((M.head && (M.head.flags & HEADCOVERSMOUTH)) || (M.wear_mask && (M.wear_mask.flags & MASKCOVERSMOUTH))) - M << "Remove your mask!" - return 0 - if((H.head && (H.head.flags & HEADCOVERSMOUTH)) || (H.wear_mask && (H.wear_mask.flags & MASKCOVERSMOUTH))) - M << "Remove their mask!" - return 0 - - if(H.cpr_time < world.time + 30) - add_logs(M, H, "CPRed") - M.visible_message("[M] is trying to perform CPR on [H]!", \ - "You try to perform CPR on [H]. Hold still!") - if(!do_mob(M, H)) - M << "You fail to perform CPR on [H]!" - return 0 - if((H.health >= -99 && H.health <= 0)) - H.cpr_time = world.time - var/suff = min(H.getOxyLoss(), 7) - H.adjustOxyLoss(-suff) - H.updatehealth() - M.visible_message("[M] performs CPR on [H]!") - H << "You feel a breath of fresh air enter your lungs. It feels good." + else + M.do_cpr(H) if("grab") - H.grabbedby(M) - return 1 + if(attacker_style && attacker_style.grab_act(M,H)) + return 1 + else + H.grabbedby(M) + return 1 if("harm") - add_logs(M, H, "punched") - M.do_attack_animation(H) - - var/atk_verb = "punch" - if(H.lying) - atk_verb = "kick" - else if(M.dna) - atk_verb = M.dna.species.attack_verb - - var/damage = rand(0, 9) - if(M.dna) - damage += M.dna.species.punchmod - - if(!damage) - if(M.dna) - playsound(H.loc, M.dna.species.miss_sound, 25, 1, -1) - else - playsound(H.loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - - H.visible_message("[M] has attempted to [atk_verb] [H]!") - return 0 - - - var/obj/item/organ/limb/affecting = H.get_organ(ran_zone(M.zone_sel.selecting)) - var/armor_block = H.run_armor_check(affecting, "melee") - - if(M.dna) - playsound(H.loc, M.dna.species.attack_sound, 25, 1, -1) + if(attacker_style && attacker_style.harm_act(M,H)) + return 1 else - playsound(H.loc, 'sound/weapons/punch1.ogg', 25, 1, -1) + add_logs(M, H, "punched") + M.do_attack_animation(H) + + var/atk_verb = "punch" + if(H.lying) + atk_verb = "kick" + else if(M.dna) + atk_verb = M.dna.species.attack_verb + + var/damage = rand(0, 9) + if(M.dna) + damage += M.dna.species.punchmod + + if(!damage) + if(M.dna) + playsound(H.loc, M.dna.species.miss_sound, 25, 1, -1) + else + playsound(H.loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + + H.visible_message("[M] has attempted to [atk_verb] [H]!") + return 0 - H.visible_message("[M] has [atk_verb]ed [H]!", \ - "[M] has [atk_verb]ed [H]!") + var/obj/item/organ/limb/affecting = H.get_organ(ran_zone(M.zone_sel.selecting)) + var/armor_block = H.run_armor_check(affecting, "melee") - H.apply_damage(damage, BRUTE, affecting, armor_block) - if((H.stat != DEAD) && damage >= 9) - H.visible_message("[M] has weakened [H]!", \ - "[M] has weakened [H]!") - H.apply_effect(4, WEAKEN, armor_block) - H.forcesay(hit_appends) - else if(H.lying) - H.forcesay(hit_appends) + if(M.dna) + playsound(H.loc, M.dna.species.attack_sound, 25, 1, -1) + else + playsound(H.loc, 'sound/weapons/punch1.ogg', 25, 1, -1) + + H.visible_message("[M] has [atk_verb]ed [H]!", \ + "[M] has [atk_verb]ed [H]!") + + H.apply_damage(damage, BRUTE, affecting, armor_block) + if((H.stat != DEAD) && damage >= 9) + H.visible_message("[M] has weakened [H]!", \ + "[M] has weakened [H]!") + H.apply_effect(4, WEAKEN, armor_block) + H.forcesay(hit_appends) + else if(H.lying) + H.forcesay(hit_appends) if("disarm") - M.do_attack_animation(H) - add_logs(M, H, "disarmed") + if(attacker_style && attacker_style.disarm_act(M,H)) + return 1 + else + M.do_attack_animation(H) + add_logs(M, H, "disarmed") - if(H.w_uniform) - H.w_uniform.add_fingerprint(M) - var/obj/item/organ/limb/affecting = H.get_organ(ran_zone(M.zone_sel.selecting)) - var/randn = rand(1, 100) - if(randn <= 25) - H.apply_effect(2, WEAKEN, H.run_armor_check(affecting, "melee")) - playsound(H, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - H.visible_message("[M] has pushed [H]!", - "[M] has pushed [H]!") - H.forcesay(hit_appends) - return + if(H.w_uniform) + H.w_uniform.add_fingerprint(M) + var/obj/item/organ/limb/affecting = H.get_organ(ran_zone(M.zone_sel.selecting)) + var/randn = rand(1, 100) + if(randn <= 25) + playsound(H, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + H.visible_message("[M] has pushed [H]!", + "[M] has pushed [H]!") + H.apply_effect(2, WEAKEN, H.run_armor_check(affecting, "melee", "Your armor prevents your fall!", "Your armor softens your fall!")) + H.forcesay(hit_appends) + return - var/talked = 0 // BubbleWrap + var/talked = 0 // BubbleWrap - if(randn <= 60) - //BubbleWrap: Disarming breaks a pull - if(H.pulling) - H.visible_message("[M] has broken [H]'s grip on [H.pulling]!") - talked = 1 - H.stop_pulling() - - //BubbleWrap: Disarming also breaks a grab - this will also stop someone being choked, won't it? - if(istype(H.l_hand, /obj/item/weapon/grab)) - var/obj/item/weapon/grab/lgrab = H.l_hand - if(lgrab.affecting) - H.visible_message("[M] has broken [H]'s grip on [lgrab.affecting]!") + if(randn <= 60) + //BubbleWrap: Disarming breaks a pull + if(H.pulling) + H.visible_message("[M] has broken [H]'s grip on [H.pulling]!") talked = 1 - spawn(1) - qdel(lgrab) - if(istype(H.r_hand, /obj/item/weapon/grab)) - var/obj/item/weapon/grab/rgrab = H.r_hand - if(rgrab.affecting) - H.visible_message("[M] has broken [H]'s grip on [rgrab.affecting]!") - talked = 1 - spawn(1) - qdel(rgrab) - //End BubbleWrap + H.stop_pulling() - if(!talked) //BubbleWrap - if(H.drop_item()) - H.visible_message("[M] has disarmed [H]!", \ - "[M] has disarmed [H]!") - playsound(H, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - return + //BubbleWrap: Disarming also breaks a grab - this will also stop someone being choked, won't it? + if(istype(H.l_hand, /obj/item/weapon/grab)) + var/obj/item/weapon/grab/lgrab = H.l_hand + if(lgrab.affecting) + H.visible_message("[M] has broken [H]'s grip on [lgrab.affecting]!") + talked = 1 + spawn(1) + qdel(lgrab) + if(istype(H.r_hand, /obj/item/weapon/grab)) + var/obj/item/weapon/grab/rgrab = H.r_hand + if(rgrab.affecting) + H.visible_message("[M] has broken [H]'s grip on [rgrab.affecting]!") + talked = 1 + spawn(1) + qdel(rgrab) + //End BubbleWrap + + if(!talked) //BubbleWrap + if(H.drop_item()) + H.visible_message("[M] has disarmed [H]!", \ + "[M] has disarmed [H]!") + playsound(H, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + return - playsound(H, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - H.visible_message("[M] attempted to disarm [H]!", \ - "[M] attemped to disarm [H]!") + playsound(H, 'sound/weapons/punchmiss.ogg', 25, 1, -1) + H.visible_message("[M] attempted to disarm [H]!", \ + "[M] attemped to disarm [H]!") return /datum/species/proc/spec_attacked_by(var/obj/item/I, var/mob/living/user, var/def_zone, var/obj/item/organ/limb/affecting, var/hit_area, var/intent, var/obj/item/organ/limb/target_limb, target_area, var/mob/living/carbon/human/H) @@ -1288,13 +1273,6 @@ H.AddLuminosity(-3) H.update_fire() -#undef SPECIES_LAYER -#undef BODY_BEHIND_LAYER -#undef BODY_LAYER -#undef BODY_ADJ_LAYER -#undef HAIR_LAYER -#undef BODY_FRONT_LAYER - #undef HUMAN_MAX_OXYLOSS #undef HUMAN_CRIT_MAX_OXYLOSS diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm index b0ecbb39986..b9ca12ef44a 100644 --- a/code/modules/mob/living/carbon/human/species_types.dm +++ b/code/modules/mob/living/carbon/human/species_types.dm @@ -70,10 +70,9 @@ switch(proj_type) if(/obj/item/projectile/energy/floramut) if(prob(15)) - H.apply_effect((rand(30,80)),IRRADIATE) + H.irradiate(rand(30,80)) H.Weaken(5) - for (var/mob/V in viewers(H)) - V.show_message("[H] writhes in pain as \his vacuoles boil.", 3, "You hear the crunching of leaves.", 2) + H.visible_message("[H] writhes in pain as \his vacuoles boil.", "[H] writhes in pain as \his vacuoles boil.", "You hear the crunching of leaves.") if(prob(80)) randmutb(H) domutcheck(H,null) @@ -317,3 +316,31 @@ id = "zombie" sexes = 0 meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/zombie + + +/datum/species/abductor + name = "Abductor" + id = "abductor" + darksight = 3 + say_mod = "gibbers" + sexes = 0 + invis_sight = SEE_INVISIBLE_LEVEL_ONE + specflags = list(NOBLOOD,NOBREATH) + var/scientist = 0 // vars to not pollute spieces list with castes + var/agent = 0 + var/team = 1 + +/datum/species/abductor/handle_speech(message) + //Hacks + var/mob/living/carbon/human/user = usr + for(var/mob/living/carbon/human/H in mob_list) + if(H.dna.species.id != "abductor") + continue + else + var/datum/species/abductor/target_spec = H.dna.species + if(target_spec.team == team) + H << "[user.name]: [message]" + //return - technically you can add more aliens to a team + for(var/mob/M in dead_mob_list) + M << "[user.name]: [message]" + return "" diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 8d1c801472a..7647ed26d70 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -626,6 +626,14 @@ Please contact me on #coderbus IRC. ~Carnie x var/standing = image("icon"=female_clothing_icons["[t_color]_s"], "layer"=-layer) return(standing) +/mob/living/carbon/human/proc/get_overlays_copy(var/list/unwantedLayers) + var/list/out = new + for(var/i=1;i<=TOTAL_LAYERS;i++) + if(overlays_standing[i]) + if(i in unwantedLayers) + continue + out += overlays_standing[i] + return out //Human Overlays Indexes///////// #undef SPECIES_LAYER diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index daebf276b12..76df2c205e8 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -375,8 +375,6 @@ /mob/living/carbon/handle_regular_hud_updates() if(!client) return 0 - update_action_buttons() - if(damageoverlay) if(damageoverlay.overlays) damageoverlay.overlays = list() diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index d275d0744ba..41e2982d9b4 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -241,10 +241,6 @@ return threatcount -/mob/living/carbon/monkey/SpeciesCanConsume() - return 1 // Monkeys can eat, drink, and be forced to do so - - /mob/living/carbon/monkey/acid_act(var/acidpwr, var/toxpwr, var/acid_volume) if(wear_mask) if(!wear_mask.unacidable) @@ -255,3 +251,10 @@ return take_organ_damage(min(6*toxpwr, acid_volume * toxpwr)) + +/mob/living/carbon/monkey/help_shake_act(mob/living/carbon/M) + if(health < 0 && ishuman(M)) + var/mob/living/carbon/human/H = M + H.do_cpr(src) + else + ..() diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index 1136f3533bb..40c8b4f11e2 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -11,11 +11,11 @@ changed++ ntransform.TurnTo(lying_prev,lying) if(lying == 0) //Lying to standing - final_pixel_y = initial(pixel_y) + final_pixel_y = get_standard_pixel_y_offset() else //if(lying != 0) if(lying_prev == 0) //Standing to lying - pixel_y = initial(pixel_y) - final_pixel_y = lying_pixel_offset + pixel_y = get_standard_pixel_y_offset() + final_pixel_y = get_standard_pixel_y_offset(lying) if(dir & (EAST|WEST)) //Facing east or west final_dir = pick(NORTH, SOUTH) //So you fall on your side rather than your face or ass diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index d420721feef..89a35a4e605 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -51,7 +51,7 @@ if(PARALYZE) Paralyse(effect * blocked) if(IRRADIATE) - radiation += max(effect * ((100-run_armor_check(null, "rad", "Your clothes feel warm.", "Your clothes feel warm."))/100),0)//Rads auto check armor + radiation += max(effect * blocked, 0) if(SLUR) slurring = max(slurring,(effect * blocked)) if(STUTTER) diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index e2f440bcfb5..af02c55f543 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -47,6 +47,8 @@ handle_disabilities() // eye, ear, brain damages handle_status_effects() //all special effects, stunned, weakened, jitteryness, hallucination, sleeping, etc + handle_actions() + update_canmove() if(client) @@ -131,6 +133,22 @@ if(ear_damage < 100) adjustEarDamage(-0.05,-1) +/mob/living/proc/handle_actions() + //Pretty bad, i'd use picked/dropped instead but the parent calls in these are nonexistent + for(var/datum/action/A in actions) + if(A.CheckRemoval(src)) + A.Remove(src) + for(var/obj/item/I in src) + if(I.action_button_name) + if(!I.action) + if(I.action_button_is_hands_free) + I.action = new/datum/action/item_action/hands_free + else + I.action = new/datum/action/item_action + I.action.name = I.action_button_name + I.action.target = I + I.action.Grant(src) + return //this handles hud updates. Calls update_vision() and handle_hud_icons() /mob/living/proc/handle_regular_hud_updates() @@ -138,6 +156,7 @@ handle_vision() handle_hud_icons() + update_action_buttons() return 1 @@ -185,3 +204,56 @@ /mob/living/proc/handle_hud_icons_health() return + +/mob/living/update_action_buttons() + if(!hud_used) return + if(!client) return + + if(hud_used.hud_shown != 1) //Hud toggled to minimal + return + + client.screen -= hud_used.hide_actions_toggle + for(var/datum/action/A in actions) + if(A.button) + client.screen -= A.button + + if(hud_used.action_buttons_hidden) + if(!hud_used.hide_actions_toggle) + hud_used.hide_actions_toggle = new(hud_used) + hud_used.hide_actions_toggle.UpdateIcon() + + if(!hud_used.hide_actions_toggle.moved) + hud_used.hide_actions_toggle.screen_loc = hud_used.ButtonNumberToScreenCoords(1) + //hud_used.SetButtonCoords(hud_used.hide_actions_toggle,1) + + client.screen += hud_used.hide_actions_toggle + return + + var/button_number = 0 + for(var/datum/action/A in actions) + button_number++ + if(A.button == null) + var/obj/screen/movable/action_button/N = new(hud_used) + N.owner = A + A.button = N + + var/obj/screen/movable/action_button/B = A.button + + B.UpdateIcon() + + B.name = A.UpdateName() + + client.screen += B + + if(!B.moved) + B.screen_loc = hud_used.ButtonNumberToScreenCoords(button_number) + //hud_used.SetButtonCoords(B,button_number) + + if(button_number > 0) + if(!hud_used.hide_actions_toggle) + hud_used.hide_actions_toggle = new(hud_used) + hud_used.hide_actions_toggle.InitialiseIcon(src) + if(!hud_used.hide_actions_toggle.moved) + hud_used.hide_actions_toggle.screen_loc = hud_used.ButtonNumberToScreenCoords(button_number+1) + //hud_used.SetButtonCoords(hud_used.hide_actions_toggle,button_number+1) + client.screen += hud_used.hide_actions_toggle diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 4e13acf2437..f6e909e9f25 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -666,13 +666,13 @@ Sorry Giacom. Please don't be mad :( float(!has_gravity) /mob/living/proc/float(on) + if(throwing) + return if(on && !floating) animate(src, pixel_y = pixel_y + 2, time = 10, loop = -1) floating = 1 else if(!on && floating) - var/final_pixel_y = initial(pixel_y) - if(lying && !buckled) - final_pixel_y = lying_pixel_offset + var/final_pixel_y = get_standard_pixel_y_offset(lying) animate(src, pixel_y = final_pixel_y, time = 10) floating = 0 @@ -770,9 +770,7 @@ Sorry Giacom. Please don't be mad :( /mob/living/do_attack_animation(atom/A) - var/final_pixel_y = initial(pixel_y) - if(lying && !buckled) - final_pixel_y = lying_pixel_offset + var/final_pixel_y = get_standard_pixel_y_offset(lying) ..(A, final_pixel_y) floating = 0 // If we were without gravity, the bouncing animation got stopped, so we make sure to restart it in next life(). @@ -780,11 +778,10 @@ Sorry Giacom. Please don't be mad :( var/amplitude = min(4, (jitteriness/100) + 1) var/pixel_x_diff = rand(-amplitude, amplitude) var/pixel_y_diff = rand(-amplitude/3, amplitude/3) - var/final_pixel_y = initial(pixel_y) - if(lying && !buckled) - final_pixel_y = lying_pixel_offset + var/final_pixel_x = get_standard_pixel_x_offset(lying) + var/final_pixel_y = get_standard_pixel_y_offset(lying) animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff , time = 2, loop = 6) - animate(pixel_x = initial(pixel_x) , pixel_y = final_pixel_y , time = 2) + animate(pixel_x = final_pixel_x , pixel_y = final_pixel_y , time = 2) floating = 0 // If we were without gravity, the bouncing animation got stopped, so we make sure to restart it in next life(). /mob/living/proc/get_temperature(var/datum/gas_mixture/environment) @@ -812,3 +809,9 @@ Sorry Giacom. Please don't be mad :( loc_temp = environment.temperature return loc_temp + +/mob/living/proc/get_standard_pixel_x_offset(lying = 0) + return initial(pixel_x) + +/mob/living/proc/get_standard_pixel_y_offset(lying = 0) + return initial(pixel_y) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index cbacdc681cd..b1a5920c9f5 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -158,7 +158,7 @@ proc/vol_by_throwforce_and_or_w_class(var/obj/item/I) /mob/living/acid_act(var/acidpwr, var/toxpwr, var/acid_volume) take_organ_damage(min(10*toxpwr, acid_volume * toxpwr)) -/mob/living/proc/grabbedby(mob/living/carbon/user) +/mob/living/proc/grabbedby(mob/living/carbon/user,var/supress_message = 0) if(user == src || anchored) return 0 if(!(status_flags & CANPUSH)) @@ -176,7 +176,8 @@ proc/vol_by_throwforce_and_or_w_class(var/obj/item/I) LAssailant = user playsound(src.loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) - visible_message("[user] has grabbed [src] passively!") + if(!supress_message) + visible_message("[user] has grabbed [src] passively!") /mob/living/attack_slime(mob/living/simple_animal/slime/M as mob) @@ -277,3 +278,8 @@ proc/vol_by_throwforce_and_or_w_class(var/obj/item/I) /mob/living/incapacitated() if(stat || paralysis || stunned || weakened || restrained()) return 1 + +/mob/living/proc/irradiate(amount) + if(amount) + var/blocked = run_armor_check(null, IRRADIATE, "Your clothes feel warm", "Your clothes feel warm") + apply_effect(amount, IRRADIATE, blocked) diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index e90a20e97d0..c75676e4115 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -41,5 +41,5 @@ var/mob_size = MOB_SIZE_HUMAN var/metabolism_efficiency = 1 //more or less efficiency to metabolize helpful/harmful reagents and regulate body temperature.. var/list/image/staticOverlays = list() - var/lying_pixel_offset = 0 //offset for pixel_y when the mob is lying down. var/has_limbs = 0 //does the mob have distinct limbs?(arms,legs, chest,head) + var/list/datum/action/actions = list() \ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 05ba0479602..e03f3c5464d 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -234,6 +234,11 @@ var/list/ai_list = list() else stat(null, text("Systems nonfunctional")) +/mob/living/silicon/ai/canUseTopic() + if(stat) + return + return 1 + /mob/living/silicon/ai/proc/ai_alerts() var/dat = "Current Station Alerts\n" dat += "Close

    " diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 84edb2f4371..4af47db2a9f 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -16,7 +16,7 @@ see_in_dark = 6 species = /mob/living/simple_animal/pet/cat childtype = /mob/living/simple_animal/pet/cat/kitten - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat + meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/slab meat_amount = 3 response_help = "pets" response_disarm = "gently pushes aside" diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm index 8537ded348a..f2d1af3912a 100644 --- a/code/modules/mob/living/simple_animal/friendly/corgi.dm +++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm @@ -135,9 +135,12 @@ user.visible_message("[user] shaves [src]'s hair using \the [O]. ") playsound(loc, 'sound/items/Welder2.ogg', 20, 1) shaved = 1 - icon_state = "[initial(icon_living)]_shaved" icon_living = "[initial(icon_living)]_shaved" icon_dead = "[initial(icon_living)]_shaved_dead" + if(stat == CONSCIOUS) + icon_state = icon_living + else + icon_state = icon_dead return ..() diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm index e4a1f52301c..752b939055a 100644 --- a/code/modules/mob/living/simple_animal/friendly/crab.dm +++ b/code/modules/mob/living/simple_animal/friendly/crab.dm @@ -10,7 +10,7 @@ emote_see = list("clacks") speak_chance = 1 turns_per_move = 5 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat + meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/slab meat_amount = 2 response_help = "pets" response_disarm = "gently pushes aside" diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index ed1a7115041..ed50a96a326 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -12,7 +12,7 @@ speak_chance = 1 turns_per_move = 5 see_in_dark = 6 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat + meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/slab meat_amount = 4 response_help = "pets" response_disarm = "gently pushes aside" @@ -98,7 +98,7 @@ speak_chance = 1 turns_per_move = 5 see_in_dark = 6 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat + meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/slab meat_amount = 6 response_help = "pets" response_disarm = "gently pushes aside" @@ -161,7 +161,7 @@ density = 0 speak_chance = 2 turns_per_move = 2 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat + meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/slab meat_amount = 1 response_help = "pets" response_disarm = "gently pushes aside" @@ -204,7 +204,7 @@ var/global/chicken_count = 0 density = 0 speak_chance = 2 turns_per_move = 3 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat + meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/slab var/egg_type = /obj/item/weapon/reagent_containers/food/snacks/egg var/food_type = /obj/item/weapon/reagent_containers/food/snacks/grown/wheat meat_amount = 2 diff --git a/code/modules/mob/living/simple_animal/friendly/fox.dm b/code/modules/mob/living/simple_animal/friendly/fox.dm index d9322aa283d..b02ff8415f5 100644 --- a/code/modules/mob/living/simple_animal/friendly/fox.dm +++ b/code/modules/mob/living/simple_animal/friendly/fox.dm @@ -13,7 +13,7 @@ speak_chance = 1 turns_per_move = 5 see_in_dark = 6 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat + meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/slab response_help = "pets" response_disarm = "gently pushes aside" response_harm = "kicks" diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index e7d717ea97b..d2de3523fdd 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -13,7 +13,7 @@ see_in_dark = 6 maxHealth = 5 health = 5 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat + meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/slab meat_amount = 1 response_help = "pets" response_disarm = "gently pushes aside" diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm index e623032b340..49ac9d74de1 100644 --- a/code/modules/mob/living/simple_animal/hostile/alien.dm +++ b/code/modules/mob/living/simple_animal/hostile/alien.dm @@ -19,6 +19,7 @@ melee_damage_lower = 25 melee_damage_upper = 25 attacktext = "slashes" + speak_emote = list("hisses") a_intent = "harm" attack_sound = 'sound/weapons/bladeslice.ogg' atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index 27a71e7d037..243159ff767 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -21,6 +21,7 @@ melee_damage_upper = 15 attacktext = "bites" attack_sound = 'sound/weapons/bite.ogg' + speak_emote = list("gnashes") //Space carp aren't affected by cold. atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) diff --git a/code/modules/mob/living/simple_animal/hostile/creature.dm b/code/modules/mob/living/simple_animal/hostile/creature.dm index f9477069a5a..173d8ff913f 100644 --- a/code/modules/mob/living/simple_animal/hostile/creature.dm +++ b/code/modules/mob/living/simple_animal/hostile/creature.dm @@ -12,4 +12,5 @@ attacktext = "chomps" attack_sound = 'sound/weapons/bite.ogg' faction = list("creature") + speak_emote = list("screams") diff --git a/code/modules/mob/living/simple_animal/hostile/eyeballs.dm b/code/modules/mob/living/simple_animal/hostile/eyeballs.dm index 84886c63dae..3ca8816a3b1 100644 --- a/code/modules/mob/living/simple_animal/hostile/eyeballs.dm +++ b/code/modules/mob/living/simple_animal/hostile/eyeballs.dm @@ -13,6 +13,7 @@ response_harm = "hits" maxHealth = 45 health = 45 + speak_emote = list("telepathically cries") harm_intent_damage = 15 melee_damage_lower = 20 diff --git a/code/modules/mob/living/simple_animal/hostile/faithless.dm b/code/modules/mob/living/simple_animal/hostile/faithless.dm index aa8912cb618..e80f1899294 100644 --- a/code/modules/mob/living/simple_animal/hostile/faithless.dm +++ b/code/modules/mob/living/simple_animal/hostile/faithless.dm @@ -18,6 +18,7 @@ melee_damage_upper = 15 attacktext = "grips" attack_sound = 'sound/hallucinations/growl1.ogg' + speak_emote = list("growls") atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 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 5c7db3c30ce..8746c3b4070 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -97,7 +97,7 @@ // Chops off each leg with a 50/50 chance of harvesting one, until finally calling // default harvest action -/mob/living/simple_animal/hostile/poison/giant_spider/harvest() +/mob/living/simple_animal/hostile/poison/giant_spider/harvest(mob/living/user, sharpness = 1) if(butcher_state > 0) butcher_state-- icon_state = icon_dead + "[butcher_state]" diff --git a/code/modules/mob/living/simple_animal/hostile/headcrab.dm b/code/modules/mob/living/simple_animal/hostile/headcrab.dm index 227aa9af285..5d8c69b1565 100644 --- a/code/modules/mob/living/simple_animal/hostile/headcrab.dm +++ b/code/modules/mob/living/simple_animal/hostile/headcrab.dm @@ -16,7 +16,10 @@ robust_searching = 1 stat_attack = 2 environment_smash = 0 + speak_emote = list("squeaks") + ventcrawler = 2 var/datum/mind/origin + var/egg_lain = 0 /mob/living/simple_animal/hostile/headcrab/proc/Infect(var/mob/living/carbon/human/victim) var/obj/item/body_egg/changeling_egg/egg = new(victim) @@ -26,13 +29,19 @@ egg.owner = mind victim.internal_organs += egg visible_message("[src] lays an egg in a [victim]!") + egg_lain = 1 /mob/living/simple_animal/hostile/headcrab/AttackingTarget() + if(egg_lain) + target.attack_animal(src) + return if(ishuman(target)) var/mob/living/carbon/human/H = target if(H.stat == DEAD) Infect(target) - death() + src << "With your egg laid you feel your death rapidly approaching, time to die..." + spawn(100) + death() return target.attack_animal(src) diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm index 1d19f738c5e..eebd7efb44a 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm @@ -20,6 +20,7 @@ faction = list("hivebot") atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 + speak_emote = list("states") /mob/living/simple_animal/hostile/hivebot/range name = "hivebot" diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index 85875394dd6..43211c0a253 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -22,6 +22,7 @@ attacktext = "attacks" attack_sound = 'sound/weapons/punch1.ogg' var/Attackemote = "growls at" + speak_emote = list("creaks") atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 @@ -51,6 +52,7 @@ /mob/living/simple_animal/hostile/mimic/crate attacktext = "bites" + speak_emote = list("clatters") stop_automated_movement = 1 wander = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm index 0a19bf4e19d..c63bfa43646 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm @@ -66,6 +66,7 @@ melee_damage_upper = 12 attacktext = "bites into" a_intent = "harm" + speak_emote = list("chitters") attack_sound = 'sound/weapons/bladeslice.ogg' ranged_cooldown_cap = 4 aggro_vision_range = 9 @@ -131,6 +132,7 @@ attacktext = "barrels into" attack_sound = 'sound/weapons/punch1.ogg' a_intent = "help" + speak_emote = list("screeches") throw_message = "sinks in slowly, before being pushed out of " status_flags = CANPUSH search_objects = 1 @@ -230,6 +232,7 @@ melee_damage_lower = 0 melee_damage_upper = 0 attacktext = "lashes out at" + speak_emote = list("telepathically cries") attack_sound = 'sound/weapons/pierce.ogg' throw_message = "falls right through the strange body of the" ranged_cooldown = 0 @@ -305,6 +308,7 @@ melee_damage_lower = 2 melee_damage_upper = 2 attacktext = "slashes" + speak_emote = list("telepathically cries") attack_sound = 'sound/weapons/pierce.ogg' throw_message = "falls right through the strange body of the" environment_smash = 0 @@ -334,6 +338,7 @@ ranged_cooldown = 2 //By default, start the Goliath with his cooldown off so that people can run away quickly on first sight ranged_cooldown_cap = 8 friendly = "wails at" + speak_emote = list("bellows") vision_range = 4 speed = 3 maxHealth = 300 diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm index fcfb32ecf65..6fd0f9ea59e 100644 --- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm +++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm @@ -26,6 +26,7 @@ speed = 1 ventcrawler = 2 robust_searching = 1 + speak_emote = list("squeaks") var/powerlevel = 0 //Tracks our general strength level gained from eating other shrooms var/bruised = 0 //If someone tries to cheat the system by attacking a shroom to lower its health, punish them so that it wont award levels to shrooms that eat it var/recovery_cooldown = 0 //So you can't repeatedly revive it during a fight diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/pirate.dm index f707265c255..d6d265a3d79 100644 --- a/code/modules/mob/living/simple_animal/hostile/pirate.dm +++ b/code/modules/mob/living/simple_animal/hostile/pirate.dm @@ -21,6 +21,7 @@ atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) unsuitable_atmos_damage = 15 + speak_emote = list("yarrs") var/corpse = /obj/effect/landmark/mobcorpse/pirate var/weapon1 = /obj/item/weapon/melee/energy/sword/pirate diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm index ab47c8992bc..2e45befbe40 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm @@ -24,6 +24,7 @@ ventcrawler = 2 mob_size = MOB_SIZE_TINY flying = 1 + speak_emote = list("squeaks") var/max_co2 = 0 //to be removed once metastation map no longer use those for Sgt Araneus var/min_oxy = 0 var/max_tox = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index 66fc43acd76..c12c04b8a0e 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -133,6 +133,7 @@ minbodytemp = 0 mob_size = MOB_SIZE_TINY flying + speak_emote = list("states") /mob/living/simple_animal/hostile/viscerator/death(gibbed) ..(gibbed) diff --git a/code/modules/mob/living/simple_animal/hostile/tree.dm b/code/modules/mob/living/simple_animal/hostile/tree.dm index 79edd57a33f..2643fcc9964 100644 --- a/code/modules/mob/living/simple_animal/hostile/tree.dm +++ b/code/modules/mob/living/simple_animal/hostile/tree.dm @@ -23,6 +23,7 @@ melee_damage_upper = 12 attacktext = "bites" attack_sound = 'sound/weapons/bite.ogg' + speak_emote = list("pines") //Space carp aren't affected by atmos. atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) @@ -59,4 +60,5 @@ icon_dead = "festivus_pole" icon_gib = "festivus_pole" drop_type = /obj/item/stack/rods + speak_emote = list("polls") diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 3a4af5d847c..5fc8a5c44f4 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -731,6 +731,8 @@ var/list/slot_equipment_priority = list( \ else statpanel(listed_turf.name, null, listed_turf) for(var/atom/A in listed_turf) + if(!A.mouse_opacity) + continue if(A.invisibility > see_invisible) continue statpanel(listed_turf.name, null, A) @@ -788,6 +790,12 @@ var/list/slot_equipment_priority = list( \ fall(ko) canmove = !(ko || resting || stunned || buckled) density = !lying + if(lying) + if(layer == initial(layer)) //to avoid special cases like hiding larvas. + layer = MOB_LAYER - 0.2 //so mob lying always appear behind standing mobs + else + if(layer == MOB_LAYER - 0.2) + layer = initial(layer) update_transform() lying_prev = lying return canmove @@ -838,9 +846,6 @@ var/list/slot_equipment_priority = list( \ /mob/proc/activate_hand(var/selhand) return -/mob/proc/SpeciesCanConsume() - return 0 - /mob/proc/Jitter(amount) jitteriness = max(jitteriness,amount,0) @@ -946,4 +951,17 @@ var/list/slot_equipment_priority = list( \ return /mob/proc/setEarDamage() + return + +/mob/proc/AddSpell(var/obj/effect/proc_holder/spell/spell) + mob_spell_list += spell + if(!spell.action) + spell.action = new/datum/action/spell_action + spell.action.target = spell + spell.action.name = spell.name + spell.action.button_icon = spell.action_icon + spell.action.button_icon_state = spell.action_icon_state + spell.action.background_icon_state = spell.action_background_icon_state + if(isliving(src)) + spell.action.Grant(src) return \ No newline at end of file diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 5b9be5c61c9..8af2864c0b1 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -442,6 +442,9 @@ proc/is_special_character(mob/M) // returns 1 for special characters and 2 for h if("monkey") if(M.viruses && (locate(/datum/disease/transformation/jungle_fever) in M.viruses)) return 2 + if("abductor") + if(M.mind in ticker.mode.abductors) + return 2 return 1 return 0 diff --git a/code/modules/ninja/suit/n_suit_verbs/ninja_smoke.dm b/code/modules/ninja/suit/n_suit_verbs/ninja_smoke.dm index 8d2ff7c3cfe..aef3d012dd8 100644 --- a/code/modules/ninja/suit/n_suit_verbs/ninja_smoke.dm +++ b/code/modules/ninja/suit/n_suit_verbs/ninja_smoke.dm @@ -9,11 +9,11 @@ if(!ninjacost(0,N_SMOKE_BOMB)) var/mob/living/carbon/human/H = affecting - H << "There are [s_bombs] smoke bombs remaining." var/datum/effect/effect/system/bad_smoke_spread/smoke = new /datum/effect/effect/system/bad_smoke_spread() smoke.set_up(10, 0, H.loc) smoke.start() playsound(H.loc, 'sound/effects/bamf.ogg', 50, 2) s_bombs-- + H << "There are [s_bombs] smoke bombs remaining." s_coold = 1 return \ No newline at end of file diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index 61d2bb8a9f6..43b649fb5cd 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -347,7 +347,7 @@ var/const/GRAV_NEEDS_WRENCH = 3 /obj/machinery/gravity_generator/main/proc/pulse_radiation() for(var/mob/living/L in view(7, src)) - L.apply_effect(20, IRRADIATE) + L.irradiate(20) // Shake everyone on the z level to let them know that gravity was enagaged/disenagaged. /obj/machinery/gravity_generator/main/proc/shake_everyone() diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 31e2944aa96..89642e29838 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -277,7 +277,7 @@ update_icon() if(on) - if(luminosity != brightness) + if(!light || light.radius != brightness) switchcount++ if(rigged) if(status == LIGHT_OK && trigger) @@ -295,11 +295,11 @@ use_power = 1 SetLuminosity(0) - active_power_usage = (luminosity * 10) + active_power_usage = (brightness * 10) if(on != on_gs) on_gs = on if(on) - static_power_used = luminosity * 20 //20W per unit luminosity + static_power_used = brightness * 20 //20W per unit luminosity addStaticPower(static_power_used, STATIC_LIGHT) else removeStaticPower(static_power_used, STATIC_LIGHT) diff --git a/code/modules/power/singularity/particle_accelerator/particle.dm b/code/modules/power/singularity/particle_accelerator/particle.dm index ed5d1f760d2..e7e3632b93e 100644 --- a/code/modules/power/singularity/particle_accelerator/particle.dm +++ b/code/modules/power/singularity/particle_accelerator/particle.dm @@ -56,16 +56,8 @@ /obj/effect/accelerated_particle/proc/toxmob(var/mob/living/M) -/* var/radiation = (energy*2) //We don't need to do two multiplications and a single goddamn - if(istype(M,/mob/living/carbon/human)) - if(M:wear_suit) //TODO: check for radiation protection - radiation = round(radiation/2,1) - if(istype(M,/mob/living/carbon/monkey)) - if(M:wear_suit) //TODO: check for radiation protection - radiation = round(radiation/2,1)*/ - M.apply_effect((energy*6),IRRADIATE,0) + M.irradiate(energy*6) M.updatehealth() - //M << "\red You feel odd." return diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 66f6d9dac2d..85d8089d926 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -25,7 +25,7 @@ var/target = null //its target. moves towards the target if it has one var/last_failed_movement = 0//Will not move in the same dir if it couldnt before, will help with the getting stuck on fields thing var/last_warning - + allow_spin = 0 /obj/singularity/New(loc, var/starting_energy = 50, var/temp = 0) //CARN: admin-alert for chuckle-fuckery. admin_investigate_setup() @@ -341,7 +341,7 @@ radiation = round(((src.energy-150)/50)*5,1) radiationmin = round((radiation/5),1)// for(var/mob/living/M in view(toxrange, src.loc)) - M.apply_effect(rand(radiationmin,radiation), IRRADIATE) + M.irradiate(rand(radiationmin,radiation)) toxdamage = (toxdamage - (toxdamage*M.getarmor(null, "rad"))) M.apply_effect(toxdamage, TOX) return diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 6152f0e07ab..6e926c209f9 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -119,7 +119,7 @@ var/mob/living/carbon/human/H = mob H.hallucination += max(50, min(300, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, src) + 1)) ) ) var/rads = DETONATION_RADS * sqrt( 1 / (get_dist(mob, src) + 1) ) - mob.apply_effect(rads, IRRADIATE) + mob.irradiate(rads) explode() @@ -181,7 +181,7 @@ for(var/mob/living/l in range(src, round((power / 100) ** 0.25))) var/rads = (power / 10) * sqrt( 1 / max(get_dist(l, src),1) ) - l.apply_effect(rads, IRRADIATE) + l.irradiate(rads) power -= (power/500)**3 @@ -248,7 +248,7 @@ playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, 1) - user.apply_effect(150, IRRADIATE) + user.irradiate(150) /obj/machinery/power/supermatter_shard/Bumped(atom/AM as mob|obj) @@ -283,7 +283,7 @@ //Some poor sod got eaten, go ahead and irradiate people nearby. for(var/mob/living/L in range(10)) var/rads = 500 * sqrt( 1 / (get_dist(L, src) + 1) ) - L.apply_effect(rads, IRRADIATE) + L.irradiate(rads) investigate_log("has irradiated [L] after consuming [AM].", "supermatter") if(L in view()) L.show_message("As \the [src] slowly stops resonating, you find your skin covered in new radiation burns.", 1,\ diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index d5011d4e7d5..dff570dca52 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -62,14 +62,14 @@ M << "Your gun feels pleasantly warm for a moment." else M << "You feel a warm sensation." - M.apply_effect(rand(3,120), IRRADIATE) + M.irradiate(rand(3,120)) lightfail = 1 else for (var/mob/living/M in range(rand(1,4),src)) //Big failure, TIME FOR RADIATION BITCHES if (src in M.contents) M << "Your gun's reactor overloads!" M << "You feel a wave of heat wash over you." - M.apply_effect(300, IRRADIATE) + M.irradiate(300) crit_fail = 1 //break the gun so it stops recharging SSobj.processing.Remove(src) update_icon() diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 5fe4cac6f8f..7639fbaca5f 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -88,6 +88,9 @@ burst_size = 2 pin = /obj/item/device/firing_pin/implant/pindicate +/obj/item/weapon/gun/projectile/automatic/c20r/unrestricted + pin = /obj/item/device/firing_pin + /obj/item/weapon/gun/projectile/automatic/c20r/New() ..() update_icon() @@ -175,6 +178,9 @@ fire_delay = 2 pin = /obj/item/device/firing_pin/implant/pindicate +/obj/item/weapon/gun/projectile/automatic/m90/unrestricted + pin = /obj/item/device/firing_pin + /obj/item/weapon/gun/projectile/automatic/m90/New() ..() underbarrel = new /obj/item/weapon/gun/projectile/revolver/grenadelauncher(src) diff --git a/code/modules/reagents/Chemistry-Goon-Medicine.dm b/code/modules/reagents/Chemistry-Goon-Medicine.dm index 88860f358f5..2659fed7197 100644 --- a/code/modules/reagents/Chemistry-Goon-Medicine.dm +++ b/code/modules/reagents/Chemistry-Goon-Medicine.dm @@ -683,7 +683,9 @@ proc/chemical_mob_spawn(var/datum/reagents/holder, var/amount_to_spawn, var/reac /mob/living/simple_animal/hostile/asteroid/hivelordbrood, /mob/living/simple_animal/hostile/carp/holocarp, /mob/living/simple_animal/hostile/mining_drone, - /mob/living/simple_animal/hostile/poison + /mob/living/simple_animal/hostile/poison, + /mob/living/simple_animal/hostile/blob, + /mob/living/simple_animal/ascendant_shadowling )//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 diff --git a/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm b/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm index 53bb47c6f9e..0e3b34e44cb 100644 --- a/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm +++ b/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm @@ -410,9 +410,9 @@ /datum/chemical_reaction/napalm name = "Napalm" id = "napalm" - result = null - required_reagents = list("aluminium" = 1, "plasma" = 1, "sacid" = 1 ) - result_amount = 1 + result = "napalm" + required_reagents = list("sugar" = 1, "fuel" = 1, "ethanol" = 1 ) + result_amount = 3 datum/reagent/cryostylane name = "Cryostylane" diff --git a/code/modules/reagents/Chemistry-Reagents/Blob-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Blob-Reagents.dm index 0ddd41ef092..5625f754f29 100644 --- a/code/modules/reagents/Chemistry-Reagents/Blob-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents/Blob-Reagents.dm @@ -81,7 +81,7 @@ datum/reagent/blob/acid datum/reagent/blob/acid/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume, var/show_message = 1) if(method == TOUCH) - if(prob(50)) + if(prob(50)) M.acid_act(5,1,5) if(show_message) M << "The blob's tendrils melt through your equipment!" @@ -97,7 +97,7 @@ datum/reagent/blob/radioactive_liquid/reaction_mob(var/mob/living/M as mob, var/ if(method == TOUCH) if(istype(M, /mob/living/carbon/human)) M.apply_damage(10, BRUTE) - M.apply_effect(40,IRRADIATE,0) // irradiate the shit out of these fuckers + M.irradiate(40) if(prob(33)) randmuti(M) if(prob(98)) @@ -147,6 +147,44 @@ datum/reagent/blob/explosive/reaction_mob(var/mob/living/M as mob, var/method=TO M << "The blob strikes you, and its tendrils explode!" explosion(M.loc, 0, 0, 1, 0, 0) +datum/reagent/blob/omnizine + name = "Omnizine" + id = "b_omnizine" + description = "" + color = "#C8A5DC" + +datum/reagent/blob/omnizine/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume, var/show_message = 1) + if(method == TOUCH) + if(show_message) + M << "The blob squirts something at you, and you feel great!" + M.reagents.add_reagent("omnizine", 11) + +datum/reagent/blob/morphine + name = "Morphine" + id = "b_morphine" + description = "" + color = "#335555" + +datum/reagent/blob/morphine/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume, var/show_message = 1) + if(method == TOUCH) + if(show_message) + M << "The blob squirts something at you, and you feel numb!" + M.reagents.add_reagent("morphine", 16) + +datum/reagent/blob/spacedrugs + name = "Space drugs" + id = "b_space_drugs" + description = "" + color = "#60A584" + +datum/reagent/blob/spacedrugs/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume, var/show_message = 1) + if(method == TOUCH) + if(show_message) + M << "The blob squirts something at you, and you feel funny!" + M.reagents.add_reagent("space_drugs", 15) + M.apply_damage(10, TOX) + + /proc/reagent_vortex(var/mob/living/M as mob, var/setting_type) var/turf/pull = get_turf(M) for(var/atom/movable/X in orange(4,pull)) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm index 33464948243..d86016f96ab 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm @@ -253,6 +253,10 @@ datum/reagent/water color = "#AAAAAA77" // rgb: 170, 170, 170, 77 (alpha) var/cooling_temperature = 2 +/* + * Water reaction to turf + */ + datum/reagent/water/reaction_turf(var/turf/simulated/T, var/volume) if (!istype(T)) return var/CT = cooling_temperature @@ -272,14 +276,29 @@ datum/reagent/water/reaction_turf(var/turf/simulated/T, var/volume) qdel(hotspot) return +/* + * Water reaction to an object + */ + datum/reagent/water/reaction_obj(var/obj/O, var/volume) src = null + // Monkey cube if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/monkeycube)) var/obj/item/weapon/reagent_containers/food/snacks/monkeycube/cube = O if(!cube.wrapped) cube.Expand() + + // Dehydrated carp + if(istype(O,/obj/item/toy/carpplushie/dehy_carp)) + var/obj/item/toy/carpplushie/dehy_carp/dehy = O + dehy.Swell() // Makes a carp + return +/* + * Water reaction to a mob + */ + datum/reagent/water/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with water can help put them out! if(!istype(M, /mob/living)) return @@ -376,6 +395,34 @@ datum/reagent/slimetoxin description = "A corruptive toxin produced by slimes." color = "#13BC5E" // rgb: 19, 188, 94 +datum/reagent/unstableslimetoxin + name = "Unstable Mutation Toxin" + id = "unstablemutationtoxin" + description = "An unstable and unpredictable corruptive toxin produced by slimes." + color = "#5EFF3B" //RGB: 94, 255, 59 + metabolization_rate = INFINITY //So it instantly removes all of itself + +datum/reagent/unstableslimetoxin/on_mob_life(var/mob/living/carbon/human/H as mob) + ..() + H << "You crumple in agony as your flesh wildly morphs into new forms!" + H.visible_message("[H] falls to the ground and screams as their skin bubbles and froths!") //'froths' sounds painful when used with SKIN. + H.Weaken(3) + sleep(30) + var/list/blacklisted_species = list(/datum/species/zombie, /datum/species/skeleton, /datum/species/human, /datum/species/golem, /datum/species/golem/adamantine, /datum/species/shadow) + var/list/possible_morphs = typesof(/datum/species/) - blacklisted_species + var/datum/species/mutation = pick(possible_morphs) + if(prob(90) && mutation && H.dna.species != /datum/species/golem && H.dna.species != /datum/species/golem/adamantine) + H << "The pain subsides. You feel... different." + H.dna.species = new mutation() + H.regenerate_icons() + if(mutation == /datum/species/slime) + H.faction |= "slime" + else + H.faction -= "slime" + else + H << "The pain vanishes suddenly. You feel no different." + return 1 + datum/reagent/aslimetoxin name = "Advanced Mutation Toxin" id = "amutationtoxin" diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 0f99675d8e2..c3240ad51ea 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -473,6 +473,19 @@ datum/chemical_reaction/pestkiller /datum/chemical_reaction/slimemutate/on_reaction(var/datum/reagents/holder) feedback_add_details("slime_cores_used","[replacetext(name," ","_")]") +//Mutated Green +/datum/chemical_reaction/slimemutate_unstable + name = "Unstable Mutation Toxin" + id = "unstablemutationtoxin" + result = "unstablemutationtoxin" + required_reagents = list("radium" = 1) + result_amount = 1 + required_other = 1 + required_container = /obj/item/slime_extract/green + mix_message = "The mixture rapidly expands and contracts, its appearance shifting into a sickening green." +/datum/chemical_reaction/slimemutate_unstable/on_reaction(var/datum/reagents/holder) + feedback_add_details("slime_cores_used","[replacetext(name," ","_")]") + //Metal /datum/chemical_reaction/slimemetal name = "Slime Metal" @@ -536,8 +549,25 @@ datum/chemical_reaction/pestkiller /datum/chemical_reaction/slimebork/on_reaction(var/datum/reagents/holder) feedback_add_details("slime_cores_used","[replacetext(name," ","_")]") + var/list/blocked = list(/obj/item/weapon/reagent_containers/food/snacks, + /obj/item/weapon/reagent_containers/food/snacks/store/bread, + /obj/item/weapon/reagent_containers/food/snacks/breadslice, + /obj/item/weapon/reagent_containers/food/snacks/store/cake, + /obj/item/weapon/reagent_containers/food/snacks/cakeslice, + /obj/item/weapon/reagent_containers/food/snacks/store, + /obj/item/weapon/reagent_containers/food/snacks/pie, + /obj/item/weapon/reagent_containers/food/snacks/kebab, + /obj/item/weapon/reagent_containers/food/snacks/pizza, + /obj/item/weapon/reagent_containers/food/snacks/pizzaslice, + /obj/item/weapon/reagent_containers/food/snacks/salad, + /obj/item/weapon/reagent_containers/food/snacks/meat, + /obj/item/weapon/reagent_containers/food/snacks/soup, + /obj/item/weapon/reagent_containers/food/snacks/grown, + /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom + ) + blocked |= typesof(/obj/item/weapon/reagent_containers/food/snacks/customizable) - var/list/borks = typesof(/obj/item/weapon/reagent_containers/food/snacks) - /obj/item/weapon/reagent_containers/food/snacks + var/list/borks = typesof(/obj/item/weapon/reagent_containers/food/snacks) - blocked // BORK BORK BORK playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1) diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index ab4fd76f5ac..a938b092061 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -54,28 +54,18 @@ else return "No reagents" /obj/item/weapon/reagent_containers/proc/canconsume(mob/eater, mob/user) - if(!eater.SpeciesCanConsume()) + if(!iscarbon(eater)) + return 0 + var/mob/living/carbon/C = eater + var/covered = "" + if(C.is_mouth_covered(head_only = 1)) + covered = "headgear" + else if(C.is_mouth_covered(mask_only = 1)) + covered = "mask" + if(covered) + var/who = (isnull(user) || eater == user) ? "your" : "their" + user << "You have to remove [who] [covered] first!" return 0 - //Check for covering mask - var/obj/item/clothing/cover = eater.get_item_by_slot(slot_wear_mask) - - if(isnull(cover)) // No mask, do we have any helmet? - cover = eater.get_item_by_slot(slot_head) - else - var/obj/item/clothing/mask/covermask = cover - if(covermask.alloweat) // Specific cases, clownmask for example. - return 1 - - if(!isnull(cover)) - if((cover.flags & HEADCOVERSMOUTH) || (cover.flags & MASKCOVERSMOUTH)) - var/who = (isnull(user) || eater == user) ? "your" : "their" - - if(istype(cover, /obj/item/clothing/mask/)) - user << "You have to remove [who] mask first!" - else - user << "You have to remove [who] helmet first!" - - return 0 return 1 /obj/item/weapon/reagent_containers/ex_act() diff --git a/code/modules/reagents/reagent_containers/patch.dm b/code/modules/reagents/reagent_containers/patch.dm index e524f00a9b3..f87d3682a7c 100644 --- a/code/modules/reagents/reagent_containers/patch.dm +++ b/code/modules/reagents/reagent_containers/patch.dm @@ -17,7 +17,7 @@ return // thanks inheritance again /obj/item/weapon/reagent_containers/pill/patch/canconsume(mob/eater, mob/user) - if(!eater.SpeciesCanConsume()) + if(!iscarbon(eater)) return 0 return 1 // Masks were stopping people from "eating" patches. Thanks, inheritance. diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index e663258acc7..4aff93675e5 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -96,7 +96,7 @@ name = "stimulant pill" desc = "Often taken by overworked employees, athletes, and the inebriated. You'll snap to attention immediately!" icon_state = "pill19" - list_reagents = list("ephedrine" = 10, "ethylredoxrazine" = 10, "coffee" = 30) + list_reagents = list("ephedrine" = 10, "antihol" = 10, "coffee" = 30) roundstart = 1 /obj/item/weapon/reagent_containers/pill/salbutamol name = "salbutamol pill" @@ -140,4 +140,4 @@ desc = "Handles hyperglycaemic coma." icon_state = "pill5" list_reagents = list("insulin" = 50) - roundstart = 1 \ No newline at end of file + roundstart = 1 diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index bcf7bd9a33f..c9a9f339aa1 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -288,7 +288,7 @@ if(prob(EFFECT_PROB_VERYLOW-badThingCoeff)) visible_message("[src] malfunctions, melting [exp_on] and leaking radiation!.") for(var/mob/living/m in oview(1, src)) - m.apply_effect(25,IRRADIATE) + m.irradiate(25) investigate_log("Experimentor has irradiated [m]", "experimentor") //One entry per person so we know what was irradiated. ejectItem(TRUE) if(prob(EFFECT_PROB_LOW-badThingCoeff)) @@ -737,4 +737,4 @@ if(priority) //For truly dangerous relics that may need an admin's attention. BWOINK! message_admins("[RelicType] relic activated by [key_name(user, user.client)](?) in ([T.x],[T.y],[T.z] - JMP)",0,1) log_game(log_msg) - investigate_log(log_msg, "experimentor") + investigate_log(log_msg, "experimentor") diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 846f7e28c14..204b94477e7 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -321,6 +321,8 @@ for(var/obj/O in T0) if(O.invisibility >= 101) continue + if(O == T0.lighting_object) + continue O.loc = T1 //close open doors @@ -350,13 +352,13 @@ //air system updates for(var/turf/T1 in L1) - T1.shift_to_subarea() + T1.redraw_lighting() SSair.remove_from_active(T1) T1.CalculateAdjacentTurfs() SSair.add_to_active(T1,1) for(var/turf/T0 in L0) - T0.shift_to_subarea() + T0.redraw_lighting() SSair.remove_from_active(T0) T0.CalculateAdjacentTurfs() SSair.add_to_active(T0,1) diff --git a/code/modules/surgery/helpers.dm b/code/modules/surgery/helpers.dm index 8d23d98378d..360e4607720 100644 --- a/code/modules/surgery/helpers.dm +++ b/code/modules/surgery/helpers.dm @@ -8,6 +8,12 @@ if(locate(S.type) in M.surgeries) continue + if(S.user_species_restricted) + if(!istype(user, /mob/living/carbon/human)) + continue + var/mob/living/carbon/human/doc = user + if(!(doc.dna.species.id in S.user_species_ids)) + continue if(S.target_must_be_dead && M.stat != DEAD) continue if(S.target_must_be_fat && !(M.disabilities & FAT)) @@ -70,13 +76,13 @@ proc/get_location_modifier(mob/M) var/eyesmouth_covered = 0 //based on flags if(iscarbon(M)) var/mob/living/carbon/C = M - for(var/obj/item/clothing/I in list(C.back, C.wear_mask)) + for(var/obj/item/clothing/I in list(C.back, C.wear_mask, C.head)) covered_locations |= I.body_parts_covered face_covered |= I.flags_inv eyesmouth_covered |= I.flags if(ishuman(C)) var/mob/living/carbon/human/H = C - for(var/obj/item/I in list(H.wear_suit, H.w_uniform, H.shoes, H.belt, H.gloves, H.glasses, H.head, H.ears)) + for(var/obj/item/I in list(H.wear_suit, H.w_uniform, H.shoes, H.belt, H.gloves, H.glasses, H.ears)) covered_locations |= I.body_parts_covered face_covered |= I.flags_inv eyesmouth_covered |= I.flags @@ -89,7 +95,7 @@ proc/get_location_modifier(mob/M) if(covered_locations & HEAD || face_covered & HIDEEYES || eyesmouth_covered & GLASSESCOVERSEYES) return 0 if("mouth") - if(covered_locations & HEAD || face_covered & HIDEFACE || eyesmouth_covered & MASKCOVERSMOUTH) + if(covered_locations & HEAD || face_covered & HIDEFACE || eyesmouth_covered & MASKCOVERSMOUTH || eyesmouth_covered & HEADCOVERSMOUTH) return 0 if("chest") if(covered_locations & CHEST) diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index 0ade9193386..88e590ca8dc 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -9,7 +9,8 @@ var/target_must_be_fat = 0 //Needs to be fat var/requires_organic_chest = 0 //Prevents you from performing an operation on Robotic chests*** var/has_multi_loc = 0 //Multiple locations - RR - + var/user_species_restricted = 0 //Surgery only performable BY species + var/list/user_species_ids /datum/surgery/proc/next_step(mob/user, mob/living/carbon/target) if(step_in_progress) return diff --git a/html/changelog.html b/html/changelog.html index 7e4e972a070..f319c4ab2b9 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,80 @@ -->
    +

    16 April 2015

    +

    AnturK updated:

    +
      +
    • Nanotrasen authorities are reporting sightings of unidentified space craft near space station 13. Report any strange sightings or mental breakdowns to central command.
    • +
    • PS : Abductions are not covered by health insurance.
    • +
    • Shadowlings and their thralls now have HUD icons.
    • +
    • Thralls learn their master's objectives when enthralled.
    • +
    • Regenerate Chitin ability lets shadowlings re-equip their armor if lost.
    • +
    • Loyalty implanted people take 25% longer to enthrall, but lose their implant and become immune to re-implanting.
    • +
    • Shadowlings now have a message in their spawning text which specifies that cooperation is mandatory.
    • +
    • Veil now works on equipped lights.
    • +
    • Shadowlings now take correct amount of burn damage and in light and heal clone and brain damage in darkness.
    • +
    • Fixes 'Round end code broke' displaying every round.
    • +
    • Shadowlings who ascend will nore greentext properly.
    • +
    +

    Gun Hog updated:

    +
      +
    • Thinktronic Systems, LTD. has increased the Value of the Value-PAK PDA cartridge! Standard issue for Captain PDAs, it can now access security bots, medibots, cleanbots, and floorbots ALL AT ONCE! In addition, it can also connect to your station's Newscaster network at NO EXTRA CHARGE! As a Thank you for our contract with them, they have thrown in Newscaster access for the HumanResources9001 cartridge, Heads of Personnel rejoice!
    • +
    • The Newscaster app has also gotten a free upgrade which allows it to display images and comments inside of posts!
    • +
    • Nanotrasen has concurrently released a patch for bots which will allow off-station bots to properly patrol.
    • +
    +

    Incoming5643 updated:

    +
      +
    • Changeling head slugs have been given player control, ventcrawling, and a short escape period after egg laying.
    • +
    +

    MrStonedOne updated:

    +
      +
    • Admin ghosts can now drag ghosts to mobs to put that ghost in control of that mob.
    • +
    +

    Xhuis updated:

    +
      +
    • Nanotrasen scientists have recently observed a strange genome shift in green slimes. Experiments have shown that injection of radium into an active green slime extract will create a very unstable mutation toxin. Use with caution.
    • +
    + +

    13 April 2015

    +

    AnturK updated:

    +
      +
    • Spacemen have learned the basics of martial arts: Boxing, unleash it's power by wearing Boxing Gloves.
    • +
    • While boxing you can't grab or disarm, but you hit harder with a knockout chance that scales off stamina damage above 50.
    • +
    • Rumors have been heard of powerful martial styles avaliable only to the gods themselves.
    • +
    +

    CosmicScientist updated:

    +
      +
    • Added a dehydrated space carp to traitor items, bought with telecrystals. Use dehydrated space carp in hand to school them on loyalty. Add water to create a vicious murder machine just for the halibut.
    • +
    • The toy carp plushie now has attack verbs for fun, hit your friend with one today. I put my sole into this mod.
    • +
    • If you can think of a better fish pun let minnow but I shouldn't leave it to salmon else.
    • +
    +

    Ikarrus updated:

    +
      +
    • Gang bosses can no longer purchase certain potent traitor items but instead have access to some of a nuke op's arsenal of weapons.
    • +
    +

    Incoming5643 updated:

    +
      +
    • Three new chemical types of blob can occur: Omnizine, Morphine and Space Drugs.
    • +
    +

    MrPerson updated:

    +
      +
    • New lighting system! Lighting now smoothly transfers from one lighting level to the next.
    • +
    +

    Xhuis updated:

    +
      +
    • There have been... odd sighting in Space Station 13's sector. Alien organisms have appeared on stations 57, 23, and outlying.
    • +
    • Nanotrasen personnel have reason to believe that Space Station 13 is under attack by shadowlings. We have little intel on these creatures, but be on the lookout for odd behavior and dark areas. Use plenty of lights.
    • +
    +

    Zelacks updated:

    +
      +
    • Defibs no longer have a minimum damage requirement for a successful revive. Patients will have 150 total damage on a successful revive.
    • +
    • Additional feedback is given for several failure states of the defib.
    • +
    +

    xxalpha updated:

    +
      +
    • Airlock crushing damage increased.
    • +
    +

    11 April 2015

    Gun Hog updated:

      diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 94183ce73e0..035e91f2f36 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -2144,3 +2144,79 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - rscadd: The kitchen cabinet starts with one rice pack. - tweak: Glasses with unknown reagent will no longer be always brown but will take the color of their reagents. +2015-04-13: + AnturK: + - rscadd: 'Spacemen have learned the basics of martial arts: Boxing, unleash it''s + power by wearing Boxing Gloves.' + - rscadd: While boxing you can't grab or disarm, but you hit harder with a knockout + chance that scales off stamina damage above 50. + - rscadd: Rumors have been heard of powerful martial styles avaliable only to the + gods themselves. + CosmicScientist: + - rscadd: Added a dehydrated space carp to traitor items, bought with telecrystals. + Use dehydrated space carp in hand to school them on loyalty. Add water to create + a vicious murder machine just for the halibut. + - tweak: The toy carp plushie now has attack verbs for fun, hit your friend with + one today. I put my sole into this mod. + - wip: If you can think of a better fish pun let minnow but I shouldn't leave it + to salmon else. + Ikarrus: + - tweak: Gang bosses can no longer purchase certain potent traitor items but instead + have access to some of a nuke op's arsenal of weapons. + Incoming5643: + - rscadd: 'Three new chemical types of blob can occur: Omnizine, Morphine and Space + Drugs.' + MrPerson: + - experiment: New lighting system! Lighting now smoothly transfers from one lighting + level to the next. + Xhuis: + - rscadd: There have been... odd sighting in Space Station 13's sector. Alien organisms + have appeared on stations 57, 23, and outlying. + - rscadd: Nanotrasen personnel have reason to believe that Space Station 13 is under + attack by shadowlings. We have little intel on these creatures, but be on the + lookout for odd behavior and dark areas. Use plenty of lights. + Zelacks: + - tweak: Defibs no longer have a minimum damage requirement for a successful revive. + Patients will have 150 total damage on a successful revive. + - tweak: Additional feedback is given for several failure states of the defib. + xxalpha: + - wip: Airlock crushing damage increased. +2015-04-16: + AnturK: + - rscadd: Nanotrasen authorities are reporting sightings of unidentified space craft + near space station 13. Report any strange sightings or mental breakdowns to + central command. + - rscadd: 'PS : Abductions are not covered by health insurance.' + - rscadd: Shadowlings and their thralls now have HUD icons. + - rscadd: Thralls learn their master's objectives when enthralled. + - rscadd: Regenerate Chitin ability lets shadowlings re-equip their armor if lost. + - tweak: Loyalty implanted people take 25% longer to enthrall, but lose their implant + and become immune to re-implanting. + - experiment: Shadowlings now have a message in their spawning text which specifies + that cooperation is mandatory. + - bugfix: Veil now works on equipped lights. + - bugfix: Shadowlings now take correct amount of burn damage and in light and heal + clone and brain damage in darkness. + - bugfix: Fixes 'Round end code broke' displaying every round. + - bugfix: Shadowlings who ascend will nore greentext properly. + Gun Hog: + - rscadd: Thinktronic Systems, LTD. has increased the Value of the Value-PAK PDA + cartridge! Standard issue for Captain PDAs, it can now access security bots, + medibots, cleanbots, and floorbots ALL AT ONCE! In addition, it can also connect + to your station's Newscaster network at NO EXTRA CHARGE! As a Thank you for + our contract with them, they have thrown in Newscaster access for the HumanResources9001 + cartridge, Heads of Personnel rejoice! + - tweak: The Newscaster app has also gotten a free upgrade which allows it to display + images and comments inside of posts! + - bugfix: Nanotrasen has concurrently released a patch for bots which will allow + off-station bots to properly patrol. + Incoming5643: + - rscadd: Changeling head slugs have been given player control, ventcrawling, and + a short escape period after egg laying. + MrStonedOne: + - rscadd: Admin ghosts can now drag ghosts to mobs to put that ghost in control + of that mob. + Xhuis: + - rscadd: Nanotrasen scientists have recently observed a strange genome shift in + green slimes. Experiments have shown that injection of radium into an active + green slime extract will create a very unstable mutation toxin. Use with caution. diff --git a/html/changelogs/Xhuis-Shadowling.yml b/html/changelogs/Xhuis-Shadowling.yml deleted file mode 100644 index 14b5506994d..00000000000 --- a/html/changelogs/Xhuis-Shadowling.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: Xhuis -delete-after: true - - -changes: - - rscadd: "There have been... odd sighting in Space Station 13's sector. Alien organisms have appeared on stations 57, 23, and outlying." - - rscadd: "Nanotrasen personnel have reason to believe that Space Station 13 is under attack by shadowlings. We have little intel on these creatures, but be on the lookout for odd behavior and dark areas. Use plenty of lights." diff --git a/html/changelogs/defibChange-Zel.yml b/html/changelogs/defibChange-Zel.yml deleted file mode 100644 index 489d913c855..00000000000 --- a/html/changelogs/defibChange-Zel.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: Zelacks - -delete-after: True - -changes: - - tweak: "Defibs no longer have a minimum damage requirement for a successful revive. Patients will have 150 total damage on a successful revive." - - tweak: "Additional feedback is given for several failure states of the defib." diff --git a/icons/effects/alphacolors.dmi b/icons/effects/alphacolors.dmi index 02316fbf64d..74452b58dcf 100644 Binary files a/icons/effects/alphacolors.dmi and b/icons/effects/alphacolors.dmi differ diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi new file mode 100644 index 00000000000..fadb3a80594 Binary files /dev/null and b/icons/mob/actions.dmi differ diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index 672d83db4da..0997a3676f5 100644 Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index de23909c72f..04b6d65e00c 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index a9746f5b5c3..84ed7d9fc07 100644 Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ diff --git a/icons/mob/human.dmi b/icons/mob/human.dmi index c56f9815abd..1f29999f1a7 100644 Binary files a/icons/mob/human.dmi and b/icons/mob/human.dmi differ diff --git a/icons/mob/inhands/guns_lefthand.dmi b/icons/mob/inhands/guns_lefthand.dmi index 7f449152507..25337a3ae20 100644 Binary files a/icons/mob/inhands/guns_lefthand.dmi and b/icons/mob/inhands/guns_lefthand.dmi differ diff --git a/icons/mob/inhands/guns_righthand.dmi b/icons/mob/inhands/guns_righthand.dmi index 569aa7a2ded..470c1756985 100644 Binary files a/icons/mob/inhands/guns_righthand.dmi and b/icons/mob/inhands/guns_righthand.dmi differ diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index c23c2b987dc..0f73d04e0c2 100644 Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi index 51534f8225e..6fcd74552cb 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index af783f10da5..1dce6fa6429 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/mob/underwear.dmi b/icons/mob/underwear.dmi index d28501b353c..15919bf8ae7 100644 Binary files a/icons/mob/underwear.dmi and b/icons/mob/underwear.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 6b1fab51883..1ffa26810ac 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/obj/abductor.dmi b/icons/obj/abductor.dmi new file mode 100644 index 00000000000..fbec59cf88a Binary files /dev/null and b/icons/obj/abductor.dmi differ diff --git a/icons/obj/barsigns.dmi b/icons/obj/barsigns.dmi index ae720ac6cd2..89cf1610f74 100644 Binary files a/icons/obj/barsigns.dmi and b/icons/obj/barsigns.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 79e23dafd65..e6157b2bbb4 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi index 76f629b26f2..ff23c626c9f 100644 Binary files a/icons/obj/guns/energy.dmi and b/icons/obj/guns/energy.dmi differ diff --git a/interface/stylesheet.dm b/interface/stylesheet.dm index ff36313485c..411af48189e 100644 --- a/interface/stylesheet.dm +++ b/interface/stylesheet.dm @@ -77,6 +77,10 @@ h1.alert, h2.alert {color: #000000;} .sans {font-family: "Comic Sans MS", cursive, sans-serif;} .robot {font-family: "Courier New", cursive, sans-serif;} +.big {font-size: 3;} +.greentext {color: #00FF00; font-size: 3;} +.redtext {color: #FF0000; font-size: 3;} + BIG IMG.icon {width: 32px; height: 32px;} "} diff --git a/tgstation.dme b/tgstation.dme index 65785814dc7..21d4257cfbe 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -76,6 +76,7 @@ #include "code\_onclick\overmind.dm" #include "code\_onclick\telekinesis.dm" #include "code\_onclick\hud\_defines.dm" +#include "code\_onclick\hud\action.dm" #include "code\_onclick\hud\ai.dm" #include "code\_onclick\hud\alert.dm" #include "code\_onclick\hud\alien.dm" @@ -118,7 +119,6 @@ #include "code\ATMOSPHERICS\pipes\simple.dm" #include "code\ATMOSPHERICS\pipes\tank.dm" #include "code\ATMOSPHERICS\pipes\vent.dm" -#include "code\controllers\_DynamicAreaLighting_TG.dm" #include "code\controllers\configuration.dm" #include "code\controllers\failsafe.dm" #include "code\controllers\master_controller.dm" @@ -154,6 +154,7 @@ #include "code\datums\datumvars.dm" #include "code\datums\gas_mixture.dm" #include "code\datums\hud.dm" +#include "code\datums\martial.dm" #include "code\datums\mind.dm" #include "code\datums\mixed.dm" #include "code\datums\modules.dm" @@ -214,6 +215,7 @@ #include "code\datums\helper_datums\events.dm" #include "code\datums\helper_datums\getrev.dm" #include "code\datums\helper_datums\global_iterator.dm" +#include "code\datums\helper_datums\icon_snapshot.dm" #include "code\datums\helper_datums\teleport.dm" #include "code\datums\helper_datums\topic_input.dm" #include "code\datums\spells\area_teleport.dm" @@ -280,6 +282,11 @@ #include "code\game\gamemodes\objective.dm" #include "code\game\gamemodes\objective_items.dm" #include "code\game\gamemodes\setupgame.dm" +#include "code\game\gamemodes\abduction\abduction.dm" +#include "code\game\gamemodes\abduction\abduction_gear.dm" +#include "code\game\gamemodes\abduction\abduction_machinery.dm" +#include "code\game\gamemodes\abduction\abduction_surgery.dm" +#include "code\game\gamemodes\abduction\gland.dm" #include "code\game\gamemodes\blob\blob.dm" #include "code\game\gamemodes\blob\blob_finish.dm" #include "code\game\gamemodes\blob\blob_report.dm" @@ -548,6 +555,7 @@ #include "code\game\objects\items\bodybag.dm" #include "code\game\objects\items\candle.dm" #include "code\game\objects\items\crayons.dm" +#include "code\game\objects\items\dehy_carp.dm" #include "code\game\objects\items\documents.dm" #include "code\game\objects\items\holotape.dm" #include "code\game\objects\items\latexballoon.dm" @@ -1014,6 +1022,7 @@ #include "code\modules\library\lib_items.dm" #include "code\modules\library\lib_machines.dm" #include "code\modules\library\lib_readme.dm" +#include "code\modules\lighting\lighting_system.dm" #include "code\modules\mining\equipment_locker.dm" #include "code\modules\mining\machine_input_output_plates.dm" #include "code\modules\mining\machine_processing.dm" diff --git a/tools/Spriting Resources/previewing_color_in_photoshop.psd b/tools/Spriting Resources/previewing_color_in_photoshop.psd new file mode 100644 index 00000000000..47a5473c7b8 Binary files /dev/null and b/tools/Spriting Resources/previewing_color_in_photoshop.psd differ
    Blob