diff --git a/maps/RandomZLevels/Academy.dmm b/_maps/RandomZLevels/Academy.dmm similarity index 100% rename from maps/RandomZLevels/Academy.dmm rename to _maps/RandomZLevels/Academy.dmm diff --git a/maps/RandomZLevels/beach.dmm b/_maps/RandomZLevels/beach.dmm similarity index 100% rename from maps/RandomZLevels/beach.dmm rename to _maps/RandomZLevels/beach.dmm diff --git a/maps/RandomZLevels/blackmarketpackers.dmm b/_maps/RandomZLevels/blackmarketpackers.dmm similarity index 100% rename from maps/RandomZLevels/blackmarketpackers.dmm rename to _maps/RandomZLevels/blackmarketpackers.dmm diff --git a/maps/RandomZLevels/box2550Away.dmm b/_maps/RandomZLevels/box2550Away.dmm similarity index 100% rename from maps/RandomZLevels/box2550Away.dmm rename to _maps/RandomZLevels/box2550Away.dmm diff --git a/maps/RandomZLevels/centcomAway.dmm b/_maps/RandomZLevels/centcomAway.dmm similarity index 100% rename from maps/RandomZLevels/centcomAway.dmm rename to _maps/RandomZLevels/centcomAway.dmm diff --git a/maps/RandomZLevels/challenge.dmm b/_maps/RandomZLevels/challenge.dmm similarity index 100% rename from maps/RandomZLevels/challenge.dmm rename to _maps/RandomZLevels/challenge.dmm diff --git a/maps/RandomZLevels/example.dmm b/_maps/RandomZLevels/example.dmm similarity index 100% rename from maps/RandomZLevels/example.dmm rename to _maps/RandomZLevels/example.dmm diff --git a/maps/RandomZLevels/fileList.txt b/_maps/RandomZLevels/fileList.txt similarity index 58% rename from maps/RandomZLevels/fileList.txt rename to _maps/RandomZLevels/fileList.txt index d5723579827..99e3adc4b88 100644 --- a/maps/RandomZLevels/fileList.txt +++ b/_maps/RandomZLevels/fileList.txt @@ -7,15 +7,15 @@ #Do NOT tick the maps during compile -- the game uses this list to decide which map to load. Ticking the maps will result in them ALL being loaded at once. #DO tick the associated code file for the away mission you are enabling. Otherwise, the map will be trying to reference objects which do not exist, which will cause runtime errors! -#maps/RandomZLevels/example.dmm -#maps/RandomZLevels/blackmarketpackers.dmm -#maps/RandomZLevels/stationCollision.dmm -#maps/RandomZLevels/spacebattle.dmm -#maps/RandomZLevels/beach.dmm -#maps/RandomZLevels/Academy.dmm -#maps/RandomZLevels/wildwest.dmm -#maps/RandomZLevels/challenge.dmm -#maps/RandomZLevels/listeningpost.dmm -#maps/RandomZLevels/spacehotel.dmm -#maps/RandomZLevels/centcomAway.dmm -#maps/RandomZLevels/box2550Away.dmm \ No newline at end of file +#_maps/RandomZLevels/example.dmm +#_maps/RandomZLevels/blackmarketpackers.dmm +#_maps/RandomZLevels/stationCollision.dmm +#_maps/RandomZLevels/spacebattle.dmm +#_maps/RandomZLevels/beach.dmm +#_maps/RandomZLevels/Academy.dmm +#_maps/RandomZLevels/wildwest.dmm +#_maps/RandomZLevels/challenge.dmm +#_maps/RandomZLevels/listeningpost.dmm +#_maps/RandomZLevels/spacehotel.dmm +#_maps/RandomZLevels/centcomAway.dmm +#_maps/RandomZLevels/box2550Away.dmm \ No newline at end of file diff --git a/maps/RandomZLevels/listeningpost.dmm b/_maps/RandomZLevels/listeningpost.dmm similarity index 100% rename from maps/RandomZLevels/listeningpost.dmm rename to _maps/RandomZLevels/listeningpost.dmm diff --git a/maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/spacebattle.dmm similarity index 100% rename from maps/RandomZLevels/spacebattle.dmm rename to _maps/RandomZLevels/spacebattle.dmm diff --git a/maps/RandomZLevels/spacehotel.dmm b/_maps/RandomZLevels/spacehotel.dmm similarity index 100% rename from maps/RandomZLevels/spacehotel.dmm rename to _maps/RandomZLevels/spacehotel.dmm diff --git a/maps/RandomZLevels/stationCollision.dmm b/_maps/RandomZLevels/stationCollision.dmm similarity index 100% rename from maps/RandomZLevels/stationCollision.dmm rename to _maps/RandomZLevels/stationCollision.dmm diff --git a/maps/RandomZLevels/wildwest.dmm b/_maps/RandomZLevels/wildwest.dmm similarity index 100% rename from maps/RandomZLevels/wildwest.dmm rename to _maps/RandomZLevels/wildwest.dmm diff --git a/maps/MetaStation.v39A.III.dmm b/_maps/map_files/MetaStation.v39B.II.dmm similarity index 99% rename from maps/MetaStation.v39A.III.dmm rename to _maps/map_files/MetaStation.v39B.II.dmm index 81e67412ae4..d876719803c 100644 --- a/maps/MetaStation.v39A.III.dmm +++ b/_maps/map_files/MetaStation.v39B.II.dmm @@ -32,7 +32,7 @@ "aaF" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating/airless,/area) "aaG" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/security/processing) "aaH" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 8; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/fore) -"aaI" = (/obj/machinery/door/airlock/glass{name = "space-bridge access"},/obj/machinery/door_control{id = "supplybridge"; name = "Shuttle Bay Space Bridge Control"; pixel_x = 0; pixel_y = 27; req_access_txt = "12"},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"aaI" = (/obj/machinery/door/airlock/maintenance_hatch{name = "Supply Bay Bridge Access"; req_access_txt = "0"; req_one_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "aaJ" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "aaK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = ""},/area/maintenance/fore) "aaL" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/escape_pod3/station) @@ -118,7 +118,7 @@ "acn" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/plating,/area/maintenance/starboard) "aco" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/starboard) "acp" = (/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/fpmaint2{name = "Port Maintenance"}) -"acq" = (/obj/machinery/door/airlock/maintenance_hatch{name = "Supply Bay Bridge Access"; req_access_txt = "0"; req_one_access_txt = "8;12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"acq" = (/obj/machinery/door/airlock/glass{name = "space-bridge access"},/obj/machinery/door_control{id = "supplybridge"; name = "Shuttle Bay Space Bridge Control"; pixel_x = 0; pixel_y = 27; req_access_txt = "0"},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "acr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "acs" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/sleeping_agent,/turf/simulated/floor{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "act" = (/obj/machinery/door/airlock/glass_security{name = "Long-Term Cell 3"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) @@ -201,7 +201,7 @@ "adS" = (/obj/structure/table/woodentable,/obj/item/weapon/paper,/turf/simulated/floor{icon_state = "neutral"; dir = 10},/area/crew_quarters/courtroom) "adT" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Brig Control"; req_access_txt = "3"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "delivery"},/area/security/warden) "adU" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "showroomfloor"},/area/security/warden) -"adV" = (/obj/machinery/door/airlock/glass{name = "space-bridge access"},/obj/machinery/door_control{id = "supplybridge"; name = "Shuttle Bay Space Bridge Control"; pixel_x = 0; pixel_y = 27; req_access_txt = "12"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"adV" = (/obj/machinery/door/airlock/glass{name = "space-bridge access"},/obj/machinery/door_control{id = "supplybridge"; name = "Shuttle Bay Space Bridge Control"; pixel_x = 0; pixel_y = 27; req_access_txt = "0"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "adW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/brig) "adX" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/ears/earmuffs,/obj/item/clothing/tie/red,/obj/item/clothing/head/soft/red,/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "adY" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/fore) @@ -288,7 +288,7 @@ "afB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "afC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "neutralcorner"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "afD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor{dir = 2; icon_state = "neutralcorner"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) -"afE" = (/obj/item/clothing/gloves/fyellow,/obj/structure/rack{dir = 8; layer = 2.9},/turf/simulated/floor/plating,/area/maintenance/starboard) +"afE" = (/obj/item/device/mmi{name = "man-machine interface"},/obj/structure/rack{dir = 8; layer = 2.9},/turf/simulated/floor/plating,/area/maintenance/starboard) "afF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "afG" = (/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/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/fore) "afH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/fore) @@ -554,7 +554,7 @@ "akH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) "akI" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) "akJ" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "Secure Gate"; name = "Security Blast Door"; 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/prison/solitary{name = "Prisoner Education Chamber"}) -"akK" = (/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/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"akK" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/belt{desc = "Can hold quite a lot of stuff."; name = "mutli-belt"},/obj/item/clothing/gloves/fyellow,/turf/simulated/floor/plating,/area/maintenance/starboard) "akL" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/security/brig) "akM" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/security/brig) "akN" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/security/brig) @@ -590,7 +590,7 @@ "alr" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "als" = (/obj/structure/table,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/bruise_pack{pixel_x = 10; pixel_y = 2},/obj/item/stack/medical/ointment{pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "alt" = (/obj/structure/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/crew_quarters/fitness{name = "\improper Recreation Area"}) -"alu" = (/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Fore Port Solar Access"; req_access_txt = "10"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"; pipe_color = "blue"},/turf/simulated/floor/plating,/area/maintenance/auxsolarport) +"alu" = (/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/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"; pipe_color = "blue"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "alv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) "alw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Brig"; req_access_txt = "63"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig) "alx" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/engineering) @@ -608,8 +608,8 @@ "alJ" = (/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/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Brig"; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig) "alK" = (/obj/machinery/door/window/eastright{dir = 4; name = "Danger: Conveyor Access"; req_access_txt = "12"},/obj/machinery/conveyor{dir = 10; icon_state = "conveyor0"; id = "garbage"},/turf/simulated/floor/plating,/area/maintenance/disposal) "alL" = (/obj/machinery/door/poddoor{density = 1; icon_state = "closed"; id = "SecJusticeChamber"; name = "Justice Vent"; opacity = 1},/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = ""},/area/prison/solitary{name = "Prisoner Education Chamber"}) -"alM" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "red"; dir = 6},/area/security/brig) -"alN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/brig) +"alM" = (/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Fore Port 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/auxsolarport) +"alN" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor{icon_state = "red"; dir = 6},/area/security/brig) "alO" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fore) "alP" = (/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/carpet,/area/security/detectives_office) "alQ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/security/brig) @@ -660,7 +660,7 @@ "amJ" = (/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/fore) "amK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/brig) "amL" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/brig) -"amM" = (/obj/machinery/light/small{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor{icon_state = "red"; dir = 5},/area/security/brig) +"amM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/brig) "amN" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "amO" = (/obj/machinery/atmospherics/pipe/simple/general/hidden,/obj/machinery/light/small{dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "floorgrime"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "amP" = (/obj/machinery/atmospherics/pipe/simple/general/hidden,/turf/simulated/floor{icon_state = "floorgrime"},/area/prison/solitary{name = "Prisoner Education Chamber"}) @@ -765,7 +765,7 @@ "aoK" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/brig) "aoL" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/security/brig) "aoM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/security/brig) -"aoN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/power/apc{cell_type = 10000; dir = 2; name = "Brig APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable/yellow,/turf/simulated/floor{icon_state = "red"},/area/security/brig) +"aoN" = (/obj/machinery/light/small{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/flasher{id = "secentranceflasher"; pixel_x = 25},/turf/simulated/floor{icon_state = "red"; dir = 5},/area/security/brig) "aoO" = (/obj/machinery/mineral/stacking_unit_console{dir = 2; machinedir = 8; pixel_x = 32; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/maintenance/disposal) "aoP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/security/brig) "aoQ" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/security/brig) @@ -793,7 +793,7 @@ "apm" = (/obj/machinery/washing_machine,/turf/simulated/floor{icon_state = "barber"},/area/crew_quarters/sleep) "apn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 2; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/security/brig) "apo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) -"app" = (/obj/structure/table,/obj/item/clothing/under/suit_jacket/female{pixel_x = 3; pixel_y = 1},/obj/item/clothing/under/suit_jacket/really_black{pixel_x = -2; pixel_y = 0},/obj/machinery/light/small{dir = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 28},/turf/simulated/floor{icon_state = "barber"},/area/crew_quarters/sleep) +"app" = (/obj/structure/table,/obj/item/clothing/under/suit_jacket/female{pixel_x = 3; pixel_y = 1},/obj/item/clothing/under/suit_jacket/really_black{pixel_x = -2; pixel_y = 0},/obj/machinery/light/small{dir = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 28},/obj/item/clothing/tie/waistcoat,/turf/simulated/floor{icon_state = "barber"},/area/crew_quarters/sleep) "apq" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/security/brig) "apr" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 2; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/door_timer/cell_3,/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/brig) "aps" = (/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/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/airlock/glass_security{name = "Brig"; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "red"},/area/security/brig) @@ -869,7 +869,7 @@ "aqK" = (/obj/structure/stool/bed/chair{dir = 8; name = "Defense"},/turf/simulated/floor{dir = 5; icon_state = "green"},/area/crew_quarters/courtroom) "aqL" = (/turf/simulated/wall,/area/lawoffice) "aqM" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor,/area/security/brig) -"aqN" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/security/brig) +"aqN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/power/apc{cell_type = 10000; dir = 2; name = "Brig APC"; pixel_x = 1; pixel_y = -24},/obj/structure/cable/yellow,/obj/machinery/flasher_button{id = "secentranceflasher"; pixel_x = -3; pixel_y = -38; req_access_txt = "1"},/turf/simulated/floor{icon_state = "red"},/area/security/brig) "aqO" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/crew_quarters/sleep) "aqP" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/security/brig) "aqQ" = (/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/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/security/brig) @@ -981,7 +981,7 @@ "asS" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plating,/area/maintenance/fore) "asT" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/maintenance/fore) "asU" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/door_control{id = "Cabin5"; name = "Dorm Bolt Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/wood,/area/crew_quarters/sleep) -"asV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/maintenance_hatch{name = "Supply Bay Bridge Access"; req_access_txt = "0"; req_one_access_txt = "8;12"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) +"asV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor,/area/security/brig) "asW" = (/obj/machinery/door/poddoor/shutters{id = "supplybridge"},/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "asX" = (/obj/machinery/door/poddoor/shutters{id = "supplybridge"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) "asY" = (/obj/machinery/door/poddoor/shutters{id = "supplybridge"},/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/maintenance/fpmaint2{name = "Port Maintenance"}) @@ -1238,7 +1238,7 @@ "axP" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "axQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/security/prison) "axR" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/security/prison) -"axS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 1; icon_state = "closed"; id = "hosprivacy"; name = "Privacy Shutters"; opacity = 0},/obj/machinery/door/poddoor/preopen{id = "hosprivacy"; name = "privacy shutter"},/turf/simulated/floor/plating,/area/security/range) +"axS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/maintenance_hatch{name = "Supply Bay Bridge Access"; req_access_txt = "0"; req_one_access_txt = "0"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "axT" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/door_control{id = "FitnessShower"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/obj/structure/mirror{pixel_x = -28},/obj/machinery/light/small,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "axU" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera{c_tag = "Fitness Room - Fore"; dir = 2},/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "axV" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 27},/obj/machinery/camera{c_tag = "Mining Dock"; dir = 8; network = list("SS13")},/turf/simulated/floor{dir = 4; icon_state = "brown"},/area/quartermaster/miningdock) @@ -1556,7 +1556,7 @@ "aDV" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/hologram/holopad,/turf/simulated/floor/wood,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) "aDW" = (/obj/structure/closet/boxinggloves,/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) "aDX" = (/obj/structure/closet/masks,/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) -"aDY" = (/obj/structure/closet/secure_closet/hos,/obj/machinery/light{dir = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) +"aDY" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor,/area/crew_quarters/sleep) "aDZ" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area) "aEa" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 32},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "aEb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) @@ -1570,7 +1570,7 @@ "aEj" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai) "aEk" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "aEl" = (/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/crew_quarters/fitness{name = "\improper Recreation Area"}) -"aEm" = (/obj/structure/filingcabinet/security{pixel_x = 4},/obj/machinery/light{dir = 4},/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) +"aEm" = (/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{tag = "icon-vault"; icon_state = "vault"},/area/security/warden) "aEn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/command{name = "Head of Security's Office"; req_access = null; req_access_txt = "58"},/turf/simulated/floor/carpet,/area/security/hos) "aEo" = (/obj/structure/window/reinforced,/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/security/range) "aEp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/security/warden) @@ -1592,7 +1592,7 @@ "aEF" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 5; health = 120; icon_state = "twindow"; reinf = 0},/turf/simulated/floor/plating,/area/hallway/primary/central) "aEG" = (/obj/machinery/flasher{id = "processinghall"; pixel_x = -28},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/security/processing) "aEH" = (/obj/item/weapon/soap/deluxe,/obj/item/weapon/storage/secure/safe{pixel_x = 6; pixel_y = 28},/obj/item/weapon/kitchen/rollingpin,/obj/structure/closet/crate,/obj/item/clothing/suit/xenos,/obj/item/clothing/suit/monkeysuit,/obj/item/clothing/head/xenos,/obj/item/clothing/mask/gas/monkeymask,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) -"aEI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/hallway/primary/starboard) +"aEI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor/preopen{id = "hosprivacy"; name = "privacy shutter"},/turf/simulated/floor/plating,/area/security/range) "aEJ" = (/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{icon_state = "delivery"},/area/security/warden) "aEK" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 2; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/hallway/primary/starboard) "aEL" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/sign/securearea{pixel_y = 32},/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/hallway/primary/starboard) @@ -1612,7 +1612,7 @@ "aEZ" = (/obj/structure/closet/toolcloset,/turf/simulated/floor,/area/construction) "aFa" = (/turf/space,/area/supply/station) "aFb" = (/obj/structure/target_stake,/obj/item/target/syndicate,/turf/simulated/floor,/area/security/range) -"aFc" = (/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{c_tag = "Armory - Internal"; dir = 1; network = list("SS13")},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/security/warden) +"aFc" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 2; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/prison) "aFd" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/hallway/primary/central) "aFe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/quartermaster/sorting{name = "\improper Warehouse"}) "aFf" = (/turf/simulated/wall,/area/quartermaster/sorting{name = "\improper Warehouse"}) @@ -1626,7 +1626,7 @@ "aFn" = (/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/engine/break_room) "aFo" = (/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{dir = 1; icon_state = "yellow"},/area/engine/break_room) "aFp" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/quartermaster/office{name = "\improper Cargo Office"}) -"aFq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Mailroom"; req_access_txt = "50"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/quartermaster/office{name = "\improper Cargo Office"}) +"aFq" = (/obj/structure/closet/secure_closet/hos,/obj/machinery/light{dir = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -29; pixel_y = 23},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "aFr" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow,/obj/machinery/door/poddoor/preopen{id = "bridge blast"; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) "aFs" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload) "aFt" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor,/area/engine/break_room) @@ -1641,7 +1641,7 @@ "aFC" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/central) "aFD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "cautioncorner"},/area/hallway/primary/starboard) "aFE" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 2; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "brown"},/area/quartermaster/office{name = "\improper Cargo Office"}) -"aFF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light{dir = 1},/obj/machinery/alarm{pixel_y = 23},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/hallway/primary/starboard) +"aFF" = (/obj/structure/filingcabinet/security{pixel_x = 4},/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{icon_state = "dark"},/area/security/hos) "aFG" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/closet/wardrobe/red,/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/checkpoint2{name = "Customs"}) "aFH" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/weapon/crowbar,/obj/item/device/flash,/turf/simulated/floor{icon_state = "red"; dir = 6},/area/security/checkpoint2{name = "Customs"}) "aFI" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/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 = "bridge blast"; name = "bridge blast door"},/turf/simulated/floor/plating,/area/bridge) @@ -1814,7 +1814,7 @@ "aIT" = (/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{icon_state = "L10"},/area/hallway/primary/central) "aIU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/starboard) "aIV" = (/obj/structure/closet/toolcloset,/turf/simulated/floor{dir = 5; icon_state = "yellow"},/area/storage/tools) -"aIW" = (/obj/machinery/camera{active_power_usage = 0; c_tag = "Armory - External"; desc = "A special camera with a long lasting battery."; dir = 1; invuln = 0; light = null; name = "security camera"; network = list("SS13"); use_power = 0},/turf/space,/area) +"aIW" = (/obj/machinery/camera/motion{c_tag = "Armory - External"; dir = 1; network = list("SS13")},/turf/space,/area) "aIX" = (/obj/structure/closet/toolcloset,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 28},/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/storage/tools) "aIY" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/hallway/primary/starboard) "aIZ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=16-Court"; location = "15-Central-Fore"},/turf/simulated/floor{icon_state = "L12"},/area/hallway/primary/central) @@ -1850,7 +1850,7 @@ "aJD" = (/obj/structure/transit_tube,/turf/space,/area) "aJE" = (/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/construction/hallway{name = "\improper MiniSat Exterior"}) "aJF" = (/obj/structure/transit_tube{tag = "icon-D-SW"; icon_state = "D-SW"},/obj/structure/window/reinforced,/turf/space,/area) -"aJG" = (/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) +"aJG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/alarm{pixel_y = 23},/obj/machinery/light{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/hallway/primary/starboard) "aJH" = (/obj/structure/transit_tube{tag = "icon-W-SE"; icon_state = "W-SE"},/turf/space,/area) "aJI" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced,/turf/space,/area) "aJJ" = (/obj/machinery/door/airlock/hatch{icon_state = "door_closed"; name = "MiniSat Space Access Airlock"; req_one_access_txt = "32;19"},/turf/simulated/floor/plating,/area/construction/hallway{name = "\improper MiniSat Exterior"}) @@ -2007,15 +2007,15 @@ "aME" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) "aMF" = (/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{icon_state = "dark"},/area/storage/tech) "aMG" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/item/weapon/tank/plasma,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engineering) -"aMH" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/arcade,/obj/item/weapon/circuitboard/message_monitor{pixel_y = -5},/turf/simulated/floor{icon_state = "dark"},/area/storage/tech) +"aMH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/hallway/primary/starboard) "aMI" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/shuttle/escape_pod1/station) "aMJ" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod1/station) "aMK" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/floor,/area/quartermaster/office{name = "\improper Cargo Office"}) -"aML" = (/turf/simulated/wall/r_wall,/area/hallway/secondary/entry{name = "Arrivals"}) +"aML" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Mailroom"; req_access_txt = "0"; req_one_access_txt = "48;50"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/quartermaster/office{name = "\improper Cargo Office"}) "aMM" = (/obj/structure/table,/obj/item/weapon/cable_coil{amount = 5},/obj/item/device/flashlight,/obj/machinery/light_construct{dir = 4},/turf/simulated/floor,/area/construction) "aMN" = (/obj/structure/table,/obj/item/device/destTagger{pixel_x = 4; pixel_y = 3},/obj/item/device/destTagger{pixel_x = 4; pixel_y = 3},/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor{icon_state = "arrival"; dir = 4},/area/quartermaster/office{name = "\improper Cargo Office"}) "aMO" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/quartermaster/storage) -"aMP" = (/obj/structure/table/reinforced,/obj/item/stack/medical/bruise_pack{pixel_x = -3; pixel_y = 2},/obj/item/weapon/reagent_containers/pill/kelotane{pixel_x = 3; pixel_y = 3},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/engine/chiefs_office) +"aMP" = (/obj/structure/grille,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "dark"},/area/security/checkpoint2{name = "Customs"}) "aMQ" = (/turf/simulated/wall/r_wall,/area/turret_protected/tcomeast{name = "\improper MiniSat East Wing"}) "aMR" = (/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/glass_mining{name = "Quartermaster"; req_access_txt = "41"},/turf/simulated/floor,/area/quartermaster/qm) "aMS" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/machinery/light/small{dir = 8},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/engine/engineering) @@ -2075,7 +2075,7 @@ "aNU" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/engine/engineering) "aNV" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/storage/tech) "aNW" = (/obj/machinery/power/port_gen/pacman,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 31},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/turret_protected/tcomeast{name = "\improper MiniSat East Wing"}) -"aNX" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/stamp/ce,/turf/simulated/floor{icon_state = "neutral"},/area/engine/chiefs_office) +"aNX" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/engine/chiefs_office) "aNY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/engine/engineering) "aNZ" = (/obj/item/weapon/screwdriver,/obj/structure/lattice,/turf/space,/area) "aOa" = (/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"}) @@ -2084,7 +2084,7 @@ "aOd" = (/obj/machinery/door_control{desc = "A remote control-switch for the engineering security doors."; id = "Engineering"; name = "Engineering Lockdown"; pixel_x = -24; pixel_y = -5; req_access_txt = "10"},/obj/machinery/door_control{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = -24; pixel_y = 5; req_access_txt = "24"},/obj/machinery/light{dir = 8},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/engine/chiefs_office) "aOe" = (/obj/structure/plasticflaps,/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/floor/plating,/area/quartermaster/storage) "aOf" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/floor/plating,/area/quartermaster/storage) -"aOg" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor{dir = 2; icon_state = "neutralcorner"},/area/engine/chiefs_office) +"aOg" = (/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{icon_state = "dark"},/area/storage/tech) "aOh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/starboard) "aOi" = (/obj/structure/rack,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/suit/armor/riot,/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/obj/item/weapon/wrench,/obj/item/clothing/head/helmet/riot,/obj/item/clothing/head/helmet/riot,/obj/item/clothing/head/helmet/riot,/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden) "aOj" = (/obj/structure/table/reinforced,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor{dir = 8; icon_state = "neutralcorner"},/area/engine/chiefs_office) @@ -2274,7 +2274,7 @@ "aRL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access_txt = "19"},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/bridge) "aRM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/wall,/area/maintenance/storage) "aRN" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access_txt = "19"},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/bridge) -"aRO" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 5; health = 120; icon_state = "twindow"; reinf = 0},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor{icon_state = "dark"},/area/security/checkpoint2{name = "Customs"}) +"aRO" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/stamp/ce,/obj/item/stack/medical/bruise_pack{pixel_x = -3; pixel_y = 2},/obj/item/weapon/reagent_containers/pill/kelotane{pixel_x = 3; pixel_y = 3},/turf/simulated/floor{icon_state = "neutral"},/area/engine/chiefs_office) "aRP" = (/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/starboard) "aRQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/wall,/area/maintenance/storage) "aRR" = (/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor{dir = 8; icon_state = "caution"},/area/hallway/primary/starboard) @@ -2360,7 +2360,7 @@ "aTt" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/light{dir = 4},/obj/machinery/camera{c_tag = "Cargo - Foyer"; dir = 8; network = list("SS13")},/turf/simulated/floor{dir = 4; icon_state = "brown"},/area/hallway/primary/port) "aTu" = (/turf/simulated/floor{icon_state = "delivery"},/area/hallway/primary/port) "aTv" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/machinery/door/firedoor,/obj/machinery/door/window/westleft{dir = 8; name = "Cargo Desk"; req_access_txt = "50"},/turf/simulated/floor,/area/quartermaster/office{name = "\improper Cargo Office"}) -"aTw" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 5; health = 120; icon_state = "twindow"; reinf = 0},/turf/simulated/floor/plating,/area/quartermaster/office{name = "\improper Cargo Office"}) +"aTw" = (/obj/structure/table/reinforced,/obj/item/device/flashlight/lamp,/turf/simulated/floor{dir = 2; icon_state = "neutralcorner"},/area/engine/chiefs_office) "aTx" = (/obj/machinery/door/airlock/highsecurity{icon_state = "door_closed"; locked = 0; name = "AI Chamber"; req_access_txt = "16"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "aTy" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/storage) "aTz" = (/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},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/security/checkpoint2{name = "Customs"}) @@ -2466,7 +2466,7 @@ "aVv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "L3"},/area/hallway/primary/central) "aVw" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = 29},/turf/simulated/floor{dir = 10; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "aVx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "L7"},/area/hallway/primary/central) -"aVy" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "L9"},/area/hallway/primary/central) +"aVy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"}) "aVz" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "red"; dir = 9; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/maintenance/storage) "aVA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{desc = ""; icon_state = "L13"; name = "floor"},/area/hallway/primary/central) "aVB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "L15"},/area/hallway/primary/central) @@ -2507,7 +2507,7 @@ "aWk" = (/obj/machinery/door/firedoor,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_security{name = "Security Dock"; req_access_txt = "1"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/processing) "aWl" = (/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{icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "aWm" = (/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{tag = "icon-warningcorner (NORTH)"; icon_state = "warningcorner"; dir = 1},/area/hallway/secondary/entry{name = "Arrivals"}) -"aWn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"}) +"aWn" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor,/area/hallway/primary/port) "aWo" = (/turf/simulated/wall/r_wall,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "aWp" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "aWq" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) @@ -3018,7 +3018,7 @@ "bgb" = (/obj/machinery/vending/autodrobe,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/wood,/area/crew_quarters/theatre) "bgc" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 4; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/engine/break_room) "bgd" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "yellow"; icon_state = "manifold-y"; level = 2},/turf/simulated/floor,/area/maintenance/storage) -"bge" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 10; icon_state = "neutral"},/area/hallway/primary/port) +"bge" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/quartermaster/office{name = "\improper Cargo Office"}) "bgf" = (/turf/simulated/floor{icon_state = "delivery"},/area/storage/primary) "bgg" = (/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 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/engine/break_room) "bgh" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "yellow"; dir = 6; icon_state = "intact-y"; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area/maintenance/storage) @@ -3092,12 +3092,12 @@ "bhx" = (/obj/machinery/vending/tool,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engineering) "bhy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor{icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "bhz" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 5; health = 120; icon_state = "twindow"; reinf = 0},/turf/simulated/floor/plating,/area/hallway/secondary/construction{name = "\improper Garden"}) -"bhA" = (/obj/structure/table,/obj/item/weapon/aiModule/oxygen,/obj/item/weapon/aiModule/oneHuman,/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "High-Risk Modules"; req_access_txt = "20"},/obj/item/weapon/aiModule/purge,/obj/structure/window/reinforced,/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/obj/item/weapon/aiModule/safeguard,/obj/item/weapon/aiModule/quarantine,/obj/item/weapon/aiModule/antimov,/obj/item/weapon/aiModule/tyrant,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) +"bhA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/quartermaster/office{name = "\improper Cargo Office"}) "bhB" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/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,/area/bridge) "bhC" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 4},/obj/machinery/newscaster{pixel_x = 32},/obj/machinery/door_control{id = "Toilet4"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) "bhD" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{pixel_x = 28},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) "bhE" = (/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{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"}) -"bhF" = (/obj/structure/table,/obj/item/weapon/aiModule/freeformcore,/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Core Modules"; req_access_txt = "20"},/obj/structure/window/reinforced,/obj/item/weapon/aiModule/corp,/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/obj/item/weapon/aiModule/robocop,/obj/item/weapon/aiModule/asimov,/obj/item/weapon/aiModule/paladin,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) +"bhF" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/quartermaster/office{name = "\improper Cargo Office"}) "bhG" = (/obj/machinery/light/small,/turf/simulated/floor/carpet,/area/crew_quarters/sleep) "bhH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/crew_quarters/captain{name = "\improper Captain's Quarters"}) "bhI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/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/construction/Storage{name = "Storage Wing"}) @@ -3505,7 +3505,7 @@ "bpu" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/hallway/primary/fore) "bpv" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/hallway/primary/fore) "bpw" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/newscaster{pixel_x = 28; pixel_y = 1},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"}) -"bpx" = (/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,/area/hallway/secondary/entry{name = "Arrivals"}) +"bpx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/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{icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "bpy" = (/obj/structure/closet/crate,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/maintenance/storage) "bpz" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/primary/port) "bpA" = (/obj/structure/closet/firecloset,/turf/simulated/floor{icon_state = "delivery"},/area/hallway/secondary/entry{name = "Arrivals"}) @@ -3550,7 +3550,7 @@ "bqn" = (/obj/machinery/camera/autoname{dir = 2; network = list("SS13")},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/power/apc{dir = 1; name = "Quartermaster's Office APC"; pixel_x = 0; pixel_y = 30},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor{dir = 1; icon_state = "brown"},/area/quartermaster/qm) "bqo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/tcomeast{name = "\improper MiniSat East Wing"}) "bqp" = (/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/turret{dir = 1; enabled = 0},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/turret_protected/aisat_interior{name = "\improper MiniSat Central Foyer"}) -"bqq" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 32},/obj/effect/landmark/start{name = "Cyborg"},/obj/machinery/light/small{dir = 4},/obj/machinery/computer/security/telescreen{dir = 8; name = "MiniSat Monitor"; network = list("MiniSat","tcomm"); pixel_x = 29; pixel_y = 0},/obj/machinery/camera{c_tag = "AI Upload Foyer"; dir = 2; network = list("SS13","RD","AIUpload")},/turf/simulated/floor{tag = "icon-vault (SOUTHWEST)"; icon_state = "vault"; dir = 10},/area/turret_protected/ai_upload_foyer) +"bqq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor{dir = 10; icon_state = "neutral"},/area/hallway/primary/port) "bqr" = (/obj/structure/closet/secure_closet/quartermaster,/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 9; icon_state = "brown"},/area/quartermaster/qm) "bqs" = (/obj/machinery/light/small,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -26},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "grimy"},/area/security/detectives_office) "bqt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/bridge) @@ -3881,7 +3881,7 @@ "bwG" = (/obj/structure/table/woodentable,/obj/item/weapon/pen/red,/obj/item/weapon/pen/blue{pixel_x = 5; pixel_y = 5},/turf/simulated/floor/wood,/area/library) "bwH" = (/obj/structure/table,/obj/item/weapon/hatchet,/obj/item/weapon/coin/silver,/obj/item/weapon/minihoe,/obj/machinery/light/small,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/construction{name = "\improper Garden"}) "bwI" = (/obj/structure/table,/obj/item/clothing/suit/apron,/obj/item/clothing/suit/apron,/obj/item/weapon/corncob,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/construction{name = "\improper Garden"}) -"bwJ" = (/obj/machinery/hologram/holopad,/obj/structure/sign/kiddieplaque{pixel_y = 32},/obj/machinery/camera{c_tag = "AI Upload Chamber - Fore"; dir = 2; network = list("SS13","RD","AIUpload")},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) +"bwJ" = (/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"},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor,/area/hallway/secondary/entry{name = "Arrivals"}) "bwK" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Security Post - Cargo"; req_access_txt = "63"},/turf/simulated/floor,/area/security/checkpoint/supply{name = "Security Post - Cargo"}) "bwL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor,/area/crew_quarters/locker) "bwM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "L5"},/area/hallway/primary/central) @@ -3986,8 +3986,8 @@ "byH" = (/obj/effect/landmark/start{name = "Bartender"},/turf/simulated/floor/wood,/area/crew_quarters/bar{name = "\improper Maltese Falcon"}) "byI" = (/obj/structure/table,/obj/item/device/assembly/igniter{pixel_x = -4; pixel_y = -4},/obj/item/device/assembly/igniter,/obj/item/weapon/screwdriver{pixel_y = 16},/turf/simulated/floor{dir = 4; icon_state = "brown"},/area/storage/primary) "byJ" = (/obj/machinery/turret{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) -"byK" = (/obj/machinery/computer/upload/borg,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) -"byL" = (/obj/machinery/computer/upload/ai,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) +"byK" = (/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{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) +"byL" = (/obj/structure/sign/kiddieplaque{pixel_y = 32},/obj/structure/table,/obj/structure/flora/kirbyplants{desc = "A simple, healthy looking potted plant. Likely one of the best friends an AI will ever have."; name = "Photosynthetic Potted Plant"; pixel_y = 8},/obj/machinery/camera/motion{c_tag = "AI Upload Chamber - Fore"; network = list("SS13","RD","AIUpload")},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "byM" = (/obj/machinery/turret{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "byN" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/crew_quarters/courtroom) "byO" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) @@ -3997,7 +3997,7 @@ "byS" = (/obj/structure/reagent_dispensers/watertank,/obj/item/weapon/reagent_containers/glass/bucket,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/hydroponics) "byT" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/binary/pump{dir = 0; icon_state = "intact_off"; name = "Air to Port"; on = 0},/obj/machinery/light/small{dir = 8},/turf/simulated/floor,/area/maintenance/storage) "byU" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) -"byV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"}) +"byV" = (/obj/structure/table,/obj/machinery/door/window{base_state = "left"; dir = 8; icon_state = "left"; name = "High-Risk Modules"; req_access_txt = "20"},/obj/structure/window/reinforced,/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/obj/item/weapon/aiModule/core/full/antimov,/obj/item/weapon/aiModule/core/full/tyrant,/obj/item/weapon/aiModule/supplied/oxygen,/obj/item/weapon/aiModule/supplied/quarantine,/obj/item/weapon/aiModule/supplied/safeguard,/obj/item/weapon/aiModule/zeroth/oneHuman,/obj/item/weapon/aiModule/reset/purge,/turf/simulated/floor{icon_state = "dark"},/area) "byW" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/wood,/area/lawoffice) "byX" = (/obj/effect/landmark/start{name = "Lawyer"},/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor/wood,/area/lawoffice) "byY" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/portsolar) @@ -4022,7 +4022,7 @@ "bzr" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) "bzs" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 2; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/crew_quarters/locker) "bzt" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/crew_quarters/locker) -"bzu" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "floorgrime"},/area/crew_quarters/locker) +"bzu" = (/obj/structure/table,/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Core Modules"; req_access_txt = "20"},/obj/structure/window/reinforced,/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/obj/item/weapon/aiModule/core/freeformcore,/obj/item/weapon/aiModule/core/full/asimov,/obj/item/weapon/aiModule/core/full/asimovpp,/obj/item/weapon/aiModule/core/full/corp,/obj/item/weapon/aiModule/core/full/paladin,/obj/item/weapon/aiModule/core/full/robocop,/obj/item/weapon/aiModule/core/full/custom,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "bzv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/device/radio/beacon,/turf/simulated/floor{dir = 2; icon_state = "neutral"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) "bzw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area) "bzx" = (/obj/structure/table,/obj/item/weapon/book/manual/engineering_hacking{pixel_x = 4; pixel_y = 5},/obj/item/weapon/book/manual/engineering_construction{pixel_x = 0; pixel_y = 3},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/book/manual/engineering_singularity_safety{pixel_x = -4},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engineering) @@ -4311,7 +4311,7 @@ "bEU" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bEV" = (/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 8; icon_state = "whitepurplecorner"},/area/toxins/telesci) "bEW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) -"bEX" = (/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) +"bEX" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/turretid{control_area = "\improper AI Upload Chamber"; name = "AI Upload turret control"; pixel_x = 8; pixel_y = 24},/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; name = "Private AI Channel"; pixel_x = -8; pixel_y = 22},/obj/effect/landmark/start{name = "Cyborg"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 2; name = "AI Upload Access APC"; pixel_x = 0; pixel_y = -27},/obj/machinery/light/small{dir = 8},/obj/machinery/computer/security/telescreen{desc = "Used for watching the AI Upload."; dir = 4; name = "AI Upload Monitor"; network = list("AIUpload"); pixel_x = -29; pixel_y = 0},/turf/simulated/floor{tag = "icon-vault (SOUTHEAST)"; icon_state = "vault"; dir = 6},/area/turret_protected/ai_upload_foyer) "bEY" = (/obj/structure/bookcase{name = "bookcase (Adult)"},/turf/simulated/floor/wood,/area/library) "bEZ" = (/obj/machinery/newscaster{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/wood,/area/library) "bFa" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/library) @@ -4440,7 +4440,7 @@ "bHt" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/maintenance/storage) "bHu" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/maintenance/storage) "bHv" = (/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,/area/hallway/primary/fore) -"bHw" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/turretid{control_area = "\improper AI Upload Chamber"; name = "AI Upload turret control"; pixel_x = 8; pixel_y = 24},/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; name = "Private AI Channel"; pixel_x = -8; pixel_y = 22},/obj/effect/landmark/start{name = "Cyborg"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 2; name = "AI Upload Access APC"; pixel_x = 0; pixel_y = -27},/obj/machinery/light/small{dir = 8},/turf/simulated/floor{tag = "icon-vault (SOUTHEAST)"; icon_state = "vault"; dir = 6},/area/turret_protected/ai_upload_foyer) +"bHw" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 32},/obj/effect/landmark/start{name = "Cyborg"},/obj/machinery/light/small{dir = 4},/obj/machinery/computer/security/telescreen{desc = "Used for watching areas on the MiniSat."; dir = 8; name = "MiniSat Monitor"; network = list("MiniSat","tcomm"); pixel_x = 29; pixel_y = 0},/obj/machinery/camera/motion{c_tag = "AI Upload Foyer"; network = list("SS13","RD","AIUpload")},/turf/simulated/floor{tag = "icon-vault (SOUTHWEST)"; icon_state = "vault"; dir = 10},/area/turret_protected/ai_upload_foyer) "bHx" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) "bHy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"}) "bHz" = (/obj/structure/table/woodentable,/obj/item/weapon/folder/white,/turf/simulated/floor/wood,/area/security/vacantoffice) @@ -4595,7 +4595,7 @@ "bKs" = (/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) "bKt" = (/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/maintenance/fpmaint2{name = "Port Maintenance"}) "bKu" = (/obj/machinery/mecha_part_fabricator{dir = 1; id = "0"; name = "counterfeit fabricator"; req_access = "0"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) -"bKv" = (/obj/machinery/door/poddoor{auto_close = 300; id = "smindicate"; name = "outer blast door"},/obj/machinery/door_control{id = "smindicate"; name = "external door control"; pixel_x = -26; pixel_y = 0; req_access_txt = "150"},/turf/simulated/shuttle/plating,/area) +"bKv" = (/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor,/area/quartermaster/storage) "bKw" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_on"; name = "O2 to Airmix"; on = 1},/obj/machinery/atmospherics/pipe/simple{pipe_color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/turf/simulated/floor{icon_state = "bluefull"},/area/maintenance/storage) "bKx" = (/obj/structure/window/reinforced,/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "o2_in"; name = "Oxygen Supply Control"; output_tag = "o2_out"; sensors = list("o2_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple{pipe_color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/turf/simulated/floor{icon_state = "bluefull"},/area/maintenance/storage) "bKy" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/trinary/filter{dir = 4; filter_type = 1; icon_state = "intact_on"; name = "Gas filter (O2 tank)"; on = 1},/turf/simulated/floor{icon_state = "bluefull"},/area/maintenance/storage) @@ -4677,7 +4677,7 @@ "bLW" = (/obj/machinery/light{dir = 1},/obj/machinery/disposal,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = 32},/obj/structure/disposalpipe/trunk,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bLX" = (/obj/machinery/atmospherics/trinary/mixer{dir = 2; icon_state = "intact_on"; name = "Gas mixer (N2/O2)"; node1_concentration = 0.8; node2_concentration = 0.2; on = 1; pixel_x = 0; pixel_y = 0; target_pressure = 4500},/turf/simulated/floor,/area/maintenance/storage) "bLY" = (/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/maintenance/storage) -"bLZ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) +"bLZ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor{icon_state = "L9"},/area/hallway/primary/central) "bMa" = (/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},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) "bMb" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "bMc" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/northleft{dir = 1; icon_state = "left"; name = "Inner Pipe Access"; req_access_txt = "24"},/obj/machinery/atmospherics/pipe/simple{pipe_color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/turf/simulated/floor{icon_state = "dark"},/area/maintenance/storage) @@ -4784,7 +4784,7 @@ "bNZ" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 5; icon_state = "green"},/area/hydroponics) "bOa" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{dir = 2; icon_state = "green"},/area/hydroponics) "bOb" = (/obj/structure/disposalpipe/segment,/mob/living/simple_animal/mouse,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) -"bOc" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) +"bOc" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "bOd" = (/obj/item/weapon/storage/secure/safe{pixel_x = 6; pixel_y = 30},/obj/machinery/camera{c_tag = "Chief Engineer's Office"; dir = 2; network = list("SS13")},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/engine/chiefs_office) "bOe" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/engine,/area/toxins/telesci) "bOf" = (/obj/item/weapon/cigbutt,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/research{name = "Research Division"}) @@ -4815,7 +4815,7 @@ "bOE" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/storage) "bOF" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{pipe_color = "yellow"; icon_state = "intact-y"; level = 2},/turf/simulated/floor/plating,/area/maintenance/storage) "bOG" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/maintenance/storage) -"bOH" = (/obj/structure/table/woodentable,/obj/item/toy/cards,/turf/simulated/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) +"bOH" = (/obj/machinery/computer/upload/borg,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/westleft{base_state = "left"; dir = 2; icon_state = "left"; layer = 3.1; name = "Cyborg Upload Console Window"; req_access_txt = "16"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "bOI" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple{pipe_color = "green"; icon_state = "intact-g"; level = 2},/turf/simulated/floor/plating,/area/maintenance/storage) "bOJ" = (/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{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/medical/research{name = "Research Division"}) "bOK" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table,/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{dir = 2; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) @@ -4883,7 +4883,7 @@ "bPU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/chapel/main) "bPV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "bPW" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastleft{dir = 1; name = "Kitchen Window"; req_access_txt = "28"; req_one_access_txt = "0"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/paper,/obj/machinery/door/window/eastleft{dir = 2; name = "Hydroponics Window"; req_access_txt = "0"; req_one_access_txt = "30;35"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/hydroponics) -"bPX" = (/obj/structure/filingcabinet/filingcabinet,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bPX" = (/obj/machinery/computer/upload/ai,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/westleft{base_state = "right"; dir = 2; icon_state = "right"; layer = 3.1; name = "Upload Console Window"; req_access_txt = "16"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "bPY" = (/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/maintenance/aft{name = "Aft Maintenance"}) "bPZ" = (/obj/machinery/door/poddoor/shutters/preopen{id = "kitchenhydro"; name = "Service Shutter"},/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Service Door"; req_access_txt = "0"; req_one_access_txt = "35;28"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/hydroponics) "bQa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plating,/area/construction) @@ -4898,7 +4898,7 @@ "bQj" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Hydroponics"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/atmospherics/pipe/simple{pipe_color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/hydroponics) "bQk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "L4"},/area/hallway/primary/central) "bQl" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating{icon_plating = "warnplate"; icon_state = "warnplate"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) -"bQm" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "L8"},/area/hallway/primary/central) +"bQm" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor{icon_state = "floorgrime"},/area/crew_quarters/locker) "bQn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "L10"},/area/hallway/primary/central) "bQo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "L12"},/area/hallway/primary/central) "bQp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{desc = ""; icon_state = "L14"},/area/hallway/primary/central) @@ -4940,9 +4940,9 @@ "bQZ" = (/obj/machinery/power/apc{dir = 8; name = "Medical Security Checkpoint APC"; pixel_x = -24; pixel_y = 0},/obj/machinery/alarm{pixel_y = 28},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/structure/closet/secure_closet/security/med,/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/checkpoint/medical) "bRa" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/hydroponics) "bRb" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple{pipe_color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/turf/simulated/wall/r_wall,/area/maintenance/storage) -"bRc" = (/obj/structure/table,/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},/obj/item/device/radio/intercom{pixel_y = -25},/obj/item/weapon/kitchen/rollingpin,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) +"bRc" = (/obj/structure/table,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/aiModule/supplied/freeform,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "bRd" = (/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 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"bRe" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/machinery/camera/autoname{dir = 1; network = list("SS13")},/obj/structure/table,/obj/machinery/reagentgrinder,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) +"bRe" = (/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; name = "Private AI Channel"; pixel_y = -25},/obj/machinery/camera/motion{c_tag = "AI Upload Chamber - Starboard"; dir = 1; network = list("SS13","RD","AIUpload")},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "bRf" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/mint,/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/power/apc{dir = 2; name = "Kitchen APC"; pixel_y = -24},/obj/structure/cable/yellow,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "bRg" = (/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/maintenance/storage) "bRh" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "red"; icon_state = "intact-r"; level = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "caution"},/area/maintenance/storage) @@ -4965,7 +4965,7 @@ "bRy" = (/obj/structure/table,/obj/item/weapon/packageWrap,/obj/item/weapon/hand_labeler,/obj/machinery/door_control{id = "kitchenhydro"; name = "Service Shutter Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "28"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "bRz" = (/obj/machinery/vending/medical,/turf/simulated/floor{dir = 9; icon_state = "whitegreen"},/area/medical/medbay2{name = "Medbay Storage"}) "bRA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/central) -"bRB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) +"bRB" = (/obj/structure/table,/obj/machinery/light{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/obj/machinery/flasher{id = "AI"; pixel_x = 0; pixel_y = -24},/obj/item/weapon/aiModule/supplied/protectStation,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "bRC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light_switch{pixel_y = -23},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "bRD" = (/turf/simulated/floor{dir = 2; icon_state = "purplecorner"},/area/hallway/primary/central) "bRE" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) @@ -5007,10 +5007,10 @@ "bSo" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "bSp" = (/obj/machinery/light_construct,/obj/structure/sign/poster{pixel_y = -32},/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/maintenance/aft{name = "Aft Maintenance"}) "bSq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/aft{name = "Aft Maintenance"}) -"bSr" = (/obj/structure/table,/obj/item/weapon/aiModule/freeform,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) +"bSr" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Upload APC"; pixel_y = -24},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/camera/motion{c_tag = "AI Upload Chamber - Port"; dir = 1; network = list("SS13","RD","AIUpload")},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "bSs" = (/obj/structure/stool,/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/research{name = "Research Division"}) "bSt" = (/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{icon_state = "whitegreenfull"},/area/medical/medbay{name = "Medbay Central"}) -"bSu" = (/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1447; name = "Private AI Channel"; pixel_y = -25},/obj/machinery/camera{c_tag = "AI Upload Chamber - Starboard"; dir = 1; network = list("SS13","RD","AIUpload")},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) +"bSu" = (/obj/machinery/door/firedoor,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) "bSv" = (/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{dir = 1; icon_state = "warning"},/area/toxins/lab) "bSw" = (/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/machinery/light,/obj/item/weapon/cable_coil,/obj/item/weapon/cable_coil,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/lab) "bSx" = (/obj/structure/stool/bed/chair,/obj/machinery/light/small{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/medical/medbay{name = "Medbay Central"}) @@ -5019,7 +5019,7 @@ "bSA" = (/turf/simulated/wall/r_wall,/area/ai_monitored/storage/eva{name = "E.V.A. Storage"}) "bSB" = (/obj/machinery/door/airlock/maintenance{name = "Incinerator Access"; req_access_txt = "12"},/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/incinerator) "bSC" = (/turf/simulated/wall,/area/maintenance/incinerator) -"bSD" = (/obj/structure/table,/obj/item/weapon/aiModule/protectStation,/obj/machinery/light{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/obj/machinery/flasher{id = "AI"; pixel_x = 0; pixel_y = -24},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) +"bSD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"}) "bSE" = (/obj/structure/stool/bed/roller,/turf/simulated/floor{icon_state = "whitegreen"},/area/medical/medbay{name = "Medbay Central"}) "bSF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "bSG" = (/obj/structure/table,/obj/item/device/healthanalyzer,/obj/machinery/firealarm{dir = 4; pixel_x = 26; pixel_y = 28},/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/medical/medbay{name = "Medbay Central"}) @@ -5038,7 +5038,7 @@ "bST" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bSU" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bSV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/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/supply/hidden{dir = 5},/turf/simulated/floor/plating,/area/crew_quarters/hor) -"bSW" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Upload APC"; pixel_y = -24},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/camera{c_tag = "AI Upload Chamber - Port"; dir = 1; network = list("SS13","RD","AIUpload")},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) +"bSW" = (/obj/structure/filingcabinet/filingcabinet,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) "bSX" = (/obj/structure/closet/firecloset,/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/hallway/primary/central) "bSY" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "bSZ" = (/turf/simulated/floor{icon_state = "green"; dir = 4},/area/hydroponics) @@ -5132,7 +5132,7 @@ "bUJ" = (/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/hand_labeler,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "bUK" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plating/airless,/area/AIsattele) "bUL" = (/obj/structure/rack,/obj/item/weapon/extinguisher,/obj/item/clothing/mask/gas,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/starboard) -"bUM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/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/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/incinerator) +"bUM" = (/obj/item/toy/cards,/obj/structure/table/woodentable/poker,/turf/simulated/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) "bUN" = (/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,/area/gateway) "bUO" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 9; icon_state = "whitegreen"},/area/medical/sleeper{name = "Sleepers"}) "bUP" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/AIsattele) @@ -5253,7 +5253,7 @@ "bXa" = (/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},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/medical/medbay{name = "Medbay Central"}) "bXb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/engine,/area/maintenance/incinerator) "bXc" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 30; pixel_y = 0; pixel_z = 0},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/medical/medbay2{name = "Medbay Storage"}) -"bXd" = (/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 2},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 28},/turf/simulated/floor{dir = 9; icon_state = "whitegreen"},/area/medical/medbay{name = "Medbay Central"}) +"bXd" = (/obj/structure/sign/poster{pixel_y = -32},/obj/machinery/light_construct/small,/obj/structure/table/woodentable/poker,/obj/item/toy/cards,/turf/simulated/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) "bXe" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Desk"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "whitegreenfull"},/area/medical/medbay{name = "Medbay Central"}) "bXf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/starboard) "bXg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "whitegreenfull"},/area/medical/medbay{name = "Medbay Central"}) @@ -5354,7 +5354,7 @@ "bYX" = (/obj/machinery/atmospherics/binary/pump{dir = 4},/turf/simulated/floor/plating,/area/maintenance/incinerator) "bYY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2{name = "Medbay Storage"}) "bYZ" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/machinery/door_control{id = "Biohazard"; name = "Biohazard Shutter Control"; pixel_x = 0; pixel_y = 6; req_access_txt = "47"},/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "ResearchFoyer"; name = "Research Door Button"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = -4},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/checkpoint/science{name = "Security Post - Research Division"}) -"bZa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2{name = "Medbay Storage"}) +"bZa" = (/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},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bZb" = (/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/maintenance/aft{name = "Aft Maintenance"}) "bZc" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "whitegreenfull"},/area/medical/medbay{name = "Medbay Central"}) "bZd" = (/obj/machinery/door/airlock/maintenance{name = "Atmospherics Maintenance"; req_access_txt = "24"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/starboard) @@ -5572,7 +5572,7 @@ "cdh" = (/obj/machinery/door/poddoor{density = 1; icon_state = "closed"; id = "QMLoaddoor"; name = "Supply Dock Loading Door"; opacity = 1},/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/floor/plating,/area/quartermaster/storage) "cdi" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 8; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/central) "cdj" = (/obj/structure/table/woodentable,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/showcase{desc = "The famous NanoTrasen-brand microwave, the multi-purpose cooking appliance every station needs! This one appears to be drawn onto a cardboard box."; dir = 1; icon = 'icons/obj/kitchen.dmi'; icon_state = "mw"; name = "NanoTrasen-brand microwave"; pixel_x = 0; pixel_y = 2},/turf/simulated/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"}) -"cdk" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Gateway Atrium"; req_access_txt = "62"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor,/area/gateway) +"cdk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2{name = "Medbay Storage"}) "cdl" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;17"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/gateway) "cdm" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/storage) "cdn" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar{name = "\improper Maltese Falcon"}) @@ -5909,7 +5909,7 @@ "cjG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor{dir = 1; icon_state = "neutralcorner"},/area/hallway/primary/central) "cjH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/computer/general_air_control{frequency = 1443; level = 3; name = "Distribution and Waste Monitor"; pixel_y = -2; sensors = list("mair_in_meter" = "Mixed Air In", "air_sensor" = "Mixed Air Supply Tank", "mair_out_meter" = "Mixed Air Out", "dloop_atm_meter" = "Distribution Loop", "wloop_atm_meter" = "Waste Loop")},/turf/simulated/floor{icon_state = "caution"; dir = 4},/area/maintenance/storage) "cjI" = (/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"}) -"cjJ" = (/obj/structure/sign/poster{pixel_y = -32},/obj/structure/table/woodentable,/obj/machinery/light_construct/small,/turf/simulated/floor/wood,/area/maintenance/aft{name = "Aft Maintenance"}) +"cjJ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "cjK" = (/obj/structure/closet,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cjL" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/storage) "cjM" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) @@ -6190,7 +6190,7 @@ "cpb" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/simulated/floor,/area/assembly/chargebay) "cpc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) "cpd" = (/obj/machinery/light/small{dir = 1},/obj/machinery/light_switch{pixel_y = 28},/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/effect/decal/cleanable/cobweb2,/obj/structure/table/woodentable,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) -"cpe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/centcom{name = "Morgue"; opacity = 1; req_access_txt = "6"},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"cpe" = (/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/unary/vent_pump{dir = 1; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/incinerator) "cpf" = (/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "cpg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "cph" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Command Hallway - Central"; dir = 8; network = list("SS13")},/turf/simulated/floor{dir = 2; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) @@ -6225,8 +6225,8 @@ "cpK" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/medical/medbay3{name = "Medbay Aft"}) "cpL" = (/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen #4"; req_access_txt = "55"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/toxins/xenobiology) "cpM" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/central) -"cpN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 2; icon_state = "bluecorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) -"cpO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"cpN" = (/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},/turf/simulated/floor{dir = 9; icon_state = "whitegreen"},/area/medical/medbay{name = "Medbay Central"}) +"cpO" = (/obj/structure/table,/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},/obj/item/device/radio/intercom{pixel_y = -25},/obj/item/weapon/kitchen/rollingpin,/obj/machinery/camera{c_tag = "Kitchen"; dir = 1; network = list("SS13")},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "cpP" = (/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) "cpQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/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/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{dir = 2; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) "cpR" = (/obj/machinery/light/small,/obj/structure/table/woodentable,/obj/item/weapon/folder,/obj/item/weapon/folder,/obj/machinery/camera{c_tag = "Telecoms - Control Room"; dir = 1; network = list("SS13","tcomm")},/turf/simulated/floor{icon_state = "grimy"},/area/tcommsat/computer{name = "\improper Telecoms Control Room"}) @@ -6241,7 +6241,7 @@ "cqa" = (/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},/turf/simulated/floor{icon_state = "bot"},/area/assembly/robotics) "cqb" = (/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{icon_state = "dark"},/area/chapel/main) "cqc" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) -"cqd" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) +"cqd" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/structure/table,/obj/machinery/reagentgrinder,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "cqe" = (/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) "cqf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "cqg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) @@ -6434,9 +6434,9 @@ "ctL" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "dark"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) "ctM" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{dir = 2; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) "ctN" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{dir = 8; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) -"ctO" = (/obj/machinery/door/airlock/maintenance{name = "Genetics Maintenance"; req_access_txt = "5;9"; req_one_access_txt = "0"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) +"ctO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/camera{c_tag = "Kitchen - Coldroom"; dir = 1; network = list("SS13")},/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "ctP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/machinery/door/firedoor,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/aft) -"ctQ" = (/obj/machinery/mineral/mint,/turf/simulated/floor,/area/mine/production) +"ctQ" = (/obj/structure/flora/kirbyplants{desc = "A plastic potted plant."; layer = 4.1; pixel_y = 3},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "greencorner"},/area/hallway/primary/central) "ctR" = (/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{dir = 4; icon_state = "warning"},/area/assembly/robotics) "ctS" = (/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/solar/port) "ctT" = (/obj/machinery/door/window{dir = 4; name = "Mass Driver"; req_access_txt = "22"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) @@ -6643,11 +6643,11 @@ "cxM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/toxins/xenobiology) "cxN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "cxO" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) -"cxP" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/clothing/tie/stethoscope,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"cxP" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor{icon_state = "L8"},/area/hallway/primary/central) "cxQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "cxR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/aft{name = "Aft Maintenance"}) "cxS" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/assembly/chargebay) -"cxT" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Genetics"; opacity = 1; req_access_txt = "5; 9"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 2; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "dark"},/area/medical/genetics) +"cxT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/firealarm{pixel_y = 28},/turf/simulated/floor{dir = 4; icon_state = "neutralcorner"},/area/hallway/primary/central) "cxU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/assembly/chargebay) "cxV" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{dir = 4; icon_state = "whiteblue"},/area/medical/genetics_cloning) "cxW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 17},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/aft{name = "Aft Maintenance"}) @@ -6663,7 +6663,7 @@ "cyg" = (/turf/simulated/wall/r_wall,/area/maintenance/starboardsolar) "cyh" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact-f"},/turf/simulated/floor,/area/mine/production) "cyi" = (/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) -"cyj" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Genetics Lab"; req_access_txt = "5; 9"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "whitebluefull"},/area/medical/genetics) +"cyj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Gateway Atrium"; req_access_txt = "62"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor{icon_state = "delivery"},/area/gateway) "cyk" = (/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{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology) "cyl" = (/obj/item/weapon/storage/secure/safe{pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 6; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/crew_quarters/hor) "cym" = (/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{pipe_color = "blue"; dir = 2; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/toxins/xenobiology) @@ -7417,7 +7417,7 @@ "cMG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/genetics) "cMH" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry) "cMI" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 4; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/medbay3{name = "Medbay Aft"}) -"cMJ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay3{name = "Medbay Aft"}) +"cMJ" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 4; icon_state = "neutralcorner"},/area/hallway/primary/central) "cMK" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "whitebluecorner"},/area/medical/medbay3{name = "Medbay Aft"}) "cML" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "grimy"},/area/chapel/office) "cMM" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac) @@ -7558,7 +7558,7 @@ "cPr" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/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")},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/chapel/main) "cPs" = (/obj/item/device/radio/intercom{pixel_y = -25},/turf/simulated/floor/engine,/area/toxins/xenobiology) "cPt" = (/obj/structure/table,/obj/item/trash/popcorn,/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/medical/virology) -"cPu" = (/obj/structure/rack,/obj/item/clothing/head/that,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/suit/wcoat,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) +"cPu" = (/obj/structure/rack,/obj/item/clothing/head/that,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/tie/waistcoat,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/holding) "cPv" = (/obj/item/weapon/beach_ball,/turf/unsimulated/beach/sand,/area/centcom/holding) "cPw" = (/turf/space/transit/north/shuttlespace_ns15,/area/shuttle/escape/transit) "cPx" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve) @@ -9276,6 +9276,7 @@ "dwt" = (/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/simulated/floor/plating,/area/assembly/robotics) "dwu" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/obj/structure/plasticflaps,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "dwv" = (/obj/machinery/conveyor{dir = 8; id = "mining_internal"},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) +"dww" = (/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor/wood,/area/security/vacantoffice) "dwx" = (/obj/machinery/mineral/stacking_machine,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "dwy" = (/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},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/assembly/robotics) "dwz" = (/obj/structure/holowindow,/obj/item/weapon/beach_ball/holoball/dodgeball,/turf/simulated/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/source_boxingcourt) @@ -9327,8 +9328,10 @@ "dxt" = (/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve) "dxu" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership) "dxv" = (/obj/machinery/computer/security/telescreen,/turf/unsimulated/floor{icon_state = "redbluefull"; dir = 2},/area/tdome/tdomeobserve) +"dxw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{dir = 2; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) "dxx" = (/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{tag = "icon-warnwhite (NORTHEAST)"; icon_state = "warnwhite"; dir = 5},/area/medical/virology) "dxy" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/obj/structure/flora/grass/brown,/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership) +"dxz" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 2; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) "dxA" = (/obj/machinery/door/airlock/centcom{name = "Thunderdome"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdomeobserve) "dxB" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership) "dxC" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership) @@ -9449,6 +9452,7 @@ "dzN" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/shuttle/plating{dir = 1; icon_state = "warning"},/area/shuttle/escape/centcom) "dzO" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay3{name = "Medbay Aft"}) "dzP" = (/obj/machinery/door/poddoor{id = "mixvent"; name = "Mixer Room Vent"},/turf/simulated/floor/engine/vacuum,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"dzQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor{dir = 1; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) "dzR" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/simulated/floor{dir = 9; icon_state = "whitegreen"},/area/medical/virology) "dzS" = (/obj/machinery/smartfridge/chemistry/virology,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor{icon_state = "whitegreenfull"},/area/medical/virology) "dzT" = (/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/hallway/secondary/entry{name = "Arrivals"}) @@ -9469,11 +9473,13 @@ "dAi" = (/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},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/medical/virology) "dAj" = (/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/obj/machinery/meter,/obj/machinery/door_control{id = "mixvent"; name = "Mixing Room Vent Control"; pixel_x = -25; pixel_y = 5; req_access_txt = "7"},/obj/machinery/ignition_switch{id = "mixingsparker"; pixel_x = -25; pixel_y = -5},/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor{dir = 4; icon_state = "warnwhitecorner"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "dAk" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"dAl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor{dir = 4; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"}) "dAm" = (/obj/structure/table,/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,/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/medical/genetics_cloning) "dAn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor{dir = 1; icon_state = "neutralcorner"},/area/hallway/primary/aft) "dAo" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/laborcamp/station) "dAp" = (/obj/structure/table,/obj/item/weapon/book/manual/infections{pixel_y = 7},/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{dir = 5; icon_state = "whitegreen"},/area/medical/virology) "dAq" = (/turf/unsimulated/wall/fakedoor{name = "Centcom Security"},/area/centcom/evac) +"dAr" = (/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar{name = "\improper Maltese Falcon"}) "dAs" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/starboardsolar) "dAt" = (/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) "dAu" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"; pipe_color = "blue"},/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{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/locker) @@ -9483,15 +9489,17 @@ "dAy" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/assembly/robotics) "dAz" = (/obj/effect/landmark/start{name = "Roboticist"},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/assembly/robotics) "dAA" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Virology APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 9; icon_state = "whitegreen"},/area/medical/virology) -"dAB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"dAB" = (/obj/structure/table/woodentable,/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/wood,/area/library) "dAC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) "dAD" = (/turf/simulated/floor{dir = 6; icon_state = "whitehall"},/area/medical/medbay3{name = "Medbay Aft"}) "dAE" = (/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/obj/machinery/meter,/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "tox_airlock_pump"; exterior_door_tag = "tox_airlock_exterior"; id_tag = "tox_airlock_control"; interior_door_tag = "tox_airlock_interior"; pixel_x = -24; pixel_y = 0; sanitize_external = 1; sensor_tag = "tox_airlock_sensor"},/turf/simulated/floor{dir = 1; icon_state = "warnwhitecorner"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "dAF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay3{name = "Medbay Aft"}) "dAG" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 8; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/hallway/primary/aft) +"dAH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor/carpet,/area/library) "dAI" = (/obj/structure/closet,/obj/item/device/assembly/prox_sensor{pixel_x = 2; pixel_y = -2},/obj/item/device/assembly/signaler{pixel_x = -2; pixel_y = 5},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "dAJ" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve) "dAK" = (/obj/machinery/atmospherics/valve{dir = 4; name = "manual outlet valve"},/turf/simulated/floor{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/mixing{name = "\improper Toxins Lab"}) +"dAL" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"}) "dAM" = (/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/maintenance/aft{name = "Aft Maintenance"}) "dAN" = (/obj/structure/showcase/fakesec,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac) "dAO" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/evac) @@ -9499,6 +9507,7 @@ "dAQ" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/tdome/tdomeobserve) "dAR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sign/nosmoking_2{pixel_x = 28},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/medical/medbay3{name = "Medbay Aft"}) "dAS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/turf/simulated/floor{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/hallway/primary/central) +"dAT" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Genetics"; opacity = 1; req_access_txt = "9"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 2; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "dark"},/area/medical/genetics) "dAU" = (/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{icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"}) "dAV" = (/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{icon_state = "white"},/area/medical/research{name = "Research Division"}) "dAW" = (/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"}) @@ -9509,6 +9518,7 @@ "dBb" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/evac) "dBc" = (/obj/effect/landmark/start{name = "Roboticist"},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "dBd" = (/obj/machinery/atmospherics/pipe/simple/insulated{icon_state = "intact"; dir = 4},/turf/simulated/wall/r_wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) +"dBe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/centcom{name = "Morgue"; opacity = 1; req_access_txt = "5"},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "dBf" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/laborcamp/station) "dBg" = (/obj/machinery/door/poddoor{id = "toxinsdriver"; name = "Toxins Launcher Bay Door"},/turf/simulated/floor/plating,/area/toxins/mixing{name = "\improper Toxins Lab"}) "dBh" = (/obj/structure/rack,/obj/item/weapon/tank/air,/obj/item/weapon/wrench,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) @@ -9570,6 +9580,7 @@ "dCl" = (/obj/machinery/door/airlock/centcom{name = "Centcom Security"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "dCm" = (/obj/structure/filingcabinet/chestdrawer,/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{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "dCn" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) +"dCo" = (/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{icon_state = "white"},/area/medical/research{name = "Research Division"}) "dCp" = (/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/toxins/mixing{name = "\improper Toxins Lab"}) "dCq" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 25},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 0; icon_state = "in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine/vacuum,/area/toxins/mixing{name = "\improper Toxins Lab"}) "dCr" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/virology) @@ -9586,10 +9597,13 @@ "dCC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/wall/r_wall,/area/toxins/mixing{name = "\improper Toxins Lab"}) "dCD" = (/obj/machinery/light/small{dir = 4},/obj/structure/closet,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "dCE" = (/turf/space/transit/east/shuttlespace_ew5,/area/shuttle/escape_pod4/transit) +"dCF" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"dCG" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/clothing/tie/stethoscope,/obj/structure/extinguisher_cabinet{pixel_x = 6; pixel_y = -30},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) "dCH" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"}) "dCI" = (/obj/item/weapon/cigbutt,/obj/machinery/hologram/holopad,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay3{name = "Medbay Aft"}) "dCJ" = (/obj/machinery/door/firedoor/border_only{dir = 8},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/medbay3{name = "Medbay Aft"}) "dCK" = (/turf/space/transit/east/shuttlespace_ew14,/area/shuttle/escape_pod4/transit) +"dCL" = (/obj/machinery/door/airlock/maintenance{name = "Genetics Maintenance"; req_access_txt = "9"; req_one_access_txt = "0"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "dCM" = (/obj/structure/closet/crate,/obj/item/weapon/cable_coil,/obj/item/weapon/grenade/chem_grenade,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"}) "dCN" = (/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{dir = 4; icon_state = "whitegreen"},/area/medical/medbay3{name = "Medbay Aft"}) "dCO" = (/turf/space/transit/east/shuttlespace_ew15,/area/shuttle/escape_pod4/transit) @@ -9629,12 +9643,16 @@ "dDw" = (/turf/simulated/wall,/area/mine/laborcamp) "dDx" = (/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{icon_state = "white"},/area/medical/research{name = "Research Division"}) "dDy" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay3{name = "Medbay Aft"}) +"dDz" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_research{name = "Genetics Lab"; req_access_txt = "5;9"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "whitebluefull"},/area/medical/genetics) +"dDA" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{icon_state = "door_closed"; id_tag = "AuxGenetics"; locked = 0; name = "Genetics Lab"; req_access_txt = "9"; req_one_access_txt = "0"},/turf/simulated/floor,/area/medical/genetics) "dDB" = (/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},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/virology) "dDC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) "dDD" = (/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{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/virology) "dDE" = (/obj/structure/lattice,/turf/space,/area/mine/unexplored) "dDF" = (/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/handcuffs,/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 5; icon_state = "whitegreen"},/area/medical/virology) +"dDG" = (/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,/area/medical/genetics) "dDH" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"dDI" = (/obj/machinery/atmospherics/portables_connector,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "dDJ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/medbay3{name = "Medbay Aft"}) "dDK" = (/obj/machinery/door/firedoor/border_only{dir = 8},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/medbay3{name = "Medbay Aft"}) "dDL" = (/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{dir = 4; icon_state = "whitegreen"},/area/medical/medbay3{name = "Medbay Aft"}) @@ -9666,13 +9684,15 @@ "dEl" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/door_control{id = "isola"; name = "Privacy Shutters"; pixel_y = 25},/obj/machinery/light_switch{pixel_x = 24; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/medical/exam_room{name = "Patient Room B"}) "dEm" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "isola"; name = "Privacy Shutters"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/exam_room{name = "Patient Room B"}) "dEn" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 0},/obj/structure/lattice,/turf/space,/area) +"dEo" = (/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/effect/landmark{name = "lightsout"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay3{name = "Medbay Aft"}) +"dEp" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "dEq" = (/turf/simulated/wall,/area/medical/exam_room{name = "Patient Room B"}) "dEr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor{dir = 1; icon_state = "whitegreencorner"},/area/medical/medbay3{name = "Medbay Aft"}) "dEs" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/wall,/area/mine/laborcamp) "dEt" = (/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{icon_state = "white"},/area/medical/medbay3{name = "Medbay Aft"}) "dEu" = (/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{dir = 4; icon_state = "whiteblue"},/area/medical/medbay3{name = "Medbay Aft"}) -"dEv" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{icon_state = "door_closed"; id_tag = "AuxGenetics"; locked = 0; name = "Genetics Lab"; req_access_txt = "5;9"; req_one_access_txt = "0"},/turf/simulated/floor,/area/medical/genetics) -"dEw" = (/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 = "5;9"; req_one_access_txt = "0"},/turf/simulated/floor,/area/medical/genetics) +"dEv" = (/obj/machinery/door/poddoor{auto_close = 300; id = "smindicate"; name = "outer blast door"},/obj/machinery/door_control{id = "smindicate"; name = "external door control"; pixel_x = -26; pixel_y = 0; req_access_txt = "150"},/turf/simulated/shuttle/plating,/area/syndicate_station/start) +"dEw" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "dEx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/toxins/server{name = "\improper Research Division Server Room"}) "dEy" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 2; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/medical/virology) "dEz" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/exam_room{name = "Patient Room B"}) @@ -9702,6 +9722,7 @@ "dEX" = (/obj/machinery/door_control{id = "nukeop_ready"; name = "mission launch control"; pixel_x = -26; pixel_y = 0; req_access_txt = "150"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/syndicate_mothership) "dEY" = (/obj/machinery/door/poddoor/shutters{id = "nukeop_ready"; name = "shuttle dock"},/turf/unsimulated/floor,/area/syndicate_mothership) "dEZ" = (/obj/structure/rack,/obj/item/weapon/storage/secure/briefcase,/turf/simulated/shuttle/plating{dir = 1; icon_state = "warning"},/area/shuttle/escape/centcom) +"dFa" = (/obj/machinery/mineral/mint{input_dir = 8},/turf/simulated/floor,/area/mine/production) "dFc" = (/turf/simulated/wall/r_wall,/area/mine/laborcamp/security) "dFd" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/wall/r_wall,/area/mine/laborcamp/security) "dFe" = (/turf/simulated/wall,/area/mine/laborcamp/security) @@ -9938,7 +9959,6 @@ "dJJ" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/closet/secure_closet/freezer/fridge,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "dJK" = (/obj/structure/table,/obj/item/clothing/mask/cigarette/pipe,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"}) "dJL" = (/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},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/medical/virology) -"dJM" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/flora/kirbyplants{desc = "A plastic potted plant."; layer = 4.1; pixel_y = 3},/turf/simulated/floor{dir = 8; icon_state = "greencorner"},/area/hallway/primary/central) "dJN" = (/obj/machinery/shower{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "floorgrime"},/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) "dJO" = (/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/obj/machinery/door_control{id = "AuxShower"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 25; req_access_txt = "0"; specialfunctions = 4},/obj/item/weapon/soap/nanotrasen,/turf/simulated/floor{icon_state = "floorgrime"},/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) "dJP" = (/obj/machinery/door/airlock{id_tag = "AuxShower"; name = "Shower"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "floorgrime"},/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) @@ -9947,7 +9967,6 @@ "dJS" = (/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/pen/red,/obj/structure/table,/obj/machinery/requests_console{department = "Virology"; name = "Virology Requests Console"; pixel_x = 29; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/medical/virology) "dJT" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "floorgrime"},/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) "dJV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor{icon_state = "floorgrime"},/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) -"dJW" = (/obj/machinery/atmospherics/portables_connector,/obj/structure/window/reinforced{dir = 8},/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/toxins/mixing{name = "\improper Toxins Lab"}) "dJX" = (/obj/structure/flora/kirbyplants{desc = "A plastic potted plant."; layer = 4.1; pixel_y = 3},/turf/simulated/floor/wood,/area/library) "dJY" = (/obj/machinery/door/airlock{id_tag = "AuxToilet1"; name = "Unit 1"},/turf/simulated/floor,/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"}) "dJZ" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Virologist"},/turf/simulated/floor{dir = 1; icon_state = "whitegreencorner"},/area/medical/virology) @@ -10063,7 +10082,6 @@ "dMp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/medical/virology) "dMq" = (/obj/machinery/camera{c_tag = "Medbay Hallway Aft"; dir = 4; network = list("SS13","Medbay")},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/medical/medbay3{name = "Medbay Aft"}) "dMr" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"dMs" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "dMt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_interior"; locked = 1; name = "Virology Interior Airlock"; req_access_txt = "39"},/turf/simulated/floor{icon_state = "whitegreenfull"},/area/medical/virology) "dMu" = (/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{icon_state = "white"},/area/medical/virology) "dMv" = (/obj/machinery/access_button{command = "cycle_exterior"; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = 0; pixel_y = 24; req_access_txt = "39"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_exterior"; locked = 1; name = "Virology Exterior Airlock"; req_access_txt = "39"},/turf/simulated/floor{icon_state = "whitegreenfull"},/area/medical/virology) @@ -10337,26 +10355,26 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaadaaaaadaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaadauWaaiabuaboaboabpaboabqaboaEzaboaboaboabtaboaaiauNahqaEGaEBaEAahqaaaaadaaaaaaaaaaIWaaaaaaaaaaadaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadauvaEgaehaeiaejaekaaaaaEaakaaEaadaadaaaaaaaaaaaaaaaaaaaaaaaaaakaadawoawoawoawoawoaadafMaadawoawoawoawoawoaadaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaaaaagaagaagaagaagaaaaagaagaagaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaadaaaaadaadabYaadaadaaaaaaaaaaaaaaaauWabbabJaboabDaayabEabqabFaENabGaboabHaayabIaaiauNawyavoavnavqavpaaaaadaaaabvabvabvabvabvaaaaadaaaaaaabwabwaWyaWMaYuabwabwaaaaadaaaaaaaadaaaaaaaaaaadaaaaaaaaaaadaaaaaaaaaaaaaadaaaaaaaaaaaaaeaaElaaMaaraaraaLaaaaadaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaEaaaabCabCaupabCabCaaaafMaaaabCabCaupabCabCaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaaaaagaagaagaagaagaaaaagaagaagaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaadaadaaaaadaaaaaaajEajFajEaadaaaaaaaaaaaaaadauWaaiaGeaboaccaayacdaceaDRaDSacgaboachaayacgaaiauNahqaDtauCaDrahqaadaadabvabvaDwaDvaNBabvabvaadaadabwabwaNTaDAaDCaSMaDOabwabwaadahwahwaLRahwahwaadaadaadaadaeaauvaeaaAhaAiaAjaeaaAhaAiaAjaeaaeaaBxaeaaBKaBDaAiaCBaAiaAiaAPaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaakaaaafgafgafgafgafgaupaGSaupafgafgafgafgafgaadaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaaaaaaaaaaaaaaaaaaaaaaagaagaagaagaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaadaaaaaaaadaadaaaakhaQJakhaadaadaadaadaadaadauNaaiaboaboabsactaboabqaboaEtabqaboabsacvabqaaiaajayOaWfaWeaWkayOaadabvabvaOJaEqaEpaEpaErabvabvaadabwaDYaEaaEbaEeaUCaVuaEmabwaadahwaSNaSPaWxahwaaaaaaaaaaadaeaaEfaeaaDpaCUaDoaeaaDXaDGaDWaeaaiaaCEaCCaCFamiamiamiamiamiayEaadaadaadaadaadaaaaaaaaaaaaaaaaakaadafJafKafKafKafKaaAafMaazafOafOafOafOafPaadaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadakEakFakGakHakIaaaaadaaaaaaaadauWaBuaBvaBwaByaBAaAQaARaATaAWaBfaBqaCYaBtaBLaFVaBJaBIaBWaBRaBOaBNaadabvaDiaBBaBHaBGaBFaBEaCtabvaadaIsaJRaLCaCvaCwaCbaEVaEyaERaadaxSaAqaFbaCAaLRaaacxdcxdcxdaeaaxTaymayoaxWaxWaxUaxWaxZaydayFagGagGagGayEamiamiamiamiamiayGaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaakaadawoawoawoawoawoaadafMaadawoawoawoawoawoaaaaaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaadaaaaaaaaaaaaaadaadakTakUaFRanWakTaaaaadaaaaaaaadauWaCNaaCaCTaCOaCPaCIaCJaCGaCHaCLaCMaNbaFYaCLaDgaCHaDhaSLaGcaCTaDkaadabvaOiaBBaBHaBGaBFaBEaDaabvaadaSJaDbaQgaDcaSKaxnaQgaCXaRvaadahwaAqaAraCAahwadradradYagRaeaaeaaeaaxJaieavhavhazqayYaznavvavvayWayVayJamiamiamiamiamiayXaeaaeaaeaaaaaadaaaaaaaaaaaaaaaaadaadaaaaadaadaaaaaaaaaafMaaaaaaaadaaaaaaaadaaaaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaoFaoFaKCalGalGalGalHakTaqaavbareakTaWoagVaWoajeaadauNaaiaaiazXazZaAaaaiazKazMazKaeMaeMaeMaeMaeMaABaAAaAzaexaexaexabvabvabvaEhazmazlaFcazjazjazEabvaadabwaKYaCeaBYaCcaAIaBXauYabwaadahwaAqaAraCAahwaAcadraAdadsaAeaKGaeaavfaieavhavjavkavkavkavxavvavSavNavTamiamiamiamiamiawbawaawdawcaaaaadaadaadaadaadaadaadaaaaaaaaaaadaaaaaaaaaafMaaaaaaaaaaaaaaaaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaadaaaaaaaadaadaaaakhaQJakhaadaadaadaadaadaadauNaaiaboaboabsactaboabqaboaEtabqaboabsacvabqaaiaajayOaWfaWeaWkayOaadabvabvaOJaEqaEpaEpaErabvabvaadabwaFqaEaaEbaEeaUCaVuaFFabwaadahwaSNaSPaWxahwaaaaaaaaaaadaeaaEfaeaaDpaCUaDoaeaaDXaDGaDWaeaaiaaCEaCCaCFamiamiamiamiamiayEaadaadaadaadaadaaaaaaaaaaaaaaaaakaadafJafKafKafKafKaaAafMaazafOafOafOafOafPaadaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaadaadakEakFakGakHakIaaaaadaaaaaaaadauWaBuaBvaBwaByaBAaAQaARaATaAWaBfaBqaCYaBtaBLaFVaBJaBIaBWaBRaBOaBNaadabvaDiaBBaBHaBGaBFaBEaCtabvaadaIsaJRaLCaCvaCwaCbaEVaEyaERaadaEIaAqaFbaCAaLRaaacxdcxdcxdaeaaxTaymayoaxWaxWaxUaxWaxZaydayFagGagGagGayEamiamiamiamiamiayGaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaakaadawoawoawoawoawoaadafMaadawoawoawoawoawoaaaaaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaadaaaaaaaaaaaaaadaadakTakUaFRanWakTaaaaadaaaaaaaadauWaCNaaCaCTaCOaCPaCIaCJaCGaCHaCLaCMaNbaFYaFcaDgaCHaDhaSLaGcaCTaDkaadabvaOiaBBaBHaBGaBFaBEaDaabvaadaSJaDbaQgaDcaSKaxnaQgaCXaRvaadahwaAqaAraCAahwadradradYagRaeaaeaaeaaxJaieavhavhazqayYaznavvavvayWayVayJamiamiamiamiamiayXaeaaeaaeaaaaaadaaaaaaaaaaaaaaaaadaadaaaaadaadaaaaaaaaaafMaaaaaaaadaaaaaaaadaaaaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaoFaoFaKCalGalGalGalHakTaqaavbareakTaWoagVaWoajeaadauNaaiaaiazXazZaAaaaiazKazMazKaeMaeMaeMaeMaeMaABaAAaAzaexaexaexabvabvabvaEhazmazlaEmazjazjazEabvaadabwaKYaCeaBYaCcaAIaBXauYabwaadahwaAqaAraCAahwaAcadraAdadsaAeaKGaeaavfaieavhavjavkavkavkavxavvavSavNavTamiamiamiamiamiawbawaawdawcaaaaadaadaadaadaadaadaadaaaaaaaaaaadaaaaaaaaaafMaaaaaaaaaaaaaaaaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNOaMzaMuaoHamnaMmaMlakTamoawJamqakTaLOaLEaEHaWoajeauNauNaaiaaiaAHaaiaaiaaiaAHaaiafQaAGaAEaAFaeMaCdaCKaCzaexaAuaLnaAvabvabvabvaAtaAsabvabvabvabvabvawhabwabwawGawIaEnawzawFabwabwawhahnaDeaDjaEoahwadradradsadsaALaAMaeaaxJaieaxEaiXaiUaiUaxPajJawKahSaliaxBamiamiamiamiamiaxBaxCakOakVaaaaadaaaaaaaaaaaaaaaaadaaaaaaaaaaadaadaadaadafMaadaadaadaadaadaakaadaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaoFaugaoFaveamnavXaxbalDakTaluanbakTaxDazoawYatCajeaadaadaadaaaaadaaaaaaaaaaaaaaaakBakAakCatUarGasBaqvaqAaexaknailakmabvakuakoakpakxawtatyatwaoTabvanMamBaaQaqTaqwanYattatsaaQahWaqqahnatvatuakvahwamzadsadsadsadsadraeaalraltalsalkaljaljallajJakOahSaliakWamiamiamiamiamiakWaleakOakVaadaadaaaaaaaaaaaaaaaaadaaaaaaaadaadaaaaaaagUaiOagUaaaaaaaadaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaqjamZaqjaqXargaqlaqmarkarJakKbGxaWoarTamuasFatQasnaadaadaadaadaadaadaadaadaadaadafQaeMaeMaeMaeMajLacZajMaexaikailaimabvaqcaipaiqairaiJakbacBanHakdakwakkajOajNajVajPajXajWajZajYakzakaakjakcarfahwaicadsajwaibadsadrajfahYaieaiYaiXaiVaiUaiTajJajKahSajHajBamiamiamiamiamiajyajzajkajxaaaaadaadaadaadaadaadaadaadaadaadaaaaaaaaaamXamYamXaaaaaaaadaaaaacaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaoFaugaoFaveamnavXaxbalDakTalManbakTaxDazoawYatCajeaadaadaadaaaaadaaaaaaaaaaaaaaaakBakAakCatUarGasBaqvaqAaexaknailakmabvakuakoakpakxawtatyatwaoTabvanMamBaaQaqTaqwanYattatsaaQahWaqqahnatvatuakvahwamzadsadsadsadsadraeaalraltalsalkaljaljallajJakOahSaliakWamiamiamiamiamiakWaleakOakVaadaadaaaaaaaaaaaaaaaaadaaaaaaaadaadaaaaaaagUaiOagUaaaaaaaadaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaqjamZaqjaqXargaqlaqmarkarJalubGxaWoarTamuasFatQasnaadaadaadaadaadaadaadaadaadaadafQaeMaeMaeMaeMajLacZajMaexaikailaimabvaqcaipaiqairaiJakbacBanHakdakwakkajOajNajVajPajXajWajZajYakzakaakjakcarfahwaicadsajwaibadsadrajfahYaieaiYaiXaiVaiUaiTajJajKahSajHajBamiamiamiamiamiajyajzajkajxaaaaadaadaadaadaadaadaadaadaadaadaaaaaaaaaamXamYamXaaaaaaaadaaaaacaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaoFapeaoFanQaisaiDaoOaoFbHMapyarXapKarXapvapRanJaWoapZaKBagVaKBaKBaKBaaaadradradrafQagXagZagYahjahGahDahEapWahBahAahBaiNahKahKaiEaiCaiLaiKaiHaiHapMahJahIahHaguahzahyaiAaizaiyaixaiwaiSaijaiiahxahwagQadsadsanIadsadraiaahYaieagGaigaifaiPaihahPahQahSagNahUamiamiamiamiamiafFaeaahOaeaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaagUanDaqRanDagUaaaaadaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaoFamWaqkaqkaqkagnamVaoFaoYaiBbrTaWoanKamHanEanFaWoaKBaKBarnaKBafNaKBafZadraklaicafQafYafXafWagdageagfaggaexagaagbagcabvagjagkaglaoyabQaenaidanGaexakiafzahiaguahkaffahuahtahvafjahoahnahnagtadradradradradrafHadradraeaagIagHagGagGagLagKagJahrahragMagNahNamiamiamiamiamiafFbWIcsgavAavAavAavAavAavAafravAavAaaaaaaaadaadaadaoBaoCamYaoDaoEaadaadaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaaaaaaaaaaaaaaaaadaaaaadaaaaadaaaaoFaesaiFaiIajqalKammaoFbrTaiBbrTaKBardbrTbrTbrTdKcaKBbrSaKSaKBaKBaKBahLafxagOaviahMafyafyafAafvaeraiRalvabvahgafwaheabvabvacCagyacCabvahhahCagWaduaflafzagxagwaguagsagiaftafsafjagpagoagmafeaeYaeYaeYafGaeXaioaeXaeXahFagEagFafLafLafIagBagzafCafCafCafDafBamiamiamiamiamiafFaUoaQsavAaePafEaQsaeZavAagCagDavAavAaaaaadaaaaaaaptapuaoIandaptaaaaadaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaKBaKBafUaKBaadaaaaadaadaadaadaadaKBafUaKBaoFahdahfaoFaoFaoFaoFbrTahbarXaeJajnagqaiWbrTajAaKBbHMagSagvafVaKBadYahsagPagAafQaeLaeKaeKafTaeraiRacPacIaeDaeEaeFahlafbaemaenaeoabvaenacBafkaexafSafzafoafnafqafpaeHaeGafcafjahVacTacTaaQaaQaaQaaQaocadradradradraeaadZadXadFadnadkadjadgaeRaeVaeeaeNaecaebaebaebaebaebaeWaThaQsavAaQsaQsaQsaQsavAaQsaQsaQsavAaaaaadaaaaaaaptanoadfafmaptaaaaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaaaaaaaaaaaaaaaaadaaaaadaaaaadaaaaoFaesaiFaiIajqalKammaoFbrTaiBbrTaKBardbrTbrTbrTdKcaKBbrSaKSaKBaKBaKBahLafxagOaviahMafyafyafAafvaeraiRalvabvahgafwaheabvabvacCagyacCabvahhahCagWaduaflafzagxagwaguagsagiaftafsafjagpagoagmafeaeYaeYaeYafGaeXaioaeXaeXahFagEagFafLafLafIagBagzafCafCafCafDafBamiamiamiamiamiafFaUoaQsavAaePakKaQsaeZavAagCagDavAavAaaaaadaaaaaaaptapuaoIandaptaaaaadaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaKBaKBafUaKBaadaaaaadaadaadaadaadaKBafUaKBaoFahdahfaoFaoFaoFaoFbrTahbarXaeJajnagqaiWbrTajAaKBbHMagSagvafVaKBadYahsagPagAafQaeLaeKaeKafTaeraiRacPacIaeDaeEaeFahlafbaemaenaeoabvaenacBafkaexafSafzafoafnafqafpaeHaeGafcafjahVacTacTaaQaaQaaQaaQaocadradradradraeaadZadXadFadnadkadjadgaeRaeVaeeaeNaecaebaebaebaebaebaeWaThaQsavAaQsaQsaQsaQsavAaQsaQsafEavAaaaaadaaaaaaaptanoadfafmaptaaaaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKBajtbMbaKBanLamsamsamsamsamsajsaKBbrSajtaKBaeTaDnaefbMeaspaKBbwqaedbMbaKBardafdafuaeSaeOaKBaeubrTaqhbrTaKBaetahsaczaczaczacKacKacKacKadWaiRassadTadUaeAaeBadQaeIadOaeyaevaewaenaaXaghaexaezadRadPadNadMadLadJadKadJadIadHafaadEadEaepadBaaQaocadrabXabZaklabcabcabcabcabcaciacmackabcabcabcabcabcabVavAabWacbadlavAavAaQsavAaQsaQsacnaQsavAaThaddacoavAaaaaadaaaaaaaptaqZadearbaptaaaaadaaaaaaaaaaadaaaaadaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaadaadaaaaaaaaaaaaaadaadafUaeCaeUadVafRbrTbrTbrTbrTbrTahcaaIaeqbKoacqacrbrTbrTbrTbrTbrTaqhbQSadradradradradradradradradradracAadradradrabUaczacyacxacwacuacsacKacLaiRacPacIacJacQacSacFadoacGacHabPabQacDacEaegaduadzadvadcadaadtadmacWacVacYacXacUacTabNadpabNabRaaQaaHaaSaaKaibadsabcaaZaaYaaVabyabxabrabdabcabBabzabAabcavAavAaQsaThaQsaUoavAaQsavAadlaQsabOaQsavAabSaQsabOavAavAcgaavAavAarNarNabTaclarNarNcgaarNarNacMarNaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaeaaeaadaadaaeaadaaaaadaadaadaKBaKBasVaKBaKBasWasXasXasXasXasXasYaKBaKBaKBaKBaGraGCaGCaGCaGCaGCaGVbQSadraInatDatEatFawpatGatIasaasaatKasaasaascaApaAkatSatWatVauaatYacKatoatmatnabvabQatpabQatraAgazpabvabvabvaEJaAoaexaexaaQazuaszaslazuaaQazCazBaaQazyacTacTaAbaAbaAbaaQaaQaocadradsauqadsabcarmauoaumaulaukarIarHausautauuarFabcauravAaufaddacoadGavAaQsavAavAavAbvSavAavAavAavAbvSavAarOaQsbWIaUoaQsaQsaubatRarNaQsaQsaucarNcsgarNaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaadaadaaaaaaaaaaaaaadaadafUaeCaeUadVafRbrTbrTbrTbrTbrTahcacqaeqbKoaaIacrbrTbrTbrTbrTbrTaqhbQSadradradradradradradradradradracAadradradrabUaczacyacxacwacuacsacKacLaiRacPacIacJacQacSacFadoacGacHabPabQacDacEaegaduadzadvadcadaadtadmacWacVacYacXacUacTabNadpabNabRaaQaaHaaSaaKaibadsabcaaZaaYaaVabyabxabrabdabcabBabzabAabcavAavAaQsaThaQsaUoavAaQsavAadlaQsabOaQsavAabSaQsabOavAavAcgaavAavAarNarNabTaclarNarNcgaarNarNacMarNaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaeaaeaadaadaaeaadaaaaadaadaadaKBaKBaxSaKBaKBasWasXasXasXasXasXasYaKBaKBaKBaKBaGraGCaGCaGCaGCaGCaGVbQSadraInatDatEatFawpatGatIasaasaatKasaasaascaApaAkatSatWatVauaatYacKatoatmatnabvabQatpabQatraAgazpabvabvabvaEJaAoaexaexaaQazuaszaslazuaaQazCazBaaQazyacTacTaAbaAbaAbaaQaaQaocadradsauqadsabcarmauoaumaulaukaDYarHausautauuarFabcauravAaufaddacoadGavAaQsavAavAavAbvSavAavAavAavAbvSavAarOaQsbWIaUoaQsaQsaubatRarNaQsaQsaucarNcsgarNaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaeaaeaaeaaeaaeaCVaaeaadaadaKBaKBaKBatHaBPaKBaadaaaaaaaaaaaaaaaaaaaadaadaadaaaaKBasLaUDbHMarlbrTbHMaEsaDuaDFaEvagrasNamJadradrataatbatbatbatbatbatcadraczasGasKasJasIasHasqasraiRassasgaskasiasgaskasjaskasgaskaAyaskasjasbarZashasgaqxapoaskaskaskasgaskasmafQasoainainainainaeMaocadradsadsadsabcabcabcabcabcatBatzatlalZarcabcabcabcatkavAaUoaQsabOaQsavAaQsavAbbNavAatjbvHbvHbvHatiathbYbbYbbYbbYbbYbbYbbYbbuqaQsaQsaQsaQsatgacMasRacMaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaadaadaaeaadaBVaadaaeaaeaaeaaeaaeaaeaCDaAxaCDafRaqhaKBaKBaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaKBaKBaKBbHMbrTavabHMaGPaAfaGJazTaFubJhazYadraaaaaaaaaaaaaaaaaaaaaaaaaaaaczaqiaqeaqdaqgaqfaoZapcaqtaquaqpaqsaqnaqoaqsazcaqDaqoaqBaqCawgawvaqQaqPaqsaqNaqMaqFalQalQaraaqYaqVaqUaAnaqSajgajhajiaBraeMaocadrasSadYasTabcarUabzaseabyabxabrasOabcasUaaYasZabcatdavAavAavAbvSavAavAaQsavAaQsavAatfarNarRarNarWarNarNarNarNarNarNarNarNarNarNbWIarNarNarNarNarNarYaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaeaaeaaeaaeaaeaaeaadaaeaaeaaeaadaKBaKBaKBarnaqhbrTaKBaaaaaaauIauJauKauJauLaaaaadaadaKBaovaKBbtwaouaXOaXOaDlbrTaKBaDfarSaowaoxadraaaavUavUavUavUavUavUavUaaaaczaotaosaoraoqaooacKaoLapqaiGayMapfapnaiGapzapfapqapAapraiMapwapxaoNaoMaoQaoPaoJapaanSamSapaaozaoKapbaoVaoUaoXaoWapNapLaeMaocbaabaabaabaabaaarFarDaryarLarKarIarHarparrarjarmabcartarsbvHbvHaribvHbvHbvHbvHbvHbvHarQarNapSazrapUapTasPaDQasPatLatMatNatMatOarNarNarNatLatMatOatPasPaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaadaadaaeaadaBVaadaaeaaeaaeaaeaaeaaeaCDaAxaCDafRaqhaKBaKBaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaKBaKBaKBbHMbrTavabHMaGPaAfaGJazTaFubJhazYadraaaaaaaaaaaaaaaaaaaaaaaaaaaaczaqiaqeaqdaqgaqfaoZapcaqtaquaqpaqsaqnaqoaqsazcaqDaqoaqBaqCawgawvaqQaqPaqsasVaqMaqFalQalQaraaqYaqVaqUaAnaqSajgajhajiaBraeMaocadrasSadYasTabcarUabzaseabyabxabrasOabcasUaaYasZabcatdavAavAavAbvSavAavAaQsavAaQsavAatfarNarRarNarWarNarNarNarNarNarNarNarNarNarNbWIarNarNarNarNarNarYaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaeaaeaaeaaeaaeaaeaadaaeaaeaaeaadaKBaKBaKBarnaqhbrTaKBaaaaaaauIauJauKauJauLaaaaadaadaKBaovaKBbtwaouaXOaXOaDlbrTaKBaDfarSaowaoxadraaaavUavUavUavUavUavUavUaaaaczaotaosaoraoqaooacKaoLapqaiGayMapfapnaiGapzapfapqapAapraiMapwapxaqNaoMaoQaoPaoJapaanSamSapaaozaoKapbaoVaoUaoXaoWapNapLaeMaocbaabaabaabaabaaarFarDaryarLarKarIarHarparrarjarmabcartarsbvHbvHaribvHbvHbvHbvHbvHbvHarQarNapSazrapUapTasPaDQasPatLatMatNatMatOarNarNarNatLatMatOatPasPaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaeaaeaaeaaeaaeaaeawHaaeaadaadaadaadaKBbHMaqhardafUaaaaaaavLaUaapIavOavLavPavQavRawVawVawVawVanOawVawVadradraKBanNaKBadrakYadraaaavUavVavWaBTavYavZavUaaaalLanPanRalBamPamPacKajjavKajlaeMajmavJajoaeMajpawPajraeMapHajpapsaeMalfanAanzanCanBaldaldalXanxanwaldaldaneaeMaeMaeMaeMaeMaocbaaapVapXanlbaaabcabcabcabcapYaqOaqbalZarcabcabcabcavAaqWaUobWIaQsaUoarhaQsarNarNarNarNarNanVaAJanUanTauyaACauyauAauBatTauBauEatMauFatMauGauBatTatPauHaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaaeaaeawmaaeaaeaaeaaeaadaaaaadafUbtwaqhbrTaKBaaaaaaauKawQawRawQauKawSawTawUawVawWazFaBeanharuawVatqarMazxaxdaxeadrakYadraaaavUaxfaxgaxhaxiaxjavUaaaalLamNamNamQamPamOacKajQajRajSaeMajTajRajSaeMajUajRajSaeMamKamLamMaeMamEamGamFamIazLaldaunamyamxamAazkaztaneamDamCamCamCamCansbaaaomaolaokbaaapmappapmabcaoAaopaonaodaofaobaobaobbvHanXarNarNarNarNarNarNarNannannanaaBsanfancamUamTavFasPasPaadaadauBavHauBauBauBauBauBavIauBauBayIaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaeaadaaeaadaadaaeaaeaadaadaKBaKBbMeaqhaKBaKBaaaaaaavLawQawQawQaylanjaynaynaniaypayqayramgaqyaqEaqzaywayxayyayzadrakYadraaaavUayAayBasfaxiayDavUaaaalLalIalCalBalFalEacKakqajRakraeMakqajRaksaeMakqajRaktaeMalNacRalMaeMalValUalTalSalRaldayHajualPaoRaoSapGanealOaeXaeXaeXalYalWbaaankanmanlbaaanpanqanqantanranvanuabcabcabcabcabcavAanyarNamkayaanZamwaxYbwtamlaycaycaycaycampamvamtawNawOasParqaadaadaaaaaaaaaaadaadaaaaaaaadaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaaeaaeawmaaeaaeaaeaaeaadaaaaadafUbtwaqhbrTaKBaaaaaaauKawQawRawQauKawSawTawUawVawWazFaBeanharuawVatqarMazxaxdaxeadrakYadraaaavUaxfaxgaxhaxiaxjavUaaaalLamNamNamQamPamOacKajQajRajSaeMajTajRajSaeMajUajRajSaeMamKamLaoNaeMamEamGamFamIazLaldaunamyamxamAazkaztaneamDamCamCamCamCansbaaaomaolaokbaaapmappapmabcaoAaopaonaodaofaobaobaobbvHanXarNarNarNarNarNarNarNannannanaaBsanfancamUamTavFasPasPaadaadauBavHauBauBauBauBauBavIauBauBayIaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaeaadaaeaadaadaaeaaeaadaadaKBaKBbMeaqhaKBaKBaaaaaaavLawQawQawQaylanjaynaynaniaypayqayramgaqyaqEaqzaywayxayyayzadrakYadraaaavUayAayBasfaxiayDavUaaaalLalIalCalBalFalEacKakqajRakraeMakqajRaksaeMakqajRaktaeMamMacRalNaeMalValUalTalSalRaldayHajualPaoRaoSapGanealOaeXaeXaeXalYalWbaaankanmanlbaaanpanqanqantanranvanuabcabcabcabcabcavAanyarNamkayaanZamwaxYbwtamlaycaycaycaycampamvamtawNawOasParqaadaadaaaaaaaaaaadaadaaaaaaaadaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaeaaeaaeaaEaaaaadaadaadaKBaKBbHMbHMaqhafUaaaaaaaaaauKawRawRawRauKazGazHazIazJaypaynaroakyaxVawVazNazOazPazQahZadrakYadraaaazSazwazUazVazWauwavUaaaaczakXakRakQakJakDaczakLakMakNafQakLakMakNafQakLakMakNafQalwakPalJafQalfalhalgafQalcaldatAalbalaapEapFatxaneakZbaabaabaaalpbaabaaalqamcbaabaaamfameamdangamRamjamhalZamaabzabAabcambacjarNalmazraycaycalnaloaAJaANalyalxalxalxalAalzayiayjaykaaaaaaaadaaaaaaaaaaadaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaEbmNaAZbmNaakaaaaadaaaaadaKBafVarnbGxaqhaKBaKBaaaaaaavLaBaaBbaBcavLaBdavQavRawVbjXaynaBgakyaBhawVaBiaBjaBkaBlbtbadrakYadraaaaBnavUaBoaBpaBoavUavUaaaacKbnzbnGbnEbnEbnzacKbnNbnVbnObnZbnObnVbnObyGbnObnVboaboebobbombolbxKbygbywblxafQainanebCWaqrbpXbqsbqWbCXaneakZbaabnubnvbntbpmbpmbpnbjWboHaZHbjVbjTbjUbiQbjbbiLarHbhPbhObhMbhGabcaQsacjarNbmMaAJbmLbmJbmHbmFbmEbmAbnyazzazzazzbnwbnxayiayjazDaaaaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaabmNbJAbmNaadaadaadaadaadaKBbrTbrTbrTarVbaQaKBaaaaaaaCmauJaCnauJaCoaaaaadaadaCpaCqaCraCsbgGaCuawVbglbgmaCxaCybDdadrakYadraaabbxaaabgobgnbgoaaaaadaaaacKbphbnGbnEbnEbpiacKarvbkxbpjbEBbpobplbplbEIbplbprbpobpvbpubptbpsbAgbAhbzRbzZafQainaneanebEcbubanebsianeaneakZbaabaabaabzJbcEboDboEbkkbklbotbkgbjtbkjbkebkebkfanuabcabcabcabcabcaThacjarNaBZbkbaDxboZboOboIboYboSaAObpgbpebpfaASbpdayiayjaAUaAVaadapBaaaaaaaaaaaaapBaaaaaaapBaadaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10364,79 +10382,79 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaabmNbmNaEUbJJaEWaCkaCkaCkaEXbJFaEYaEZaKBaKBaqhaKBaaaaFaaFaaFaaFaaFaaFaaFaaaaaaaawVawVawVblgbmIawVawVbrxbrAbrzbrpbhrbnsblIbpkbqjbrHbrIbrBbrCbrDbGUbrLbrMacKacKbGWaczbHlaczaczaxwaxwaxwaxwaxwaxwaxwbGSaxwbiBawnblTaoaaoaaoabrmbrmbrmbrmbrmaoabrlaoaaqLaqLaqLaqLbrnaqLakZbaabaabaabxtbhDbaabrcbaabHbbaabmUbmVbmWalZbnabnebngalZbnkbnBbnqabcbNoacjarNasPasPasPasPasPbwtbrdaDBaAObqXasPaDDaDEaycbtJaycaDHazDaadaaaaaaaadaadaadaadaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaabmNaEUaEUaEUaCkaCkaCkaCkaCkaCkaEUaEUaGtaKBaqhafUaaaaFaaFaaFaaFaaFaaFaaFaaaaaaaaGubymbsebaVbaybkJbbUboubaTbaUbaRbisbiqbikbgBbhrbicbidbtmbipbimbDpbAObAQbAfbtibDebDoaaaaaaaaaaadaaaaaaaaaaadaaaaaaaaabEdbEwbEpbiCaoabiEbiDbivaoebvnaogaohaoiaojaoabyEadqbtXbvcaDsaqLbynbaabhEbAabcEbhDbaabhCbaabKlbaaaUwaUfaUtaCWaCWaCWaCWaCWaCWaCWaCWaCWavAacjarNaTMaTBbtgaFZasPbylaAJaDBbhRaDHaEOaEPaEQaoGaAKaESawMazDaadapBaadaadaaeaaeaaeaadaETaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaabmNbwkaCkaCkaCkaCkaCkaCkaCkaCkaEUaEUaEUbstbCmaKBaaaaFaaFaaFaaFaaFaaFaaFaaHVaHWaHXbwlaHZbcKbcGaIcaIdaIebpRbcIbdzbdMbdMbnlbdMbdMbdMbnmaYhbjqbjsbjgbitbjjaYhaYhaYhbjlaaaaaaaFsaFsaFsaFsaFsaFsaFsaaaaaaaxwbjuatZbjwapdbjvaohbjFapgaphapiapjapkaplaoabyXaDqbyWbjzbzCaqLbnMbaabaabaabiFbiFbaabaabaabaabaaaXEaXXaZaaCWaUBaVJaWibbDbaMbdebchaCWciUacjarNaTBaTBbjcaHFaHGazrampaGhbjdbthasPbhfaGkaGlaGmaGnaGoazDaadaaaaaaaadaGpaGqaaeaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadbmNaJiaCkaCkaCkaCkaJjaCkaCkaCkaCkaEUaJkaKBaqhaKBaaaaFaaFaaFaaFaaFaaFaaFabFOaJmbFOaHYaJnaJoaJpbrgaJraJsbrfbewbetbldblabkZbJibJibJibUraYhbAcbkUbkWbkRbkTbkNbkPbkLbkMaCQaGUaGUbkIbkKbwJbkHbkBaLUaLUaBzbkwbkzaLXbiCaoabkvaohapOaohapPaohapQaohaohaoabzYaBSbyWaBUbwoaqLbkpbgybdjbuSbkcbjGbdlbeVbkibdkbfBbiGaIGbfhaCWbfTbdibdibdibdhaHebdfaCWbPMacjarNaKhaKhaHEaHFaHGbkbbypbyobjHbjRaHNaHOaHPaHQaHRaHSawMazDaadaaaaHTaadaaeaaeaaeaadaadapBaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKqaCkaCkaKraCkaCkaCkaCkaCkaCkaCkbytaKBaKBaqhaKBaaaaFaaFaaFaaFaaFaaFaaFaaKsaKtaKsaKuaJnaKvaKvaKwaKvaIebeKbeLbftaKBaKBaKBaKBaKBaKBasNaYhbmybmzbmzbmwbmxbmxbmxbmvbjlaaaaFsbhFaGYaGYaGYaGYaGYbhAaFsaaaaxwblUavgblTaoablRaqGaqHaohaqIaohaqJaqKaohbmubBvbBDbBhbBtbxiaqLblZbmabliblibliblkbllbllblmblmblBbhvbhwbiHbhzaeQaIyaIyaIyaIyaIyakSaCWaiQacjarNaKhblOaHDaGaasPbyraAJbysaAOblfasPaJeblhaDxaDxaDxaDyazDaadaaaaaaaadaadaadaadaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaLjaLkaLlaaaaLmaCkaCkaCkaCkaCkaCkbPDbPHbPHbQabzKaKBaUDaqhaKBaaaaFaaFaaFaaFaaFaaFaaFaaLoaHWaLpbPkaJnaLraKubvjaLtaLubBAbBIbBkbBrbqrbqnbqJbqHaKBasNaYhbyjbmzcjRcnmckeckeclsbyIbjlaaabNqbyJaGYbyKaJGbyLaGYbyMbORaaaaxwbiBawnblTaoabyNarxadSarzarAarzarBarCbyPaoacoucpTcwQcxabPtaqLbqYaIEaIFaJSaKRbtHbztbzubzqbzsbzhbribrebrhbqZbraadhadibrPadiadibrkaCWaUoacjarNasPbwtbwtasPasPbwtbzNbzMbzObzxasPasPaCfasPasPaCgbdIbzwaKpaaaaaaaaaaadaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiZaMIaMJaMIajcbmNaCkaCkaCkaCkaCkaCkaCkaCkaCkbRIaMMaKBbwqbwraKBaaaaFaaFaaFaaFaaFaaFaaFaaKsaMOaKsaKuaJnaKvaKvaKwaKvaIebpRbEobEsaMRbtKbsUbsobsnaKBbzzbzAbgfbmzbOTbzDbzFbOTcMVbQRbjlaaabPRbsqaLQbPVbPTbPVaLQbSrbSiaaaaxwbiBawnbQXaoaastasuasuasvaswastasuasxasyaoaaqLcSncNkcRzaqLaqLbrZaIEaJSaKRbAIbnbaIEaIFaKRaKRaJSbwNbAFbsGbsubswaIyaIyacaaIyaIyacfaCWaTNacjarNbAlbAkbDHbAmbzPbhxaAJbysaAObAMbpebALaLhbAKayiayjaAUbAJaadapBaaaaaaapBaaaaaaaaaaaaapBaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaaacWwcWwcWwcWwcXQcWwcWwcWwcWwcXQcWwcWwcWwcWwcXQcWwcWwcWwcWwaaaaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajCaMIaObaMIajCbmNaJiaEUaCkaCkaCkaCkaCkaCkaCkbUcaOcaKBaqhbrTaKBaaaaFaaFaaFaaFaaFaaFaaFacdhaOecdhaOfaJnaKvaSpaSqaSraSsbKgaIebJraKAbvPbvzaOnbwuaKBbBBaYhbBwbmzbOTbBEbBFbRUcMVbTKbjlaaaaFsbTjbSWaLQbTmaGYbSubSDaFsaaaaxwbAXatZbjwaChbKQaueaueaueaojaueauebAZbQtaoacTidtNdAubBabTobsLbBabBcbChbChbCebupbutbsRburbusbsQbsRbsMbsOaCWbtPauiauiaujauibuCauhaCWaQsbuParNbCrbCqbCpbCobCAbAibAbbzVbxfbBPaMDaMDaMEbBQayiaMGazDbDXaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXdDNbUobBHbBHbBHbzTbBHbBHbBHbBHbZMbBHbBHbBHbBHbzSbBHbBHbBHaXfcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadbmNaJiaCkaCkaCkaCkaJjaCkaCkaCkaCkaEUaJkaKBaqhaKBaaaaFaaFaaFaaFaaFaaFaaFabFOaJmbFOaHYaJnaJoaJpbrgaJraJsbrfbewbetbldblabkZbJibJibJibUraYhbAcbkUbkWbkRbkTbkNbkPbkLbkMaCQaGUaGUbkIbkKbyLbkHbkBaLUaLUaBzbkwbkzaLXbiCaoabkvaohapOaohapPaohapQaohaohaoabzYaBSbyWaBUbwoaqLbkpbgybdjbuSbkcbjGbdlbeVbkibdkbfBbiGaIGbfhaCWbfTbdibdibdibdhaHebdfaCWbPMacjarNaKhaKhaHEaHFaHGbkbbypbyobjHbjRaHNaHOaHPaHQaHRaHSawMazDaadaaaaHTaadaaeaaeaaeaadaadapBaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKqaCkaCkaKraCkaCkaCkaCkaCkaCkaCkbytaKBaKBaqhaKBaaaaFaaFaaFaaFaaFaaFaaFaaKsaKtaKsaKuaJnaKvaKvaKwaKvaIebeKbeLbftaKBaKBaKBaKBaKBaKBasNaYhbmybmzbmzbmwbmxbmxbmxbmvbjlaaaaFsbzuaGYaGYaGYaGYaGYbyVaFsaaaaxwblUavgblTaoablRaqGaqHaohaqIaohaqJaqKaohbmubBvbBDbBhbBtbxiaqLblZbmabliblibliblkbllbllblmblmblBbhvbhwbiHbhzaeQaIyaIyaIyaIyaIyakSaCWaiQacjarNaKhblOaHDaGaasPbyraAJbysaAOblfasPaJeblhaDxaDxaDxaDyazDaadaaaaaaaadaadaadaadaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaLjaLkaLlaaaaLmaCkaCkaCkaCkaCkaCkbPDbPHbPHbQabzKaKBaUDaqhaKBaaaaFaaFaaFaaFaaFaaFaaFaaLoaHWaLpbPkaJnaLraKubvjaLtaLubBAbBIbBkbBrbqrbqnbqJbqHaKBasNaYhbyjbmzcjRcnmckeckeclsbyIbjlaaabNqbyJaGYbOHbOcbPXaGYbyMbORaaaaxwbiBawnblTaoabyNarxadSarzarAarzarBarCbyPaoacoucpTcwQcxabPtaqLbqYaIEaIFaJSaKRbtHbztbQmbzqbzsbzhbribrebrhbqZbraadhadibrPadiadibrkaCWaUoacjarNasPbwtbwtasPasPbwtbzNbzMbzObzxasPasPaCfasPasPaCgbdIbzwaKpaaaaaaaaaaadaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiZaMIaMJaMIajcbmNaCkaCkaCkaCkaCkaCkaCkaCkaCkbRIaMMaKBbwqbwraKBaaaaFaaFaaFaaFaaFaaFaaFaaKsaMOaKsaKuaJnaKvaKvaKwaKvaIebpRbEobEsaMRbtKbsUbsobsnaKBbzzbzAbgfbmzbOTbzDbzFbOTcMVbQRbjlaaabPRbsqaLQbPVbPTbPVaLQbRcbSiaaaaxwbiBawnbQXaoaastasuasuasvaswastasuasxasyaoaaqLcSncNkcRzaqLaqLbrZaIEaJSaKRbAIbnbaIEaIFaKRaKRaJSbwNbAFbsGbsubswaIyaIyacaaIyaIyacfaCWaTNacjarNbAlbAkbDHbAmbzPbhxaAJbysaAObAMbpebALaLhbAKayiayjaAUbAJaadapBaaaaaaapBaaaaaaaaaaaaapBaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaaacWwcWwcWwcWwcXQcWwcWwcWwcWwcXQcWwcWwcWwcWwcXQcWwcWwcWwcWwaaaaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajCaMIaObaMIajCbmNaJiaEUaCkaCkaCkaCkaCkaCkaCkbUcaOcaKBaqhbrTaKBaaaaFaaFaaFaaFaaFaaFaaFacdhaOecdhaOfaJnaKvaSpaSqaSraSsbKgaIebJraKAbvPbvzaOnbwuaKBbBBaYhbBwbmzbOTbBEbBFbRUcMVbTKbjlaaaaFsbTjbSraLQbTmaGYbRebRBaFsaaaaxwbAXatZbjwaChbKQaueaueaueaojaueauebAZbQtaoacTidtNdAubBabTobsLbBabBcbChbChbCebupbutbsRburbusbsQbsRbsMbsOaCWbtPauiauiaujauibuCauhaCWaQsbuParNbCrbCqbCpbCobCAbAibAbbzVbxfbBPaMDaMDaMEbBQayiaMGazDbDXaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXdDNbUobBHbBHbBHbzTbBHbBHbBHbBHbZMbBHbBHbBHbBHbzSbBHbBHbBHaXfcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaQNaPqaPraPsaQNbmNaCkaEUbVDbVXbVEaCkaCkaCkaCkbUcaEUaKBaqhbrTafUaaaaFaaFaaFaaFaaFaaFaaFaaPtaHWaPuaPvaJnaKvaKvaKwaKvaIebKgaIebKZaKAbyfbyebydbxcaKBasNaYhbDcdDRbTqbTCbTDbOTcMVbDfbjlaadaFsaFsaFsbCYaNlaNkaFsaFsaFsaadaxwbjuaIvblTaBQcbbaueaueaueaojaueauebCUaojaBQbkcdDPbCVbwLaIFbvtaIFaIEaJSaIFbDOaIFbwOaJSaKRaIFaKRaJSbDLbDMaCWbwmbwHbwIatebvCbwwbwmaCWbwxacjarNbWcaTgbDCbDBbDIbAVbDKbDJbDxbDyaAKaAKbDzayhayiayjaNYaaaaaaaadaaaaaaaaaaaaaadaaaaaaaNZaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXbtoaIlbDvbDrbDraFUbDrbDrbDrbDraJUbDrbDrbDrbDraFUbDrbDrbDsaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaQNbCLbCJbCZaQMbmNbueaEUaQPbJGbCdaEUaEUaEUbuwbDAbEmaKBbKdasdaKBaaaaFaaFaaFaaFaaFaaFaaFaaaaaaabpMaPvaQTaJoaJpbtAaSrbmXbopbozblLaPyaPyaPyaPyaPyaKBbsbbsgbshbsdbsdbrQbrRbrNbLjbHobHqaaaaaaaaaaFsaFsaSFaFsaFsaaaaaaaaabEdbEwbHvblTaChbroavlarPbmfaojaojbsDbsIaojaChbkcbsjbslbsmbsrbonbsrbsvbECboqbsrbsrbsrbsrbsrbsrbsrbsJbsPbuHaCWaCWaCWaCWapJaCWaCWaCWaCWavAacjarNbtdbtcbtcbtabsZbsVbsTbsSbtkbtlbvubtnbteawMawNaPoasPaaaaadaadaaaaaaaaaaaaaadaaaaaaaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXbtoaIlcCmaaaaaaaFUaaaaaaaaaaaaaJUaaaaaaaaaaaaaFUaaaaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaQNaQNaSiaShaQNaQNaQNbvfaQNaQNbFublSaQNaQNaQNbFraQNaQNbFjavAaQNaaaaFaaFaaFaaFaaFaaFaaFaaaaaaaaZpbqlaJnaKvaKvaKwaKvaIeaJuaIebuKaPybrvbqdbmtbmOaKBasNaYhbtCbtDbtFbtrbtsbttbLlbtxbjlaTLbINaTLaNnbHwbukbqqaNnaTLbINaTLaxwbuhbwRbuiaoaaoaaoaaoaaoabtMbtUbufaojbrwaoabkcbtLbtHbuHaCZaCZaCZaCZaCZaCZaCZbuFbuGbuLbovbuBbuDaCZbuSbuSavAbuObYbbYbborbYbbYbbYbbYbbYbbuqarNaNLaNLaNLaNLbuvbuubwtbuybuVbuWbuUaAJbuTavEasPasPasPaadaadauBaQIauBauBauBauBauBauBauBauBbvBaadaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXbtoaIlcCmaaaaaaaFUaFUaFUaFUaFUaJUaFUaFUaFUaFUaFUaaaaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaTpaZDbrsbIdaZfbsfbrsbtfbHybHrbHybHBbIebHybIjbInbIJbILbISaQNaaaaaaaFaaFaaFaaFaaFaaaaaaaaaaaZpbvgaJnaKvaKvaKwaKvaIeaTAbumbujbwKbtqbtjbxSbyyaKBasNaYhaYhaYhbjqbvMbvNbjlbsHbsabjlbSXbTHbNpaNnbvAaNpbvraNnbrFbIVbvdbIUbvebqFbuZbuYbuMbLGbrGaoaaoaazAbvGazvaoaaoabvDbvEbvFbvDaCZbwybJmbowboCboFavAavAavAavAbbOavAavAavAavAavAavAacjaUoaQsaJzaJzaJzaJzaJzaJzaJzaNLbvZbvUbvTaNLbEnbBLaNLbwabvObwtbwtbvQbvRbqNauybLcauyaScauBbirauBatLatMaSfatMatOauBbiratPauHaadaadaaEaakaakaakaaEaadaaEaakaakaaEaaEaakaakaakaaEaadaadaadaadaadaAXaNKbIiaLIaLIaLIaLIaLIavcavcavcbwpavcavcavcaLIbwsaLIaLIaLIbHdcXlaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaXFbwBaUMaUMbMnaUMaUMaUMaUOaYbbMFbMEbKcbKcbKcbKnbLHaUQbyFaQNaaaaaaaadaadaaaaaaaaaaaaaaaaaaaZpbxlaJnaKvbVqbxaaGDbxgaGDbuAbqmbEzbGdbwnbBjbBzaKBbpHbxbbOSbITbxebuzbwXbvhbwbbsKbtOaVkcdbaVkbBNbBMaVsbziaVtaVkbJRaVvbwMaVxaVybuEaVAaVBaVCaVDaVDaVDbvbbpcaVDaVDaVHaVDbpbboQaVDboJaVDbwvboGavAbpTbpUbpVbpUbpUbqybpUbqObpUbqRbYbbYbbuqaThaQsaJzbxBbxJbxLbpSbxObxPaNLbzHbxpbxpbOdbxpbzIaNLbxubuVbzkaHoaHoaHoaHoaHoaRfasPaTnatMaToatMauGasPasPasPaTnatMauGatPasPaadaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaAXbtoaIlcCmaaaaFUatXatXayKbJjbJaaxxbJCbJjayLatXaGvaFUaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadboibojaPBaWgaQNaTpaWhaTpbwBaUMaWLaWYaTpaWhaTpaZCaWlaWmaWnaKBaKBaKBaKBaWpaWqaWraKBaKBaKBaKBaZpaORaOUaOVaOSaOTaKvaOkaPzaOmaOlaPyaPyaPyaPyaPxaKBaKBaSuaKBaKBaWCaOQaOOaWKaMhaWWaWVaWKaMhaOFaOHaWWaOIaWKaWKaWKbbLaWNaOKaFTaITaIZaWSaWTaWKaWKaWKaWKaWUaOAaWKaWKaWVaWKaOBaWKaWKaWKaWKaLeaKLaVMaVMaVMapJaVMaVMaVMavAaKJavAacjavAavAaHUaHUaHUaHUaOyaOuaOuaOtaKdaOraNLaOdaOgaNXaQFaOjaUNaNLaNUaNSaNRaHoaUIaVZaNMaHoaNQasPasPasPasPasPasPasPaDUasPasPasPasPasPasQaadaaEaAXaAXaaEaAXaAXaAXaAXaaEaAXaAXaAXaAXaaEaAXaAXaAXaAXaAXaAXaAXaAXaNKaIlcCmaaaaFUatXaweaxqaCRaxtaxraxuaCRaxvaweaGvaFUaaaaMfaIlcCmaMbaMbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaULaadaaaaadaaaaXFbeNaXFaVgaVgaUTaVbaXFbeNboiaXKaQNaXLaVEaOaaXOaXOaXOaXOaXOaXOaXOaNJaXOaNmaNraNsaQSaKzaSbaSAaUPaNqaHfaNDaNEaHfaNNaKcaHfaOvaOxaOwaOLaOzaSWaUHaYpaNzaNCaNCaFSaFJaNHaNGaNeaNgaLNaUsaUsaUsaUsaUsaUsaUsaLsaYyaSYaSYaSYaSYaSYaSYaSYaSYaSYaUEaNiaTjaSYaNjaSXaSYaSYaLdaYGaUFaVMaJgaJVaJOaIXaIVaVMbxQaIPavAacjavAaaaaHUaINaIKaHUaMAaMHaMFaMyaMwaKaaNLaMTaMUaMVaMWaMPaQKaNLaMSaMoaQhaHoaSEaMkaMiaHoaHFaHFaHFaHFaHFaHFaHFaHFaHFaHFaHFaMpaMqaMpaMqaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaaacXQaMcaIlcCmaaaaFUatXaNyawqatXawlawkawjatXawiaSCaGvaFUaaaaMfaIlcWuaaaaMbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaaaaULaWhaZhaSlaSlaSlaSlaZiaWhaULaaaaQNaZjaSeaZlaZlaZlaZlaZlaZlaZlaZlaZmaNaaHfaHfaHfaTwaTwaTwaHfaHfaNxaHfaTHaTFaTGaTDaTEaTvaTuaGRaGQaHdaTtaSWaRmaYpaRpaZNaZNaTRaZNaRoaZLaZLaRqaZLaYgaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXpaZTaZTaZUaZTaZTaZTaZTaZTaZTaEMaYpaRkaVMaXGaOsaOqaODaOCaVMbPMaThavAacjcgaaaaaQGaQHaQLaRaaNVaNIaNPaRdaRbaOpaNLaQxaQzaQwaQwaQBaQDaNLaQAaRgaQAaHoaRhaRjaXHaHoaRlasPasPasPasPasPasPasPasPasPbtpasPasPaRfasPaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaAXaQtaQraQoaUVaFUaFUaFUatXaTsawfavmatXatXatXauZavdaSHaGvaFUaFUaFUaUYaXfcXlaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaQNaQNaSiaShaQNaQNaQNbvfaQNaQNbFublSaQNaQNaQNbFraQNaQNbFjavAaQNaaaaFaaFaaFaaFaaFaaFaaFaaaaaaaaZpbqlaJnaKvaKvaKwaKvaIeaJuaIebuKaPybrvbqdbmtbmOaKBasNaYhbtCbtDbtFbtrbtsbttbLlbtxbjlaTLbINaTLaNnbEXbukbHwaNnaTLbINaTLaxwbuhbwRbuiaoaaoaaoaaoaaoabtMbtUbufaojbrwaoabkcbtLbtHbuHaCZaCZaCZaCZaCZaCZaCZbuFbuGbuLbovbuBbuDaCZbuSbuSavAbuObYbbYbborbYbbYbbYbbYbbYbbuqarNaNLaNLaNLaNLbuvbuubwtbuybuVbuWbuUaAJbuTavEasPasPasPaadaadauBaQIauBauBauBauBauBauBauBauBbvBaadaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXbtoaIlcCmaaaaaaaFUaFUaFUaFUaFUaJUaFUaFUaFUaFUaFUaaaaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaTpaZDbrsbIdaZfbsfbrsbtfbHybHrbHybHBbIebHybIjbInbIJbILbISaQNaaaaaaaFaaFaaFaaFaaFaaaaaaaaaaaZpbvgaJnaKvaKvaKwbKvaIeaTAbumbujbwKbtqbtjbxSbyyaKBasNaYhaYhaYhbjqbvMbvNbjlbsHbsabjlbSXbTHbNpaNnbvAaNpbvraNnbrFbIVbvdbIUbvebqFbuZbuYbuMbLGbrGaoaaoaazAbvGazvaoaaoabvDbvEbvFbvDaCZbwybJmbowboCboFavAavAavAavAbbOavAavAavAavAavAavAacjaUoaQsaJzaJzaJzaJzaJzaJzaJzaNLbvZbvUbvTaNLbEnbBLaNLbwabvObwtbwtbvQbvRbqNauybLcauyaScauBbirauBatLatMaSfatMatOauBbiratPauHaadaadaaEaakaakaakaaEaadaaEaakaakaaEaaEaakaakaakaaEaadaadaadaadaadaAXaNKbIiaLIaLIaLIaLIaLIavcavcavcbwpavcavcavcaLIbwsaLIaLIaLIbHdcXlaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaXFbwBaUMaUMbMnaUMaUMaUMaUOaYbbMFbMEbKcbKcbKcbKnbLHaUQbyFaQNaaaaaaaadaadaaaaaaaaaaaaaaaaaaaZpbxlaJnaKvbVqbxaaGDbxgaGDbuAbqmbEzbGdbwnbBjbBzaKBbpHbxbbOSbITbxebuzbwXbvhbwbbsKbtOaVkcdbaVkbBNbBMaVsbziaVtaVkbJRaVvbwMaVxbLZbuEaVAaVBaVCaVDaVDaVDbvbbpcaVDaVDaVHaVDbpbboQaVDboJaVDbwvboGavAbpTbpUbpVbpUbpUbqybpUbqObpUbqRbYbbYbbuqaThaQsaJzbxBbxJbxLbpSbxObxPaNLbzHbxpbxpbOdbxpbzIaNLbxubuVbzkaHoaHoaHoaHoaHoaRfasPaTnatMaToatMauGasPasPasPaTnatMauGatPasPaadaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaAXbtoaIlcCmaaaaFUatXatXayKbJjbJaaxxbJCbJjayLatXaGvaFUaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadboibojaPBaWgaQNaTpaWhaTpbwBaUMaWLaWYaTpaWhaTpaZCaWlaWmaVyaKBaKBaKBaKBaWpaWqaWraKBaKBaKBaKBaZpaORaOUaOVaOSaOTaKvaOkaPzaOmaOlaPyaPyaPyaPyaPxaKBaKBaSuaKBaKBaWCaOQaOOaWKaMhaWWaWVaWKaMhaOFaOHaWWaOIaWKaWKaWKbbLaWNaOKaFTaITaIZaWSaWTaWKaWKaWKaWKaWUaOAaWKaWKaWVaWKaOBaWKaWKaWKaWKaLeaKLaVMaVMaVMapJaVMaVMaVMavAaKJavAacjavAavAaHUaHUaHUaHUaOyaOuaOuaOtaKdaOraNLaOdaTwaROaQFaOjaUNaNLaNUaNSaNRaHoaUIaVZaNMaHoaNQasPasPasPasPasPasPasPaDUasPasPasPasPasPasQaadaaEaAXaAXaaEaAXaAXaAXaAXaaEaAXaAXaAXaAXaaEaAXaAXaAXaAXaAXaAXaAXaAXaNKaIlcCmaaaaFUatXaweaxqaCRaxtaxraxuaCRaxvaweaGvaFUaaaaMfaIlcCmaMbaMbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaULaadaaaaadaaaaXFbeNaXFaVgaVgaUTaVbaXFbeNboiaXKaQNaXLaVEaOaaXOaXOaXOaXOaXOaXOaXOaNJaXOaNmaNraNsaQSaKzaSbaSAaUPaNqaHfaNDaNEaHfaNNaKcaHfaOvaOxaOwaOLaOzaSWaUHaYpaNzaNCaNCaFSaFJaNHaNGaNeaNgaLNaUsaUsaUsaUsaUsaUsaUsaLsaYyaSYaSYaSYaSYaSYaSYaSYaSYaSYaUEaNiaTjaSYaNjaSXaSYaSYaLdaYGaUFaVMaJgaJVaJOaIXaIVaVMbxQaIPavAacjavAaaaaHUaINaIKaHUaMAaOgaMFaMyaMwaKaaNLaMTaMUaMVaMWaNXaQKaNLaMSaMoaQhaHoaSEaMkaMiaHoaHFaHFaHFaHFaHFaHFaHFaHFaHFaHFaHFaMpaMqaMpaMqaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaaacXQaMcaIlcCmaaaaFUatXaNyawqatXawlawkawjatXawiaSCaGvaFUaaaaMfaIlcWuaaaaMbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaaaaULaWhaZhaSlaSlaSlaSlaZiaWhaULaaaaQNaZjaSeaZlaZlaZlaZlaZlaZlaZlaZlaZmaNaaHfaHfaHfbhAbhFbgeaHfaHfaNxaHfaTHaTFaTGaTDaTEaTvaTuaGRaGQaWnaTtaSWaRmaYpaRpaZNaZNaTRaZNaRoaZLaZLaRqaZLaYgaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXtaXpaZTaZTaZUaZTaZTaZTaZTaZTaZTaEMaYpaRkaVMaXGaOsaOqaODaOCaVMbPMaThavAacjcgaaaaaQGaQHaQLaRaaNVaNIaNPaRdaRbaOpaNLaQxaQzaQwaQwaQBaQDaNLaQAaRgaQAaHoaRhaRjaXHaHoaRlasPasPasPasPasPasPasPasPasPbtpasPasPaRfasPaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaAXaQtaQraQoaUVaFUaFUaFUatXaTsawfavmatXatXatXauZavdaSHaGvaFUaFUaFUaUYaXfcXlaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaAbaBbaCbaBbaDbaBbaBbaDbaBbaCbaEbaFaQNaZjaXabaHaMCbaJbaKaQkaQjaSGaZlaZmaPFaPVaPWaPQaPJaPQaPQaPSaPQaQCaHfaQVaQlaQqaQvaQyaREaReaSyaSnaRcaKTbbcaHiaQaaPZaZNaQcaIBaNFbaOaZLaTfaQdaTLaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaZTbdnbbCaURbflbdDbdpbdoaZTaWabbFbbGaVMaPdaMsaMraMtaPKaVMavAavAavAaudavAaaaaHUaPbaLiaHUaPeaMvaPhaPkaPjaMxaNLaPnaPpaPwaTbaPCaPDaNLbwtaPNbwtaHoaPMaPPaPOaHoaJqaJqaJqajCajcaaaaaaaaaaaaaadaaaaaaasPaMqasPaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcWwcWwaLKaOYaIlaOXaLLaaaaaaaFUaPaaEjaWZatXatXaSUatXatXbycaPAaOZaFUaaaaaabcgaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaabaAbaEbaBbcjbckbckbclbcmbcnbcobcpaGObckbcqbcraTpaZjaSeaROaRJaRFaRKbcxaRAbczbcAbaeaTlaHuaHtaHtaIaaIbaHIaHfaHfaHfaHfaHgaHraHsaHjaHqaGZaGXaGRaGQaHdaHbaHaaIHaYpbRAaZNaHHaIDaMeaIzaItaLPaIuaEFaadaadaHAaHBaHCaGMaZPaGWaHyaGMaZPaGWaGGaGGaFIaadaadaZTaICaLAbdqaIAbdqbdraSvaZTaIpaYpaHmaVMaVMaFAaFzaFyaVMaVMaHzaFBaVaaIkaVaaVaaHUaHUaHUaHUaJzaJzaJzaIhaFxaJzaNLaHMaHKaNLaNLaHJaHKaNLaHpaHvaHpaHoaHwaHlaHkaHoaHnaHxdBLdBvdBvdBKaaaaaaaaaaadaaaaaaaaaaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaeaJJaJEaIqaJEaJTcCmaaaaaaaaaaFUaImaweaJBaJWbBfbBgaJQaJWaxsaweaGvaFUaaaaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcqbecbedbeebckbefaEdbefaEdbefaEdbefbckbegbehaXFaZjaQUaZlaFGbekaQRbemaQEaFHaZlaXQaEcaFWaFXaGdaGiaGsaGyaGzaFmaFpaFqaFEaFKaFNaFPaFQaGBaGAaGFaGEaGIaGHaGNaHiaYpaRnaZNaGKaFwaYDaJPaZLaADaFdaTLaadaadaFhaKxaEEaDdaRibfaaxlbfcaAYaBmaECaJxaFraadaadaZTbfiaClbfkaGTaGLaDVaDzaZTaEMaGxaGwazgbfAaExbfAbfwayfaEwbfAbfAaEIaEKbfAayuaEDaFFbfAbfAbfAbfAayubfwaEKaELbfAaCSaFDaQuaTmaziaFLaFMaFnaFoaFnaOPaFlaFkaFnaFgbcebcedBCdBBdBzdBJaaaaaaaaaaadaacaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaaeaJJaJEaGbaJEaJKcCmaaaaaaaaaaFUaGfaGgayKaEiaFiaJMaweaEkaJLatXaGvaFUaFUaFUaFUckMcXlaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaabaAbaEbaBbcjbckbckbclbcmbcnbcobcpaGObckbcqbcraTpaZjaSeaMPaRJaRFaRKbcxaRAbczbcAbaeaTlaHuaHtaHtaIaaIbaHIaHfaHfaHfaHfaHgaHraHsaHjaHqaGZaGXaGRaGQaHdaHbaHaaIHaYpbRAaZNaHHaIDaMeaIzaItaLPaIuaEFaadaadaHAaHBaHCaGMaZPaGWaHyaGMaZPaGWaGGaGGaFIaadaadaZTaICaLAbdqaIAbdqbdraSvaZTaIpaYpaHmaVMaVMaFAaFzaFyaVMaVMaHzaFBaVaaIkaVaaVaaHUaHUaHUaHUaJzaJzaJzaIhaFxaJzaNLaHMaHKaNLaNLaHJaHKaNLaHpaHvaHpaHoaHwaHlaHkaHoaHnaHxdBLdBvdBvdBKaaaaaaaaaaadaaaaaaaaaaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaeaJJaJEaIqaJEaJTcCmaaaaaaaaaaFUaImaweaJBaJWbBfbBgaJQaJWaxsaweaGvaFUaaaaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcqbecbedbeebckbefaEdbefaEdbefaEdbefbckbegbehaXFaZjaQUaZlaFGbekaQRbemaQEaFHaZlaXQaEcaFWaFXaGdaGiaGsaGyaGzaFmaFpaMLaFEaFKaFNaFPaFQaGBaGAaGFaGEaGIaGHaGNaHiaYpaRnaZNaGKaFwaYDaJPaZLaADaFdaTLaadaadaFhaKxaEEaDdaRibfaaxlbfcaAYaBmaECaJxaFraadaadaZTbfiaClbfkaGTaGLaDVaDzaZTaEMaGxaGwazgbfAaExbfAbfwayfaEwbfAbfAbfAaEKbfAayuaEDaMHaJGbfAbfAbfAayubfwaEKaELbfAaCSaFDaQuaTmaziaFLaFMaFnaFoaFnaOPaFlaFkaFnaFgbcebcedBCdBBdBzdBJaaaaaaaaaaadaacaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaaeaJJaJEaGbaJEaJKcCmaaaaaaaaaaFUaGfaGgayKaEiaFiaJMaweaEkaJLatXaGvaFUaFUaFUaFUckMcXlaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfPbckbckbaCbckbefaEdbefbfQbefaEdbefbckbegbehaXFaQQaQpaZlbfSaQnaTzbfVaTzbaHbaHaNcaNvaNxaHfaNuaNfaNtaMXaMZaMKaMNaHfaIwaLWaMnaHjaLVaHfaLTaLqaKVaKUaKTbbcaIHaYpbRAaZNaLSaIoaSwaLMaZLbbRbbsaTLaZPaIIaZPaOEbgsbgwbgubgvbgtbgsbgubgwbgvaNAaZPaIIaZPaZTaYtaYtaYtaIxbgAaQbbgCaZTaPlaLZaLYaLbbgMbgMbgMbgObgMaLcbgMbgMbgMaKKbgMaLvaIjaLgaLfbgMbgMbgMaQmaIiaKKbgSaKMaKOaKQaKPaTmaFvaKWaKWaKZaLxaKWaKWaLzbbEaMjaLDbcebcedBsdBvdBvdByaaaaaaaaaaadaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddlJaaaaaaaaaaadaLLaLLaLKaLJaIlcCmaaaaaaaaaaFUaFUaImatXatXatXaTxatXatXatXatXaLHbwsaLGaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcqbhkbedbeebckbefaEdbefaEdbefaEdbefbckbegbehaXFbhlbhmbhnaKeaKbaJZaJZaKgaKfaKebcCaKiaKkaHfaKyaJwaJyaJNaKmaIRaISaHfaIfaHLaILaIOaIQaHfaKHaKNaKIaKFaKDaSWaKEbbFaKlbleblebleblebleaZLaHhaHcaKobhUbqxaPHaNhbgubgubgubguaDTbgubgubgubguaIgaBCaMBaZPaPXaJYaMabifbigaKjaPfaNoaZTaFCbilaKnazsbiwaFObiwaGjbiwaMYbiwbiwaIUbiwbiwaOGaKXbiwaIraIUaFObiwaOGaGjbiwbiyaIJaFOaIYaEuaJaaFjaJcaJdaJfaMjaJlaJlaJhaZbaFtaJqaTmaTmaTmajCaDZaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaJAaJvaJDaJCaJHaJFajeaJIaIlaFUaFUaFUaFUaFUaJXaLFaJXaJXaLwaLyaLwaMQaMQaNWaMdaMgaJUaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiTbiUbaBbcjbckbckbiVbckbiWbiXbckbiYbckbcqbiZaULaZjbjabmsbbpbbrbbzbbtbbnbblbbpbmPbjkbaXaHfbiobiIbjebixaHfaHfaHfaHfaHfaHfaHfbjEaHfaHfbbcbbbbbabbhbbebbdbbiaYpaXoblebbjaVSbbkblebbybbqbjQaQZaZPbnHaZMbhBbjMbmSbjIbaSbjKbjIbjIbjLbjMbjNbjObnJaZPaZTaYtaYtaYtbljaYtaYtaYtaZTbmTaYpbahbkdbcTbcUbcTbkdaSaaSaaSaaSaaSaaSaavAavAbcSavAavAavAbdtavAavAavAavAbdmavAbddbdgaUSbdaaTCbcYbcVbhuaJlbcNbcRbcQaZbaSmaJqaTmbhsbcFbcLbcubcubctbcDaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaadaaaaJAbbSbbQaaaaadbbIbbHbfWbbBbhNbrKaJXbhibkYbhobhdbhhbhqaJXbofbmbbgNbinbnLbhWbhWbiuaJUaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiTbaBbaCbaBbaDbaBbaBbaDbaBbaCbiUbkDaQNbiabkFbkGaSWbbTaYOaTaaYObbPaSWaZcaXYaZdbaibkXbizaYLaYMbkmbizbjJbkAbizbkEbkXaYNbkXbagaXZaYIaYFbkObkXbjYbibblcbRAaZoaVTaZsaYJbleaTLaTLaTLaTLaZPaQfbloblpblqbeoaQXbssboRbqzaQYblrblqblyblzaQeaPYaZTblCblDblEbigaPRaYtbijaZTbkhaYpaOMbaIbaGbaPbgibkdbawbazbfrbaubatbavaSRaQsbDEavAaUqaSRbasbWIbOoavAbWIbaravAbambaobapbaqbakbakbakbfqbfoaJlaJlbggbfnaPgbgabfYbeGbeybfRbfGbfGbfObfIbfEbfCbfEbfEbfCbfEbfEbfEbfEbfEbfEbfCbfEbfEbfEbfEbfEbfEbfCbfEbfFbfHbfGbfGbfGbeabdZbejbebbebberbfsbnhbcfbcibdSbdTbdUbdVbdWbdYbbWbbYbbZbcbbccbcdaYZaLIaLIbrJcXlaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaTpaWhbmpaSlaSlaSlaSlbmqaWhaTpaaaaQNaZjbmrbruaSWbktbdKblPbdKbspaSWbsxbjxbfubmCbcXbrEbmDbmCbmCbfxboMbmGbmBbmCbmCbfvbmCbmCbmCbfzbfybmKbmKboXbBebdPbnUblebdQbtWbcBbleaSobdLbeiaSBbtIblrbmYbeobskbsYbvibndblGbndaSDboPboybvkbnjaTkaSZaZTboobnnbnobnpaTraZTaZTaZTaEMbnraWQbkdbgKbgJbgIbkdbgPbyHbgLbgrbvxbgkbgjbgHbgFbgEbgDbgZbhabgWbgYbhebhgbhbavAbddaYabgQaTmbgUbgVbogbjybgTbcZbgxbgcbmmaZbbafbadbkybjDcXlaaaaaabyhbbQaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaadaaaaUkbezbcDaaaaadaMfbfLbuobulbtzbtvbsXbrObwZbxnbwTbwVbsNbwSbvKbvLbsCbvJbvIbhWbvlbvsaJUaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaTpaadaaaaadaaaaXFbzWaXFbpQbqcaVgbpAaXFbzWboibojaQNaZjbpxbpwaSWbqTbdKbdFbdKbpzaSWbpPbhVbdAbdBbosbmobkVbdwboxbdCbnCbosbosbosbosaWPbosbmnbohbkVbdvbosbosbnDboAboBbnUblebbubbVbbfboNbbfbbvbbfbbfbtIaRWaRZboLboLboLbszbppbeJbdEbsyboLboLboLaRNaRLaZPaZTblKboTboUboVboWaZTbbXaXNbaYbpaaWQbcTbeIbeObeMbkdbeRbtNbeSbjfaSaaSaavAavAbeHavAbOobeDbeEaQsavAavAbeFaRPavAbeAaYabeBaTmaJqaJqaJqaJqbeCaJqaJqaWRbjraZAaTmaTmbffbfebeUaaaaJAbqUaaaaaaaadaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaUkbezbcDaadbeubesbqSbexbqKbtBaJXbrbbqfbqhbqvbqCbhXaJXbqpbpCbqeaMQbqkbqobhWbiuaJUaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaTpaWhbmpaSlaSlaSlaSlbmqaWhaTpaaaaQNbyKbmrbruaSWbktbdKblPbdKbspaSWbsxbjxbfubmCbcXbrEbmDbmCbmCbfxboMbmGbmBbmCbmCbfvbmCbmCbmCbfzbfybmKbmKboXbBebdPbnUblebdQbtWbcBbleaSobdLbeiaSBbtIblrbmYbeobskbsYbvibndblGbndaSDboPboybvkbnjaTkaSZaZTboobnnbnobnpaTraZTaZTaZTaEMbnraWQbkdbgKbgJbgIbkdbgPbyHbgLbgrbvxbgkbgjbgHbgFbgEbgDbgZbhabgWbgYbhebhgbhbavAbddaYabgQaTmbgUbgVbogbjybgTbcZbgxbgcbmmaZbbafbadbkybjDcXlaaaaaabyhbbQaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaadaaaaUkbezbcDaaaaadaMfbfLbuobulbtzbtvbsXbrObwZbxnbwTbwVbsNbwSbvKbvLbsCbvJbvIbhWbvlbvsaJUaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaTpaadaaaaadaaaaXFbzWaXFbpQbqcaVgbpAaXFbzWboibojaQNaZjbwJbpwaSWbqTbdKbdFbdKbpzaSWbpPbhVbdAbdBbosbmobkVbdwboxbdCbnCbosbosbosbosaWPbosbmnbohbkVbdvbosbosbnDboAboBbnUblebbubbVbbfboNbbfbbvbbfbbfbtIaRWaRZboLboLboLbszbppbeJbdEbsyboLboLboLaRNaRLaZPaZTblKboTboUboVboWaZTbbXaXNbaYbpaaWQbcTbeIbeObeMbkdbeRbtNbeSbjfaSaaSaavAavAbeHavAbOobeDbeEaQsavAavAbeFaRPavAbeAaYabeBaTmaJqaJqaJqaJqbeCaJqaJqaWRbjraZAaTmaTmbffbfebeUaaaaJAbqUaaaaaaaadaaaaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaUkbezbcDaadbeubesbqSbexbqKbtBaJXbrbbqfbqhbqvbqCbhXaJXbqpbpCbqeaMQbqkbqobhWbiuaJUaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaboibojaPBaWgaQNaULaWhaULbtybrsbcybcMaULaWhaULaZDbrrbpNbkFbkGaSWaUUaSVaTaaSVaUUaSWbcWaXraXiaSWaTeaXmaTiaSWaSWaTcaSWbqabqaaXcbaLbaNaXcbqabqabqabqabqabqabqabqgbboaLBaWJaWIaXwaSTbdsaSTaPEaWFaPGbalbaWbcvbqtbbgbqtbqtbqubajbqwboLboLbdyboLbcObdcaZTbdGaRBbqAbdqbqBbdbaZTbdXaYtaEMbqFaLabkdbkdbkdbkdbkdaTTaTSaSaaSaaSabdJbdJavAaTUavAavAaUnbbNbbMavAaUqaTZaTXaTYaUhaUiaUbaUgarwarwarwarwapDbelaJqbhcaYsaYnbduaYvaYTaYzaYxbcuaYdaXqaadaadaadaadaadaadaaaaadaaaaadaaaaadaaaaadaaaaaaaaaaaaaaaaaaaaddlJaaaaUkaUjaJCaUmaUlajeaLJaIlaFUaUraUpaYKaYRaYAaYEaJXaJXaWjaWzaXdaMQaMQbePaYYaPIaJUaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaXFaZDbrsaZfaYXaZfbrsbrsbrtaQOaYbaYWaXMaXMaXMaXJaRzbryaRyaXVaRraRxaRwaRuaRtaRsaRraXnaTqaRIaUxaUxaUyaUxaUxbrSaRHaWDbqabwEaWEbrXbrYbscbqaaWwaWvbqaaWwaWvbqaaWAaYpbRAbleaVqaRGaONbleaOWaOoaNwaVpbtIaZuaZxboLaZnaXRaXSbssbssaYQaYUaXTaYmboLaWGaWdaZTaXBbsAbsBaXbaSIbsEbsFaTdaYtaEMbqFaJbaSaaTPaSdaTQaPcaRUaRYaRXaStaPmaSzaSxaPiaSjaJtavAavAavAavAavAavAavAaRPavAaRRaRSaRTbgXbiJaRQbiJbiJbiJbgXbgXbiJbiKaRMbiNbbAbcsaIMbiRbiSbgXbgXbgXaadaaaaaaaaaaadaaaaadaaaaadaaaaaEaaaaaEaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaadaadaAXaQtaIlcCmaSSaFUaZKaZOaZQaTJaTKaTVaTWaUuaUAaUKaVcaWcaLIaLIaSQaFUaFUckMcXlaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaXFbwBaUMaUMbfUaUMaZyaUcaUeaUeaUeaUebiebhyaZSbcaaZEbiAbacaXjaKebgebhpbgRbhtaXeaXhaXgbbKbcJbaxbbJbltaZGaUxaYCaXlbrTbqaaYwaYqbrXbrYbscbqaaYobDDbqaaYobDDbqabqgaYpbRAblebleaYBblebleblebeXbeWaUGbleblublvblwbssbndbndbtQbtRbtSbtTbtTbcHbtVblQbmZblWbdqbtZbuaaZzbucbudaZTbhHaYtaYPbqFaRkaSaaPLbhYaRUaXsaRUbhZbcPaRUaRUaVXaXuaXzaXyaXxaXvaXPaXUaXAaXCbiiavAaRPavAaPTaYaaXWbgXaYkaYlaZVaYebncbgXbnfbabbdHbkuaVRbkabtubjCbjBbcwbjPbkCbgXaadaadaadaadaadaadaadaaaaaEaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaMfaWBcCmaaaaFUbnKboKbniaTJbfbbfJbdRbeqbfNbfXbfKaTJaFUaaaaaaaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaXFbwBaUMaUMbfUaUMaZyaUcaUeaUebpxaUebiebhyaZSbcaaZEbiAbacaXjaKebqqbhpbgRbhtaXeaXhaXgbbKbcJbaxbbJbltaZGaUxaYCaXlbrTbqaaYwaYqbrXbrYbscbqaaYobDDbqaaYobDDbqabqgaYpbRAblebleaYBblebleblebeXbeWaUGbleblublvblwbssbndbndbtQbtRbtSbtTbtTbcHbtVblQbmZblWbdqbtZbuaaZzbucbudaZTbhHaYtaYPbqFaRkaSaaPLbhYaRUaXsaRUbhZbcPaRUaRUaVXaXuaXzaXyaXxaXvaXPaXUaXAaXCbiiavAaRPavAaPTaYaaXWbgXaYkaYlaZVaYebncbgXbnfbabbdHbkuaVRbkabtubjCbjBbcwbjPbkCbgXaadaadaadaadaadaadaadaaaaaEaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaMfaWBcCmaaaaFUbnKboKbniaTJbfbbfJbdRbeqbfNbfXbfKaTJaFUaaaaaaaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaZhbojaQNaWgaPBaWgaQNckJaSlbxFaQNaWgaQNaQNaQNaQQaQpaKBaZwaKBaKBbuQbuRbuQaUXbuQbuQbuQbuQaUxaUxaZIaZFaUxaUxaUxacpbHMbqaaVebrVbrXaYibqabqaaVdbqabqaaUZbqabqabenaYpbRAbgzbgpbfgbeTbfpbeTbfgbfgbkSblsbdcbkrbqtbjZbndbvmbfdbvobvpbvqbfmbjmboLbjibjhaZTbvvbvwbdqbhQbhjbvyaZTaYjaYtaEMbqFaRkaSaaVNaVPaVOaVOaXIaVQaVOaRUaVUaVWaVVaRUaVXaRUaVYaVfaVhaVfaViaNdavAaRPavAaXkaVlaVnaUvaVoaVGaVIaVKbfjbgXaQiaZJaZRbmeaUdbjAbmhblXbmibmjbiObPGbgXaadbgXbgXbgXbgXbgXaadaaaaRDaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaMfaWBcCmaaaaFUaZXaZZaZWaTJaYSaZgaZkaZqaZraZtaZvaTJaFUaaaaaacWwaOYaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfdzWbwgbwhaZjbwiaKBaRHbtwcnSbuQdLtbxHccRdLwdLudLvbuQcpocpocsUdJRdJYcsQaUxacpcbObqabwFbJpbrXbrYbrUcbNbrVbrUcbJcbFdJXaXcbqgaYpcaVbgzcsPcsMcsNcsOcsOcsOcsWcsTblsclWcnTaZPaZPaZPdLAdLydLzdLydLxaZPaZPaZPcmjclWaZTaZTbtYaZTaZTaZTaZUaZTcgSaYtcsScsRaRkcjqcjscjscjsaUzcjscjtcjsaRUaRUcjxaXuaVUcsVchpchYcimdIGcimcidciYavAaRPavAdLBaVlcjdaZBcjhblXbnYcjpcjHcjLcjybnPbnQbnRaUdbnSbnTaYcbgdbnXbnWcnVcsXbVZbWjbocbodbodbgXaadaaaaRDaaaaRCaaaaaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaMfaWBcCmaaaaFUaFUaFUaFUaTJcoIconcpubfNcrjcpRcrqaTJaFUaaaaMfdIJbBHdLCcXlaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbxDbxEbxFaZjbxGaKBacpbWqcmDbuQchIbxHccRbWmchLdLqbuQdKkdJVcnjdJTaUxaUxaUxacpaKSbqabXybXnbrXbrYbrXbrXbrXbrXbrXbtEbrXbaLcdicbhcrHcrCcrucrAcrucrucrucrAcrucsaciachmcfXchocrUcrMcrIcrIcrNcrJcrIcrLcrKcivckxclEclFcrMcrMcipcrMcsocsqcrMcsrcsccsmbyDaWQchWaRUaRUaRUaRUaRUaRYaRUaRUaVXaRUaXuaVUclLchpchYcimcigaXUcidcnUavAaRPavAbnFciqbeBaUvcirblXblYblXcitciubmcbksbmdbpyaYfbnIbpBbmgbmlbmkblbciybUiaadbNCbpJbodbpKbgXaadaaaaRDaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaMfaWBcCmaaaaaaaaaaaadIDbUtbMUbMUdICclMdICbMUbMUaSOaLGaFUaFUckMdIEciNaaaaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfcjrdzTcjraZjdHpaKBcmCbNSbGxbuQcfmbxHccRbxHbxHchQbuQaUxdJPaUxdJRdJQcrkaUxacpbrTbqabwFbJpbXibWUbvabvabvabvabvacbPbvabeYboAcqVcqZcrecbrcbscbrcbtccxcqNcqMbZVbZUbZYcqRcqncqOcqncqmcqmcqkcqJcqmcqpcqocpQcpScpNcpOcqdcqjcpVcqccpxcpBcprcpscpHcpMcpEbZSchlcdpchnchdchdchechkaRUaVUaVWchpaXuaVUcfTchpchqcfZcdccgzcgccfUdKTcfWavAbpqcgQcgYcgUcgLcgBcgOcgMdKrcfHdIuaVFaUWaVjaVmaVzaYcaWHbrjaVLaYVcfMbHWbQYbRbbrqbodaPUbgXaadaacaRDaaaaRCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaMfaWBcXPcWwcWwaaaaaaaJUdIvcnIdIwbHidIybHidIzcnOdIAaJUaaaaMfaIlcCmaMbaAXaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbADbAEbxFaZjdCHaKBcmvaKBaKBbuQdBDdCAdBrbxHbxHbxHbuQdJOdJNaUxaZeaUxaUxaUxacpahccdabrVbrVbtEbZfbzobrVbrVbrVbrVcpnckVaXcbqgbWCbnUbSAbSAcdebSAcddbSAbSAbBqbBqccSbUhbBqcpmblscoNcoMcoPcoOcpacoMcphblscpmbCGbCGcdkccWbCGbCGbDRcdycdrbCGcdlcBKcmYbBybYHcdQbzecdKcdNcdAcdEcdncdpcdpcepcdpcejcdpcdTcdpcdSceFceCceycewcesavAbxhavAcfjcfhcfebiRceYcePceMceGbiRbiScdfaSkbmjbsWaYraRVaTIaTyaTIaTyaTOcdgcdmaadbgXbgXbgXbgXbgXaadaaaaRDaaaaRCaaaaRDaakaaEaadaaEaakaakaaEaaEaakaakaakaAXaAXaAXaAXaQtdLmbBHbBHcppajeajeaJUcDBcdOcdVcLMclMcLMcdVcdOdAZaJUaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfdzWaULbwhaZjbyVaKBacpaKSaUDbuQdLZccRbCfcnlchQbxHbuQdKmctXaUxdKkdKjctWaUxacpbrTbqabETbETbtEbrYbwDbwDbwEclmbwFckWbqabqacdibCwcaVbSAcllckrckIcjYcnhcbicNedLYcvOckLbBqaadcufcutcoMcoMcuscoMcoMcuqcugaadbCGdLXdvNdvOdvTbCGbCGbCGbCGbCGcPEcBKcmYbCObqGaSaduvchPcjsbAecnJcjscjschPaXubAdaRUaRUaRUaRUcnQcimcnCcnFcnDcnHavAbxharNcntcnocnubiNcnycnvcnBcnzbiPcohbuxbdNbepbevbevbeZbgqbghbgdbfZbfMcltbHnbVZbWjbuIbuJbuJbgXaadaadaWsaadaWuaadaRDaaaaaaaadaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaAXaaadEnbDrbDsaIlcCmaaaaJUdJlcdOcdOcdOdJkcdOcdOcdOdJjaJUaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaddLWbojaQNaWgaPBaWgaQNckJaSlbxFaQNaWgaQNaMLdAbbZmbAGcfodnUarXagvbuQcmJcmsbCfcmtbDqbEHbuQaUxaUxaUxaUxaUxaUxaUxacpbrTbqacmpctHbtEbrYbrVbrVcckbrVbyabybbqacjbbqgaYpcaVbSAbDQcgscgxcgCcmqcbicgFcgGcgHcgDcgEaadctIctNctKctJbzvctKctJctMctLaadckDcjWdLVdLSdLTdLUcvxcPCcOKbCGcgVcBKckKbEhbEibEjbEjbEjcmEcmKbEjcmGcmGbEjcmybEjcLicLjcLlcnJcmBbnAbjScmVbjSbjSavAbxhciocvZcvYciobgXbgXbgXbgXbgXbiMbiNcmWaZYcneblXbvVbvWbvXbvYbnTbbmbanbMhbUiaadbNCbwcbwdbwebgXaadaaaaRDaaaaRCaaaaWtaAXaAXaAXaAXaaEaAXaAXaAXaAXaaEaAXaadaaEaAXaAXaAXaAXaAXaMfaIlcCmaaaaJUceTdJgdJfcdOdJecdOdJddJcceIaJUaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaXFaZDbrraZfaZfaZfbrsbrsdLQbrsbrsbrsdLPbrrbrsbpNcuPaKBaZmbHMaqhbuQclnclobxHbxHbxHcljbuQbzmasdarnctrdKedKhaKBacpbMbbqabCtbEYbtEbrYbwCbwCbwGbrVbrVcnkbqacgbbqgaYpcfPbSAcdGcefceqchgceecbiceAcetceuceNbBqcfsbFmcfsbFmbFmbFnbFmbFmcfsbFmcfsbCGcjobJPchRchTdLMcicchNchAbCGcgVcBKdLNbqFbqGbEjcmhcmobFCbFBclZcmacmaclSclYbEjbEjbEjbEjbEjbEjbEjbjSclOclNbgbavAbxhciocvRcuUcvXciodIYctCaQsaSRbgXbxqcfKcfJcfNcuQbxvbxwbxxbxychHbbmcficcCbHWbQYbRbbxCbuJcfVbgXaadaaaaRDaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMbaQtctBaLIaLIdIUaLGdIWdIVcdOdIXcdOdISdITdIDdIUaLIaLIctwcXlaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfdzWbwgbwhaZjbwiaKBaRHbtwcnSbuQdLtbxHccRdLwdLudLvbuQcpocpocsUdJRdJYcsQaUxacpcbObqadABbJpbrXbrYbrUcbNbrVbrUcbJcbFdJXaXcbqgaYpbRAbgzcsPcsMcsNcsOcsOcsOcsWcsTblsclWcnTaZPaZPaZPdLAdLydLzdLydLxaZPaZPaZPcmjclWaZTaZTbtYaZTaZTaZTaZUaZTcgSaYtcsScsRaRkcjqcjscjscjsaUzcjscjtcjsaRUaRUcjxaXuaVUcsVchpchYcimdIGcimcidciYavAaRPavAdLBaVlcjdaZBcjhblXbnYcjpcjHcjLcjybnPbnQbnRaUdbnSbnTaYcbgdbnXbnWcnVcsXbVZbWjbocbodbodbgXaadaaaaRDaaaaRCaaaaaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaMfaWBcCmaaaaFUaFUaFUaFUaTJcoIconcpubfNcrjcpRcrqaTJaFUaaaaMfdIJbBHdLCcXlaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbxDbxEbxFaZjbxGaKBacpbWqcmDbuQchIbxHccRbWmchLdLqbuQdKkdJVcnjdJTaUxaUxaUxacpaKSbqabXybXnbrXbrYbrXbrXbrXbrXbrXbtEbrXbaLcdicbhcrHcrCcrucrAcrudzQcrucrAcrucsaciachmcfXchocrUcrMcrIcrIcrNcrJcrIcrLcrKcivckxclEclFcrMdAlcipcrMcsocsqcrMcsrcsccsmbyDaWQchWaRUaRUaRUaRUaRUaRYaRUdAraVXaRUaXuaVUclLchpchYcimcigaXUcidcnUavAaRPavAbnFciqbeBaUvcirblXblYblXcitciubmcbksbmdbpyaYfbnIbpBbmgbmlbmkblbciybUiaadbNCbpJbodbpKbgXaadaaaaRDaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaMfaWBcCmaaaaaaaaaaaadIDbUtbMUbMUdICclMdICbMUbMUaSOaLGaFUaFUckMdIEciNaaaaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfcjrdzTcjraZjdHpaKBcmCbNSbGxbuQcfmbxHccRdwwbxHchQbuQaUxdJPaUxdJRdJQcrkaUxacpbrTbqabwFbJpbXibWUbvabvabvabvabvacbPbvabeYboAcqVcqZcrecbrcbscbrcbtccxcqNcqMbZVbZUbZYcqRcqncqOcqncqmcqmcqkcqJcqmcqpcqocpQcpScprdxwdxzcqjcpVcqccpxcpBcprcpscpHcpMcpEbZSchlcdpchnchdchdchechkaRUaVUaVWchpaXuaVUcfTchpchqcfZcdccgzcgccfUdKTcfWavAbpqcgQcgYcgUcgLcgBcgOcgMdKrcfHdIuaVFaUWaVjaVmaVzaYcaWHbrjaVLaYVcfMbHWbQYbRbbrqbodaPUbgXaadaacaRDaaaaRCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaMfaWBcXPcWwcWwaaaaaaaJUdIvcnIdIwbHidIybHidIzcnOdIAaJUaaaaMfaIlcCmaMbaAXaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbADbAEbxFaZjdCHaKBcmvaKBaKBbuQdBDdCAdBrbxHbxHbxHbuQdJOdJNaUxaZeaUxaUxaUxacpahccdabrVbrVbtEbZfbzobrVbrVbrVbrVcpnckVaXcbqgbWCcMJbSAbSAcdebSAcddbSAbSAbBqbBqccSbUhbBqcpmblscoNcoMcoPcoOcpacoMcphblscpmbCGbCGcyjccWbCGbCGbDRcdycdrbCGcdlcBKcmYbBybYHcdQbzecdKcdNcdAcdEcdncdpcdpcepcdpcejcdpcdTcdpcdSceFceCceycewcesavAbxhavAcfjcfhcfebiRceYcePceMceGbiRbiScdfaSkbmjbsWaYraRVaTIaTyaTIaTyaTOcdgcdmaadbgXbgXbgXbgXbgXaadaaaaRDaaaaRCaaaaRDaakaaEaadaaEaakaakaaEaaEaakaakaakaAXaAXaAXaAXaQtdLmbBHbBHcppajeajeaJUcDBcdOcdVcLMclMcLMcdVcdOdAZaJUaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfbwfdzWaULdAbaZjdALaKBacpaKSaUDbuQdLZccRbCfcnlchQbxHbuQdKmctXaUxdKkdKjctWaUxacpbrTbqabETbETbtEbrYbwDbwDbwEclmbwFckWbqabqacdibCwcaVbSAcllckrckIcjYcnhcbicNedLYcvOckLbBqaadcufcutcoMcoMcuscoMcoMcuqcugaadbCGdLXdvNdvOdvTbCGbCGbCGbCGbCGcPEcBKcmYbCObqGaSaduvchPcjsbAecnJcjscjschPaXubAdaRUaRUaRUaRUcnQcimcnCcnFcnDcnHavAbxharNcntcnocnubiNcnycnvcnBcnzbiPcohbuxbdNbepbevbevbeZbgqbghbgdbfZbfMcltbHnbVZbWjbuIbuJbuJbgXaadaadaWsaadaWuaadaRDaaaaaaaadaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaAXaaadEnbDrbDsaIlcCmaaaaJUdJlcdOcdOcdOdJkcdOcdOcdOdJjaJUaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaddLWbojaQNaWgaPBaWgaQNckJaSlbxFaQNaWgaQNaQNaQNbZmbAGcfodnUarXagvbuQcmJcmsbCfcmtbDqbEHbuQaUxaUxaUxaUxaUxaUxaUxacpbrTbqacmpctHbtEbrYbrVbrVcckbrVbyabybbqacjbbqgaYpcaVbSAbDQcgscgxcgCcmqcbicgFcgGcgHcgDcgEaadctIctNctKctJbzvctKctJctMctLaadckDcjWdLVdLSdLTdLUcvxcPCcOKbCGcgVcBKckKbEhbEibEjbEjbEjcmEcmKbEjcmGcmGbEjcmybEjcLicLjcLlcnJcmBbnAbjScmVbjSbjSavAbxhciocvZcvYciobgXbgXbgXbgXbgXbiMbiNcmWaZYcneblXbvVbvWbvXbvYbnTbbmbanbMhbUiaadbNCbwcbwdbwebgXaadaaaaRDaaaaRCaaaaWtaAXaAXaAXaAXaaEaAXaAXaAXaAXaaEaAXaadaaEaAXaAXaAXaAXaAXaMfaIlcCmaaaaJUceTdJgdJfcdOdJecdOdJddJcceIaJUaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaXFaZDbrraZfaZfaZfbrsbrsdLQbrsbrrbrsdLPbrrbrsbpNcuPaKBaZmbHMaqhbuQclnclobxHbxHbxHcljbuQbzmasdarnctrdKedKhaKBacpbMbbqabCtbEYbtEdAHbwCbwCbwGbrVbrVcnkbqacgbbqgaYpcfPbSAcdGcefceqchgceecbiceAcetceuceNbBqcfsbFmcfsbFmbFmbFnbFmbFmcfsbFmcfsbCGcjobJPchRchTdLMcicchNchAbCGcgVcBKdLNbqFbqGbEjcmhcmobFCbFBclZcmacmaclSclYbEjbEjbEjbEjbEjbEjbEjbjSclOclNbgbavAbxhciocvRcuUcvXciodIYctCaQsaSRbgXbxqcfKcfJcfNcuQbxvbxwbxxbxychHbbmcficcCbHWbQYbRbbxCbuJcfVbgXaadaaaaRDaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMbaQtctBaLIaLIdIUaLGdIWdIVcdOdIXcdOdISdITdIDdIUaLIaLIctwcXlaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaXFbwBaUMaUMbfUaUMaUMcumdLIdLHaUeaUeciMcihcgRdLLdLKaKBaZmbMeaqhbuQdLwbGabxHbxHbGabxIbuQdKddKcagSarXagvdKeaKBacpctmbqacjUbxXckacjZbrVccDckdckcctncdtbqacdFbqgaYpcdIbSAcbRbFvdLGcgJcbicbicbUcbXcdPctZbBqctcctactdbGzbGAbGBdLDclGcticthctlbCGdLEbJPcgndLFbCGcglcgXcgWbCGcgVcBKcjGbqFceXcktckubGRckqbOlbGVbFCbFCbVackobEjbMoceWcffceWbIzbEjckSckRcoGckNavAbxhciocuOcuNcuMcioaQsaQsaQsckFbgXbxqceHcerbiJbiJbiJbyTblXckjblXbbmcbGbMhbUiaadbgXbgXbgXbgXbgXaadaaaaaEaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaMfaIlcCmaaaaaaaJUcuucdOcdOcisdINciwcunaJUaaaaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaZhbmqceQaTpaQNbuNbojaQNaWgaQNbuNbojaQNaQNccNaQNaQNaKBaZmbMbaqhbuQbxIbWkbHzbxHbHzclybuQdJKbrTbrTaKSbxMbrTaKBacpbHMbqabqabMvbMDbMwbMvbqabqabqabqabCubqabqabGobbFbNwbSAbKsbFvbKkbVpbJQcbibNvbNhbNubMQbBqcNNcNObIfcLFbIgbIfcLLbIfciQcMqcMUbCGbHEbJPbLubLDcNLbWxbWnbWpbCGbQWcBKbXkbqFbqGbUXcwybLzbLEcMTbUZbFCbLzbVadJJbEjbEQbHacchbHabIzbEjbbwbPsbPrbPvbVmbVtciocjPciSckwcioapCdJCckCcfYbgXbArbZqbZpbVWbiJbAvbxyblXbxwbOybOzccZcltbHnbVZbWjbAAbABbACbgXaadaaaaRDaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaMfaIlcCmaaaaaaaJUbVscmNcmObYzcmUcmRbVsaJUaaaaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaXFbeNaXFaaaaaaaaaaadaaaaaaaaaaadaaaaKBbUwarXbUxbUybyObUycfwbuQbuQbuQbuQbUvbuQbuQbuQdJGbMebHMbrTbUAbQsaKBacpciAbqabKRbKPbKObHPbHgbKMbKfbqabKNbJYbJWbqabqgaYpbWgbSAbDQbFvbGCbHxbDQcbibJSbIocMCbJObBqcincaycxwcfLcgNbWQcfEcyvbJHbJIdJHbCGbFsbGIbPJbGNcMBbUQbUCbUNbFpbEFcBKbUBbqFbqGbTObTRbTNbTNcdxbIAcdubUbbUdcdzbEjcMybHacftbKbbIEbEjbyicfFcQmbTlavAbxhciociociociociocluaQsaQscelbgXbArbZqbZpbUebBXbAvbBYbnTbxwbAwbbmcaObMhbUiaadbNCbCabCbbCcbgXaadaaaaRDaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaMfaIlcCmaaaaaaaJUclBbMUbZtciJbZFbMUclCaJUaaaaaaaMfaIlcXlaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaULceQaULaadaadaadaadaadaadaadaadaadaKBbSFaXOaXOaXOaXlbrTaqhbHMaUDbtwbrTaDnccJbMbaKBaKBaKBaKBaKBbTcaKBaKBbSYaKSbqabHHbHSbHRbHRbHPcekbTfbqabFccgibFabqaaWAaYpbUjbSAbDQbTdbEfbTedJFcbibDlcKpcJWbBqbBqcegcdDbLdcdjccMccLcdvcdscuhcdqceibCGbEadJDbDYdJEcLZbSIbSIcKwbCGbGYcBKbSJbqFbqGbEjbRfbRjbRybFCbRcbRebOlbRYbRZbSbbScbRBbRCbRMbRSbEjbjSbjSbjSbjSavAbxhavAcxnckFaQsaQsaOhaThckEaQsbgXbgXcfpaSkbAubiJccgbDhblXbDibOybbmchBccCbHWbQYbRbbDkbABcPDbgXaadaaaaRDaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaQtckGaFUaFUaFUaLHaLIaLIaLIbwsaLIaLIaLIaSQaFUaFUaFUckMcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaULceQaULaadaadaadaadaadaadaadaadaadaKBbSFaXOaXOaXOaXlbrTaqhbHMaUDbtwbrTaDnccJbMbaKBaKBaKBaKBaKBbTcaKBaKBbSYaKSbqabHHbHSbHRbHRbHPcekbTfbqabFccgibFabqaaWAaYpbUjbSAbDQbTdbEfbTedJFcbibDlcKpcJWbBqbBqcegcdDbLdcdjccMccLcdvcdscuhcdqceibCGbEadJDbDYdJEcLZbSIbSIcKwbCGbGYcBKbSJbqFbqGbEjbRfbRjbRybFCcpOcqdbOlbRYbRZbSbbScctObRCbRMbRSbEjbjSbjSbjSbjSavAbxhavAcxnckFaQsaQsaOhaThckEaQsbgXbgXcfpaSkbAubiJccgbDhblXbDibOybbmchBccCbHWbQYbRbbDkbABcPDbgXaadaaaaRDaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaQtckGaFUaFUaFUaLHaLIaLIaLIbwsaLIaLIaLIaSQaFUaFUaFUckMcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaKBaKBaKBaKBbQsbxRaXObQhbKtbQlbKtbKtbKtccabKtbKtbKtbKtbKtbKtbQVbKtbJibQUbrTbqabEZbFtbFqcdMbJpbERbEybqabqabqabqabqabAWaYpcaVbSAbSAbQTbQTbQTbSAbSAbBqbBqcEbbBqbBqcCLcCxbMGcCLcDccDccDccCxbMIcCLcCxbCGbCGbCGbCGbCGbCGbQQbQQbQQbCGbCNcBKbSzbqFbNWaZLbMNbMNbMNbPZbMNbMNbPWbMPbMNbMNbMNbMNbEjbCSbQfbEjbOobPMbEqaQsbLLbLMavAckCckzckyaQsaOhaQsaQsbWIbgXbPIbmcbPLbiJbiJbiJcdLblXbEDbEEbbmcbGbMhbUiaadbgXbgXbgXbgXbgXaadaadaWtaadaWuaadaaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaMfaIlcCmaaaaaaaaaaaaaaaaaabQgaaaaaaaaaaaaaaaaaaaMfaIlcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaKBaKBbzdccPaWoaKBccQaKBaKBaKBcoLbYwbYwbYwbYwbYwbYwbYwbrTbZwaQWbVBbqabVwbUaccebTnbJpbHPbWoccfbVFbtwaKBcbQbqgcorbYeccrccnccicciccicclcdoccrdBiccidAScosccrccrcoycowcowcowcoxcowcovccccccccKcoEbXwcfSdBoccocciccicciccObTzcccccmbqFciechbcbobWDbWEbXWbXZbYFbYGbVlbVrbVubVxbVybEjcbecbjcbWbzcbvHbRPasMbLMaQsavAavAavAavAavAcAkcxnbgXbgXbgXccbbmcaSkbFPbFQcoqbnIbFSbFTbFUbOzchXcltbHnbVZbWjbFWbFXbFXbgXaadaaaaRDaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaMfaIlcXPcWwcWwcWwcWwcWwcWwbQgcWwcWwcWwcWwcWwcWwaOYaIlcXlaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaKBaKBbzdccPaWoaKBccQaKBaKBaKBcoLbYwbYwbYwbYwbYwbYwbYwbrTbZwaQWbVBbqabVwbUaccebTnbJpbHPbWoccfbVFbtwaKBcbQbqgcorbYeccrccnccicciccicclcdocxTdBiccidAScosccrccrcoycowcowcowcoxcowcovccccccccKcoEbXwcfSdBoccocciccicciccObTzcccccmbqFciechbcbobWDbWEbXWbXZbYFbYGbVlbVrbVubVxbVybEjcbecbjcbWbzcbvHbRPasMbLMaQsavAavAavAavAavAcAkcxnbgXbgXbgXccbbmcaSkbFPbFQcoqbnIbFSbFTbFUbOzchXcltbHnbVZbWjbFWbFXbFXbgXaadaaaaRDaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaMfaIlcXPcWwcWwcWwcWwcWwcWwbQgcWwcWwcWwcWwcWwcWwaOYaIlcXlaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaaacnwcixbzacoBcnwbrTcaYbrTdAcaKBcolbYwcnXcnAcnscnrcngbYwbrTbHMaQWbHMbqabqabqabqabqabqabqabqabqabQSbHMaKBcijbqgbOUbOVaWKaWKaWKaWKaWKaWKaWVaWKbPjbOXaWXaWWaWKaWKbOYbOZcojbPbbPcbPdbPebPfaWKaWKcaXbPhaWKaWKaWVaWKaWKaWKaWKbSRaWKbPjcnYcfzcfycawbUmbUnbFFbFFbFFbVcbUkbFFbFFbTJbUlbEjdvYdAacatcarcaoaUobWIbOnbQMaUobOocasbZiavAbvSavAbgXcmLcaxcaKcaMcaUchfchfchfaVzblXblXblXbbmcgTbMhbUiaadbNCbHsbHtbHubgXaadaaaaRDaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaMfdvMbBHbBHbBHbBHbBHbBHbBHcmAbBHbBHbBHbBHbBHbBHbBHdvJcCmaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaacnwclJbyZcifcnwbrTdJybrTaKBaKBdACbYwcjBclDctGclUdKGbYwavabrTbZAbKtbKtbKtbKtbKtbZDbZEbZEbZEbZEbOMbOSdokcQabTPclHbQdbQcbQebZXbQdbQdbQdchGbQdbTUaVCbUgbQiaVCaVCbRqbQkbRQbQmbQnbQobQpbQqaVCbZnchccgZcgZchacdUchachachachiclAbRXckbchhbSaceVceUbTabTbbNAbNAbJZbNAbSjbNAbNAbSZbShbMNbMNbMNbMNatJbasaUoaUoaUoaUoaUobZeasMasMckPcqWbYxbZdbYybYpbYubYkbYmblXblXblXblXblXbnTblXbbmccjccCcksbQYbRbbIPbFXbUSbgXaadaaaaRDaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaaabDrbDrbDrbDrbDrbDrbDrbDrcpvbDrbDrbDrbDrbDrbDrbDrbDraaaaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEaaEaadaaEaAXaadcnwcqedzMbyYcnwbVBbrTbrTaKBcjKcvobYwcjwcpqcjucjncuSbYwbYwbYwbYwbYwbYwdJpbYwbYwcjIbYcbYdbHMbMebrTbMbaKBaKBaZLaZLaZLaZLaZLaZLaZLaZLaZLaZLdJMbRwbRwcezceDbRwcNWbRwcjmcbDbqFcbBcbCbRDcTgbRDbXDcexbRDbRDcjlaZLbSXbNpbNpciTaZLcaebMNcevbROcevbMNbQGbRabNAbNAbQFbNAbQEbNAbNAbQDbPNbMNbOjbOkbQjbyQbXlasMasMasMasMasMbXfbWTbMicjjbMibMibiNbRhbWLbWMblXbWHbevbevbevbevbevbWGblXbbmcbGcjibgXaadbgXbgXbgXbgXbgXaadaaaaRDaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMbaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaacnwclJbyZcifcnwbrTdJybrTaKBaKBdACbYwcjBclDctGclUdKGbYwavabrTbZAbKtbKtbKtbKtbKtbZDbZEbZEbZEbZEbOMbOSdokcQabTPclHbQdbQcbQebZXbQdbQdbQdchGbQdbTUaVCbUgbQiaVCaVCbRqbQkbRQcxPbQnbQobQpbQqaVCbZnchccgZcgZchacdUchachachachiclAbRXckbchhbSaceVceUbTabTbbNAbNAbJZbNAbSjbNAbNAbSZbShbMNbMNbMNbMNatJbasaUoaUoaUoaUoaUobZeasMasMckPcqWbYxbZdbYybYpbYubYkbYmblXblXblXblXblXbnTblXbbmccjccCcksbQYbRbbIPbFXbUSbgXaadaaaaRDaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaaabDrbDrbDrbDrbDrbDrbDrbDrcpvbDrbDrbDrbDrbDrbDrbDrbDraaaaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEaaEaadaaEaAXaadcnwcqedzMbyYcnwbVBbrTbrTaKBcjKcvobYwcjwcpqcjucjncuSbYwbYwbYwbYwbYwbYwdJpbYwbYwcjIbYcbYdbHMbMebrTbMbaKBaKBaZLaZLaZLaZLaZLaZLaZLaZLaZLaZLctQbRwbRwcezceDbRwcNWbRwcjmcbDbqFcbBcbCbRDcTgbRDbXDcexbRDbRDcjlaZLbSXbNpbNpciTaZLcaebMNcevbROcevbMNbQGbRabNAbNAbQFbNAbQEbNAbNAbQDbPNbMNbOjbOkbQjbyQbXlasMasMasMasMasMbXfbWTbMicjjbMibMibiNbRhbWLbWMblXbWHbevbevbevbevbevbWGblXbbmcbGcjibgXaadbgXbgXbgXbgXbgXaadaaaaRDaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMbaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaacnwbLKcracrbcnwaKBaKBaKBaKBbYwcvobYwbSnbSobSpbSqbSkbYwbSlbSmbRKbYwbRRbQLbREbYwczGbYwbYwbYwbYwbYwbYwbYwbRzbRpbRxbRlbRnbRmcxLbQZbRkbRicxLbUIbXObUIbXRbXQbUIbXObUIbYIbMzbSKbMSbRLcwbbSNcwbbLObYKcwbbSNcwbbRLbPObPObPObPObPOcpcbMNbFxbEMbFFbFFbNybJZbNAbNAbJZbNAbJZbNAbNAbNHbNZbMNbBpbPwbMNatJaTZbMibMibMibMibMibMibMjavAbSBbSCbSCbgXbXNbLVbLTbLRbLQbnTblXblXbWHbevbLXchHbbmbMgbMhbgXaadaadaadaadaadaadaadaadaWsaadaWuaadaWtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEaaaaaabMqbMrbMrbMtbMsbMBbMAaaaaadaaaaaaaaabYwcvobYwbYwbYwbYwbTwbYwbYwbTtbTubTtbYwbYwbYwbYwbYwbTicjvbYwcdYbxmbUJbxkbUGbUFbUubUEbUubTQbTIbTEbTycwvbTxbSObThbSxbYWbNYbPQbYWbYTbSGbXObTLbTSbTTbSNbPSbTVbTWbTXbZIbTWbTVbTZbSMbPObZKbYZbZLbPObWwbMNbOgbOabOObzpbOhbJZbPmbzpbzpbzpbPnbzpbzpbzpbPpbPobUpbUpchScpjaQsaUobULbNaavAavAavAavAavAbUMbVGbVObgXbVjbMKblXblXbxwbMLbnXbnXbMRbMTbMRbnXbMYbMZbMhbgXbgXbgXaadaaaaaaaaaaadaaaaRDaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaabIWaaaaadbKmbKjbKjbKeaadaadaadaadaadbYwbGbbFZbKYbYwbLabLebZbbYwbLgbLhdJrbKubKzbQLbKHbYwbKIbuXbIHbIhbxjbIZbKabJEbKpbXxbZabYYbGybGvcxLcxLbHjbGFbLibLybMabWdbEObWibWhbKGbXsbXEbTLbTSbTTbVebVfbVgbVhbKqbWSbVkbVkbFwbFybTkbSgbRJbQubPObWwbMNbyCbyxbznbzlbARbzpbzfbySbzjbzgbBObATbEJbCxbASbMNcfQbICbMNatJaQsavAavAavAavAbLAbLIbLJbLWbLZbVQbNRbgXbLFbKFbKDbKCbKAbMcbKybKxbKwbMkbKWbKUbKLbKJbMhbWWdOqbWWaadaaaaaaaaaaadaaaaRDaaaaadaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaAXaadaaEaAXaadaaabIWaaaaadaadaadaaaaaaaaaaaaaaaaadaaabYwbYwbYwcvobYwbMCbFZbNbbNcbMXbGwbMlbQLbQLbZbbMybYwbMmbMxbYwcuScmzdDYdEcbYwbMHbNmbNjbNibNgbNfbNlbYIbYIbAUbYIbNDbDmbXobXobXqbXsbXrbXsbXEbTLbWrbHpbVebVfbVfbVfbWtbUfbTYbWvbBCbXJbXIbWlbVibWAbPObWwbMNbMNbMNbMNbMNbMNbLbbMNbMNbMNbMNbMNbMNbMNbMNbMNbMNbMNbMNbMNatJbNKavAcfRchjavAbNJbOqbOBbObbOcbTvbNnbgXbNNbNNbOCbNNbXLbNNbOCbONbXLbXLbMhbNNbQNbPibXMbgXbgXbgXaadaaaaaaaaaaadaaaaRDaaaaadaadaadaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYRaaaaaaaaaaadaaaaaaaaactSaaaaaaaadaaaaaaaaaaaaaaaaacaadaaabYLbYEbYwbYfbYnbYobYwbYwbYwbXYbYabYqbYrbYsbYwbYwbYwbMmbZhbYwaKBbxzbxzbxzbxzbxzbxzbXCbNibXVbXTbXcbYIbXdbYQbZcccwccvbSEczybSEcctcctdJAbUIbTLbTSbTTcwbbZBbUYbTGbTpcbcccHbXGbXHccIbPOccyccqcbAbPObOAbXXbXXbXXbXXbXXbPgctubXXbXXbXXbXXbXXbXXbXXbXXbXXbZQbOWbZWasMckvbZCbNrbZJdJCavAbZObYXbZjbZkbZrbZybZzbgXbgXbgXbYSbOEbOFbOEbOIbOEbOFbOFbODbOEbYRbgXbgXbgXaadaadaadaadaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEaaaaaabMqbMrbMrbMtbMsbMBbMAaaaaadaaaaaaaaabYwcvobYwbYwbYwbYwbTwbYwbYwbTtbTubTtbYwbYwbYwbYwbYwbTicjvbYwcdYbxmbUJbxkbUGbUFbUubUEbUubTQbTIbTEbTycwvbTxbSObThbSxbYWbNYbPQbYWbYTbSGbXObTLbTSbTTbSNbPSbTVbTWbTXbZIbTWbTVbTZbSMbPObZKbYZbZLbPObWwbMNbOgbOabOObzpbOhbJZbPmbzpbzpbzpbPnbzpbzpbzpbPpbPobUpbUpchScpjaQsaUobULbNaavAavAavAavAavAcpebVGbVObgXbVjbMKblXblXbxwbMLbnXbnXbMRbMTbMRbnXbMYbMZbMhbgXbgXbgXaadaaaaaaaaaaadaaaaRDaaaaRCaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaabIWaaaaadbKmbKjbKjbKeaadaadaadaadaadbYwbGbbFZbKYbYwbLabLebZbbYwbLgbLhdJrbKubKzbQLbKHbYwbKIbuXbIHbIhbxjbIZbKabJEbKpbXxcdkbYYbGybGvcxLcxLbHjbGFbLibLybMabWdbEObWibWhbKGbXsbXEbTLbTSbTTbVebVfbVgbVhbKqbWSbVkbVkbFwbFybTkbSgbRJbQubPObWwbMNbyCbyxbznbzlbARbzpbzfbySbzjbzgbBObATbEJbCxbASbMNcfQbICbMNatJaQsavAavAavAavAbLAbLIbLJbLWcjJbVQbNRbgXbLFbKFbKDbKCbKAbMcbKybKxbKwbMkbKWbKUbKLbKJbMhbWWdOqbWWaadaaaaaaaaaaadaaaaRDaaaaadaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaAXaadaaEaAXaadaaabIWaaaaadaadaadaaaaaaaaaaaaaaaaadaaabYwbYwbYwcvobYwbMCbFZbNbbNcbMXbGwbMlbQLbQLbZbbMybYwbMmbMxbYwcuScmzdDYdEcbYwbMHbNmbNjbNibNgbNfbNlbYIbYIbAUbYIbNDbDmbXobXobXqbXsbXrbXsbXEbTLbWrbHpbVebVfbVfbVfbWtbUfbTYbWvbBCbXJbXIbWlbVibWAbPObWwbMNbMNbMNbMNbMNbMNbLbbMNbMNbMNbMNbMNbMNbMNbMNbMNbMNbMNbMNbMNatJbNKavAcfRchjavAbNJbOqbOBbObcjJbTvbNnbgXbNNbNNbOCbNNbXLbNNbOCbONbXLbXLbMhbNNbQNbPibXMbgXbgXbgXaadaaaaaaaaaaadaaaaRDaaaaadaadaadaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYRaaaaaaaaaaadaaaaaaaaactSaaaaaaaadaaaaaaaaaaaaaaaaacaadaaabYLbYEbYwbYfbYnbYobYwbYwbYwbXYbYabYqbYrbYsbYwbYwbYwbMmbZhbYwaKBbxzbxzbxzbxzbxzbxzbXCbNibXVbXTbXcbYIcpNbYQbZcccwccvbSEczybSEcctcctdJAbUIbTLbTSbTTcwbbZBbUYbTGbTpcbcccHbXGbXHccIbPOccyccqcbAbPObOAbXXbXXbXXbXXbXXbPgctubXXbXXbXXbXXbXXbXXbXXbXXbXXbZQbOWbZWasMckvbZCbNrbZJdJCavAbZObYXbZjbZkbZrbZybZzbgXbgXbgXbYSbOEbOFbOEbOIbOEbOFbOFbODbOEbYRbgXbgXbgXaadaadaadaadaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaaabwYbwYbwYbwYbwYaadcuLaadbwYbwYbwYbwYbwYaaaaAXaaaaadaadbYwcaTbPlcaCbYwbYwbYwbxNbYwbYwbYwbYwbYwbYwbYwcaGclwbMmcaDdEebYwcazcaBcafcagcbmbxzcaQcaPcaJcaIcaHbYIcaFcaEcaLbStcambZNbZNchVbGicbqbGicdHcbvbTSbYNbYObYPbCnbCnbYPbCncdCbYPbYUbYVbPOccAcczccBbPObGTcizbWBbWBbWBbWBbPFbWBbEbbEbbEbbEbbEbbEbbEbbEbbEbbZgbYwbQLaQsaQsaQsavAaQsaQsavAcbwcbfcbgcaZcbacbncbucbkcblaadbPBaadbPCaadbPBaadbPEbPubPqaadbPqcaWaadaadaadaaaaaaaadaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEaadcuHcuIcuIcuIcuIcuKcuLbMWbMMbMMbMMbMMbMVaaeaaeaaaaadaaabYwbVYbYwbGbbFZbFZbFZbFZbFZbVRbZxbZxbZxbZxbZxbZxbZxbVSclpcslbVJbUObUUbVUbVVbNkbxzbWfbCTbBZbVPbWfbYIbXebXabYIbXzbXgbZNbXAbZPbCvbZRbYjbZNbYMbTSbZTbYPbXUcdBcdBbXFbXPbXKbYPbQrbGJcadcaNcadbPObPOczlbYwbWBbJfbDNbSsbNzbFdbEbbFIbFIbFIcaSbNsbNxbFIbEbbZgbYwbWNaUobWFbWJavAciVcjQavAbVdbWsbTsbBWbWybCybTsbTsbWbbgXbNFbNCbNFbgXbNFbNCbNFbgXbNEbNCbNBbgXaadaaaaaaaaaaaaaaaaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaAXaadbwWbwWbwWbwWbwWaaacuLaaabwWbwWbwWbwWbwWaaaaAXaaaaadaaabYwbYwbYwbYwbYwbYwbYwbYwbYwbQKbYwbYwbXhbXjbXjbXjbXjbJdbXjbXjbXjbXpbXtbXubXvbJgbXBbNObJlbJnbNQbOsczubJobXSbNUbJzbKrbNVbPybPxbYDbYCcapbZNbYMbTScdwbYPcahcaabZHbIubDFbSPbYPbYJbOJbOtcsdbWBcuScmzbNIcjvbWBbWVccEbunbOfbQwbEbbFIbOebNXbNTbNPbNMbNLbEbbZgbYwbYwbYwbYwbYwavAavAavAavAavAavAarNbWZbXbbWYbTsdQfbWXbgXbOwbWObOxbgXbOubSdbOvbgXbOibNdbOmbgXaadaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEaaaaadaaaaadaadaadaaacabaaaaadaaaaadaaaaadaaaaAXaadaadaaabYwcfdceZcfncfrcfucfxbZsbZudIFbYwbzQbyUcbHcbIbzLcaAbEgcbLcbMbYwcfAbyRbHkbyAbGGbGHbHCbRHbzrbzbbRobRrbRobzbbRobFhbGecbdbJucfvbJqbJkbIrbGibYMbTSbYNbCnbItbIsbIvbIubIxbIwbIQbyubyvaXDaYHbWBcaqbaZbGfckTbWBbGuccGbFGbFHbQPbEbbFIbFIbFJbFIbFIbFLbFKbEbbZgbYwceRbBnbYwbBobVHbVIbBKbVKbVTbWearNbBWbCsbCybTsbLCaadbgXbVLbWPbCEbgXbRgbSebCkbgXbOGbNecbTbgXaadaadaadaadaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaaabwYbwYbwYbwYbwYaadcuLaadbwYbwYbwYbwYbwYaadaAXaaaaadaaacfGcfOcaicgIcgPcalbZocgybYwbQKbYwccTccUccVbzXccXbGqbGrbzUbIIbYwbIKbzGbIkbIlbImbLBbLwbIcbzEbLxbGpbSEbSEbSEbLtbFzbGjbLvbLocfvbLqbJkcbzbZNciWbTScgobYPbKSbKhbKhbLfbDFbJXbYPbzBbZvbWzbVNbWBbdObYvbGTbfDbWBbrWbJVbDVbDTceLbEbbEbbGEbGDbGMbGLbEbbGKbEbbGQcbxcakbCFbYwbCDaQsaQsaQsbQLcpqbENbYvbCHbCRbGZbDPbLCaadbgXbVLbGkbVLbgXbRgbGsbRgbgXbLYbGtbLYbgXaadaaaaaaaaaaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaadcuHcuIcuIcuIcuIcuKcuLbMWbMMbMMbMMbMMbMVaadaAXaaaaadaaacacbZGbZocaicajcalcaubYwbYwbQKbYwcdZceacebceccedcaAbyzbAYbyzbYwbxzbExbyBbEAbxzbxzbEXcyUbEWcemcemcenceobBscemcemcshbZNcbycfvbEUbUqbZNbZNbDbbTScavbYPbYPbDacdBcfIbBubAqbYPbDGbGJbRLbRLbWBaUJbYvbEGbWBbWBbRLbKKbxobRLbRLbDUbDSbDZbDWbEkbEebYBbYhbEbbZgbYwbErbEubYwbTFcpqbZbbQLbZlbQLbYwbYvbTsbMpbTsbTsbBiaadbgXbgXbgXbgXbgXbgXbgXbgXbgXbgXbgXbgXbgXaadaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaadbwWbwWbwWbwWbwWaaabUWaadbwWbwWbwWbwWbwWaaaaAXaaaaadaaacacccFcaicdWceJcalcdJceKdJpbQKbYwcfacfbcfcccYbFNcaAbCBbDnbEPbYwbwPbyqbFlcflbGmbHUbPPbNYbPQcembPXbCKcfqbDjclicemctGbZNceOcfvbHLbHDbGibFVbykcfBbxAbFobFkbFgbGPbGnbDFbFbbBJbGlbQAbQyaWbaWObVfaVwbFEbOraVrbOpbFibFfbVfbFebDUbEVbEScbSccuccdcbZcbYbEbbZgbYwbYwbVzbYwbVobVvbQLbQLbIXbVCclraadbTsbNtbTsbCzbBlaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaSgaaaaadaaaaadaaaaadaaabIWaaaaadaaaaadaadaadaadaSgaaaaadaaacuwcurcaicalcalcaicaictgdJpbQKbYwcgdcgecgfcggcghcaAcjEcgjcgkbRTcgmbLnbLmcgpcgqcgrbUVbNYbPQcgtcgucgvcgwbLpctecembQLbZNbMJcgAbRWbRVbRtbRsbRubTSbRFbRvbRNbRGbQvbQbbQzbQxbQObQCbRdbAxbBxbJsbURbBCbIRbUTbUTbUTbIybIpbIDbJybwUbIFcrtcqSckQcjXcmrclQcqicmubYwbIMcsYceScfkbZlbQLbQLcotbHfbYwaadbTsbBmbTsbYtdOUaaaaaaaaaaaaaaaaadaaaaaaaaaaadaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaadcuHcuIcuIcuIcuIcuKcuLbMWbMMbMMbMMbMMbMVaadaAXaaaaadaaacacbZGbZocaicajcalcaubYwbYwbQKbYwcdZceacebceccedcaAbyzbAYbyzbYwbxzbExbyBbEAbxzbxzbSucyUbEWcemcemcenceobBscemcemcshbZNcbycfvbEUbUqbZNbZNbDbbTScavbYPbYPbDacdBcfIbBubAqbYPbDGbGJbRLbRLbWBaUJbYvbEGbWBbWBbRLbKKbxobRLbRLbDUbDSbDZbDWbEkbEebYBbYhbEbbZgbYwbErbEubYwbTFcpqbZbbQLbZlbQLbYwbYvbTsbMpbTsbTsbBiaadbgXbgXbgXbgXbgXbgXbgXbgXbgXbgXbgXbgXbgXaadaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaadbwWbwWbwWbwWbwWaaabUWaadbwWbwWbwWbwWbwWaaaaAXaaaaadaaacacccFcaicdWceJcalcdJceKdJpbQKbYwcfacfbcfcccYbFNcaAbCBbDnbEPbYwbwPbyqbFlcflbGmbHUbPPbNYbSDcembSWbCKcfqbDjclicemctGbZNceOcfvbHLbHDbGibFVbykcfBbxAbFobFkbFgbGPbGnbDFbFbbBJbGlbQAbQyaWbaWObVfaVwbFEbOraVrbOpbFibFfbVfbFebDUbEVbEScbSccuccdcbZcbYbEbbZgbYwbYwbVzbYwbVobVvbQLbQLbIXbVCclraadbTsbNtbTsbCzbBlaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaSgaaaaadaaaaadaaaaadaaabIWaaaaadaaaaadaadaadaadaSgaaaaadaaacuwcurcaicalcalcaicaictgdJpbQKbYwcgdcgecgfcggcghcaAcjEcgjcgkbRTcgmbLnbLmcgpcgqcgrbUVbNYbPQcgtcgucgvcgwbLpctecembQLbZNbMJcgAbRWbRVbRtbRsbRubTSbRFbRvbRNbRGbQvbQbbQzbQxbQObQCbRdbAxbBxbJsbURbBCbIRbUTbZabUTbIybIpbIDbJybwUbIFcrtcqSckQcjXcmrclQcqicmubYwbIMcsYceScfkbZlbQLbQLcotbHfbYwaadbTsbBmbTsbYtdOUaaaaaaaaaaaaaaaaadaaaaaaaaaaadaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaaabwYbwYbwYbwYbwYaadbJUaadbwYbwYbwYbwYbwYaadaAXaaaaadaaacaccvqcaicvjcaicaicaubYwbYwbxZbLSchscgechtcggchuchvchwbDuchychzbDwbLPchCchDchEchFbVAbLNbDmchJchKbDgchMbLschMchObTBbZNbOPbOKbTAbTrbGibRsbRubTSbRFbRvbCnbSLbSwbSvchZbQBbBJbSyclkbzybLrbBVciicikbVnbVkbVkbVkbJBbVbbBGbJTbJNbJLbJKbPabJxbJwbJvbJtbEbbZgbYwbJebJbcfDcakdJxbIXcuJbQLcfCclraadbFRbFYbFRbZZaadaadaaEaRCaRCaRCaRCaRCaRCaaEaRCaRDaRCaWuaadaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaadcuHcuIcuIcuIcuIcuKcuLbMWbMMbMMbMMbMMbMVaadaAXaadaadaaacacbOHcalcgIcalchrbZbchxbYwbQKbYwciBciCciDciEciFcaAciGcfgciHbYwbJMchUbKiciLbTgbHUbSHbNYbKTcemciOciPbHAciRcilcembMubZNbZNbZNbMObZNbZNbZNbMfciXbMdbYPbYPbYPbYPbYPciZbLUbYPbWBbWBbSQbSTbSUcjgbSVbSSbLkbLkbLkbLkcjkcjkbIBcjkbEbbEbbEbbHcbGXbHedJubEbbZgbYwbIMbElbYwcbEcbKbQLbQLbQLbHhbYwaadaadaadaadaadaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaadaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaadbwWbwWbwWbwWbwWaaabUWaaabwWbwWbwWbwWbwWaaaaAXaaaaadaadcaccalchrcalcjJbZlcjBcjTbYwbQKbYwcjzcjAcjVcjCcjDcaAbKXcjFbIqbYwbPYcehcehcehcehcehcjabAtbTMbIbbKVcjMbHFcjObHTcembwQbPzbPzbPzbxYbxWbuXbokbHVbHXbHYbHZbIabPzbHIbHGbHKbHJbHNbHIbHQbHOckfckgckhckibtGckkcklckmckncjkdJvbJcbOQbEvbEtbEbbEbbEbbEbbEbbEbbZgbYwbYwbYwbYwbYwbYwbYwclrbYwbYwbYwaaaaadaaaaaaaaaaadaadaadaaEaRDaRDaRDaaEaRDaRDaRDaaEaRDaWtaRDaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaaaaaaaadaadaadaaaaaacvTaadaaaaaaaadaadaaaaaaaAXaaaaadaaadMEdMFdMFdMDbYwdMCdMBbYwbYwbQKbYwbYwbYwbYwbYwbYwbYwbYwcshbYwbYwbYAbYwcxZcxYcyfcyebVAcukcuDcemcuAcyGcxPcoCcoCcoCcoCcoCcoCcoCcxJctOcxJcxJctPcrncrobYwcmzdEddEcbYwcjccjcdAgcjcckUctYckYckZckhclaclbclccldclecylcjkclgdHadHccxzcvEbYvdEedEebYwcpXclpdLcbYwcABcjvbYwaaaaadaaaaaaaaaaaaaadaaaaadaaaaaaaaaaaaaaaaaaaaaaadaaaaadaaaaaaaadaaaaadaaaaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaadcuHcuIcuIcuIcuIcuKcuLbMWbMMbMMbMMbMMbMVaadaAXaadaadaaacacbUMcalcgIcalchrbZbchxbYwbQKbYwciBciCciDciEciFcaAciGcfgciHbYwbJMchUbKiciLbTgbHUbSHbNYbKTcemciOciPbHAciRcilcembMubZNbZNbZNbMObZNbZNbZNbMfciXbMdbYPbYPbYPbYPbYPciZbLUbYPbWBbWBbSQbSTbSUcjgbSVbSSbLkbLkbLkbLkcjkcjkbIBcjkbEbbEbbEbbHcbGXbHedJubEbbZgbYwbIMbElbYwcbEcbKbQLbQLbQLbHhbYwaadaadaadaadaadaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaadaaaaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaadbwWbwWbwWbwWbwWaaabUWaaabwWbwWbwWbwWbwWaaaaAXaaaaadaadcaccalchrcalbXdbZlcjBcjTbYwbQKbYwcjzcjAcjVcjCcjDcaAbKXcjFbIqbYwbPYcehcehcehcehcehcjabAtbTMbIbbKVcjMbHFcjObHTcembwQbPzbPzbPzbxYbxWbuXbokbHVbHXbHYbHZbIabPzbHIbHGbHKbHJbHNbHIbHQbHOckfckgckhckibtGckkcklckmckncjkdJvbJcbOQbEvbEtbEbbEbbEbbEbbEbbEbbZgbYwbYwbYwbYwbYwbYwbYwclrbYwbYwbYwaaaaadaaaaaaaaaaadaadaadaaEaRDaRDaRDaaEaRDaRDaRDaaEaRDaWtaRDaRDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaaaaaaaadaadaadaaaaaacvTaadaaaaaaaadaadaaaaaaaAXaaaaadaaadMEdMFdMFdMDbYwdMCdMBbYwbYwbQKbYwbYwbYwbYwbYwbYwbYwbYwcshbYwbYwbYAbYwcxZcxYcyfcyebVAcukcuDcemcuAcyGdCGcoCcoCcoCcoCcoCcoCcoCcxJdCLcxJcxJctPcrncrobYwcmzdEddEcbYwcjccjcdAgcjcckUctYckYckZckhclaclbclccldclecylcjkclgdHadHccxzcvEbYvdEedEebYwcpXclpdLcbYwcABcjvbYwaaaaadaaaaaaaaaaaaaadaaaaadaaaaaaaaaaaaaaaaaaaaaaadaaaaadaaaaaaaadaaaaadaaaaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSgaaaaaaaaaaaaaaaaaaaaacvTaaaaaaaaaaaaaadaaaaaaaSgaaaaadaaaaaaaaaaaaaadbYwbYwbYwbYwcgKbQKbZhcucdCMbQLdNecuSbZhclwctGbYwbYlbQLbYwcwrcwqcwhcwfcBdcxhcxfcemcemcemcemcoCctbdMAdMzcsZcsLcoCcsxcsEctoctpctqbTSbYNbYwdDWdDUdDYbYwctEdBlclXctFckUcAJcmbcmccmdcmecmfcmgdDXcmidDZcjkcmkcmldGMcwScuobYvbCQbFAdEadEbbZhdLadEadLbcotclraadaadaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaaEaAXaAXaAXaaaaaaaaacvTaaaaaaaaaaAXaAXaAXaSgaAXaadaadaadaadaadaadaadaaebYwdNlbYwbIOdJtbXXbXXbXXbXXbXXbXXbXXbXXbXXcwtbQLczwbYwczYczRcAiczRczEczIcyYctjcQFcxvcxxcoCdMJcwHcwYcxicwGcoCcxjcxocxAcxEctqbTSbYNbYwbYwbYwbYwbYwcxScxUcxIcxKckUbTXcmXcBEcmZcnacnbcnccnccndcxycjkcnfcmldHjcnicJRbYvdJwdKHbYwbZgbQLcOzbYwbQLcpZbYwaaaaadaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaadaaaaaaaaaaAXaadcBBaadaAXaaaaaaaadaaaaaaaadaaaaaaaaaaaaaadaadajIcnEbPlckAcxtckAdJrbQLbQLbQLbQLcizdNkbQLbQLbQLcpWdKGckXbYwdEjdEkdEldEmdEgdEhdEictjczmczocvBcoCcuFcuGcuBcuEdMIcoCdMHdMGcxJcxJcvGbTScBgcmPdNgdNfcwzdNidNhcwFcvHdNjckUcpJcjeczqbLkdEfcnZcoacobcocdCmcjkcoecofdHicxXcoibYvbYwbYwbYwbZgbYwdLdbYwbYwbYwbYwaadaadaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaAXaaaaadaaaaAXaaaaaaaadaadaadaadaaaaaaaaaaadaadaaaaaeaaebYwdBhbYwbQLbZhbQLbQLdNzbYwbYwbYwbYwbYwbZhcpWcuScmzbYwdEzcNScOycOucMIcMJcMKcNjcLNcMmcLzcMGdMPcNmcJOcJPcBQctocCMcDYcJQcxJcbvbWrcNBclRdNAcmScmScmSdBtcmTcmTcmTcOAcuRcjecpfbLkbLkbLkbLkbLkbLkbLkcjkcjkcjkdLgcjkcjkbYvcpXclpclpcpYbYwbQLdLecubdKZcubaadaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaacaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaAXaAXaAXaAXaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEaaaaaaaadaaebYwbYwbYwcdYbYwcmzcJZclfbYwdKIdKJdKIbYwcdYcpWbYwbYwbYwdEqdEqdEqdEqdErdEtdEucyscyncyqcxVcyjdMOdMNdMMdMLdMKdEvcyIcyRcAKdEwcDSbTSdBMcjcdNndNmdNmdNmdNhcmTczKczLbIGcBOcKNdJidovdIBdHRdHSdHldHOdJqdJWdKydKCdKDdKMdoBcdYdJobQLbQLbYwbYwdLfbYwbYwbYwbYwaadaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaAXaaaaadaaaaAXaaaaaaaadaadaadaadaaaaaaaaaaadaadaaaaaeaaebYwdBhbYwbQLbZhbQLbQLdNzbYwbYwbYwbYwbYwbZhcpWcuScmzbYwdEzcNScOycOucMIdEocMKcNjcLNcMmcLzcMGdMPcNmcJOcJPcBQctocCMcDYcJQcxJcbvbWrcNBclRdNAcmScmScmSdBtcmTcmTcmTcOAcuRcjecpfbLkbLkbLkbLkbLkbLkbLkcjkcjkcjkdLgcjkcjkbYvcpXclpclpcpYbYwbQLdLecubdKZcubaadaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaacaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaAXaAXaAXaAXaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEaaaaaaaadaaebYwbYwbYwcdYbYwcmzcJZclfbYwdKIdKJdKIbYwcdYcpWbYwbYwbYwdEqdEqdEqdEqdErdEtdEucyscyncyqcxVdDzdMOdMNdMMdMLdMKdDAcyIcyRcAKdDGcDSbTSdBMcjcdNndNmdNmdNmdNhcmTczKczLbIGcBOcKNdJidovdIBdHRdHSdHldHOdJqdDIdKydKCdKDdKMdoBcdYdJobQLbQLbYwbYwdLfbYwbYwbYwbYwaadaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaadaadaadaadaadaaabYwbYwbYwbYwbYwbYwbYwbYwbYwbYwbYwbQLcpWbYwcqucpKcLscLrbWKctvdEOdAPdARctjdNadNbdMZcoCdMXdMWdMWdMWdMYcoCdELdEKdEMcnRdENcnNcNBcpbdOfcmScmScmSdBtcmTcmTcmTcOAdAdcqGdNodNpdOddOedNqdNrdOmdOndNrbJDdOndNvdNwdoBdovcqQdBwdovdovdNudOjdOhdOidNtaadaadaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadcYFdpecYFaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaadaaaaaaaaaaadaadaaaaaaaaaaadaaaaaabYwbQLdECcshcLPcJYcpDcpCcpzcpydEEdEFdEGctjcKjdAmcJUcoCdNDdNCdNBdMQdMTcoCdEBcKOcKOcxJdMUbTSbYNcjcdNEdNfdNFdNGdNhdBAcLvcLYckUbTXcrEcrFdNHdNIdNMdLhdNJdNJdMfdMydMRdMSdLpdLRdoBdppdNQdNRdNSdLodNOdNOdNOdNPdOgaadaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadcYQcYFdsCcYFcYQaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaadaaaaaaaaaaaaaadaaaaaaaaaaadaaaaaabYwbZhcpWbYwcuecqqdCIcOccsbcrDdolcrBdMkctjctjcryctjcoCcoCcoCcoCcoCcoCcoCcxTcxJcxJcnpcrmcrncnqcjcckUckUckUcOAdBGckUckUckUckUcrpcjecqldrxdssdptdsgdshdspcBCcBFdsedsfcLmcOecKJdsrdtidtkdoPdsEdtJdufdoVdpcduiaadaadaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadcsGcszcsFcsHcsKcszcsGaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaadaaaaaaaaaaaaaadaaaaaaaaaaadaaaaaabYwbZhcpWbYwcuecqqdCIcOccsbcrDdolcrBdMkctjctjcryctjcoCcoCcoCcoCcoCcoCcoCdATcxJcxJcnpcrmcrncnqcjcckUckUckUcOAdBGckUckUckUckUcrpcjecqldrxdssdptdsgdshdspcBCcBFdsedsfcLmcOecKJdsrdtidtkdoPdsEdtJdufdoVdpcduiaadaadaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadcsGcszcsFcsHcsKcszcsGaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEaadcwucwucwucyJcwucwucwuaaaaadaaaaaaaaaaadaaaaaabYwcizcpWbYwbYgdnEcqqdMicqIctvdmVdnddnDctvdmJcrdcqXckOclIclKclIdMjclIcwBclKcwAckOclPbYMbTSbRFbRvcjSdnJcsCcvbdBEcvzcttcnncvJcqUbSTcqDdovcAecAecBlcAbcAccxlcxBcxNcyycyCczHdoBdpvdpwdpxdovdpydqGdrbdovdrxdovaaeaadaaaaaaaadaaaaaaaadaadaadaaaaaaaaaaaaaaaaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaadaadcrScrTcrVcrWcrWcrWcstcrScrTaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaaacwudCudCvdCudCrdCucwucwucyJcwucyJcwucwuaadaadbYwdEecpWbYwbYwbYwbYwbYwbYwbYwdMqduXduRduUduYcAactfckOcDPdBIclIclKclIduAduNcDRckOdBFbYMbTSbRFbRvcsfcsicrzcrzdAycrxdAzcqacvJbTXcjeckZdrYdoBdoBdoBdoBdoBdowdoBduzdvIdtCdujdoBdovcqQdBwdovdBpdBjdBkdBgcpGaaeaaeaadaadaadaadaadaadaadaaaaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadaadczXcBoczXcrWcMocrWcCKcGdcYFaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaAXaadcwudzYdzXdAhdzZdzYdAidAAdApdzSdzRdzUcwuaaaaaabYwbYwdrHdtrdtrdtrdtrdtsdttbPYdpjdpqdpudpzdpIdqAcsncpecoScyEcoScoScyOcyTdoCdMndoAcsBcnMcnNcyrcsecsecoocuicuidAwcwOcqEbBRcvJcpJcjebBbdoBdvPdzPdCpdCqdBddBadBddAEdAKdstdoBbYvcvpdACcjvdovdovdovdovdovcomcxdaaeaadaaaaaaaaaaaaaaaaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaadaadcrScrTcyVcrWcrWcrWczrcrScrTaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaAXaadcwudzYdzXdAhdzZdzYdAidAAdApdzSdzRdzUcwuaaaaaabYwbYwdrHdtrdtrdtrdtrdtsdttbPYdpjdpqdpudpzdpIdqAcsndBecoScyEcoScoScyOcyTdoCdMndoAcsBcnMcnNcyrcsecsecoocuicuidAwcwOcqEbBRcvJcpJcjebBbdoBdvPdzPdCpdCqdBddBadBddAEdAKdstdoBbYvcvpdACcjvdovdovdovdovdovcomcxdaaeaadaaaaaaaaaaaaaaaaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaadaadcrScrTcyVcrWcrWcrWczrcrScrTaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEaaacwuczcdJLdJIdJBczcczcdJzdJsczgdJZdJScwuaaaaaaaaacwucwucwucwucwuctvdKBctvctvdADdAFdKbctvdAvdAxcujckOcnGclKclIclKclIcsjcskcLocrGcLCdAGcfBcrZcsecrYcpAcLQcLQdAwcqTcqEcrvcvJcAJcuabCgdrxdvPdzPdwfdwfdwsdvBdvEdvHdvIdvAdoBcuScdXcvobQLdAIbYwaadaadaadaadaadaadaadaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadcsGcYQcYTcYMcYNcYLcsGaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaadcwudEUdDSdEAdEydDFdDBdDQdDMdEIcBebBSdAfdAedzVcAhdAfdwbdwFdxxcwudCJdCNctvdvVcrXdzOdDybYwbYwbYwbYwckOclIclKclIcKnclIctDctAcKkckOcJVdAnbTSctscsecqAcpAcsucsvctycqzctRcupdwtbBTdABbBUdoBdvPdzPdwfdKfdBddIIdBddAjdIHdAkdoBcvmbQLcvobQLdvubYwaadaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadcszcYFcYGcYFcYJaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaaacyJdMddMcdDHdMadMmdMldMhdMedMsdMrdMpdModDCdMudKWdMtdKXdDHdDDdMvdDKdDLdMwdDJdDOdMxcrXbYwdGIbIXdGFbYwbYwbYwbYwbYwbYwbYwcvWbYwbYwcnpdDrbTSbYNcsecsscpAcuicuicLQcxrcGhcLObCMbCPdGDcAxdExdExdExdExdExdExdBUdExdCzdAMdCCdoBbQLbQLcvobQLbYwbYwbYwaadaadaaaaaaaadaaaaaaaacaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadcYFdpecYFaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaadcwudEUdDSdEAdEydDFdDBdDQdDMdEIcBebBSdAfdAedzVcAhdAfdwbdwFdxxcwudCJdCNctvdvVcrXdzOdDybYwbYwbYwbYwckOclIclKclIcKnclIctDctAcKkckOcJVdAnbTSctscsecqAcpAcsucsvctycqzctRcupdwtbBTdCobBUdoBdvPdzPdwfdKfdBddIIdBddAjdIHdAkdoBcvmbQLcvobQLdvubYwaadaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadcszcYFcYGcYFcYJaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAXaaacyJdMddMcdDHdMadMmdMldMhdMedCFdMrdMpdModDCdMudKWdMtdKXdDHdDDdMvdDKdDLdMwdDJdDOdMxcrXbYwdGIbIXdGFbYwbYwbYwbYwbYwbYwbYwcvWbYwbYwcnpdDrbTSbYNcsecsscpAcuicuicLQcxrcGhcLObCMbCPdGDcAxdExdExdExdExdExdExdBUdExdCzdAMdCCdoBbQLbQLcvobQLbYwbYwbYwaadaadaaaaaaaadaaaaaaaacaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadcYFdpecYFaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjaaacDjcDjcDjcDjcDjaaacDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaacwudKFdKEdKYdKVbCCdLidLldLkdLrdLnbCIcwudDpdDodDqcwudKqdIRcyMcwudBqdIZctvdCsdCxdCydKwbYwdFSdFTdFVbYwdAWbZxbZxbZxbZxdKlcARclpcsldKpdKncwecLkcsecPTcrhcsycsycsycxmcvLcwRdwybCldDxcASdJhdBxdKsdLsdLJdLOdJbcBPbYidAUclpclpclpclpbCiclpbCjcwpbYwbYwbYwaaeaaaaadaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjaaacDjcDjcDjcDjcDjaaacDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadcwucACcAGczccAFcACcADcAycAzcAlcAwcAfcwucwEaaaaaacwucwucwucwucwuctvcwCctvctvctvctvctvbYwcmmcwNclhbYwcwocuxcuxcuxcuxcuxcuxcuxcuxcnpczJczZczDczFdMbdBccsJcplcuicxucmHcnLcvJbVfdAVdKicAIdIxdIPdIQdIMdIOdGmcBPclwcxCbYwbYwbYwbYwbYwbQLbAoclTbPlcmnbPlcmFaadaadaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaacDjcDjcDjcDjcDjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaacwucBmcBnczccBncBhcBiczcczccBcczcczccwuaadaadaadbYwcmzcdYbQLcxgcBJcBIclpcBLcBHdKtdKubYwcogbJbbGwcBDcwMcuxcAZcBbcBacuxcAXcAYcANcuxcALcAMcAHczFcokcvcdBucsAcuicmQcsedAYcsebWacvVclqcAIcAtcyWcmxcAgczkcDgcBPbQLcxCbYwcmIcmwcpkbYwbQLbApdCDbYwbYwbYwaaeaaaaadaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10461,7 +10479,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDaaaaaaaadaaacwZcCvcCvcCvcCNcCOcCPcCQcCRcCScCTcCocCocCUcwZaadaaaaaaaaaaadaadaAXaadcDpcDqcDqcDqcDqcDrcDicDtcDucDucDucDucDvaadaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDaaaaaaaadaaacwZcBScBScBScBScDdcDecDfdQhcDdcBScBScBScBScwZaadaaaaaaaaaaaaaadaAXaadcDAcDAcDAcDAcDAaaacDiaadcDAcDAcDAcDAcDAaaaaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDaaaaaaaadaaacwZcCncCocCocDmcCqcCrcDfcAucDncDocCvcCvcCvcwZaadaadaaaaaaaaaaadaSgaaaaadaaaaadaaaaadaaacDUaaaaadaaaaadaadaadaadaSgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDaaaaaaaadaaacwZcCvcDxcCvcpPcrccCrcDfcAucpLcoZcCvcCvcCvcwZaadaaaaaaaaaaaaaaaaAXaaacDhcDhcDhcDhcDhaadcDXaadcDhcDhcDhcDhcDhaadaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDaaaaaaaadaaacwZcCvcDxcCvcpPcrccCrdEpcAucpLcoZcCvcCvcCvcwZaadaaaaaaaaaaaaaaaaAXaaacDhcDhcDhcDhcDhaadcDXaadcDhcDhcDhcDhcDhaadaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDaaaaadaadaadcwZcCvcCvcCvcDCcDDcCPcDEcApcCScDFcCocCocCUcwZaadaaaaaaaaaaaaaadaAXaadcDpcDqcDqcDqcDqcDZcEacDZcDucDucDucDucDvaadaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCIcCIcCIcCIcCIcCIcCIcCIcCIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDaaaaadaaacwZcwZcBScBScBScBScDdcDHcDfcAucDdcBScBScBScBScwZcwZaadaadaadaadaadaadaadcDAcDAcDAcDAcDAaaacAWaaacDAcDAcDAcDAcDAaaaaAXaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCIcCIcCIcCIcCIcCIcCIcCIcCIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDcCDaaaaadaaacwZcCncCocCocDJcCqdwHcDKcDfcAucAudwGcTPcTOcCvcCvcwZaaaaaaaaaaaaaaaaaEaaaaaaaadaadaadaaaaaacAWaadaaaaaaaadaadaaaaaaaAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCIcCIcCIcCIcCIcCIcCIcCIcCIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10666,7 +10684,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOaaaaaaaaacLDdBYcLHcLIcLJdBXcLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyOdzJdyOdzJdyOdzJdyOdzJdyOdzJdyOdzJdyOdzJdyOdzJdyOaaaaaaaaacLDcNXcLIcLIcLIcNYcLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOaaaaaaaaacLDcNocLIcLIcLIdCbcLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyOdzJdyOdzJdyOdzJdyOdzJdyOdzJdyOdzJdyOdzJdyOdzJdyOaaaaaaaaacLDcNocLIcLIcLIdCbcLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyOdzJdyOdzJdyOdzJdyOdzJdyOdzJdyOdzJdyOdzJdyOdzJdyOaaaaaaaaacLDcNocLIdEwcLIdCbcLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOdyOaaaaaaaaacLDcLDdCkcLDcLDdClcLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLDdCcdyXdCddCccLDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiZajCajCajCajcaaaaiZajCajCajcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacLDdCedCfdCgdCccLDaaaaaaaaaaaaaaaaaaaaaaaaaaacLRcLScLTcLScLUcOacLUcLScLVcLScLWcLWcLScLXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10692,7 +10710,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcNvcNvcNvcNvcNvcOxcOPcOPcOPcOxdxIdxCdxCdxBcNgcNgcPJdDecQMcQdcPJcPJcQcdDdcNgcNgcNgcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcOFcOFcOFcOFdxFcOFcOFcOFcOFcOFaaaaaaaaaaaaaaaaaaaaaaaacQQcQRcQRcQRcQScQRcQRcQScQRcQRcQRcQTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcOwcOxcOxcOxcOxcOxcOPcOPcOPcOxdxGcQVcQVcQVcQWdEYcPJcPJcPJcPJcPJcPJcQcdDdcNgcNgcNgcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOFdxFcOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQZcQZcQZcQScQZcQZcQScQZcQZcQZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcOxcPIcOPcOPdxEcOxcOPcOPcOPcOxcRbcQWdxDdxBcNgcNgcPJcQdcQdcQdcPJcPJcQcdDacNgdDcdDbcNgcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOFcOFcOFcOFcOFcOFcOFcOFdxAcOFcOFcOFcOFcOFcOFcOFcOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcOxcPIcOPcRfcRgcOxcOPcOPcOPcOxcOxbKvcRicOBdxpcNgdCZdCYdOpdCYdCYcPJcPJcPJcRccRdcRdcRecNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOFdxtdxsdxsdxsdxsdxsdxtdxtdxtdxsdxsdxsdxsdxsdxtcOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcOxcPIcOPcRfcRgcOxcOPcOPcOPcOxcOxdEvcRicOBdxpcNgdCZdCYdOpdCYdCYcPJcPJcPJcRccRdcRdcRecNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOFdxtdxsdxsdxsdxsdxsdxtdxtdxtdxsdxsdxsdxsdxsdxtcOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcRocNvcOxcPIcOPcRfcRpcOxcOPcOPcOPcOxcOPcOPcOPcOxdxycNgdEXdCWdCXdCWdCVcPJcPJcPJcNgcRlcRdcRecNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadzLdxtdxtdxtdxvdxtdxtdxtdxtdxtdxtdxtdxvdxtdxtdxtdzLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcOxcPIcOPcOPcOPcRscOPcOPcOPcRtcOPcOPcOPcOxdxucNgcNgdCSdCRdCUdCTcNgcNgcNgcNgcNgcNgcNgcNgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOFdxtdxsdxsdxsdxsdxsdxtdxtdxtdxsdxsdxsdxsdxsdxtcOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNgcNvcNvcOxcPIcOPcOPcOPcRwcOPcOPcOPcRxcOPcOPcRycOxdxqdxpcNgcNgcNgcNgcNgcNgaaaaaaaaaaaaaaaaaaaaaaaaaaacRAcRAcRAcRAcRAcRAcRAcRAcRAcRAcRAcRAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOFdxrdxodxodxodxodxodxodxodxodxodxodxodxodxodxncOFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11481,7 +11499,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlfdlfdlfdlddlBdlBdDtdDtdDtdqJdqJdqJdqJdqJdqJdDtdDtdlBdlBdlBdlBdlBdlddlddlBdlBdDtdDtdDtdkHdkHdlcdlgdlgdlgdlhdDtdlBdlBdlBdlBdlBdlBdDtdDtdDtdDtdkHdkHdofdoedlBdlBdlBdlddlddlddlddlddlBdDtdDtdDtdDtdDtdkHdkHdlcdlgdlgdocdoddlgdlgdlgdlgdlhdDtdDtdlBdqkduIduJduKduJdqkduLdtgdtcduOduPdqkduQdtbduSdqkdDtdDtdDtdDtdDtdDtaaaaaaaadaaaaaaaaaaadaadaadaadaadaadaadaadaaddrVdsqdsZdPTdrVdrVdrVdrVduVdrVduVdrVdrVdtadqBdqBdqBdqBdDtdlBdlddlddlfdlfdlfdlddlddlfdlfdlfdlfdlfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlfdlfdlddlddlBdDtdDtdDtdDtdDtdDtdDtdDtdDtdDtdDtdlBdlddlddlddlddlddlddlddlBdlBdDtdDtdkHdlcdlgdlgdlgdlhdlcdlhdDtdkQdkXdDtdofdlgdlgdlgdlgdlgdoedkHdkHdlBdlBdlddlddlddlddlddlddlddlBdlBdDtdDtdDtdDtdkHdlcdlgdlgdlgdocdoddlgdlgdlgdlhdkHdDtdDtdDtdqkdtodtndvadvbdqkdvcduPduPdvddvedqkdvfdtpdvhdqkdDtdDtdDtdDtdDtdDtaadaadaadaadaadaadaaddvidvidvidvidviaadaaaaaadrVdvjdtmdtBdvRdvmduCduCduCdvoduCduDdrVdDtdDtdDtdDtdDtdlBdlBdlddlddlfdlfdlddlddlddlfdlfdlfdlfdlfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlfdlfdlfdlddlBdDtdDtdDtdDtdDtdDtdDtdDtdDtdlBdlBdlBdlddlddlddlddlddlddlddlddlBdlBdlBdlcdlgdlgdlgdlhdlcdlhdlcdlgdocdoddlgdoedofdlgdlgdlgdlgdlgdoedkHdlBdlddlddlddlddlfdlfdlfdlddlddlBdlBdlBdDtdDtdlcdlgdlgdlgdlgdocdoddlgdlgdlhdkHdlcdlgdlgdlhdqkdqkdqkdqkdqkdqkdtqdvqdvrdvsdvedqkduqdIjduqdqkdDtdDtdDtdDtdDtdDtaaaaaaaadaaaaaaaaaaaddvidvidvidvidviaadaaadsodrXdPUdvvdvwdrVdrVdrVdrVdrVdrVdvxdvydrVdDtdDtdDtdDtdDtdlBdlddlddlfdlfdlfdlddlddlddlddlfdlfdlfdlfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlfdlfdlfdlfdlBdlBdlBdlBdDtdDtdDtdDtdlBdlBdlBdlddlddlddlddlddlddlddlddlddlddlddlddlBdlBdlBdDtdFpdlcdlhdlcdlgdlgdocdoddlgdlgdoedofdlgdlgdlgdlgdlgdoedlBdlddlddlddlfdlfdlfdlfdlfdlddlddlddlBdlBdlBdlBdDtdDtdDtdDtdkIdkMdDtdDtdkHdlcdlgdlgdlhdkHdDtdDtdDtdDtdDtdqkdqkdqkdqkdqkdqkdqkdIkdIldpkdFEdDtdDtdDtdDtdDtaaaaaaaaaaadaaaaaaaaaaaddvidvidvidvidvidvCdsWdvDdsYdPSdvFdtBdPWdPVdPYdPXcxcctQdvLdvydrVdDtdDtdDtdDtdlBdlBdlddlddlfdlfdlddlddlddlddlfdlfdlfdlfdlfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlfdlfdlfdlfdlBdlBdlBdlBdDtdDtdDtdDtdlBdlBdlBdlddlddlddlddlddlddlddlddlddlddlddlddlBdlBdlBdDtdFpdlcdlhdlcdlgdlgdocdoddlgdlgdoedofdlgdlgdlgdlgdlgdoedlBdlddlddlddlfdlfdlfdlfdlfdlddlddlddlBdlBdlBdlBdDtdDtdDtdDtdkIdkMdDtdDtdkHdlcdlgdlgdlhdkHdDtdDtdDtdDtdDtdqkdqkdqkdqkdqkdqkdqkdIkdIldpkdFEdDtdDtdDtdDtdDtaaaaaaaaaaadaaaaaaaaaaaddvidvidvidvidvidvCdsWdvDdsYdPSdvFdtBdPWdPVdPYdPXcxcdFadvLdvydrVdDtdDtdDtdDtdlBdlBdlddlddlfdlfdlddlddlddlddlfdlfdlfdlfdlfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlfdlfdlfdlfdlfdlddlBdlBdlBdlBdlBdlBdlddlddlddlddlddlddlddlfdlfdlfdlfdlddlddlddlddlddlBdlBdnTdlBdlcdlgdlgdlgdocdoddlgdlgdlgdoedFpdDtdlBdlBdlBdlBdlBdlddlddlfdlfdlfdlfdlfdlfdlfdlddlddlddlddlddlBdlBdlBdlBdlBdlBdlBdlBdDtdlcdlgdlgdlhdkHdkHdDtdDtdDtdDtdDtdDtdDtdkIdtydtxdtxdtxdtxdtwdkMdDtdDtdDtdDtdDtdDtaadaadaadaadaadaadaadaaddvidvidvidvidvidPZdQadPZdQadsqcxsdtBdsqdsqdvQdsqdtBdsqdvSdwddrVdDtdDtdDtdDtdlBdlddlddlddlfdlfdlddlddlddlfdlfdlfdlfdlfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlfdlfdlfdlfdlfdlfdlddlddlddlddlddlddlddlddlddlfdlfdlfdlfdlfdlfdlfdlfdlfdlddlddlddlddlddlddlBdlBdDtdDtdDtdkIdkMdDtdDtdDtdDtdnTdlBdlBdlddlddlddlddlddlfdlfdlfdlfdlfdlfdlfdlfdlddlddlddlddlddlddlddlddlddlddlddlddlBdlBdDtdDtdDtdkHdkHdlcdlgdlgdlgdlgdlgdlgdlgdlgdlgdlgdlgdlgdlgdlgdlgdlgdlgdlhdDtdDtdDtdDtaaaaaaaaaaaaaaaaaaaaddvidvidvidvidvidrWdsWdvUdImdQbdvFdvWdugdugdvXdugcyhcxFdvZdwadrVdDtdDtdDtdDVdnTdlddlddlddlfdlddlddlddlddlfdlfdlfdlfdlfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlfdlfdlfdlfdlddlfdlfdlddlddlddlddlfdlfdlfdlfdlfdlfdlfdlfdlfdlfdlfdlfdlfdlfdlddlddlddlddlddlddlBdlBdlBdDtdDtdDtdlBdlBdlBdlBdlBdlddlddlddlddlddlfdlfdlfdlfdlfdlfdlfdlfdlfdlfdlfdlfdlfdlfdlfdlfdlfdlfdlddlddlddlddlddlBdDtdDtdDtdkHdlcdlgdlgdlgdlgdlgdlgdlgdlgdlgdlgdlgdlgdlgdlgdlgdlgdlgdlhdkHdkQdkXdDtdDtdDtaaaaaaaaaaaaaaaaaddvidvidvidvidviaadaaaduxdrXcyHdvFdtBdsqdsqdwcdvGdsqdsqdvxdvydrVdDtdDtdDtdDtdlBdlddlddlddlddlddlddlddlfdlfdlfdlfdlfdlfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/tgstation.2.1.2.dmm b/_maps/map_files/tgstation.2.1.2.dmm similarity index 99% rename from maps/tgstation.2.1.2.dmm rename to _maps/map_files/tgstation.2.1.2.dmm index e5015f42b47..12fa7047b78 100644 --- a/maps/tgstation.2.1.2.dmm +++ b/_maps/map_files/tgstation.2.1.2.dmm @@ -6596,7 +6596,7 @@ "cwR" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/holding) "cwS" = (/obj/structure/stool{pixel_y = 8},/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/beach/sand,/area/centcom/holding) "cwT" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/beach/sand,/area/centcom/holding) -"cwU" = (/obj/structure/rack,/obj/item/clothing/head/that,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/suit/wcoat,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding) +"cwU" = (/obj/structure/rack,/obj/item/clothing/head/that,/obj/item/clothing/under/suit_jacket,/obj/item/clothing/tie/waistcoat,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding) "cwV" = (/obj/item/weapon/beach_ball,/turf/unsimulated/beach/sand,/area/centcom/holding) "cwW" = (/obj/structure/rack,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding) "cwX" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"},/area/centcom/holding) diff --git a/_maps/metastation.dm b/_maps/metastation.dm new file mode 100644 index 00000000000..0676673664e --- /dev/null +++ b/_maps/metastation.dm @@ -0,0 +1,12 @@ +#if !defined(MAP_FILE) + + #include "map_files\MetaStation.v39B.II.dmm" + + #define MAP_FILE "MetaStation.v39B.II.dmm" + #define MAP_NAME "MetaStation" + +#elif !defined(MAP_OVERRIDE) + + #warn a map has already been included, ignoring MetaStation. + +#endif diff --git a/_maps/tgstation2.dm b/_maps/tgstation2.dm new file mode 100644 index 00000000000..07acd427846 --- /dev/null +++ b/_maps/tgstation2.dm @@ -0,0 +1,12 @@ +#if !defined(MAP_FILE) + + #include "map_files\tgstation.2.1.2.dmm" + + #define MAP_FILE "tgstation.2.1.2.dmm" + #define MAP_NAME "/tg/station 2" + +#elif !defined(MAP_OVERRIDE) + + #warn a map has already been included, ignoring /tg/station 2. + +#endif diff --git a/code/__HELPERS/matrices.dm b/code/__HELPERS/matrices.dm new file mode 100644 index 00000000000..5f8cf47bec5 --- /dev/null +++ b/code/__HELPERS/matrices.dm @@ -0,0 +1,3 @@ +/matrix/proc/TurnTo(old_angle, new_angle) + . = new_angle - old_angle + Turn(.) //BYOND handles cases such as -270, 360, 540 etc. DOES NOT HANDLE 180 TURNS WELL, THEY TWEEN AND LOOK LIKE SHIT diff --git a/code/__HELPERS/sanitize_values.dm b/code/__HELPERS/sanitize_values.dm index c065fec9b81..cf840584c6f 100644 --- a/code/__HELPERS/sanitize_values.dm +++ b/code/__HELPERS/sanitize_values.dm @@ -30,7 +30,6 @@ else return default return default - /proc/sanitize_hexcolor(color, desired_format=3, include_crunch=0, default) var/crunch = include_crunch ? "#" : "" if(!istext(color)) diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index c050d2cdc6a..9d11eeeca28 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -305,6 +305,9 @@ var/list/binary = list("0","1") /proc/random_short_color() return random_string(3, hex_characters) +/proc/random_color() + return random_string(6, hex_characters) + /proc/add_zero2(t, u) var/temp1 while (length(t) < u) diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm index 4b5a086baf3..0f13c6f4f7c 100644 --- a/code/_globalvars/misc.dm +++ b/code/_globalvars/misc.dm @@ -1,6 +1,6 @@ var/global/obj/effect/overlay/plmaster = null // atmospheric overlay for plasma var/global/obj/effect/overlay/slmaster = null // atmospheric overlay for sleeping gas -var/admin_notice = null // Admin notice that all clients see when joining the server +var/admin_notice = "" // Admin notice that all clients see when joining the server // nanomanager, the manager for Nano UIs diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 14b8ac47f88..4b1a3e225ea 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -189,22 +189,15 @@ L.resist() if("mov_intent") - if(iscarbon(usr)) - var/mob/living/carbon/C = usr - if(C.legcuffed) - C << "You are legcuffed! You cannot run until you get [C.legcuffed] removed!" - C.m_intent = "walk" //Just incase - C.hud_used.move_intent.icon_state = "walking" - return 1 - switch(usr.m_intent) - if("run") - usr.m_intent = "walk" - usr.hud_used.move_intent.icon_state = "walking" - if("walk") - usr.m_intent = "run" - usr.hud_used.move_intent.icon_state = "running" - if(istype(usr,/mob/living/carbon/alien/humanoid)) - usr.update_icons() + switch(usr.m_intent) + if("run") + usr.m_intent = "walk" + usr.hud_used.move_intent.icon_state = "walking" + if("walk") + usr.m_intent = "run" + usr.hud_used.move_intent.icon_state = "running" + if(istype(usr,/mob/living/carbon/alien/humanoid)) + usr.update_icons() if("Reset Machine") usr.unset_machine() if("internal") diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 058f68705d1..a25d52aca69 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -183,6 +183,7 @@ throwforce = 0 w_class = 3.0 origin_tech = "materials=1" + slowdown = 7 var/breakouttime = 300 //Deciseconds = 30s = 0.5 minute /obj/item/weapon/legcuffs/beartrap @@ -194,7 +195,7 @@ var/armed = 0 suicide_act(mob/user) - viewers(user) << "\red [user] is putting the [src.name] on \his head! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is putting the [src.name] on \his head! It looks like \he's trying to commit suicide." return (BRUTELOSS) /obj/item/weapon/legcuffs/beartrap/attack_self(mob/user as mob) diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index 8f2081b683d..43d97cb2edb 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -52,6 +52,7 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", wordhide=pick(runewords) runewords-=wordhide + /obj/effect/rune desc = "" anchored = 1 @@ -210,9 +211,10 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", return check_icon() + src.color = rgb(255, 0, 0) if(word1 == wordtravel && word2 == wordself) icon_state = "2" - src.icon += rgb(0, 0 , 255) + src.color = rgb(0, 0, 255) return if(word1 == wordjoin && word2 == wordblood && word3 == wordself) icon_state = "3" @@ -222,7 +224,7 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", return if(word1 == wordsee && word2 == wordblood && word3 == wordhell) icon_state = "5" - src.icon += rgb(0, 0 , 255) + src.color = rgb(0, 0 , 255) return if(word1 == worddestr && word2 == wordsee && word3 == wordtech) icon_state = "5" @@ -232,73 +234,73 @@ var/engwords = list("travel", "blood", "join", "hell", "destroy", "technology", return if(word1 == wordsee && word2 == wordhell && word3 == wordjoin) icon_state = "4" - src.icon += rgb(0, 0 , 255) + src.color = rgb(0, 0 , 255) return if(word1 == wordblood && word2 == wordjoin && word3 == wordhell) icon_state = "1" return if(word1 == wordhide && word2 == wordsee && word3 == wordblood) icon_state = "1" - src.icon += rgb(0, 0 , 255) + src.color = rgb(0, 0 , 255) return if(word1 == wordhell && word2 == wordtravel && word3 == wordself) icon_state = "6" - src.icon += rgb(0, 0 , 255) + src.color = rgb(0, 0 , 255) return if(word1 == wordblood && word2 == wordsee && word3 == wordtravel) icon_state = "6" return if(word1 == wordhell && word2 == wordtech && word3 == wordjoin) icon_state = "3" - src.icon += rgb(0, 0 , 255) + src.color = rgb(0, 0 , 255) return if(word1 == wordhell && word2 == wordblood && word3 == wordjoin) icon_state = "[rand(1,6)]" - src.icon += rgb(255, 255, 255) + src.color = rgb(255, 255, 255) return if(word1 == wordblood && word2 == wordsee && word3 == wordhide) icon_state = "4" - src.icon += rgb(255, 255, 255) + src.color = rgb(255, 255, 255) return if(word1 == worddestr && word2 == wordtravel && word3 == wordself) icon_state = "1" - src.icon += rgb(255, 0, 0) + src.color = rgb(255, 0, 0) return if(word1 == wordtravel && word2 == wordtech && word3 == wordother) icon_state = "4" - src.icon += rgb(255, 0, 255) + src.color = rgb(255, 0, 255) return if(word1 == wordjoin && word2 == wordother && word3 == wordself) icon_state = "2" - src.icon += rgb(0, 255, 0) + src.color = rgb(0, 255, 0) return if(word1 == wordhide && word2 == wordother && word3 == wordsee) icon_state = "4" - src.icon += rgb(0, 255, 0) + src.color = rgb(0, 255, 0) return if(word1 == worddestr && word2 == wordsee && word3 == wordother) icon_state = "4" - src.icon += rgb(0, 0, 255) + src.color = rgb(0, 0, 255) return if(word1 == worddestr && word2 == wordsee && word3 == wordblood) icon_state = "4" - src.icon += rgb(255, 0, 0) + src.color = rgb(255, 0, 0) return if(word1 == wordself && word2 == wordother && word3 == wordtech) icon_state = "3" - src.icon += rgb(200, 0, 0) + src.color = rgb(200, 0, 0) return if(word1 == wordtravel && word2 == wordother) icon_state = "1" - src.icon += rgb(200, 0, 0) + src.color = rgb(200, 0, 0) return if(word1 == wordjoin && word2 == wordhide && word3 == wordtech) icon_state = "2" - src.icon += rgb(100, 0, 100) + src.color = rgb(100, 0, 100) return icon_state="[rand(1,6)]" //random shape and color for dummy runes - src.icon -= rgb(255,255,255) - src.icon += rgb(rand(1,255),rand(1,255),rand(1,255)) + src.color = rgb(rand(1,255),rand(1,255),rand(1,255)) + /obj/item/weapon/tome name = "arcane tome" diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 31773227ac8..733113a0172 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -60,7 +60,6 @@ var/datum/wires/alarm/wires = null var/wiresexposed = 0 // If it's been screwdrivered open. var/aidisabled = 0 - var/AAlarmwires = 31 var/shorted = 0 var/buildstage = 2 // 2 = complete, 1 = no wires, 0 = circuit gone @@ -658,7 +657,7 @@ table tr:first-child th:first-child { border: none;} if(wiresexposed) switch(buildstage) if(2) - if(src.AAlarmwires == 0) // All wires cut + if(wires.wires_status == (2 ** wires.wire_count) - 1) // All wires cut icon_state = "alarm_b2" else icon_state = "alarmx" @@ -767,7 +766,7 @@ table tr:first-child th:first-child { border: none;} /obj/machinery/alarm/attackby(obj/item/W as obj, mob/user as mob) switch(buildstage) if(2) - if(istype(W, /obj/item/weapon/wirecutters) && AAlarmwires == 0) + if(istype(W, /obj/item/weapon/wirecutters) && wires.wires_status == (2 ** wires.wire_count) - 1) //this checks for all wires to be cut, disregard the ammount of wires, binary fuckery with the wires_status playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1) user << "You cut the final wires." var/obj/item/weapon/cable_coil/cable = new /obj/item/weapon/cable_coil( src.loc ) @@ -797,7 +796,7 @@ table tr:first-child th:first-child { border: none;} user << "\red Access denied." return if(1) - if(istype(W, /obj/item/weapon/crowbar) && AAlarmwires == 0) + if(istype(W, /obj/item/weapon/crowbar) && wires.wires_status == (2 ** wires.wire_count) - 1) user << "You pry out the circuit." playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1) spawn(20) @@ -820,7 +819,7 @@ table tr:first-child th:first-child { border: none;} del(cable) user << "You wire the air alarm!" - src.AAlarmwires = 31 + wires.wires_status = 0 buildstage = 2 update_icon() return diff --git a/code/game/machinery/drying_rack.dm b/code/game/machinery/drying_rack.dm new file mode 100644 index 00000000000..ad23342be81 --- /dev/null +++ b/code/game/machinery/drying_rack.dm @@ -0,0 +1,82 @@ +/obj/machinery/drying_rack + name = "drying rack" + desc = "A large rack with a heater built into the base. Used for drying things out." + icon = 'icons/obj/hydroponics.dmi' + icon_state = "drying_rack" + layer = 2.9 + density = 1 + anchored = 1 + use_power = 1 + idle_power_usage = 5 + active_power_usage = 50 + var/list/accepted = list() + var/running = 0 + var/volume = 100 + +/obj/machinery/drying_rack/New() + ..() + flags |= NOREACT + create_reagents(volume) + + +/obj/machinery/drying_rack/attackby(var/obj/item/I as obj, var/mob/user as mob) + if(running) + user << "You cannot add that to the drying rack." + return + var/obj/item/weapon/reagent_containers/food/snacks/S = I + if(!S.dried_type) + user << "You cannot add that to the drying rack." + return + if(istype(I,/obj/item/weapon/reagent_containers/food/snacks/grown)) + var/obj/item/weapon/reagent_containers/food/snacks/grown/P = I + var/T = P.dried_type + if(ispath(T,/obj/item/weapon/reagent_containers/food/snacks/grown)) + if(P.dry == 0) + P.reagents.trans_to(src, P.reagents.total_volume) + user.u_equip(I) + user << "You add the [I] to the drying rack." + del(I) + src.running = 1 + use_power = 2 + icon_state = "drying_rack_on" + sleep(60) + icon_state = "drying_rack" + var/obj/item/weapon/reagent_containers/food/snacks/grown/Dried = new T(src.loc) + user << "[Dried] has finished drying." + Dried.color = "#ad7257" + Dried.dry = 1 + Dried.reagents.clear_reagents() + src.reagents.trans_to(Dried, src.reagents.total_volume) + use_power = 1 + src.running = 0 + return + else + user << "That has already been dried." + else + user.u_equip(I) + user << "You add [I] to the drying rack." + del(I) + src.running = 1 + use_power = 2 + icon_state = "drying_rack_on" + sleep(60) + icon_state = "drying_rack" + new T(src.loc) + use_power = 1 + src.running = 0 + else + var/N = S.dried_type + user.u_equip(I) + user << "You add [I] to the drying rack." + del(I) + src.running = 1 + use_power = 2 + icon_state = "drying_rack_on" + sleep(60) + icon_state = "drying_rack" + new N(src.loc) + use_power = 1 + src.running = 0 diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 02bc8e601f0..3d18107b529 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -554,7 +554,7 @@ product_ads = "Probably not bad for you!;Don't believe the scientists!;It's good for you!;Don't quit, buy more!;Smoke!;Nicotine heaven.;Best cigarettes since 2150.;Award-winning cigs." vend_delay = 34 icon_state = "cigs" - products = list(/obj/item/weapon/storage/fancy/cigarettes = 10,/obj/item/weapon/storage/box/matches = 10,/obj/item/weapon/lighter/random = 4) + products = list(/obj/item/weapon/storage/fancy/cigarettes = 10,/obj/item/weapon/storage/box/matches = 10,/obj/item/weapon/lighter/random = 4,/obj/item/weapon/rollingpaperpack = 5) contraband = list(/obj/item/weapon/lighter/zippo = 4) premium = list(/obj/item/clothing/mask/cigarette/cigar/havana = 2) refill_canister = /obj/item/weapon/vending_refill/cigarette @@ -635,8 +635,9 @@ /obj/item/seeds/cornseed = 3, /obj/item/seeds/eggplantseed = 3, /obj/item/seeds/potatoseed = 3, /obj/item/seeds/replicapod = 3,/obj/item/seeds/soyaseed = 3, /obj/item/seeds/sunflowerseed = 3,/obj/item/seeds/tomatoseed = 3,/obj/item/seeds/towermycelium = 3,/obj/item/seeds/wheatseed = 3,/obj/item/seeds/appleseed = 3, /obj/item/seeds/poppyseed = 3,/obj/item/seeds/ambrosiavulgarisseed = 3,/obj/item/seeds/whitebeetseed = 3,/obj/item/seeds/watermelonseed = 3,/obj/item/seeds/limeseed = 3, - /obj/item/seeds/lemonseed = 3,/obj/item/seeds/orangeseed = 3,/obj/item/seeds/grassseed = 3,/obj/item/seeds/cocoapodseed = 3, - /obj/item/seeds/cabbageseed = 3,/obj/item/seeds/grapeseed = 3,/obj/item/seeds/pumpkinseed = 3,/obj/item/seeds/cherryseed = 3) + /obj/item/seeds/lemonseed = 3,/obj/item/seeds/orangeseed = 3,/obj/item/seeds/grassseed = 3,/obj/item/seeds/cocoapodseed = 3,/obj/item/seeds/cabbageseed = 3, + /obj/item/seeds/grapeseed = 3,/obj/item/seeds/pumpkinseed = 3,/obj/item/seeds/cherryseed = 3,/obj/item/seeds/coffee_arabica_seed = 3,/obj/item/seeds/tobacco_seed = 3, + /obj/item/seeds/tea_aspera_seed = 3) contraband = list(/obj/item/seeds/amanitamycelium = 2,/obj/item/seeds/glowshroom = 2,/obj/item/seeds/libertymycelium = 2,/obj/item/seeds/nettleseed = 2, /obj/item/seeds/plumpmycelium = 2,/obj/item/seeds/reishimycelium = 2) premium = list(/obj/item/weapon/reagent_containers/spray/waterflower = 1) @@ -666,8 +667,8 @@ /obj/item/clothing/head/helmet/gladiator = 1,/obj/item/clothing/under/gimmick/rank/captain/suit = 1,/obj/item/clothing/head/flatcap = 1, /obj/item/clothing/suit/labcoat/mad = 1,/obj/item/clothing/glasses/gglasses = 1,/obj/item/clothing/shoes/jackboots = 1, /obj/item/clothing/under/schoolgirl = 1,/obj/item/clothing/head/kitty = 1,/obj/item/clothing/under/blackskirt = 1,/obj/item/clothing/head/beret = 1, - /obj/item/clothing/suit/wcoat = 1,/obj/item/clothing/under/suit_jacket = 1,/obj/item/clothing/head/that =1,/obj/item/clothing/head/cueball = 1, - /obj/item/clothing/under/scratch = 1,/obj/item/clothing/under/kilt = 1,/obj/item/clothing/head/beret = 1,/obj/item/clothing/suit/wcoat = 1, + /obj/item/clothing/tie/waistcoat = 1,/obj/item/clothing/under/suit_jacket = 1,/obj/item/clothing/head/that =1,/obj/item/clothing/head/cueball = 1, + /obj/item/clothing/under/scratch = 1,/obj/item/clothing/under/kilt = 1,/obj/item/clothing/head/beret = 1,/obj/item/clothing/tie/waistcoat = 1, /obj/item/clothing/glasses/monocle =1,/obj/item/clothing/head/bowler = 1,/obj/item/weapon/cane = 1,/obj/item/clothing/under/sl_suit = 1, /obj/item/clothing/mask/fakemoustache = 1,/obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 1,/obj/item/clothing/head/plaguedoctorhat = 1, /obj/item/clothing/under/owl = 1,/obj/item/clothing/mask/gas/owl_mask = 1,/obj/item/clothing/suit/apron = 1,/obj/item/clothing/under/waiter = 1, diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm index 8300a0f7448..32308c33174 100644 --- a/code/game/objects/effects/decals/crayon.dm +++ b/code/game/objects/effects/decals/crayon.dm @@ -1,7 +1,8 @@ /obj/effect/decal/cleanable/crayon name = "rune" desc = "A rune drawn in crayon." - icon = 'icons/obj/rune.dmi' + icon = 'icons/effects/crayondecal.dmi' + icon_state = "rune1" layer = 2.1 anchored = 1 @@ -12,7 +13,7 @@ return - New(location,main = "#FFFFFF",shade = "#000000",var/type = "rune") + New(location,main = "#FFFFFF", var/type = "rune") ..() loc = location @@ -25,11 +26,6 @@ if("graffiti") type = pick("amyjon","face","matt","revolution","engie","guy","end","dwarf","uboa") - var/icon/mainOverlay = new/icon('icons/effects/crayondecal.dmi',"[type]",2.1) - var/icon/shadeOverlay = new/icon('icons/effects/crayondecal.dmi',"[type]s",2.1) - mainOverlay.Blend(main,ICON_ADD) - shadeOverlay.Blend(shade,ICON_ADD) - - overlays += mainOverlay - overlays += shadeOverlay \ No newline at end of file + icon_state = type + color = main \ No newline at end of file diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm index f4f81c07388..6440d78203b 100644 --- a/code/game/objects/effects/effect_system.dm +++ b/code/game/objects/effects/effect_system.dm @@ -544,7 +544,7 @@ steam.start() -- spawns the effect chemholder.reagents.copy_to(smoke, chemholder.reagents.total_volume / number) // copy reagents to each smoke, divide evenly if(color) - smoke.icon += color // give the smoke color, if it has any to begin with + smoke.color = color // give the smoke color, if it has any to begin with else // if no color, just use the old smoke icon smoke.icon = 'icons/effects/96x96.dmi' diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index 0ec05406e4f..02d91030150 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -120,7 +120,7 @@ del(src) /obj/effect/landmark/costume/butler/New() - new /obj/item/clothing/suit/wcoat(src.loc) + new /obj/item/clothing/tie/waistcoat(src.loc) new /obj/item/clothing/under/suit_jacket(src.loc) new /obj/item/clothing/head/that(src.loc) del(src) @@ -139,7 +139,7 @@ del(src) /obj/effect/landmark/costume/prig/New() - new /obj/item/clothing/suit/wcoat(src.loc) + new /obj/item/clothing/tie/waistcoat(src.loc) new /obj/item/clothing/glasses/monocle(src.loc) var/CHOICE= pick( /obj/item/clothing/head/bowler, /obj/item/clothing/head/that) new CHOICE(src.loc) diff --git a/code/game/objects/explosion.dm b/code/game/objects/explosion.dm index 933baa31e02..9f440d4b4fa 100644 --- a/code/game/objects/explosion.dm +++ b/code/game/objects/explosion.dm @@ -54,7 +54,7 @@ proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impa if(adminlog) message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z])") - log_game("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] ") + log_game("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z])") // Play sounds; we want sounds to be different depending on distance so we will manually do it ourselves. // Stereo users will also hear the direction of the explosion! diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 35f84590fad..6456e670447 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -1,21 +1,18 @@ /obj/item/toy/crayon/red icon_state = "crayonred" colour = "#DA0000" - shadeColour = "#810C0C" colourName = "red" /obj/item/toy/crayon/orange icon_state = "crayonorange" colour = "#FF9300" - shadeColour = "#A55403" colourName = "orange" /obj/item/toy/crayon/yellow icon_state = "crayonyellow" colour = "#FFF200" - shadeColour = "#886422" colourName = "yellow" @@ -23,21 +20,18 @@ /obj/item/toy/crayon/green icon_state = "crayongreen" colour = "#A8E61D" - shadeColour = "#61840F" colourName = "green" /obj/item/toy/crayon/blue icon_state = "crayonblue" colour = "#00B7EF" - shadeColour = "#0082A8" colourName = "blue" /obj/item/toy/crayon/purple icon_state = "crayonpurple" colour = "#DA00FF" - shadeColour = "#810CFF" colourName = "purple" @@ -46,31 +40,26 @@ icon_state = "crayonmime" desc = "A very sad-looking crayon." colour = "#FFFFFF" - shadeColour = "#000000" colourName = "mime" uses = 0 /obj/item/toy/crayon/mime/attack_self(mob/living/user as mob) //inversion - if(colour != "#FFFFFF" && shadeColour != "#000000") + if(colour != "#FFFFFF") colour = "#FFFFFF" - shadeColour = "#000000" - user << "You will now draw in white and black with this crayon." + user << "You will now draw in white with this crayon." else colour = "#000000" - shadeColour = "#FFFFFF" - user << "You will now draw in black and white with this crayon." + user << "You will now draw in black with this crayon." return /obj/item/toy/crayon/rainbow icon_state = "crayonrainbow" colour = "#FFF000" - shadeColour = "#000FFF" colourName = "rainbow" uses = 0 /obj/item/toy/crayon/rainbow/attack_self(mob/living/user as mob) colour = input(user, "Please select the main colour.", "Crayon colour") as color - shadeColour = input(user, "Please select the shade colour.", "Crayon colour") as color return /obj/item/toy/crayon/afterattack(atom/target, mob/user as mob, proximity) @@ -86,7 +75,7 @@ if("rune") user << "You start drawing a rune on the [target.name]." if(instant || do_after(user, 50)) - new /obj/effect/decal/cleanable/crayon(target,colour,shadeColour,drawtype) + new /obj/effect/decal/cleanable/crayon(target,colour,drawtype) user << "You finish drawing." if(uses) uses-- diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index 2e1096009d7..9f8f0f484d0 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -159,11 +159,6 @@ del(animation) for(var/mob/living/carbon/M in oviewers(3, null)) - if(prob(50)) - if (locate(/obj/item/weapon/cloaking_device, M)) - for(var/obj/item/weapon/cloaking_device/S in M) - S.active = 0 - S.icon_state = "shield0" var/safety = M:eyecheck() if(!safety) if(!M.blinded) diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 5d0e80c3ada..3cc729117df 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -189,12 +189,19 @@ . = ..() // All good, turn it on. if(.) - user.visible_message("[user] activates the flare.", "You pull the cord on the flare, activating it!") + user.visible_message("[user] lights the [src].", "You light the [src]!") src.force = on_damage src.damtype = "fire" processing_objects += src - +/obj/item/device/flashlight/flare/torch + name = "torch" + desc = "A torch fashioned from some leaves and a log." + w_class = 4 + brightness_on = 7 + icon_state = "torch" + item_state = "torch_off" + on_damage = 10 /obj/item/device/flashlight/slime diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index ccb2501541f..1798038265e 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -94,6 +94,8 @@ "[user] activates \the [src]!", \ "You activate \the [src]!", "You hear a click.") + message_admins("Power sink activated by [key_name(user, user.client)](?) at ([x],[y],[z] - JMP)") + log_game("Power sink activated by [key_name(user)] at ([x],[y],[z])") set_mode(OPERATING) if(OPERATING) @@ -131,7 +133,9 @@ A.charging = 1 // It's no longer full if(power_drained > max_power * 0.95) + message_admins("Power sink at ([x],[y],[z] - JMP) is about to explode") playsound(src, 'sound/effects/screech.ogg', 100, 1, 1) + if(power_drained >= max_power) processing_objects.Remove(src) explosion(src.loc, 3,6,9,12) diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 6f501762296..cdf7b874461 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -250,8 +250,8 @@ attack_verb = list("stabbed", "slashed", "sliced", "cut") suicide_act(mob/user) - viewers(user) << pick("\red [user] is slitting \his wrists with the shard of glass! It looks like \he's trying to commit suicide.", \ - "\red [user] is slitting \his throat with the shard of glass! It looks like \he's trying to commit suicide.") + viewers(user) << pick("[user] is slitting \his wrists with the shard of glass! It looks like \he's trying to commit suicide.", \ + "[user] is slitting \his throat with the shard of glass! It looks like \he's trying to commit suicide.") return (BRUTELOSS) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index d940e12165e..80543d59133 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -95,6 +95,7 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \ new/datum/stack_recipe("wooden door", /obj/structure/mineral_door/wood, 10, time = 20, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("coffin", /obj/structure/closet/coffin, 5, time = 15, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("book case", /obj/structure/bookcase, 4, time = 15, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("drying rack", /obj/machinery/drying_rack, 10, time = 15, one_per_turf = 1, on_floor = 1), \ ) /obj/item/stack/sheet/wood diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 1b5d5549e30..94ca43fb9bc 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -10,6 +10,7 @@ * Snap pops * Water flower * Cards + * Toy nuke */ @@ -411,12 +412,11 @@ w_class = 1.0 attack_verb = list("attacked", "coloured") var/colour = "#FF0000" //RGB - var/shadeColour = "#220000" //RGB var/uses = 30 //0 for unlimited uses var/instant = 0 var/colourName = "red" //for updateIcon purposes suicide_act(mob/user) - viewers(user) << "\red [user] is jamming the [src.name] up \his nose and into \his brain. It looks like \he's trying to commit suicide." + viewers(user) << "[user] is jamming the [src.name] up \his nose and into \his brain. It looks like \he's trying to commit suicide." return (BRUTELOSS|OXYLOSS) New() ..() @@ -861,14 +861,18 @@ obj/item/toy/singlecard/attack_self(mob/user) /obj/item/toy/nuke/attack_self(mob/user) if (cooldown < world.time) - cooldown = world.time + 3000 //5 minutes + cooldown = world.time + 1800 //3 minutes user.visible_message("[user] presses a button on [src]", "You activate [src], it plays a loud noise!", "You hear the click of a button.") spawn(5) //gia said so icon_state = "nuketoy" playsound(src, 'sound/machines/Alarm.ogg', 100, 0, surround = 0) sleep(135) + icon_state = "nuketoycool" + sleep(cooldown - world.time) icon_state = "nuketoyidle" - + else + var/timeleft = (cooldown - world.time) + user << "Nothing happens, and '[round(timeleft/10)]' appears on a small display." diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index cde95aa5f1c..4d60253787a 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -87,7 +87,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM else if(istype(W, /obj/item/weapon/lighter/zippo)) var/obj/item/weapon/lighter/zippo/Z = W if(Z.lit) - light("With a single flick of their wrist, [user] smoothly lights their [name] with their [W]. Damn they're cool.") + light("With a single flick of their wrist, [user] smoothly lights their [name] with [W]. Damn they're cool.") else if(istype(W, /obj/item/weapon/lighter)) var/obj/item/weapon/lighter/L = W @@ -97,7 +97,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM else if(istype(W, /obj/item/weapon/match)) var/obj/item/weapon/match/M = W if(M.lit) - light("[user] lights their [name] with their [W].") + light("[user] lights their [name] with [W].") else if(istype(W, /obj/item/weapon/melee/energy/sword)) var/obj/item/weapon/melee/energy/sword/S = W @@ -110,11 +110,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM else if(istype(W, /obj/item/clothing/mask/cigarette)) var/obj/item/clothing/mask/cigarette/M = W if(M.lit) - light("[user] lights their [name] with their [W].") + light("[user] lights their [name] with [W].") else if(istype(W, /obj/item/candle)) var/obj/item/candle/C = W if(C.lit) - light("[user] lights their [name] with the [W].") + light("[user] lights their [name] with [W].") return @@ -168,6 +168,17 @@ CIGARETTE PACKETS ARE IN FANCY.DM M.update_inv_l_hand(0) M.update_inv_r_hand(0) +/obj/item/clothing/mask/cigarette/proc/handle_reagents() + if(iscarbon(loc)) + var/mob/living/carbon/C = loc + if (src == C.wear_mask) // if it's in the human/monkey mouth, transfer reagents to the mob + if(prob(15)) // so it's not an instarape in case of acid + reagents.reaction(C, INGEST) + reagents.trans_to(C, REAGENTS_METABOLISM) + else + reagents.remove_any(REAGENTS_METABOLISM) + else + reagents.remove_any(REAGENTS_METABOLISM) /obj/item/clothing/mask/cigarette/process() var/turf/location = get_turf(src) @@ -187,13 +198,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM if(location) location.hotspot_expose(700, 5) if(reagents && reagents.total_volume) // check if it has any reagents at all - if(iscarbon(loc) && (src == loc:wear_mask)) // if it's in the human/monkey mouth, transfer reagents to the mob - var/mob/living/carbon/C = loc - if(prob(15)) // so it's not an instarape in case of acid - reagents.reaction(C, INGEST) - reagents.trans_to(C, REAGENTS_METABOLISM) - else // else just remove some of the reagents - reagents.remove_any(REAGENTS_METABOLISM) + handle_reagents() return @@ -202,6 +207,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM user.visible_message("[user] calmly drops and treads on the lit [src], putting it out instantly.") var/turf/T = get_turf(src) new type_butt(T) + new /obj/effect/decal/cleanable/ash(T) processing_objects.Remove(src) del(src) return ..() @@ -219,6 +225,35 @@ CIGARETTE PACKETS ARE IN FANCY.DM else return ..() +/obj/item/clothing/mask/cigarette/rollie + name = "rollie" + desc = "A roll of dried plant matter wrapped in thin paper." + icon_state = "spliffoff" + icon_on = "spliffon" + icon_off = "spliffoff" + type_butt = /obj/item/weapon/cigbutt/roach + throw_speed = 0.5 + item_state = "spliffoff" + smoketime = 180 + chem_volume = 50 + +/obj/item/clothing/mask/cigarette/rollie/New() + ..() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) + + +/obj/item/weapon/cigbutt/roach + name = "roach" + desc = "A manky old roach." + icon_state = "roach" + +/obj/item/weapon/cigbutt/roach/New() + ..() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) + + //////////// // CIGARS // //////////// @@ -273,7 +308,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM item_state = "pipeoff" icon_on = "pipeon" //Note - these are in masks.dmi icon_off = "pipeoff" - smoketime = 100 + smoketime = 0 + chem_volume = 100 + var/packeditem = 0 /obj/item/clothing/mask/cigarette/pipe/process() var/turf/location = get_turf(src) @@ -287,34 +324,68 @@ CIGARETTE PACKETS ARE IN FANCY.DM icon_state = icon_off item_state = icon_off M.update_inv_wear_mask(0) + packeditem = 0 + name = "empty [initial(name)]" processing_objects.Remove(src) return if(location) location.hotspot_expose(700, 5) + if(reagents && reagents.total_volume) // check if it has any reagents at all + handle_reagents() return -/obj/item/clothing/mask/cigarette/pipe/attack_self(mob/user as mob) //Refills the pipe. Can be changed to an attackby later, if loose tobacco is added to vendors or something. - if(lit == 1) + +/obj/item/clothing/mask/cigarette/pipe/attackby(var/obj/item/O, var/mob/user) + if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown)) + var/obj/item/weapon/reagent_containers/food/snacks/grown/G = O + if(!packeditem) + if(G.dry == 1) + user << "You stuff [O] into [src]." + smoketime = 400 + packeditem = 1 + name = "[O.name]-packed [initial(name)]" + if(O.reagents) + O.reagents.trans_to(src, O.reagents.total_volume) + del(O) + else + user << "It has to be dried first." + else + user << "It is already packed." + else + user << "You can't put that in the pipe." + ..() + + +/obj/item/clothing/mask/cigarette/pipe/attack_self(mob/user as mob) + var/turf/location = get_turf(user) + if(lit) user.visible_message("[user] puts out [src].") lit = 0 icon_state = icon_off item_state = icon_off processing_objects.Remove(src) return - if(smoketime <= 0) - user << "You refill the pipe with tobacco." - smoketime = initial(smoketime) + if(!lit && smoketime > 0) + user << "You empty [src] onto [location]." + new /obj/effect/decal/cleanable/ash(location) + packeditem = 0 + smoketime = 0 + reagents.clear_reagents() + name = "empty [initial(name)]" return /obj/item/clothing/mask/cigarette/pipe/cobpipe name = "corn cob pipe" - desc = "A nicotine delivery system popularized by folksy backwoodsmen and kept popular in the modern age and beyond by space hipsters." + desc = "A nicotine delivery system popularized by folksy backwoodsmen and kept popular in the modern age and beyond by space hipsters. Can be loaded with objects." icon_state = "cobpipeoff" item_state = "cobpipeoff" icon_on = "cobpipeon" //Note - these are in masks.dmi icon_off = "cobpipeoff" - smoketime = 400 + smoketime = 0 +/obj/item/clothing/mask/cigarette/pipe/cobpipe/New() + ..() + name = "empty [initial(name)]" ///////// @@ -360,11 +431,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM user.visible_message("Without even breaking stride, [user] flips open and lights [src] in one smooth movement.") else if(prob(75)) - user.visible_message("After a few attempts, [user] manages to light the [src].") + user.visible_message("After a few attempts, [user] manages to light [src].") else user << "You burn yourself while lighting the lighter." user.adjustFireLoss(5) - user.visible_message("After a few attempts, [user] manages to light the [src], they however burn their finger in the process.") + user.visible_message("After a few attempts, [user] manages to light [src], they however burn their finger in the process.") user.SetLuminosity(user.luminosity + 1) processing_objects.Add(src) @@ -375,7 +446,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM if(istype(src, /obj/item/weapon/lighter/zippo) ) user.visible_message("You hear a quiet click, as [user] shuts off [src] without even looking at what they're doing. Wow.") else - user.visible_message("[user] quietly shuts off the [src].") + user.visible_message("[user] quietly shuts off [src].") user.SetLuminosity(user.luminosity - 1) processing_objects.Remove(src) @@ -420,3 +491,59 @@ CIGARETTE PACKETS ARE IN FANCY.DM user.SetLuminosity(user.luminosity-1) SetLuminosity(1) return + + +/////////// +//ROLLING// +/////////// +/obj/item/weapon/rollingpaper + name = "rolling paper" + desc = "A thin piece of paper used to make fine smokeables." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "cig_paper" + w_class = 1 + +/obj/item/weapon/rollingpaper/afterattack(atom/target, mob/user as mob, proximity) + if(!proximity) + return + if(istype(target, /obj/item/weapon/reagent_containers/food/snacks/grown)) + var/obj/item/weapon/reagent_containers/food/snacks/grown/O = target + if(O.dry) + user.u_equip(target) + user.u_equip(src) + var/obj/item/clothing/mask/cigarette/rollie/R = new /obj/item/clothing/mask/cigarette/rollie(user.loc) + R.chem_volume = target.reagents.total_volume + target.reagents.trans_to(R, R.chem_volume) + user.put_in_active_hand(R) + user << "You roll the [target.name] into a rolling paper." + R.desc = "Dried [target.name] rolled up in a thin piece of paper." + del(target) + del(src) + else + user << "You need to dry this first." + else + ..() + +/obj/item/weapon/rollingpaperpack + name = "rolling paper pack" + desc = "A pack of NanoTrasen brand rolling papers." + icon = 'icons/obj/cigarettes.dmi' + icon_state = "cig_paper_pack" + w_class = 1 + var/papers = 25 + +/obj/item/weapon/rollingpaperpack/attack_self(mob/user) + if(papers > 1) + var/obj/item/weapon/rollingpaper/P = new /obj/item/weapon/rollingpaper(user.loc) + user.put_in_inactive_hand(P) + user << "You take a paper out of the pack." + papers -- + else + var/obj/item/weapon/rollingpaper/P = new /obj/item/weapon/rollingpaper(user.loc) + user.put_in_inactive_hand(P) + user << "You take the last paper out of the pack, and throw the pack away." + del(src) + +/obj/item/weapon/rollingpaperpack/examine() + ..() + usr << "There are [src.papers] left" \ No newline at end of file diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index b00dd4efbf3..d68111bcea5 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -21,7 +21,7 @@ /obj/item/weapon/plastique/suicide_act(var/mob/user) . = (BRUTELOSS) - viewers(user) << "\red [user] activates the C4 and holds it above his head! It looks like \he's going out with a bang!" + viewers(user) << "[user] activates the C4 and holds it above his head! It looks like \he's going out with a bang!" var/message_say = "FOR NO RAISIN!" if(user.mind) if(user.mind.special_role) @@ -34,6 +34,7 @@ message_say = "FOR NARSIE!" user.say(message_say) target = user + message_admins("[key_name(user, user.client)](?) suicided with C4 at ([x],[y],[z] - JMP)",0,1) explode(get_turf(user)) return . @@ -72,6 +73,12 @@ if (ismob(target)) add_logs(user, target, "planted [name] on") user.visible_message("\red [user.name] finished planting an explosive on [target.name]!") + message_admins("[key_name(user, user.client)](?) planted C4 on [key_name(target)](?) with [timer] second fuse",0,1) + log_game("[key_name(user)] planted C4 on [key_name(target)] with [timer] second fuse") + + else + message_admins("[key_name(user, user.client)](?) planted C4 on [target.name] at ([target.x],[target.y],[target.z] - JMP) with [timer] second fuse",0,1) + log_game("[key_name(user)] planted C4 on [target.name] at ([target.x],[target.y],[target.z]) with [timer] second fuse") target.overlays += image('icons/obj/assemblies.dmi', "plastic-explosive2") user << "Bomb has been planted. Timer counting down from [timer]." diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm index 36ea6b5521e..52503c244d7 100644 --- a/code/game/objects/items/weapons/grenades/flashbang.dm +++ b/code/game/objects/items/weapons/grenades/flashbang.dm @@ -22,12 +22,11 @@ B.update_icon() del(src) -/obj/item/weapon/grenade/flashbang/proc/bang(var/turf/T , var/mob/living/carbon/M) // Added a new proc called 'bang' that takes a location and a person to be banged. - if (locate(/obj/item/weapon/cloaking_device, M)) // Called during the loop that bangs people in lockers/containers and when banging - for(var/obj/item/weapon/cloaking_device/S in M) // people in normal view. Could theroetically be called during other explosions. - S.active = 0 // -- Polymorph - S.icon_state = "shield0" - +/obj/item/weapon/grenade/flashbang/proc/bang(var/turf/T , var/mob/living/carbon/M) + // Added a new proc called 'bang' that takes a location and a person to be banged. + // Called during the loop that bangs people in lockers/containers and when banging + // people in normal view. Could theroetically be called during other explosions. + // -- Polymorph M << "\red BANG" playsound(src.loc, 'sound/effects/bang.ogg', 25, 1) diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index e5f13167d13..950938ffe16 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -82,9 +82,9 @@ throwforce = 10.0 suicide_act(mob/user) - viewers(user) << pick("\red [user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.", \ - "\red [user] is slitting \his throat with the [src.name]! It looks like \he's trying to commit suicide.", \ - "\red [user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.") + viewers(user) << pick("[user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.", \ + "[user] is slitting \his throat with the [src.name]! It looks like \he's trying to commit suicide.", \ + "[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.") return (BRUTELOSS) /obj/item/weapon/kitchen/utensil/knife/attack(target as mob, mob/living/user as mob) @@ -114,9 +114,9 @@ attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") suicide_act(mob/user) - viewers(user) << pick("\red [user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.", \ - "\red [user] is slitting \his throat with the [src.name]! It looks like \he's trying to commit suicide.", \ - "\red [user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.") + viewers(user) << pick("[user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.", \ + "[user] is slitting \his throat with the [src.name]! It looks like \he's trying to commit suicide.", \ + "[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.") return (BRUTELOSS) /obj/item/weapon/kitchenknife/ritual diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index 3167d70bc40..4cf38f86e70 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -2,8 +2,8 @@ var/active = 0 /obj/item/weapon/melee/energy/suicide_act(mob/user) - viewers(user) << pick("\red [user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.", \ - "\red [user] is falling on the [src.name]! It looks like \he's trying to commit suicide.") + viewers(user) << pick("[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.", \ + "[user] is falling on the [src.name]! It looks like \he's trying to commit suicide.") return (BRUTELOSS|FIRELOSS) /obj/item/weapon/melee/energy/rejects_blood() @@ -23,7 +23,7 @@ attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") /obj/item/weapon/melee/energy/axe/suicide_act(mob/user) - viewers(user) << "\red [user] swings the [src.name] towards /his head! It looks like \he's trying to commit suicide." + viewers(user) << "[user] swings the [src.name] towards /his head! It looks like \he's trying to commit suicide." return (BRUTELOSS|FIRELOSS) /obj/item/weapon/melee/energy/axe/attack_self(mob/user) diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm index 8d9a12edccd..2c6de107607 100644 --- a/code/game/objects/items/weapons/melee/misc.dm +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -12,7 +12,7 @@ attack_verb = list("flogged", "whipped", "lashed", "disciplined") /obj/item/weapon/melee/chainofcommand/suicide_act(mob/user) - viewers(user) << "\red [user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide." return (OXYLOSS) diff --git a/code/game/objects/items/weapons/paint.dm b/code/game/objects/items/weapons/paint.dm index e335729519a..48809459247 100644 --- a/code/game/objects/items/weapons/paint.dm +++ b/code/game/objects/items/weapons/paint.dm @@ -1,6 +1,5 @@ //NEVER USE THIS IT SUX -PETETHEGOAT - -var/global/list/cached_icons = list() +//IT SUCKS A BIT LESS -GIACOM /obj/item/weapon/paint gender= PLURAL @@ -85,17 +84,7 @@ var/global/list/cached_icons = list() return if(!istype(target) || istype(target, /turf/space)) return - var/ind = "[initial(target.icon)][item_color]" - if(!cached_icons[ind]) - var/icon/overlay = new/icon(initial(target.icon)) - overlay.Blend("#[item_color]",ICON_MULTIPLY) - overlay.SetIntensity(1.4) - target.icon = overlay - cached_icons[ind] = target.icon - paintleft-- - else - target.icon = cached_icons[ind] - paintleft-- + target.color = "#" + item_color return /obj/item/weapon/paint/paint_remover @@ -105,6 +94,6 @@ var/global/list/cached_icons = list() afterattack(turf/target, mob/user as mob,proximity) if(!proximity) return - if(istype(target) && target.icon != initial(target.icon)) - target.icon = initial(target.icon) + if(istype(target) && target.color != initial(target.color)) + target.color = initial(target.color) return diff --git a/code/game/objects/items/weapons/power_cells.dm b/code/game/objects/items/weapons/power_cells.dm index 92487dd540b..c3d89478410 100644 --- a/code/game/objects/items/weapons/power_cells.dm +++ b/code/game/objects/items/weapons/power_cells.dm @@ -20,7 +20,7 @@ var/construction_time=100 suicide_act(mob/user) - viewers(user) << "\red [user] is licking the electrodes of the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is licking the electrodes of the [src.name]! It looks like \he's trying to commit suicide." return (FIRELOSS) /obj/item/weapon/cell/crap diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm index be08bb6b867..3dbf904cfd6 100644 --- a/code/game/objects/items/weapons/shields.dm +++ b/code/game/objects/items/weapons/shields.dm @@ -77,39 +77,3 @@ user << "[src] can now be concealed." reflect_chance = 0 add_fingerprint(user) - - - -/obj/item/weapon/cloaking_device - name = "cloaking device" - desc = "Use this to become invisible to the human eyesocket." - icon = 'icons/obj/device.dmi' - icon_state = "shield0" - var/active = 0.0 - flags = CONDUCT - item_state = "electronic" - throwforce = 10.0 - throw_speed = 2 - throw_range = 10 - w_class = 2.0 - origin_tech = "magnets=3;syndicate=4" - - -/obj/item/weapon/cloaking_device/attack_self(mob/user as mob) - src.active = !( src.active ) - if (src.active) - user << "\blue The cloaking device is now active." - src.icon_state = "shield1" - else - user << "\blue The cloaking device is now inactive." - src.icon_state = "shield0" - src.add_fingerprint(user) - user.update_icons() - return - -/obj/item/weapon/cloaking_device/emp_act(severity) - active = 0 - icon_state = "shield0" - if(ismob(loc)) - loc:update_icons() - ..() diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index cceaf7e281d..cf31fa357d4 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -15,7 +15,7 @@ var/hitcost = 1000 suicide_act(mob/user) - viewers(user) << "\red [user] is putting the live [name] in \his mouth! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is putting the live [name] in \his mouth! It looks like \he's trying to commit suicide." return (FIRELOSS) /obj/item/weapon/melee/baton/New() diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index a17fed909f4..7ad0e51004d 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -49,8 +49,8 @@ attack_verb = list("stabbed") suicide_act(mob/user) - viewers(user) << pick("\red [user] is stabbing the [src.name] into \his temple! It looks like \he's trying to commit suicide.", \ - "\red [user] is stabbing the [src.name] into \his heart! It looks like \he's trying to commit suicide.") + viewers(user) << pick("[user] is stabbing the [src.name] into \his temple! It looks like \he's trying to commit suicide.", \ + "[user] is stabbing the [src.name] into \his heart! It looks like \he's trying to commit suicide.") return(BRUTELOSS) /obj/item/weapon/screwdriver/New() diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index f9d03caf9e0..a4ac8a098f6 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -11,7 +11,7 @@ attack_verb = list("banned") /obj/item/weapon/banhammer/suicide_act(mob/user) - viewers(user) << "\red [user] is hitting \himself with the [src.name]! It looks like \he's trying to ban \himself from life." + viewers(user) << "[user] is hitting \himself with the [src.name]! It looks like \he's trying to ban \himself from life." return (BRUTELOSS|FIRELOSS|TOXLOSS|OXYLOSS) /obj/item/weapon/banhammer/attack(mob/M, mob/user) @@ -32,7 +32,7 @@ w_class = 1 suicide_act(mob/user) - viewers(user) << "\red [user] is impaling \himself with the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is impaling \himself with the [src.name]! It looks like \he's trying to commit suicide." return (BRUTELOSS|FIRELOSS) /obj/item/weapon/sord @@ -48,7 +48,7 @@ attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") suicide_act(mob/user) - viewers(user) << "\red [user] is impaling \himself with the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is impaling \himself with the [src.name]! It looks like \he's trying to commit suicide." return(BRUTELOSS) /obj/item/weapon/claymore @@ -67,7 +67,7 @@ return 1 suicide_act(mob/user) - viewers(user) << "\red [user] is falling on the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is falling on the [src.name]! It looks like \he's trying to commit suicide." return(BRUTELOSS) /obj/item/weapon/claymore/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) @@ -88,7 +88,7 @@ attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") suicide_act(mob/user) - viewers(user) << "\red [user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku." + viewers(user) << "[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku." return(BRUTELOSS) /obj/item/weapon/katana/IsShield() diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index d2c1e63fc52..2224652f68b 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -25,8 +25,10 @@ new /obj/item/clothing/under/sl_suit(src) new /obj/item/clothing/under/rank/bartender(src) new /obj/item/clothing/under/rank/bartender(src) - new /obj/item/clothing/suit/wcoat(src) - new /obj/item/clothing/suit/wcoat(src) + new /obj/item/clothing/tie/waistcoat(src) + new /obj/item/clothing/tie/waistcoat(src) + new /obj/item/clothing/head/soft/black(src) + new /obj/item/clothing/head/soft/black(src) new /obj/item/clothing/shoes/black(src) new /obj/item/clothing/shoes/black(src) @@ -46,6 +48,10 @@ new /obj/item/clothing/under/waiter(src) new /obj/item/device/radio/headset/headset_srv(src) new /obj/item/device/radio/headset/headset_srv(src) + new /obj/item/clothing/tie/waistcoat(src) + new /obj/item/clothing/tie/waistcoat(src) + new /obj/item/clothing/head/soft/black(src) + new /obj/item/clothing/head/soft/black(src) new /obj/item/weapon/storage/box/mousetraps(src) new /obj/item/weapon/storage/box/mousetraps(src) new /obj/item/clothing/under/rank/chef(src) diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index 04cb0538675..8b26ac4ced2 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -64,6 +64,9 @@ new /obj/item/clothing/head/that(src) new /obj/item/clothing/head/that(src) new /obj/item/clothing/head/that(src) + new /obj/item/clothing/head/soft/black(src) + new /obj/item/clothing/head/soft/black(src) + new /obj/item/clothing/head/soft/black(src) return @@ -231,6 +234,8 @@ new /obj/item/clothing/shoes/black(src) new /obj/item/clothing/gloves/black(src) new /obj/item/clothing/gloves/black(src) + new /obj/item/clothing/head/soft/black(src) + new /obj/item/clothing/head/soft/black(src) return diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index c1325504845..3e41725b4aa 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -545,18 +545,21 @@ var/global/floorIsLava = 0 set desc ="Set an announcement that appears to everyone who joins the server. Only lasts this round" if(!check_rights(0)) return - admin_notice = input(src,"Set a public notice for this round. Everyone who joins the server will see it.\n(Leaving it blank will delete the current notice):","Set Notice",admin_notice) as null|message - switch(admin_notice) - if(null) - return - if("") - message_admins("[key_name(usr)] removed the admin notice.") - log_admin("[key_name(usr)] removed the admin notice:\n[admin_notice]") - return - message_admins("[key_name(usr)] set the admin notice.") - log_admin("[key_name(usr)] set the admin notice:\n[admin_notice]") - world << "\blue Admin Notice:\n \t [admin_notice]" + var/new_admin_notice = input(src,"Set a public notice for this round. Everyone who joins the server will see it.\n(Leaving it blank will delete the current notice):","Set Notice",admin_notice) as message|null + if(new_admin_notice == null) + return + if(new_admin_notice == admin_notice) + return + if(new_admin_notice == "") + message_admins("[key_name(usr)] removed the admin notice.") + log_admin("[key_name(usr)] removed the admin notice:\n[admin_notice]") + else + message_admins("[key_name(usr)] set the admin notice.") + log_admin("[key_name(usr)] set the admin notice:\n[new_admin_notice]") + world << "Admin Notice:\n \t [new_admin_notice]" feedback_add_details("admin_verb","SAN") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + admin_notice = new_admin_notice + return /datum/admins/proc/toggleooc() set category = "Server" diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 6b06342dee7..01ca93078cf 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -689,8 +689,6 @@ var/global/list/g_fancy_list_of_safe_types = null M.equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(M), slot_glasses) M.equip_to_slot_or_del(new /obj/item/clothing/head/det_hat(M), slot_head) - M.equip_to_slot_or_del(new /obj/item/weapon/cloaking_device(M), slot_r_store) - M.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile(M), slot_r_hand) M.equip_to_slot_or_del(new /obj/item/ammo_box/a357(M), slot_l_store) @@ -798,9 +796,8 @@ var/global/list/g_fancy_list_of_safe_types = null M.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(M), slot_gloves) M.equip_to_slot_or_del(new /obj/item/device/radio/headset(M), slot_ears) M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses) - M.equip_to_slot_or_del(new /obj/item/clothing/suit/wcoat(M), slot_wear_suit) + M.equip_to_slot_or_del(new /obj/item/clothing/tie/waistcoat(M), slot_wear_suit) M.equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword(M), slot_l_store) - M.equip_to_slot_or_del(new /obj/item/weapon/cloaking_device(M), slot_r_store) var/obj/item/weapon/storage/secure/briefcase/sec_briefcase = new(M) for(var/obj/item/briefcase_item in sec_briefcase) diff --git a/maps/RandomZLevels/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm similarity index 100% rename from maps/RandomZLevels/Academy.dm rename to code/modules/awaymissions/mission_code/Academy.dm diff --git a/maps/RandomZLevels/blackmarketpackers.dm b/code/modules/awaymissions/mission_code/blackmarketpackers.dm similarity index 100% rename from maps/RandomZLevels/blackmarketpackers.dm rename to code/modules/awaymissions/mission_code/blackmarketpackers.dm diff --git a/maps/RandomZLevels/box2550Away.dm b/code/modules/awaymissions/mission_code/box2550Away.dm similarity index 100% rename from maps/RandomZLevels/box2550Away.dm rename to code/modules/awaymissions/mission_code/box2550Away.dm diff --git a/maps/RandomZLevels/box2550Away.dmi b/code/modules/awaymissions/mission_code/box2550Away.dmi similarity index 100% rename from maps/RandomZLevels/box2550Away.dmi rename to code/modules/awaymissions/mission_code/box2550Away.dmi diff --git a/maps/RandomZLevels/centcomAway.dm b/code/modules/awaymissions/mission_code/centcomAway.dm similarity index 100% rename from maps/RandomZLevels/centcomAway.dm rename to code/modules/awaymissions/mission_code/centcomAway.dm diff --git a/maps/RandomZLevels/challenge.dm b/code/modules/awaymissions/mission_code/challenge.dm similarity index 100% rename from maps/RandomZLevels/challenge.dm rename to code/modules/awaymissions/mission_code/challenge.dm diff --git a/maps/RandomZLevels/spacebattle.dm b/code/modules/awaymissions/mission_code/spacebattle.dm similarity index 100% rename from maps/RandomZLevels/spacebattle.dm rename to code/modules/awaymissions/mission_code/spacebattle.dm diff --git a/maps/RandomZLevels/stationCollision.dm b/code/modules/awaymissions/mission_code/stationCollision.dm similarity index 100% rename from maps/RandomZLevels/stationCollision.dm rename to code/modules/awaymissions/mission_code/stationCollision.dm diff --git a/maps/RandomZLevels/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm similarity index 100% rename from maps/RandomZLevels/wildwest.dm rename to code/modules/awaymissions/mission_code/wildwest.dm diff --git a/code/modules/awaymissions/zlevel.dm b/code/modules/awaymissions/zlevel.dm index e89d67cf773..143030c886c 100644 --- a/code/modules/awaymissions/zlevel.dm +++ b/code/modules/awaymissions/zlevel.dm @@ -4,7 +4,7 @@ proc/createRandomZlevel() var/list/potentialRandomZlevels = list() world << "\red \b Searching for away missions..." - var/list/Lines = file2list("maps/RandomZLevels/fileList.txt") + var/list/Lines = file2list("_maps/RandomZLevels/fileList.txt") if(!Lines.len) return for (var/t in Lines) if (!t) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 8430fadbb02..bb70f37ffc6 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -167,6 +167,12 @@ BLIND // can't see anything hastie = I I.loc = src user << "You attach [I] to [src]." + I.transform *= 0.5 //halve the size so it doesn't overpower the under + I.pixel_x += 8 + I.pixel_y -= 8 + I.layer = FLOAT_LAYER + overlays += I + if(istype(loc, /mob/living/carbon/human)) var/mob/living/carbon/human/H = loc @@ -189,7 +195,7 @@ BLIND // can't see anything if(3) usr << "Its vital tracker and tracking beacon appear to be enabled." if(hastie) - usr << "\A [hastie] is clipped to it." + usr << "\A [hastie] is attached to it." atom/proc/generate_uniform(index,t_color) var/icon/female_uniform_icon = icon("icon"='icons/mob/uniform.dmi', "icon_state"="[t_color]_s") @@ -233,6 +239,11 @@ atom/proc/generate_uniform(index,t_color) if(usr.stat) return if(hastie) + hastie.transform *= 2 + hastie.pixel_x -= 8 + hastie.pixel_y += 8 + hastie.layer = initial(hastie.layer) + overlays = null usr.put_in_hands(hastie) hastie = null diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 868303b0e75..377772dc0f7 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -124,25 +124,7 @@ name = "kitty ears" desc = "A pair of kitty ears. Meow!" icon_state = "kitty" - var/icon/mob - var/icon/mob2 -/obj/item/clothing/head/kitty/equipped(mob/user, slot) - if(user && slot == slot_head) - update_icon(user) - -//ffffuck you kitty ears. this proc is a) retarded and b) seems to fail around fifty percent of the time. idgaf tbh -/obj/item/clothing/head/kitty/update_icon(mob/living/carbon/human/user) - if(!istype(user)) return - mob = new/icon("icon" = 'icons/mob/head.dmi', "icon_state" = "kitty") - mob2 = new/icon("icon" = 'icons/mob/head.dmi', "icon_state" = "kitty2") - mob.Blend("#[user.hair_color]", ICON_ADD) - mob2.Blend("#[user.hair_color]", ICON_ADD) - - var/icon/earbit = new/icon("icon" = 'icons/mob/head.dmi', "icon_state" = "kittyinner") - var/icon/earbit2 = new/icon("icon" = 'icons/mob/head.dmi', "icon_state" = "kittyinner2") - mob.Blend(earbit, ICON_OVERLAY) - mob2.Blend(earbit2, ICON_OVERLAY) /obj/item/clothing/head/hardhat/reindeer name = "novelty reindeer hat" diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index 356d04302fe..34ad82258c2 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -74,6 +74,12 @@ icon_state = "purplesoft" item_color = "purple" +/obj/item/clothing/head/soft/black + name = "black cap" + desc = "It's a baseball hat in a tasteless black colour." + icon_state = "blacksoft" + item_color = "black" + /obj/item/clothing/head/soft/rainbow name = "rainbow cap" desc = "It's a baseball hat in a bright rainbow of colors." diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index e6a00857467..9598577224e 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -86,15 +86,6 @@ flags_inv = HIDEJUMPSUIT -/obj/item/clothing/suit/wcoat - name = "waistcoat" - desc = "For some classy, murderous fun." - icon_state = "vest" - item_state = "wcoat" - blood_overlay_type = "armor" - body_parts_covered = CHEST - - /obj/item/clothing/suit/apron/overalls name = "coveralls" desc = "A set of denim overalls." diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm index 662908e4814..326f09c0c47 100644 --- a/code/modules/clothing/under/ties.dm +++ b/code/modules/clothing/under/ties.dm @@ -24,6 +24,13 @@ icon_state = "horribletie" item_color = "horribletie" +/obj/item/clothing/tie/waistcoat + name = "waistcoat" + desc = "For some classy, murderous fun." + icon_state = "waistcoat" + item_state = "waistcoat" + item_color = "waistcoat" + /obj/item/clothing/tie/stethoscope name = "stethoscope" desc = "An outdated medical apparatus for listening to the sounds of the human body. It also makes you look like you know what you're doing." diff --git a/code/modules/events/ninja.dm b/code/modules/events/ninja.dm index 6efe7f928ad..1839dd59ea5 100644 --- a/code/modules/events/ninja.dm +++ b/code/modules/events/ninja.dm @@ -2207,7 +2207,7 @@ ________________________________________________________________________________ spawn(0) anim(U.loc,U,'icons/mob/mob.dmi',,"cloak",,U.dir) s_active=!s_active - U.update_icons() //update their icons + U.alpha = 0 U << "\blue You are now invisible to normal detection." for(var/mob/O in oviewers(U)) O.show_message("[U.name] vanishes into thin air!",1) @@ -2219,7 +2219,7 @@ ________________________________________________________________________________ spawn(0) anim(U.loc,U,'icons/mob/mob.dmi',,"uncloak",,U.dir) s_active=!s_active - U.update_icons() //update their icons + U.alpha = 255 U << "\blue You are now visible." for(var/mob/O in oviewers(U)) O.show_message("[U.name] appears from thin air!",1) diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 6d7e8e77c43..8e2632dd24f 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -18,6 +18,7 @@ var/yield = 0 var/potency = -1 var/plant_type = 0 + var/dry = 0 icon = 'icons/obj/harvest.dmi' /obj/item/weapon/reagent_containers/food/snacks/grown/New(newloc,newpotency) @@ -82,6 +83,7 @@ icon_state = "corn" potency = 40 trash = /obj/item/weapon/corncob + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/corn New() ..() @@ -95,6 +97,7 @@ desc = "Great for toppings!" icon_state = "cherry" gender = PLURAL + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/cherries New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -109,6 +112,7 @@ icon_state = "poppy" slot_flags = SLOT_HEAD potency = 30 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/poppy New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -123,6 +127,7 @@ icon_state = "harebell" slot_flags = SLOT_HEAD potency = 1 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/harebell New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -135,6 +140,7 @@ desc = "Boil 'em! Mash 'em! Stick 'em in a stew!" icon_state = "potato" potency = 25 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/potato New() ..() reagents.add_reagent("nutriment", 1+round((potency / 10), 1)) @@ -159,6 +165,7 @@ name = "bunch of grapes" desc = "Nutritious!" icon_state = "grapes" + dried_type = /obj/item/weapon/reagent_containers/food/snacks/no_raisin New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -172,6 +179,7 @@ desc = "Nutritious!" icon_state = "greengrapes" potency = 25 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/no_raisin New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -185,6 +193,7 @@ desc = "Ewwwwwwwwww. Cabbage." icon_state = "cabbage" potency = 25 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/cabbage New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -196,6 +205,7 @@ name = "bunch of berries" desc = "Nutritious!" icon_state = "berrypile" + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/berries New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -209,6 +219,7 @@ var/on = 1 var/brightness_on = 2 //luminosity when on icon_state = "glowberrypile" + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/glowberries New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -235,6 +246,7 @@ desc = "Fattening... Mmmmm... chucklate." icon_state = "cocoapod" potency = 50 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/cocoapod New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -248,6 +260,7 @@ desc = "Sickly sweet." icon_state = "sugarcane" potency = 50 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/sugarcane New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -260,6 +273,7 @@ icon_state = "poisonberrypile" gender = PLURAL potency = 15 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/poisonberries New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -274,6 +288,7 @@ icon_state = "deathberrypile" gender = PLURAL potency = 50 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/deathberries New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -289,6 +304,7 @@ icon_state = "ambrosiavulgaris" slot_flags = SLOT_HEAD potency = 10 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -306,6 +322,7 @@ icon_state = "ambrosiadeus" slot_flags = SLOT_HEAD potency = 10 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiadeus New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -322,6 +339,7 @@ desc = "It's a little piece of Eden." icon_state = "apple" potency = 15 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/apple New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -335,6 +353,7 @@ desc = "It's a little piece of Eden." icon_state = "apple" potency = 15 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/apple/poisoned New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -348,6 +367,7 @@ desc = "Emblazoned upon the apple is the word 'Kallisti'." icon_state = "goldapple" potency = 15 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/goldapple New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -381,6 +401,7 @@ desc = "It's large and scary." icon_state = "pumpkin" potency = 10 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -402,6 +423,7 @@ desc = "It's so sour, your face will twist." icon_state = "lime" potency = 20 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/lime New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -414,6 +436,7 @@ desc = "When life gives you lemons, be grateful they aren't limes." icon_state = "lemon" potency = 20 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/lemon New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -426,6 +449,7 @@ desc = "It's an tangy fruit." icon_state = "orange" potency = 20 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/orange New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -438,6 +462,7 @@ desc = "You can't beat white-beet." icon_state = "whitebeet" potency = 15 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/whitebeet New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -453,6 +478,7 @@ icon_state = "banana" item_state = "banana" trash = /obj/item/weapon/bananapeel + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/banana New() ..() @@ -465,6 +491,7 @@ name = "chili" desc = "It's spicy! Wait... IT'S BURNING ME!!" icon_state = "chilipepper" + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/chili New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -483,6 +510,7 @@ desc = "It seems to be vibrating gently." icon_state = "ghostchilipepper" var/mob/held_mob + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/ghost_chilli New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -519,6 +547,7 @@ name = "eggplant" desc = "Maybe there's a chicken inside?" icon_state = "eggplant" + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/eggplant New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -531,6 +560,7 @@ desc = "It's pretty bland, but oh the possibilities..." gender = PLURAL icon_state = "soybeans" + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -542,6 +572,7 @@ name = "koibean" desc = "Something about these seems fishy." icon_state = "koibeans" + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/koibeans New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -568,6 +599,7 @@ desc = "I say to-mah-to, you say tom-mae-to." icon_state = "tomato" potency = 10 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/tomato New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -607,6 +639,7 @@ desc = "So bloody...so...very...bloody....AHHHH!!!!" icon_state = "bloodtomato" potency = 10 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/bloodtomato New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -630,6 +663,7 @@ desc = "I say blue-mah-to, you say blue-mae-to." icon_state = "bluetomato" potency = 10 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/bluetomato New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -665,6 +699,7 @@ desc = "Sigh... wheat... a-grain?" gender = PLURAL icon_state = "wheat" + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/wheat New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -711,6 +746,7 @@ desc = "It's a mutant strain of chili" icon_state = "icepepper" potency = 20 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/icepepper New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -729,6 +765,7 @@ desc = "It's good for the eyes!" icon_state = "carrot" potency = 10 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/carrot New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -742,6 +779,7 @@ desc = "Ganoderma lucidum: A special fungus known for its medicinal and stress relieving properties." icon_state = "reishi" potency = 10 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/reishi New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -762,6 +800,7 @@ desc = "Amanita Muscaria: Learn poisonous mushrooms by heart. Only pick mushrooms you know." icon_state = "amanita" potency = 10 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -782,6 +821,7 @@ desc = "Amanita Virosa: Deadly poisonous basidiomycete fungus filled with alpha amatoxins." icon_state = "angel" potency = 35 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/angel New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -802,6 +842,7 @@ desc = "Psilocybe Semilanceata: Liberate yourself!" icon_state = "libertycap" potency = 15 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -819,6 +860,7 @@ name = "plump-helmet" desc = "Plumus Hellmus: Plump, soft and s-so inviting~" icon_state = "plumphelmet" + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -849,6 +891,7 @@ name = "chanterelle cluster" desc = "Cantharellus Cibarius: These jolly yellow little shrooms sure look tasty!" icon_state = "chanterelle" + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/chanterelle New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -860,6 +903,7 @@ name = "glowshroom cluster" desc = "Mycena Bregprox: This species of mushroom glows in the dark." icon_state = "glowshroom" + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom New() ..() if(lifespan == 0) //basically, if you're spawning these via admin or on the map, then set up some default stats. @@ -939,6 +983,7 @@ icon_state = "bluespacetomato" potency = 20 origin_tech = "bluespace=3" + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/bluespacetomato New() ..() spawn(5) //So potency can be set in the proc that creates these crops @@ -963,3 +1008,76 @@ reagents.add_reagent("potassium", 1+round((potency / 20), 1)) bitesize = 1+round(reagents.total_volume / 2, 1) + +/obj/item/weapon/reagent_containers/food/snacks/grown/coffee_arabica + seed = "/obj/item/seeds/coffee_arabica_seed" + name = "coffee arabica beans" + desc = "Dry them out to make coffee." + icon_state = "coffee_arabica" + potency = 20 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/coffee_arabica + New() + ..() + spawn(5) //So potency can be set in the proc that creates these crops + reagents.add_reagent("coffeepowder", 1+round((potency / 10), 2)) + +/obj/item/weapon/reagent_containers/food/snacks/grown/coffee_robusta + seed = "/obj/item/seeds/coffee_robusta_seed" + name = "coffee robusta beans" + desc = "Dry them out to make coffee." + icon_state = "coffee_robusta" + potency = 20 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/coffee_robusta + New() + ..() + spawn(5) //So potency can be set in the proc that creates these crops + reagents.add_reagent("coffeepowder", 1+round((potency / 10), 2)) + reagents.add_reagent("hyperzine", 1+round((potency / 20), 1)) + +/obj/item/weapon/reagent_containers/food/snacks/grown/tobacco + seed = "/obj/item/seeds/tobacco_seed" + name = "tobacco leaves" + desc = "Dry them out to make some smokes." + icon_state = "tobacco_leaves" + potency = 20 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/tobacco + + +/obj/item/weapon/reagent_containers/food/snacks/grown/tobacco_space + seed = "/obj/item/seeds/tobacco_space_seed" + name = "space tobacco leaves" + desc = "Dry them out to make some space-smokes." + icon_state = "stobacco_leaves" + potency = 20 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/tobacco_space + New() + ..() + spawn(5) //So potency can be set in the proc that creates these crops + reagents.add_reagent("dexalin", 1+round((potency / 20), 1)) + + +/obj/item/weapon/reagent_containers/food/snacks/grown/tea_aspera + seed = "/obj/item/seeds/tea_aspera_seed" + name = "Tea Aspera tips" + desc = "These aromatic tips of the tea plant can be dried to make tea." + icon_state = "tea_aspera_leaves" + potency = 20 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/tea_aspera + New() + ..() + spawn(5) //So potency can be set in the proc that creates these crops + reagents.add_reagent("teapowder", 1+round((potency / 10), 2)) + + +/obj/item/weapon/reagent_containers/food/snacks/grown/tea_astra + seed = "/obj/item/seeds/tea_astra_seed" + name = "Tea Astra tips" + desc = "These aromatic tips of the tea plant can be dried to make tea." + icon_state = "tea_astra_leaves" + potency = 20 + dried_type = /obj/item/weapon/reagent_containers/food/snacks/grown/tea_astra + New() + ..() + spawn(5) //So potency can be set in the proc that creates these crops + reagents.add_reagent("teapowder", 1+round((potency / 10), 2)) + reagents.add_reagent("kelotane", 1+round((potency / 20), 1)) diff --git a/code/modules/hydroponics/growninedible.dm b/code/modules/hydroponics/growninedible.dm index bbaa82086e1..9c3790234c1 100644 --- a/code/modules/hydroponics/growninedible.dm +++ b/code/modules/hydroponics/growninedible.dm @@ -37,6 +37,15 @@ origin_tech = "materials=1" seed = "/obj/item/seeds/towermycelium" attack_verb = list("bashed", "battered", "bludgeoned", "whacked") + var/list/accepted = list(/obj/item/weapon/reagent_containers/food/snacks/grown/tobacco, + /obj/item/weapon/reagent_containers/food/snacks/grown/tobacco, + /obj/item/weapon/reagent_containers/food/snacks/grown/tobacco_space, + /obj/item/weapon/reagent_containers/food/snacks/grown/tea_aspera, + /obj/item/weapon/reagent_containers/food/snacks/grown/tea_astra, + /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris, + /obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiadeus, + /obj/item/weapon/reagent_containers/food/snacks/grown/wheat) + /obj/item/weapon/grown/log/attackby(obj/item/weapon/W as obj, mob/user as mob) ..() @@ -53,6 +62,18 @@ usr << "You add the newly-formed wood to the stack. It now contains [NG.amount] planks." del(src) return + if(is_type_in_list(W,accepted)) + var/obj/item/weapon/reagent_containers/food/snacks/grown/leaf = W + if(leaf.dry) + user.show_message("You wrap the [W] around the log, turning it into a torch!") + var/obj/item/device/flashlight/flare/torch/T = new /obj/item/device/flashlight/flare/torch(user.loc) + usr.u_equip(W) + usr.put_in_active_hand(T) + del(leaf) + del(src) + return + else + usr << "\red You must dry this first." /obj/item/weapon/grown/sunflower // FLOWER POWER! name = "sunflower" @@ -135,6 +156,6 @@ force = round((5+potency/2.5), 1) suicide_act(mob/user) - viewers(user) << "\red [user] is eating some of the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is eating some of the [src.name]! It looks like \he's trying to commit suicide." return (BRUTELOSS|TOXLOSS) diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 861e6bc7b84..be202d3f237 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -30,7 +30,7 @@ var/WeedKillStr = 2 suicide_act(mob/user) - viewers(user) << "\red [user] is huffing the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is huffing the [src.name]! It looks like \he's trying to commit suicide." return (TOXLOSS) /obj/item/weapon/pestspray // -- Skie @@ -49,7 +49,7 @@ var/PestKillStr = 2 suicide_act(mob/user) - viewers(user) << "\red [user] is huffing the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is huffing the [src.name]! It looks like \he's trying to commit suicide." return (TOXLOSS) /obj/item/weapon/minihoe // -- Numbers diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 32ff8796ab8..310e2ee11c8 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -1090,4 +1090,108 @@ potency = 60 plant_type = 0 growthstages = 2 - rarity = 50 // Seems admin-only. \ No newline at end of file + rarity = 50 // Seems admin-only. + +/obj/item/seeds/coffee_arabica_seed + name = "pack of coffee arabica seeds" + desc = "These seeds grow into coffee arabica bushes." + icon_state = "seed-coffeea" + species = "coffeea" + plantname = "Coffee Arabica Bush" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/coffee_arabica + lifespan = 30 + endurance = 20 + maturation = 5 + production = 5 + yield = 5 + potency = 10 + plant_type = 0 + growthstages = 5 + mutatelist = list(/obj/item/seeds/coffee_robusta_seed) + +/obj/item/seeds/coffee_robusta_seed + name = "pack of coffee robusta seeds" + desc = "These seeds grow into coffee robusta bushes." + icon_state = "seed-coffeer" + species = "coffeer" + plantname = "Coffee Robusta Bush" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/coffee_robusta + lifespan = 20 + endurance = 15 + maturation = 5 + production = 5 + yield = 5 + potency = 10 + plant_type = 0 + growthstages = 5 + rarity = 20 + +/obj/item/seeds/tobacco_seed + name = "pack of tobacco seeds" + desc = "These seeds grow into tobacco plants." + icon_state = "seed-tobacco" + species = "tobacco" + plantname = "Tobacco Plant" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/tobacco + lifespan = 20 + endurance = 15 + maturation = 5 + production = 5 + oneharvest = 1 + yield = 10 + potency = 10 + plant_type = 0 + growthstages = 3 + mutatelist = list(/obj/item/seeds/tobacco_space_seed) + +/obj/item/seeds/tobacco_space_seed + name = "pack of space tobacco seeds" + desc = "These seeds grow into space tobacco plants." + icon_state = "seed-stobacco" + species = "stobacco" + plantname = "Space Tobacco Plant" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/tobacco_space + lifespan = 20 + endurance = 15 + maturation = 5 + production = 5 + oneharvest = 1 + yield = 10 + potency = 10 + plant_type = 0 + growthstages = 3 + rarity = 20 + +/obj/item/seeds/tea_aspera_seed + name = "pack of tea aspera seeds" + desc = "These seeds grow into tea plants." + icon_state = "seed-teaaspera" + species = "teaaspera" + plantname = "Tea Aspera Plant" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/tea_aspera + lifespan = 20 + endurance = 15 + maturation = 5 + production = 5 + yield = 5 + potency = 10 + plant_type = 0 + growthstages = 5 + mutatelist = list(/obj/item/seeds/tea_astra_seed) + +/obj/item/seeds/tea_astra_seed + name = "pack of tea astra seeds" + desc = "These seeds grow into tea plants." + icon_state = "seed-teaastra" + species = "teaastra" + plantname = "Tea Astra Plant" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/tea_astra + lifespan = 20 + endurance = 15 + maturation = 5 + production = 5 + yield = 5 + potency = 10 + plant_type = 0 + growthstages = 5 + rarity = 20 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 d0ccb3dd843..82ecbe8bb4b 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm @@ -6,6 +6,7 @@ icon_state = "aliend_s" plasma_rate = 15 + /mob/living/carbon/alien/humanoid/drone/New() create_reagents(100) if(src.name == "alien drone") @@ -14,8 +15,13 @@ verbs.Add(/mob/living/carbon/alien/humanoid/proc/resin,/mob/living/carbon/alien/humanoid/proc/corrosive_acid) ..() //Drones use the same base as generic humanoids. -//Drone verbs +/mob/living/carbon/alien/humanoid/drone/movement_delay() + . = ..() + . += 1 + + +//Drone verbs /mob/living/carbon/alien/humanoid/drone/verb/evolve() // -- TLE set name = "Evolve (500)" set desc = "Produce an interal egg sac capable of spawning children. Only one queen can exist at a time." diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm index 428dc0d0b0b..be54c36fe0a 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -8,6 +8,7 @@ icon_state = "alienh_s" plasma_rate = 5 + /mob/living/carbon/alien/humanoid/hunter/New() create_reagents(100) if(name == "alien hunter") @@ -15,37 +16,37 @@ real_name = name ..() -/mob/living/carbon/alien/humanoid/hunter +/mob/living/carbon/alien/humanoid/hunter/handle_regular_hud_updates() + ..() //-Yvarov - - handle_regular_hud_updates() - - ..() //-Yvarov - - if (healths) - if (stat != 2) - switch(health) - if(150 to INFINITY) - healths.icon_state = "health0" - if(100 to 150) - healths.icon_state = "health1" - if(50 to 100) - healths.icon_state = "health2" - if(25 to 50) - healths.icon_state = "health3" - if(0 to 25) - healths.icon_state = "health4" - else - healths.icon_state = "health5" - else - healths.icon_state = "health6" - - - handle_environment() - if(m_intent == "run" || resting) - ..() + if (healths) + if (stat != 2) + switch(health) + if(150 to INFINITY) + healths.icon_state = "health0" + if(100 to 150) + healths.icon_state = "health1" + if(50 to 100) + healths.icon_state = "health2" + if(25 to 50) + healths.icon_state = "health3" + if(0 to 25) + healths.icon_state = "health4" + else + healths.icon_state = "health5" else - adjustToxLoss(-heal_rate) + healths.icon_state = "health6" + + +/mob/living/carbon/alien/humanoid/hunter/handle_environment() + if(m_intent == "run" || resting) + ..() + else + adjustToxLoss(-heal_rate) + +/mob/living/carbon/alien/humanoid/hunter/movement_delay() + . = -1 //hunters are sanic + . += ..() //but they still need to slow down on stun //Hunter verbs diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm index d40108475c3..f6d14be8d91 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm @@ -8,6 +8,7 @@ icon_state = "aliens_s" plasma_rate = 10 + /mob/living/carbon/alien/humanoid/sentinel/New() create_reagents(100) if(name == "alien sentinel") @@ -16,27 +17,27 @@ verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/neurotoxin) ..() -/mob/living/carbon/alien/humanoid/sentinel +/mob/living/carbon/alien/humanoid/sentinel/handle_regular_hud_updates() + ..() //-Yvarov + if (healths) + if (stat != 2) + switch(health) + if(125 to INFINITY) + healths.icon_state = "health0" + if(100 to 125) + healths.icon_state = "health1" + if(75 to 100) + healths.icon_state = "health2" + if(25 to 75) + healths.icon_state = "health3" + if(0 to 25) + healths.icon_state = "health4" + else + healths.icon_state = "health5" + else + healths.icon_state = "health6" - handle_regular_hud_updates() - - ..() //-Yvarov - - if (healths) - if (stat != 2) - switch(health) - if(125 to INFINITY) - healths.icon_state = "health0" - if(100 to 125) - healths.icon_state = "health1" - if(75 to 100) - healths.icon_state = "health2" - if(25 to 75) - healths.icon_state = "health3" - if(0 to 25) - healths.icon_state = "health4" - else - healths.icon_state = "health5" - else - healths.icon_state = "health6" +/mob/living/carbon/alien/humanoid/sentinel/movement_delay() + . = ..() + . += 1 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index f7204a30410..9a5d9114972 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -40,16 +40,8 @@ now_pushing = null /mob/living/carbon/alien/humanoid/movement_delay() - var/tally = 0 - if (istype(src, /mob/living/carbon/alien/humanoid/queen)) - tally += 5 - if (istype(src, /mob/living/carbon/alien/humanoid/drone)) - tally += 2 - if (istype(src, /mob/living/carbon/alien/humanoid/sentinel)) - tally += 1 - if (istype(src, /mob/living/carbon/alien/humanoid/hunter)) - tally = -1 // hunters go supersuperfast - return (tally + move_delay_add + config.alien_delay) + . = ..() + . += move_delay_add + config.alien_delay //move_delay_add is used to slow aliens with stuns ///mob/living/carbon/alien/humanoid/bullet_act(var/obj/item/projectile/Proj) taken care of in living diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 30d8dc8b89f..524405ec1d5 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -25,30 +25,30 @@ verbs -= /mob/living/carbon/alien/verb/ventcrawl ..() +/mob/living/carbon/alien/humanoid/queen/handle_regular_hud_updates() + ..() //-Yvarov -/mob/living/carbon/alien/humanoid/queen + if (src.healths) + if (src.stat != 2) + switch(health) + if(250 to INFINITY) + src.healths.icon_state = "health0" + if(175 to 250) + src.healths.icon_state = "health1" + if(100 to 175) + src.healths.icon_state = "health2" + if(50 to 100) + src.healths.icon_state = "health3" + if(0 to 50) + src.healths.icon_state = "health4" + else + src.healths.icon_state = "health5" + else + src.healths.icon_state = "health6" - handle_regular_hud_updates() - - ..() //-Yvarov - - if (src.healths) - if (src.stat != 2) - switch(health) - if(250 to INFINITY) - src.healths.icon_state = "health0" - if(175 to 250) - src.healths.icon_state = "health1" - if(100 to 175) - src.healths.icon_state = "health2" - if(50 to 100) - src.healths.icon_state = "health3" - if(0 to 50) - src.healths.icon_state = "health4" - else - src.healths.icon_state = "health5" - else - src.healths.icon_state = "health6" +/mob/living/carbon/alien/humanoid/queen/movement_delay() + . = ..() + . += 5 //Queen verbs @@ -76,15 +76,13 @@ pixel_x = -16 /mob/living/carbon/alien/humanoid/queen/large/update_icons() - lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again update_hud() //TODO: remove the need for this to be here overlays.Cut() - if(lying) - if(resting) icon_state = "queen_sleep" - else icon_state = "queen_l" - for(var/image/I in overlays_lying) - overlays += I + if(stat == DEAD) + icon_state = "queen_dead" + else if(stat == UNCONSCIOUS || lying || resting) + icon_state = "queen_sleep" else icon_state = "queen_s" - for(var/image/I in overlays_standing) - overlays += I \ No newline at end of file + for(var/image/I in overlays_standing) + overlays += I 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 bfbfebf21e5..d13c7984cee 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm @@ -6,35 +6,26 @@ ///////////////////////////////// /mob/living/carbon/alien/humanoid - var/list/overlays_lying[X_TOTAL_LAYERS] var/list/overlays_standing[X_TOTAL_LAYERS] /mob/living/carbon/alien/humanoid/update_icons() - lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again update_hud() //TODO: remove the need for this to be here overlays.Cut() + for(var/image/I in overlays_standing) + overlays += I + if(stat == DEAD) //If we mostly took damage from fire if(fireloss > 125) icon_state = "alien[caste]_husked" else icon_state = "alien[caste]_dead" - for(var/image/I in overlays_lying) - overlays += I - else if(lying) - if(resting) - icon_state = "alien[caste]_sleep" - else if(stat == UNCONSCIOUS) - icon_state = "alien[caste]_unconscious" - else - icon_state = "alien[caste]_l" - for(var/image/I in overlays_lying) - overlays += I + else if(stat == UNCONSCIOUS || lying || resting) + icon_state = "alien[caste]_sleep" + else if(m_intent == "run") + icon_state = "alien[caste]_running" else - if(m_intent == "run") icon_state = "alien[caste]_running" - else icon_state = "alien[caste]_s" - for(var/image/I in overlays_standing) - overlays += I + icon_state = "alien[caste]_s" /mob/living/carbon/alien/humanoid/regenerate_icons() ..() @@ -44,8 +35,16 @@ update_inv_l_hand(0) update_inv_pockets(0) update_hud() - update_icons() +// update_icons() //Handled in update_transform(), leaving this here as a reminder update_fire() + update_transform() + +/mob/living/carbon/alien/humanoid/update_transform() //The old method of updating lying/standing was update_icons(). Aliens still expect that. + if(lying > 0) + lying = 90 //Anything else looks retarded + update_icons() + ..() + /mob/living/carbon/alien/humanoid/update_hud() if(client) @@ -87,18 +86,12 @@ update_icons() /mob/living/carbon/alien/humanoid/update_fire() - overlays -= overlays_lying[X_FIRE_LAYER] overlays -= overlays_standing[X_FIRE_LAYER] if(on_fire) - overlays_lying[X_FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Lying", "layer"= -X_FIRE_LAYER) overlays_standing[X_FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Standing", "layer"= -X_FIRE_LAYER) - if(src.lying) - overlays += overlays_lying[X_FIRE_LAYER] - else - overlays += overlays_standing[X_FIRE_LAYER] + overlays += overlays_standing[X_FIRE_LAYER] return else - overlays_lying[X_FIRE_LAYER] = null overlays_standing[X_FIRE_LAYER] = null //Xeno Overlays Indexes////////// diff --git a/code/modules/mob/living/carbon/alien/larva/update_icons.dm b/code/modules/mob/living/carbon/alien/larva/update_icons.dm index 3ab3fb3b382..104811c4fc1 100644 --- a/code/modules/mob/living/carbon/alien/larva/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/larva/update_icons.dm @@ -12,11 +12,14 @@ if(stat == DEAD) icon_state = "larva[state]_dead" - else if (handcuffed || legcuffed) + else if (handcuffed || legcuffed) //This should be an overlay. Who made this an icon_state? icon_state = "larva[state]_cuff" + else if(stat == UNCONSCIOUS || lying || resting) + icon_state = "larva[state]_sleep" else if (stunned) icon_state = "larva[state]_stun" - else if(lying || resting) - icon_state = "larva[state]_sleep" else icon_state = "larva[state]" + +/mob/living/carbon/alien/larva/update_transform() //All this is handled in update_icons() + return update_icons() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 56903541193..b96a7e08eb1 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -8,6 +8,11 @@ if((FAT in src.mutations) && src.m_intent == "run" && src.bodytemperature <= 360) src.bodytemperature += 2 +/mob/living/carbon/movement_delay() + . = 0 + if(legcuffed) + . += legcuffed.slowdown + /mob/living/carbon/relaymove(var/mob/user, direction) if(user in src.stomach_contents) if(prob(40)) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index edb6e5b37ab..923821e1658 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -1,33 +1,34 @@ /mob/living/carbon/human/movement_delay() - var/tally = 0 - - if(reagents.has_reagent("hyperzine")) return -1 - - if(reagents.has_reagent("nuka_cola")) return -1 - - if (istype(loc, /turf/space)) return -1 // It's hard to be slowed down in space by... anything + if(istype(loc, /turf/space)) + return -1 //It's hard to be slowed down in space by... anything + if(reagents.has_reagent("hyperzine")) + return -1 + if(reagents.has_reagent("nuka_cola")) + return -1 + . = 0 var/health_deficiency = (100 - health - halloss) - if(health_deficiency >= 40) tally += (health_deficiency / 25) + if(health_deficiency >= 40) + . += (health_deficiency / 25) - var/hungry = (500 - nutrition)/5 // So overeat would be 100 and default level would be 80 - if (hungry >= 70) tally += hungry/50 + var/hungry = (500 - nutrition) / 5 //So overeat would be 100 and default level would be 80 + if(hungry >= 70) + . += hungry / 50 if(wear_suit) - tally += wear_suit.slowdown - + . += wear_suit.slowdown if(shoes) - tally += shoes.slowdown - + . += shoes.slowdown if(back) - tally += back.slowdown + . += back.slowdown - if(FAT in src.mutations) - tally += 1.5 - if (bodytemperature < 283.222) - tally += (283.222 - bodytemperature) / 10 * 1.75 + if(FAT in mutations) + . += 1.5 + if(bodytemperature < 283.222) + . += (283.222 - bodytemperature) / 10 * 1.75 - return (tally+config.human_delay) + . += ..() + . += config.human_delay /mob/living/carbon/human/Process_Spacemove(var/check_drift = 0) //Can we act diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 302a2f442fa..f96f769c801 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -3,12 +3,9 @@ /////////////////////// /* Keep these comments up-to-date if you -insist- on hurting my code-baby ;_; This system allows you to update individual mob-overlays, without regenerating them all each time. -When we generate overlays we do not generate either lying or standing, as used to happen. -Instead, we generate both standing and lying stances and store them in two fixed-length lists, -both using the same list-index. (The index values are defines within this file. +When we generate overlays we generate the standing version and then rotate the mob as necessary.. -As of the time of writing there are 20 layers within this list. Please try to keep this from increasing. - var/overlays_lying[20] //For the lying down stance +As of the time of writing there are 20 layers within this list. Please try to keep this from increasing. //22 and counting, good job guys var/overlays_standing[20] //For the standing stance Most of the time we only wish to update one overlay: @@ -21,10 +18,7 @@ the appropriate update_X proc. Note: Recent changes by aranclanos+carn: update_icons() no longer needs to be called. - This unfortunately means that cloaking is not working properly at time of writing, - however the system is easier to use. update_icons() should not be called unless you absolutely -know- you need it. - One such example would be when var/lying changes state (because every overlay needs to be updated, but not regenerated). In these - very specific cases, update_icons() will be faster than calling each update_X proc individually. + the system is easier to use. update_icons() should not be called unless you absolutely -know- you need it. IN ALL OTHER CASES it's better to just call the specific update_X procs. All of this means that this code is more maintainable, faster and still fairly easy to use. @@ -58,6 +52,7 @@ There are several things that need to be remembered: If you have any questions/constructive-comments/bugs-to-report Please contact me on #coderbus IRC. ~Carnie x +//Carn can sometimes be hard to reach now. However IRC is still your best bet for getting help. */ //Human Overlays Indexes///////// @@ -85,9 +80,7 @@ Please contact me on #coderbus IRC. ~Carnie x #define FIRE_LAYER 1 //If you're on fire #define TOTAL_LAYERS 22 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_; ////////////////////////////////// - /mob/living/carbon/human - var/list/overlays_lying[TOTAL_LAYERS] var/list/overlays_standing[TOTAL_LAYERS] /mob/living/carbon/human/proc/update_base_icon_state() @@ -102,54 +95,32 @@ Please contact me on #coderbus IRC. ~Carnie x base_icon_state = "husk" else base_icon_state = "[skin_tone]_[(gender == FEMALE) ? "f" : "m"]" + icon_state = "[base_icon_state]_s" /mob/living/carbon/human/proc/apply_overlay(cache_index) - var/image/I = lying ? overlays_lying[cache_index] : overlays_standing[cache_index] + var/image/I = overlays_standing[cache_index] if(I) overlays += I /mob/living/carbon/human/proc/remove_overlay(cache_index) - if(overlays_lying[cache_index]) - overlays -= overlays_lying[cache_index] - overlays_lying[cache_index] = null if(overlays_standing[cache_index]) overlays -= overlays_standing[cache_index] overlays_standing[cache_index] = null -//UPDATES OVERLAYS FROM OVERLAYS_LYING/OVERLAYS_STANDING -//this proc is messy as I was forced to include some old laggy cloaking code to it so that I don't break cloakers -//I'll work on removing that stuff by rewriting some of the cloaking stuff at a later date. +//UPDATES OVERLAYS FROM OVERLAYS_STANDING +//TODO: Remove all instances where this proc is called. It used to be the fastest way to swap between standing/lying. /mob/living/carbon/human/update_icons() - lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again + update_hud() //TODO: remove the need for this - overlays.Cut() - if(lying) //can't be cloaked whilst lying down - icon_state = "[base_icon_state]_l" - for(var/thing in overlays_lying) + if(overlays.len != overlays_standing.len) + overlays.Cut() + + for(var/thing in overlays_standing) if(thing) overlays += thing - else - var/stealth = 0 - if(istype(wear_suit, /obj/item/clothing/suit/space/space_ninja) && wear_suit:s_active) - stealth = 1 - else - //cloaking devices. //TODO: get rid of this :< - for(var/obj/item/weapon/cloaking_device/S in list(l_hand,r_hand,belt,l_store,r_store)) - if(S.active) - stealth = 1 - break - if(stealth) - icon_state = "body_cloaked" - if(overlays_standing[L_HAND_LAYER]) - overlays += overlays_standing[L_HAND_LAYER] - if(overlays_standing[R_HAND_LAYER]) - overlays += overlays_standing[R_HAND_LAYER] - else - icon_state = "[base_icon_state]_s" - for(var/thing in overlays_standing) - if(thing) overlays += thing + update_transform() //DAMAGE OVERLAYS @@ -158,17 +129,13 @@ Please contact me on #coderbus IRC. ~Carnie x remove_overlay(DAMAGE_LAYER) var/image/standing = image("icon"='icons/mob/dam_human.dmi', "icon_state"="blank", "layer"=-DAMAGE_LAYER) - var/image/lying = image("icon"='icons/mob/dam_human.dmi', "icon_state"="blank2", "layer"=-DAMAGE_LAYER) overlays_standing[DAMAGE_LAYER] = standing - overlays_lying[DAMAGE_LAYER] = lying for(var/obj/item/organ/limb/O in organs) if(O.brutestate) - standing.overlays += "[O.icon_state]_[O.brutestate]0" //we're adding icon_states of the base image as overlays //made icon_name redundant - RR - lying.overlays += "[O.icon_state]2_[O.brutestate]0" + standing.overlays += "[O.icon]_[O.brutestate]0" //we're adding icon_states of the base image as overlays if(O.burnstate) - standing.overlays += "[O.icon_state]_0[O.burnstate]" - lying.overlays += "[O.icon_state]2_0[O.burnstate]" + standing.overlays += "[O.icon]_0[O.burnstate]" apply_overlay(DAMAGE_LAYER) @@ -185,34 +152,30 @@ Please contact me on #coderbus IRC. ~Carnie x //base icons var/datum/sprite_accessory/S var/list/standing = list() - var/list/lying = list() if(facial_hair_style) S = facial_hair_styles_list[facial_hair_style] if(S) - var/icon/facial_s = icon("icon"=S.icon, "icon_state"="[S.icon_state]_s") - var/icon/facial_l = icon("icon"=S.icon, "icon_state"="[S.icon_state]_l") - facial_s.Blend("#[facial_hair_color]", ICON_ADD) - facial_l.Blend("#[facial_hair_color]", ICON_ADD) - standing += image("icon"=facial_s, "layer"=-HAIR_LAYER) - lying += image("icon"=facial_l, "layer"=-HAIR_LAYER) + var/image/img_facial_s = image("icon" = S.icon, "icon_state" = "[S.icon_state]_s", "layer" = -HAIR_LAYER) + + var/new_color = "#" + facial_hair_color + img_facial_s.color = new_color + + standing += img_facial_s //Applies the debrained overlay if there is no brain if(!getorgan(/obj/item/organ/brain)) - standing += image("icon"='icons/mob/human_face.dmi', "icon_state"="debrained_s", "layer"=-HAIR_LAYER) - lying += image("icon"='icons/mob/human_face.dmi', "icon_state"="debrained_l", "layer"=-HAIR_LAYER) + standing += image("icon"='icons/mob/human_face.dmi', "icon_state" = "debrained_s", "layer" = -HAIR_LAYER) else if(hair_style) S = hair_styles_list[hair_style] if(S) - var/icon/hair_s = icon("icon"=S.icon, "icon_state"="[S.icon_state]_s") - var/icon/hair_l = icon("icon"=S.icon, "icon_state"="[S.icon_state]_l") - hair_s.Blend("#[hair_color]", ICON_ADD) - hair_l.Blend("#[hair_color]", ICON_ADD) - standing += image("icon"=hair_s, "layer"=-HAIR_LAYER) - lying += image("icon"=hair_l, "layer"=-HAIR_LAYER) + var/image/img_hair_s = image("icon" = S.icon, "icon_state" = "[S.icon_state]_s", "layer" = -HAIR_LAYER) + + var/new_color = "#" + hair_color + img_hair_s.color = new_color + + standing += img_hair_s - if(lying.len) - overlays_lying[HAIR_LAYER] = lying if(standing.len) overlays_standing[HAIR_LAYER] = standing @@ -223,25 +186,18 @@ Please contact me on #coderbus IRC. ~Carnie x remove_overlay(MUTATIONS_LAYER) var/list/standing = list() - var/list/lying = list() var/g = (gender == FEMALE) ? "f" : "m" for(var/mut in mutations) switch(mut) if(HULK) - lying += image("icon"='icons/effects/genetics.dmi', "icon_state"="hulk_[g]_l", "layer"=-MUTATIONS_LAYER) standing += image("icon"='icons/effects/genetics.dmi', "icon_state"="hulk_[g]_s", "layer"=-MUTATIONS_LAYER) if(COLD_RESISTANCE) - lying += image("icon"='icons/effects/genetics.dmi', "icon_state"="fire_l", "layer"=-MUTATIONS_LAYER) standing += image("icon"='icons/effects/genetics.dmi', "icon_state"="fire_s", "layer"=-MUTATIONS_LAYER) if(TK) - lying += image("icon"='icons/effects/genetics.dmi', "icon_state"="telekinesishead_l", "layer"=-MUTATIONS_LAYER) standing += image("icon"='icons/effects/genetics.dmi', "icon_state"="telekinesishead_s", "layer"=-MUTATIONS_LAYER) if(LASER) - lying += image("icon"='icons/effects/genetics.dmi', "icon_state"="lasereyes_l", "layer"=-MUTATIONS_LAYER) standing += image("icon"='icons/effects/genetics.dmi', "icon_state"="lasereyes_s", "layer"=-MUTATIONS_LAYER) - if(lying.len) - overlays_lying[MUTATIONS_LAYER] = lying if(standing.len) overlays_standing[MUTATIONS_LAYER] = standing @@ -252,34 +208,31 @@ Please contact me on #coderbus IRC. ~Carnie x remove_overlay(BODY_LAYER) update_base_icon_state() - icon_state = "[base_icon_state]_[src.lying ? "l" : "s"]" + icon_state = "[base_icon_state]_s" - var/list/lying = list() var/list/standing = list() //Mouth (lipstick!) if(lip_style) - standing += image("icon"='icons/mob/human_face.dmi', "icon_state"="lips_[lip_style]_s", "layer"=-BODY_LAYER) - lying += image("icon"='icons/mob/human_face.dmi', "icon_state"="lips_[lip_style]_l", "layer"=-BODY_LAYER) + standing += image("icon"='icons/mob/human_face.dmi', "icon_state"="lips_[lip_style]_s", "layer" = -BODY_LAYER) //Eyes if(!dna || dna.mutantrace != "skeleton") - var/icon/eyes_s = icon('icons/mob/human_face.dmi', "eyes_s") - var/icon/eyes_l = icon('icons/mob/human_face.dmi', "eyes_l") - eyes_s.Blend("#[eye_color]", ICON_ADD) - eyes_l.Blend("#[eye_color]", ICON_ADD) - standing += image("icon"=eyes_s, "layer"=-BODY_LAYER) - lying += image("icon"=eyes_l, "layer"=-BODY_LAYER) + var/image/img_eyes_s = image("icon" = 'icons/mob/human_face.dmi', "icon_state" = "eyes_s", "layer" = -BODY_LAYER) + + var/new_color = "#" + eye_color + + img_eyes_s.color = new_color + + standing += img_eyes_s //Underwear if(underwear) var/datum/sprite_accessory/underwear/U = underwear_all[underwear] if(U) standing += image("icon"=U.icon, "icon_state"="[U.icon_state]_s", "layer"=-BODY_LAYER) - lying += image("icon"=U.icon, "icon_state"="[U.icon_state]_l", "layer"=-BODY_LAYER) - if(lying.len) - overlays_lying[BODY_LAYER] = lying + if(standing.len) overlays_standing[BODY_LAYER] = standing @@ -290,7 +243,6 @@ Please contact me on #coderbus IRC. ~Carnie x remove_overlay(FIRE_LAYER) if(on_fire) - overlays_lying[FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Lying", "layer"=-FIRE_LAYER) overlays_standing[FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Standing", "layer"=-FIRE_LAYER) apply_overlay(FIRE_LAYER) @@ -299,35 +251,24 @@ Please contact me on #coderbus IRC. ~Carnie x /mob/living/carbon/human/proc/update_augments() remove_overlay(AUGMENTS_LAYER) - var/list/lying = list() var/list/standing = list() if(getlimb(/obj/item/organ/limb/robot/r_arm)) standing += image("icon"='icons/mob/augments.dmi', "icon_state"="r_arm_s", "layer"=-AUGMENTS_LAYER) - lying += image("icon"='icons/mob/augments.dmi', "icon_state"="r_arm_l", "layer"=-AUGMENTS_LAYER) if(getlimb(/obj/item/organ/limb/robot/l_arm)) standing += image("icon"='icons/mob/augments.dmi', "icon_state"="l_arm_s", "layer"=-AUGMENTS_LAYER) - lying += image("icon"='icons/mob/augments.dmi', "icon_state"="l_arm_l", "layer"=-AUGMENTS_LAYER) if(getlimb(/obj/item/organ/limb/robot/r_leg)) standing += image("icon"='icons/mob/augments.dmi', "icon_state"="r_leg_s", "layer"=-AUGMENTS_LAYER) - lying += image("icon"='icons/mob/augments.dmi', "icon_state"="r_leg_l", "layer"=-AUGMENTS_LAYER) if(getlimb(/obj/item/organ/limb/robot/l_leg)) standing += image("icon"='icons/mob/augments.dmi', "icon_state"="l_leg_s", "layer"=-AUGMENTS_LAYER) - lying += image("icon"='icons/mob/augments.dmi', "icon_state"="l_leg_l", "layer"=-AUGMENTS_LAYER) if(getlimb(/obj/item/organ/limb/robot/chest)) standing += image("icon"='icons/mob/augments.dmi', "icon_state"="chest_s", "layer"=-AUGMENTS_LAYER) - lying += image("icon"='icons/mob/augments.dmi', "icon_state"="chest_l", "layer"=-AUGMENTS_LAYER) if(getlimb(/obj/item/organ/limb/robot/head)) standing += image("icon"='icons/mob/augments.dmi', "icon_state"="head_s", "layer"=-AUGMENTS_LAYER) - lying += image("icon"='icons/mob/augments.dmi', "icon_state"="head_l", "layer"=-AUGMENTS_LAYER) - - - if(lying.len) - overlays_lying[AUGMENTS_LAYER] = lying if(standing.len) overlays_standing[AUGMENTS_LAYER] = standing @@ -361,6 +302,7 @@ Please contact me on #coderbus IRC. ~Carnie x update_inv_legcuffed() update_inv_pockets() update_fire() + update_transform() //Hud Stuff update_hud() @@ -378,12 +320,9 @@ Please contact me on #coderbus IRC. ~Carnie x var/t_color = w_uniform.item_color if(!t_color) t_color = icon_state - var/image/lying = image("icon"='icons/mob/uniform.dmi', "icon_state"="[t_color]_l", "layer"=-UNIFORM_LAYER) var/image/standing = image("icon"='icons/mob/uniform.dmi', "icon_state"="[t_color]_s", "layer"=-UNIFORM_LAYER) - overlays_lying[UNIFORM_LAYER] = lying overlays_standing[UNIFORM_LAYER] = standing - var/G = (gender == FEMALE) ? "f" : "m" if(G == "f" && U.fitted == 1) var/index = "[t_color]_s" @@ -394,13 +333,11 @@ Please contact me on #coderbus IRC. ~Carnie x overlays_standing[UNIFORM_LAYER] = standing if(w_uniform.blood_DNA) - lying.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="uniformblood2") standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="uniformblood") if(U.hastie) var/tie_color = U.hastie.item_color if(!tie_color) tie_color = U.hastie.icon_state - lying.overlays += image("icon"='icons/mob/ties.dmi', "icon_state"="[tie_color]2") standing.overlays += image("icon"='icons/mob/ties.dmi', "icon_state"="[tie_color]") else // Automatically drop anything in store / id / belt if you're not wearing a uniform. //CHECK IF NECESARRY @@ -417,7 +354,6 @@ Please contact me on #coderbus IRC. ~Carnie x wear_id.screen_loc = ui_id //TODO client.screen += wear_id - overlays_lying[ID_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="id2", "layer"=-ID_LAYER) overlays_standing[ID_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="id", "layer"=-ID_LAYER) apply_overlay(ID_LAYER) @@ -432,17 +368,13 @@ Please contact me on #coderbus IRC. ~Carnie x var/t_state = gloves.item_state if(!t_state) t_state = gloves.icon_state - var/image/lying = image("icon"='icons/mob/hands.dmi', "icon_state"="[t_state]2", "layer"=-GLOVES_LAYER) var/image/standing = image("icon"='icons/mob/hands.dmi', "icon_state"="[t_state]", "layer"=-GLOVES_LAYER) - overlays_lying[GLOVES_LAYER] = lying overlays_standing[GLOVES_LAYER] = standing if(gloves.blood_DNA) - lying.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands2") standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands") else if(blood_DNA) - overlays_lying[GLOVES_LAYER] = image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands2") overlays_standing[GLOVES_LAYER] = image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands") apply_overlay(GLOVES_LAYER) @@ -457,7 +389,6 @@ Please contact me on #coderbus IRC. ~Carnie x glasses.screen_loc = ui_glasses client.screen += glasses - overlays_lying[GLASSES_LAYER] = image("icon"='icons/mob/eyes.dmi', "icon_state"="[glasses.icon_state]2", "layer"=-GLASSES_LAYER) overlays_standing[GLASSES_LAYER] = image("icon"='icons/mob/eyes.dmi', "icon_state"="[glasses.icon_state]", "layer"=-GLASSES_LAYER) apply_overlay(GLASSES_LAYER) @@ -471,7 +402,6 @@ Please contact me on #coderbus IRC. ~Carnie x ears.screen_loc = ui_ears client.screen += ears - overlays_lying[EARS_LAYER] = image("icon"='icons/mob/ears.dmi', "icon_state"="[ears.icon_state]2", "layer"=-EARS_LAYER) overlays_standing[EARS_LAYER] = image("icon"='icons/mob/ears.dmi', "icon_state"="[ears.icon_state]", "layer"=-EARS_LAYER) apply_overlay(EARS_LAYER) @@ -485,13 +415,10 @@ Please contact me on #coderbus IRC. ~Carnie x shoes.screen_loc = ui_shoes client.screen += shoes - var/image/lying = image("icon"='icons/mob/feet.dmi', "icon_state"="[shoes.icon_state]2", "layer"=-SHOES_LAYER) var/image/standing = image("icon"='icons/mob/feet.dmi', "icon_state"="[shoes.icon_state]", "layer"=-SHOES_LAYER) - overlays_lying[SHOES_LAYER] = lying overlays_standing[SHOES_LAYER] = standing if(shoes.blood_DNA) - lying.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="shoeblood2") standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="shoeblood") apply_overlay(SHOES_LAYER) @@ -507,7 +434,6 @@ Please contact me on #coderbus IRC. ~Carnie x var/t_state = s_store.item_state if(!t_state) t_state = s_store.icon_state - overlays_lying[SUIT_STORE_LAYER] = image("icon"='icons/mob/belt_mirror.dmi', "icon_state"="[t_state]2", "layer"=-SUIT_STORE_LAYER) overlays_standing[SUIT_STORE_LAYER] = image("icon"='icons/mob/belt_mirror.dmi', "icon_state"="[t_state]", "layer"=-SUIT_STORE_LAYER) apply_overlay(SUIT_STORE_LAYER) @@ -522,20 +448,11 @@ Please contact me on #coderbus IRC. ~Carnie x head.screen_loc = ui_head //TODO client.screen += head - var/image/lying - var/image/standing - if(istype(head,/obj/item/clothing/head/kitty)) - var/obj/item/clothing/head/kitty/K = head - lying = image("icon"=K.mob2, "layer"=-HEAD_LAYER) - standing = image("icon"=K.mob, "layer"=-HEAD_LAYER) - else - lying = image("icon"='icons/mob/head.dmi', "icon_state"="[head.icon_state]2", "layer"=-HEAD_LAYER) - standing = image("icon"='icons/mob/head.dmi', "icon_state"="[head.icon_state]", "layer"=-HEAD_LAYER) - overlays_lying[HEAD_LAYER] = lying + var/image/standing = image("icon"='icons/mob/head.dmi', "icon_state"="[head.icon_state]", "layer"=-HEAD_LAYER) + overlays_standing[HEAD_LAYER] = standing if(head.blood_DNA) - lying.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="helmetblood2") standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="helmetblood") apply_overlay(HEAD_LAYER) @@ -551,7 +468,6 @@ Please contact me on #coderbus IRC. ~Carnie x var/t_state = belt.item_state if(!t_state) t_state = belt.icon_state - overlays_lying[BELT_LAYER] = image("icon"='icons/mob/belt.dmi', "icon_state"="[t_state]2", "layer"=-BELT_LAYER) overlays_standing[BELT_LAYER] = image("icon"='icons/mob/belt.dmi', "icon_state"="[t_state]", "layer"=-BELT_LAYER) apply_overlay(BELT_LAYER) @@ -566,9 +482,7 @@ Please contact me on #coderbus IRC. ~Carnie x wear_suit.screen_loc = ui_oclothing //TODO client.screen += wear_suit - var/image/lying = image("icon"='icons/mob/suit.dmi', "icon_state"="[wear_suit.icon_state]2", "layer"=-SUIT_LAYER) var/image/standing = image("icon"='icons/mob/suit.dmi', "icon_state"="[wear_suit.icon_state]", "layer"=-SUIT_LAYER) - overlays_lying[SUIT_LAYER] = lying overlays_standing[SUIT_LAYER] = standing if(istype(wear_suit, /obj/item/clothing/suit/straight_jacket)) @@ -578,7 +492,6 @@ Please contact me on #coderbus IRC. ~Carnie x if(wear_suit.blood_DNA) var/obj/item/clothing/suit/S = wear_suit - lying.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="[S.blood_overlay_type]blood2") standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="[S.blood_overlay_type]blood") apply_overlay(SUIT_LAYER) @@ -603,15 +516,13 @@ Please contact me on #coderbus IRC. ~Carnie x wear_mask.screen_loc = ui_mask //TODO client.screen += wear_mask - var/image/lying = image("icon"='icons/mob/mask.dmi', "icon_state"="[wear_mask.icon_state]2", "layer"=-FACEMASK_LAYER) var/image/standing = image("icon"='icons/mob/mask.dmi', "icon_state"="[wear_mask.icon_state]", "layer"=-FACEMASK_LAYER) - overlays_lying[FACEMASK_LAYER] = lying overlays_standing[FACEMASK_LAYER] = standing if(wear_mask.blood_DNA && !istype(wear_mask, /obj/item/clothing/mask/cigarette)) - lying.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood2") standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood") + apply_overlay(FACEMASK_LAYER) @@ -624,7 +535,6 @@ Please contact me on #coderbus IRC. ~Carnie x back.screen_loc = ui_back //TODO client.screen += back - overlays_lying[BACK_LAYER] = image("icon"='icons/mob/back.dmi', "icon_state"="[back.icon_state]2", "layer"=-BACK_LAYER) overlays_standing[BACK_LAYER] = image("icon"='icons/mob/back.dmi', "icon_state"="[back.icon_state]", "layer"=-BACK_LAYER) apply_overlay(BACK_LAYER) @@ -651,7 +561,6 @@ Please contact me on #coderbus IRC. ~Carnie x R.overlays += image("icon"='icons/mob/screen_gen.dmi', "icon_state"="markus") L.overlays += image("icon"='icons/mob/screen_gen.dmi', "icon_state"="gabrielle") - overlays_lying[HANDCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="handcuff2", "layer"=-HANDCUFF_LAYER) overlays_standing[HANDCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="handcuff1", "layer"=-HANDCUFF_LAYER) else if(hud_used) @@ -667,12 +576,6 @@ Please contact me on #coderbus IRC. ~Carnie x remove_overlay(LEGCUFF_LAYER) if(legcuffed) - if(src.m_intent != "walk") - src.m_intent = "walk" - if(src.hud_used && src.hud_used.move_intent) - src.hud_used.move_intent.icon_state = "walking" - - overlays_lying[LEGCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="legcuff2", "layer"=-LEGCUFF_LAYER) overlays_standing[LEGCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="legcuff1", "layer"=-LEGCUFF_LAYER) apply_overlay(LEGCUFF_LAYER) diff --git a/code/modules/mob/living/carbon/metroid/death.dm b/code/modules/mob/living/carbon/metroid/death.dm index 5fb960298c1..fc26fcbf5b7 100644 --- a/code/modules/mob/living/carbon/metroid/death.dm +++ b/code/modules/mob/living/carbon/metroid/death.dm @@ -5,8 +5,10 @@ M.colour = colour M.rabid = 1 is_adult = 0 + maxHealth = 150 + revive() regenerate_icons() - health = maxHealth + name = "[colour] [is_adult ? "adult" : "baby"] slime ([rand(1, 1000)])" return if(stat == DEAD) return diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm index c30c74d4633..10d422538a9 100644 --- a/code/modules/mob/living/carbon/metroid/metroid.dm +++ b/code/modules/mob/living/carbon/metroid/metroid.dm @@ -55,7 +55,8 @@ icon_state = "[colour] [is_adult ? "adult" : "baby"] slime" real_name = name slime_mutation = mutation_table(colour) - coretype = text2path("/obj/item/slime_extract/[colour]") + var/sanitizedcolour = replacetext(colour, " ", "") + coretype = text2path("/obj/item/slime_extract/[sanitizedcolour]") ..() /mob/living/carbon/slime/regenerate_icons() diff --git a/code/modules/mob/living/carbon/metroid/powers.dm b/code/modules/mob/living/carbon/metroid/powers.dm index 29982814691..6f186f0087c 100644 --- a/code/modules/mob/living/carbon/metroid/powers.dm +++ b/code/modules/mob/living/carbon/metroid/powers.dm @@ -11,12 +11,12 @@ var/list/choices = list() for(var/mob/living/C in view(1,src)) - if(C!=src && !istype(C,/mob/living/carbon/slime)) + if(C!=src && !istype(C,/mob/living/carbon/slime) && Adjacent(C)) choices += C var/mob/living/carbon/M = input(src,"Who do you wish to feed on?") in null|choices if(!M) return - if(M in view(1, src)) + if(Adjacent(M)) if(!istype(src, /mob/living/carbon/brain)) if(!istype(M, /mob/living/carbon/slime)) @@ -58,7 +58,7 @@ // M.canmove = 0 canmove = 0 - if(M in view(1, src)) + if(Adjacent(M)) loc = M.loc if(prob(15) && M.client && istype(M, /mob/living/carbon)) @@ -208,7 +208,7 @@ M.colour = colour else M.colour = slime_mutation[rand(1,4)] - M.nutrition = new_nutrition + if(ckey) M.nutrition = new_nutrition //Player slimes are more robust at spliting. Once an oversight of poor copypasta, now a feature! M.powerlevel = new_powerlevel if(i != 1) step_away(M,src) babies += M diff --git a/code/modules/mob/living/carbon/metroid/subtypes.dm b/code/modules/mob/living/carbon/metroid/subtypes.dm index 4de73913c72..de98b2df524 100644 --- a/code/modules/mob/living/carbon/metroid/subtypes.dm +++ b/code/modules/mob/living/carbon/metroid/subtypes.dm @@ -9,8 +9,8 @@ proc/mutation_table(var/colour) slime_mutation[4] = "purple" //Tier 2 if("purple") - slime_mutation[1] = "darkpurple" - slime_mutation[2] = "darkblue" + slime_mutation[1] = "dark purple" + slime_mutation[2] = "dark blue" slime_mutation[3] = "green" slime_mutation[4] = "green" if("metal") @@ -21,20 +21,20 @@ proc/mutation_table(var/colour) if("yellow") slime_mutation[1] = "red" slime_mutation[2] = "red" - slime_mutation[3] = "darkpurple" + slime_mutation[3] = "dark purple" slime_mutation[4] = "yellow" if("blue") - slime_mutation[1] = "darkblue" + slime_mutation[1] = "dark blue" slime_mutation[2] = "pink" slime_mutation[3] = "pink" slime_mutation[4] = "silver" //Tier 3 - if("darkblue") + if("dark blue") slime_mutation[1] = "purple" slime_mutation[2] = "cerulean" slime_mutation[3] = "blue" slime_mutation[4] = "cerulean" - if("darkpurple") + if("dark purple") slime_mutation[1] = "purple" slime_mutation[2] = "sepia" slime_mutation[3] = "orange" @@ -53,8 +53,8 @@ proc/mutation_table(var/colour) if("pink") slime_mutation[1] = "pink" slime_mutation[2] = "pink" - slime_mutation[3] = "lightpink" - slime_mutation[4] = "lightpink" + slime_mutation[3] = "light pink" + slime_mutation[4] = "light pink" if("red") slime_mutation[1] = "red" slime_mutation[2] = "red" diff --git a/code/modules/mob/living/carbon/monkey/update_icons.dm b/code/modules/mob/living/carbon/monkey/update_icons.dm index 86ff0f77d8e..e87fdffc911 100644 --- a/code/modules/mob/living/carbon/monkey/update_icons.dm +++ b/code/modules/mob/living/carbon/monkey/update_icons.dm @@ -9,7 +9,6 @@ ///////////////////////////////// /mob/living/carbon/monkey - var/list/overlays_lying[M_TOTAL_LAYERS] var/list/overlays_standing[M_TOTAL_LAYERS] /mob/living/carbon/monkey/regenerate_icons() @@ -21,23 +20,17 @@ update_inv_handcuffed(0) update_fire() update_icons() + update_transform() //Hud Stuff update_hud() return /mob/living/carbon/monkey/update_icons() update_hud() - lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again overlays.Cut() - if(lying) - icon_state = "monkey0" - for(var/image/I in overlays_lying) - overlays += I - else - icon_state = "monkey1" - for(var/image/I in overlays_standing) - overlays += I - + icon_state = "monkey1" + for(var/image/I in overlays_standing) + overlays += I //////// /mob/living/carbon/monkey/update_inv_wear_mask(var/update_icons=1) @@ -45,23 +38,14 @@ wear_mask.screen_loc = ui_monkey_mask if(client && hud_used) client.screen += wear_mask - overlays -= overlays_lying[M_MASK_LAYER] overlays -= overlays_standing[M_MASK_LAYER] - var/image/lying = image("icon" = 'icons/mob/monkey.dmi', "icon_state" = "[wear_mask.icon_state]2", "layer" = -M_MASK_LAYER) var/image/standing = image("icon" = 'icons/mob/monkey.dmi', "icon_state" = "[wear_mask.icon_state]", "layer" = -M_MASK_LAYER) if(!istype(wear_mask, /obj/item/clothing/mask/cigarette) && wear_mask.blood_DNA ) - lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "maskblood2") standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "maskblood") - overlays_lying[M_MASK_LAYER] = lying overlays_standing[M_MASK_LAYER] = standing - if(src.lying) - overlays += overlays_lying[M_MASK_LAYER] - else - overlays += overlays_standing[M_MASK_LAYER] + overlays += overlays_standing[M_MASK_LAYER] else - overlays -= overlays_lying[M_MASK_LAYER] overlays -= overlays_standing[M_MASK_LAYER] - overlays_lying[M_MASK_LAYER] = null overlays_standing[M_MASK_LAYER] = null if(update_icons) update_icons() @@ -103,18 +87,11 @@ back.screen_loc = ui_monkey_back if(client && hud_used) client.screen += back - overlays -= overlays_lying[M_BACK_LAYER] overlays -= overlays_standing[M_BACK_LAYER] - overlays_lying[M_BACK_LAYER] = image("icon" = 'icons/mob/back.dmi', "icon_state" = "[back.icon_state]2", "layer" = -M_BACK_LAYER) overlays_standing[M_BACK_LAYER] = image("icon" = 'icons/mob/back.dmi', "icon_state" = "[back.icon_state]", "layer" = -M_BACK_LAYER) - if(src.lying) - overlays += overlays_lying[M_BACK_LAYER] - else - overlays += overlays_standing[M_BACK_LAYER] + overlays += overlays_standing[M_BACK_LAYER] else - overlays -= overlays_lying[M_BACK_LAYER] overlays -= overlays_standing[M_BACK_LAYER] - overlays_lying[M_BACK_LAYER] = null overlays_standing[M_BACK_LAYER] = null if(update_icons) update_icons() @@ -129,23 +106,16 @@ var/obj/screen/inventory/L = hud_used.adding[5] R.overlays += image("icon" = 'icons/mob/screen_gen.dmi', "icon_state" = "markus") L.overlays += image("icon" = 'icons/mob/screen_gen.dmi', "icon_state" = "gabrielle") - overlays -= overlays_lying[M_HANDCUFF_LAYER] overlays -= overlays_standing[M_HANDCUFF_LAYER] - overlays_lying[M_HANDCUFF_LAYER] = image("icon" = 'icons/mob/monkey.dmi', "icon_state" = "handcuff2", "layer" = -M_HANDCUFF_LAYER) overlays_standing[M_HANDCUFF_LAYER] = image("icon" = 'icons/mob/monkey.dmi', "icon_state" = "handcuff1", "layer" = -M_HANDCUFF_LAYER) - if(src.lying) - overlays += overlays_lying[M_HANDCUFF_LAYER] - else - overlays += overlays_standing[M_HANDCUFF_LAYER] + overlays += overlays_standing[M_HANDCUFF_LAYER] else if(hud_used) var/obj/screen/inventory/R = hud_used.adding[4] var/obj/screen/inventory/L = hud_used.adding[5] R.overlays = null L.overlays = null - overlays -= overlays_lying[M_HANDCUFF_LAYER] overlays -= overlays_standing[M_HANDCUFF_LAYER] - overlays_lying[M_HANDCUFF_LAYER] = null overlays_standing[M_HANDCUFF_LAYER] = null if(update_icons) update_icons() @@ -155,18 +125,12 @@ client.screen |= contents /mob/living/carbon/monkey/update_fire() - overlays -= overlays_lying[M_FIRE_LAYER] overlays -= overlays_standing[M_FIRE_LAYER] if(on_fire) - overlays_lying[M_FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Lying", "layer"= -M_FIRE_LAYER) overlays_standing[M_FIRE_LAYER] = image("icon"='icons/mob/OnFire.dmi', "icon_state"="Standing", "layer"= -M_FIRE_LAYER) - if(src.lying) - overlays += overlays_lying[M_FIRE_LAYER] - else - overlays += overlays_standing[M_FIRE_LAYER] + overlays += overlays_standing[M_FIRE_LAYER] return else - overlays_lying[M_FIRE_LAYER] = null overlays_standing[M_FIRE_LAYER] = null diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm new file mode 100644 index 00000000000..70c25b4b7c7 --- /dev/null +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -0,0 +1,21 @@ +//LOOK G-MA, I'VE JOINED CARBON PROCS THAT ARE IDENTICAL IN ALL CASES INTO ONE PROC, I'M BETTER THAN LIFE() +//I thought about mob/living but silicons and simple_animals don't want this just yet. +//Right now just handles lying down and cloaking, but could handle other cases later. +//IMPORTANT: Multiple animate() calls do not stack well, so try to do them all at once if you can. +/mob/living/carbon/update_transform() + var/matrix/ntransform = matrix(transform) //aka transform.Copy() + var/final_pixel_y = 0 + var/final_dir = dir + var/changed = 0 + + if(lying != lying_prev) + changed++ + ntransform.TurnTo(lying_prev,lying) + lying_prev = lying //so we don't try to animate until there's been another change. + if(lying != 0) + final_pixel_y = -6 + 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 + + if(changed) + animate(src, transform = ntransform, time = 2, pixel_y = final_pixel_y, dir = final_dir, easing = EASE_IN|EASE_OUT) \ No newline at end of file diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 786eec71a0f..88167c46fb3 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -18,13 +18,6 @@ /mob/living/bullet_act(obj/item/projectile/P, def_zone) - var/obj/item/weapon/cloaking_device/C = locate((/obj/item/weapon/cloaking_device) in src) - if(C && C.active) - C.attack_self(src)//Should shut it off - update_icons() - src << "Your [C] was disrupted!" - Stun(2) - var/armor = run_armor_check(def_zone, P.flag) if(!P.nodamage) apply_damage(P.damage, P.damage_type, def_zone, armor) diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 26bf2d24c95..9af8ddf1526 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -34,4 +34,4 @@ var/update_slimes = 1 var/on_fire = 0 //The "Are we on fire?" var - var/fire_stacks = 0 //Tracks how many stacks of fire we have on, max is usually 20 \ No newline at end of file + var/fire_stacks = 0 //Tracks how many stacks of fire we have on, max is usually 20 diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 058f20b00db..6a7c8557908 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -694,23 +694,27 @@ note dizziness decrements automatically in the mob's Life() proc. return 1 //Updates canmove, lying and icons. Could perhaps do with a rename but I can't think of anything to describe it. +//Robots and brains have their own version so don't worry about them /mob/proc/update_canmove() - if(buckled) - anchored = 1 + + if(stat || weakened || paralysis || resting || (status_flags & FAKEDEATH) || buckled) canmove = 0 - if( istype(buckled,/obj/structure/stool/bed/chair) ) - lying = 0 - else - lying = 1 - else if( stat || weakened || paralysis || resting || sleeping || (status_flags & FAKEDEATH) ) - lying = 1 - canmove = 0 - else if( stunned ) -// lying = 0 + if(!lying) + if(resting) //Presuming that you're resting on a bed, which would look goofy lying the wrong way + lying = 90 + else + lying = pick(90, 270) //180 looks like shit since BYOND inverts rather than turns in that case + else if(stunned) canmove = 0 else lying = 0 canmove = 1 + if(buckled) + anchored = 1 + if(istype(buckled, /obj/structure/stool/bed/chair)) + lying = 0 + else + lying = 90 //Everything else faces right. TODO: Allow left-facing beds if(lying) density = 0 @@ -722,11 +726,12 @@ note dizziness decrements automatically in the mob's Life() proc. //Temporarily moved here from the various life() procs //I'm fixing stuff incrementally so this will likely find a better home. //It just makes sense for now. ~Carn - if( update_icon ) //forces a full overlay update + + if(lying != lying_prev) + update_transform() + if(update_icon) //forces a full overlay update update_icon = 0 regenerate_icons() - else if( lying != lying_prev ) - update_icons() return canmove diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 2d5e206783b..80e9f8d41ea 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -200,9 +200,9 @@ if("run") if(mob.drowsyness > 0) move_delay += 6 - move_delay += 1 + config.run_speed + move_delay += config.run_speed if("walk") - move_delay += 7 + config.walk_speed + move_delay += config.walk_speed move_delay += mob.movement_delay() if(config.Tickcomp) diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index ca2309473a7..ef774523cda 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -32,18 +32,18 @@ datum/preferences preview_icon.Blend(new /icon(S.icon, "[S.icon_state]_s"), ICON_OVERLAY) var/icon/eyes_s = new/icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = "eyes_s") - eyes_s.Blend("#[eye_color]", ICON_ADD) + eyes_s.Blend("#[eye_color]", ICON_MULTIPLY) S = hair_styles_list[hair_style] if(S) var/icon/hair_s = new/icon("icon" = S.icon, "icon_state" = "[S.icon_state]_s") - hair_s.Blend("#[hair_color]", ICON_ADD) + hair_s.Blend("#[hair_color]", ICON_MULTIPLY) eyes_s.Blend(hair_s, ICON_OVERLAY) S = facial_hair_styles_list[facial_hair_style] if(S) var/icon/facial_s = new/icon("icon" = S.icon, "icon_state" = "[S.icon_state]_s") - facial_s.Blend("#[facial_hair_color]", ICON_ADD) + facial_s.Blend("#[facial_hair_color]", ICON_MULTIPLY) eyes_s.Blend(facial_s, ICON_OVERLAY) var/icon/clothes_s = null diff --git a/code/modules/mob/update_icons.dm b/code/modules/mob/update_icons.dm index 252439277c5..b0977242ddf 100644 --- a/code/modules/mob/update_icons.dm +++ b/code/modules/mob/update_icons.dm @@ -10,6 +10,9 @@ /mob/proc/update_hud() return +/mob/proc/update_transform() + return + /mob/proc/update_inv_handcuffed() return diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 8b88102db8e..fb7912e7c61 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -214,9 +214,9 @@ suicide_act(mob/user) if(locate(/obj/structure/stool) in user.loc) - viewers(user) << "\red [user] is making a noose with the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is making a noose with the [src.name]! It looks like \he's trying to commit suicide." else - viewers(user) << "\red [user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide." + viewers(user) << "[user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide." return(OXYLOSS) diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 2157c61ecc8..65c37bb0cd8 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -62,6 +62,7 @@ var/global/list/uneatable = list( switch(severity) if(1.0) if(prob(25)) + investigate_log("has been destroyed by an explosion.","singulo") del(src) return else @@ -189,6 +190,7 @@ var/global/list/uneatable = list( /obj/machinery/singularity/proc/check_energy() if(energy <= 0) + investigate_log("collapsed.","singulo") del(src) return 0 switch(energy)//Some of these numbers might need to be changed up later -Mport @@ -251,6 +253,7 @@ var/global/list/uneatable = list( if(H.mind.assigned_role == "Clown") gain = rand(-300, 300) // HONK + investigate_log(" has consumed [key_name(A)].","singulo") //Oh that's where the clown ended up! spawn() A:gib() sleep(1) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index e5f08b47f1e..706d5fbb2a4 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -42,6 +42,11 @@ updateicon() return +/obj/machinery/power/smes/Del() + message_admins("SMES deleted at ([x],[y],[z] - JMP)") + log_game("SMES deleted at ([x],[y],[z])") + investigate_log("deleted at ([x],[y],[z])","singulo") + ..() /obj/machinery/power/smes/proc/updateicon() overlays.Cut() @@ -114,6 +119,7 @@ if(charge < 0.0001) online = 0 // stop output if charge falls to zero + investigate_log("lost power and turned off","singulo") // only update icon if state changed if(last_disp != chargedisplay() || last_chrg != charging || last_onln != online) @@ -219,11 +225,14 @@ chargemode = !chargemode if(!chargemode) charging = 0 + investigate_log("input/output; [chargelevel>output?"":""][chargelevel]/[output] | Output-mode: [online?"on":"off"] | Input-mode: [chargemode?"auto":"off"] by [usr.key]","singulo") updateicon() else if( href_list["online"] ) online = !online + investigate_log("input/output; [chargelevel>output?"":""][chargelevel]/[output] | Output-mode: [online?"on":"off"] | Input-mode: [chargemode?"auto":"off"] by [usr.key]","singulo") updateicon() + else if( href_list["input"] ) var/i = text2num(href_list["input"]) @@ -250,6 +259,8 @@ chargelevel += d chargelevel = max(0, min(SMESMAXCHARGELEVEL, chargelevel)) // clamp to range + investigate_log("input/output; [chargelevel>output?"":""][chargelevel]/[output] | Output-mode: [online?"on":"off"] | Input-mode: [chargemode?"auto":"off"] by [usr.key]","singulo") + src.updateUsrDialog() else if( href_list["output"] ) diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 32d989485b2..e838b899e6e 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -784,6 +784,12 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime) /obj/item/weapon/reagent_containers/food/snacks/grown/wheat = list("flour" = -5), /obj/item/weapon/reagent_containers/food/snacks/grown/cherries = list("cherryjelly" = 0), + //Grinder stuff, but only if dry + /obj/item/weapon/reagent_containers/food/snacks/grown/coffee_arabica = list("coffeepowder" = 0), + /obj/item/weapon/reagent_containers/food/snacks/grown/coffee_robusta = list("coffeepowder" = 0, "hyperzine" = 0), + /obj/item/weapon/reagent_containers/food/snacks/grown/tea_aspera = list("teapowder" = 0), + /obj/item/weapon/reagent_containers/food/snacks/grown/tea_astra = list("teapowder" = 0, "kelotane" = 0), + //All types that you can put into the grinder to transfer the reagents to the beaker. !Put all recipes above this.! @@ -806,6 +812,14 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime) /obj/item/weapon/reagent_containers/food/snacks/grown/poisonberries = list("poisonberryjuice" = 0), ) + var/list/dried_items = list( + + //Grinder stuff, but only if dry + /obj/item/weapon/reagent_containers/food/snacks/grown/coffee_arabica = list("coffeepowder" = 0), + /obj/item/weapon/reagent_containers/food/snacks/grown/coffee_robusta = list("coffeepowder" = 0, "hyperzine" = 0), + /obj/item/weapon/reagent_containers/food/snacks/grown/tea_aspera = list("teapowder" = 0), + /obj/item/weapon/reagent_containers/food/snacks/grown/tea_astra = list("teapowder" = 0, "kelotane" = 0), + ) var/list/holdingitems = list() @@ -836,6 +850,13 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime) src.updateUsrDialog() return 0 + if(is_type_in_list(O, dried_items)) + if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown)) + var/obj/item/weapon/reagent_containers/food/snacks/grown/G = O + if(!G.dry) + user << "You must dry that first!" + return 1 + if(holdingitems && holdingitems.len >= limit) usr << "The machine cannot hold anymore items." return 1 diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index a1a46dca16b..d660c999307 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -1640,6 +1640,22 @@ datum toxpwr = 2 meltprob = 30 + toxin/coffeepowder + name = "Coffee Grounds" + id = "coffeepowder" + description = "Finely ground coffee beans, used to make coffee." + reagent_state = SOLID + color = "#5B2E0D" // rgb: 91, 46, 13 + toxpwr = 0.5 + + toxin/teapowder + name = "Ground Tea Leaves" + id = "teapowder" + description = "Finely shredded tea leaves, used for making tea." + reagent_state = SOLID + color = "#7F8400" // rgb: 127, 132, 0 + toxpwr = 0.5 + /////////////////////////Coloured Crayon Powder//////////////////////////// //For colouring in /proc/mix_color_from_reagents diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 49631317532..ae17574aeaa 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -1594,6 +1594,20 @@ datum required_reagents = list("water" = 5, "coco" = 1) result_amount = 5 + coffee + name = "Coffee" + id = "coffee" + result = "coffee" + required_reagents = list("coffeepowder" = 1, "water" = 5) + result_amount = 5 + + tea + name = "Tea" + id = "tea" + result = "tea" + required_reagents = list("teapowder" = 1, "water" = 5) + result_amount = 5 + soysauce name = "Soy Sauce" id = "soysauce" diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index aa2ce301eb1..a47cf704f81 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -10,6 +10,7 @@ var/slices_num var/eatverb var/wrapped = 0 + var/dried_type = null //Placeholder for effect that trigger on eating that aren't tied to reagents. @@ -2507,4 +2508,4 @@ ..() reagents.add_reagent("nutriment", 6) reagents.add_reagent("toxin", 5) - bitesize = 3 \ No newline at end of file + bitesize = 3 diff --git a/code/modules/reagents/reagent_containers/food/snacks/meat.dm b/code/modules/reagents/reagent_containers/food/snacks/meat.dm index 406553bed6d..3fc9aa535a2 100644 --- a/code/modules/reagents/reagent_containers/food/snacks/meat.dm +++ b/code/modules/reagents/reagent_containers/food/snacks/meat.dm @@ -2,6 +2,7 @@ name = "meat" desc = "A slab of meat" icon_state = "meat" + dried_type = /obj/item/weapon/reagent_containers/food/snacks/sosjerky health = 180 New() ..() diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index a70af0898b9..673e08aefaa 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -136,7 +136,7 @@ if(80 to 90) filling.icon_state = "[icon_state]80" if(91 to INFINITY) filling.icon_state = "[icon_state]100" - filling.icon += mix_color_from_reagents(reagents.reagent_list) + filling.color = mix_color_from_reagents(reagents.reagent_list) overlays += filling /obj/item/weapon/reagent_containers/glass/beaker/large diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 57d77408756..4e816b54cc3 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -43,7 +43,7 @@ var/obj/effect/decal/chempuff/D = new/obj/effect/decal/chempuff(get_turf(src)) D.create_reagents(amount_per_transfer_from_this) reagents.trans_to(D, amount_per_transfer_from_this, 1/3) - D.icon += mix_color_from_reagents(D.reagents.reagent_list) + D.color = mix_color_from_reagents(D.reagents.reagent_list) spawn(0) for(var/i=0, i<3, i++) @@ -181,7 +181,7 @@ D.create_reagents(amount_per_transfer_from_this) src.reagents.trans_to(D, amount_per_transfer_from_this) - D.icon += mix_color_from_reagents(D.reagents.reagent_list) + D.color = mix_color_from_reagents(D.reagents.reagent_list) Sprays[i] = D diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 3e78f33fbca..a640d4ef451 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -190,7 +190,7 @@ if(10) filling.icon_state = "syringe10" if(15) filling.icon_state = "syringe15" - filling.icon += mix_color_from_reagents(reagents.reagent_list) + filling.color = mix_color_from_reagents(reagents.reagent_list) overlays += filling diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm index e914d730c2d..83dfd5f4bb2 100644 --- a/code/modules/recycling/disposal-construction.dm +++ b/code/modules/recycling/disposal-construction.dm @@ -72,8 +72,8 @@ else icon_state = base_state - if(invisibility) // if invisible, fade icon - icon -= rgb(0,0,0,128) + // if invisible, fade icon + alpha = (invisibility ? 0 : 255) // hide called by levelupdate if turf intact status changes // change visibility status and force update of icon diff --git a/code/modules/research/rd-readme.dm b/code/modules/research/rd-readme.dm index 8680460c227..5c42b3e930b 100644 --- a/code/modules/research/rd-readme.dm +++ b/code/modules/research/rd-readme.dm @@ -189,7 +189,7 @@ When thinking about new stuff, check here to see if there are any slots unfilled //SYNDICATE 1 | Sleepypen 2 | TYRANT Module, Emag -3 | Cloaking Device, Power Sink +3 | Power Sink 4 | 5 | 6 | diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index dd368880ef7..e456109a954 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -51,8 +51,8 @@ attack_verb = list("drilled") suicide_act(mob/user) - viewers(user) << pick("/red [user] is pressing [src] to \his temple and activating it! It looks like \he's trying to commit suicide.", \ - "/red [user] is pressing [src] to \his chest and activating it! It looks like \he's trying to commit suicide.") + viewers(user) << pick("[user] is pressing [src] to \his temple and activating it! It looks like \he's trying to commit suicide.", \ + "[user] is pressing [src] to \his chest and activating it! It looks like \he's trying to commit suicide.") return (BRUTELOSS) @@ -73,9 +73,9 @@ attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") suicide_act(mob/user) - viewers(user) << pick("\red [user] is slitting \his wrists with [src]! It looks like \he's trying to commit suicide.", \ - "\red [user] is slitting \his throat with [src]! It looks like \he's trying to commit suicide.", \ - "\red [user] is slitting \his stomach open with [src]! It looks like \he's trying to commit seppuku.") + viewers(user) << pick("[user] is slitting \his wrists with [src]! It looks like \he's trying to commit suicide.", \ + "[user] is slitting \his throat with [src]! It looks like \he's trying to commit suicide.", \ + "[user] is slitting \his stomach open with [src]! It looks like \he's trying to commit seppuku.") return (BRUTELOSS) diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm index d6c2246d76d..b0761e14c37 100644 --- a/code/modules/telesci/telesci_computer.dm +++ b/code/modules/telesci/telesci_computer.dm @@ -193,7 +193,6 @@ temp_msg += "
Calibration required soon." else temp_msg += "Data printed below." - investigate_log("[key_name(usr)]/[user] has teleported with Telescience at [trueX],[trueY],[z_co], in [A ? A.name : "null area"].","telesci") var/sparks = get_turf(target) var/datum/effect/effect/system/spark_spread/y = new /datum/effect/effect/system/spark_spread @@ -202,6 +201,9 @@ var/turf/source = target var/turf/dest = get_turf(telepad) + var/log_msg = "" + log_msg += ": [key_name(user)] has teleported " + if(sending) source = dest dest = target @@ -217,11 +219,39 @@ // TP people on office chairs if(L.buckled.anchored) continue + + log_msg += "[key_name(L)] (on a chair), " else continue else if(!isobserver(ROI)) continue + if(ismob(ROI)) + var/mob/T = ROI + log_msg += "[key_name(T)], " + else + log_msg += "[ROI.name]" + if (istype(ROI, /obj/structure/closet)) + var/obj/structure/closet/C = ROI + log_msg += " (" + for(var/atom/movable/Q as mob|obj in C) + if(ismob(Q)) + log_msg += "[key_name(Q)], " + else + log_msg += "[Q.name], " + if (dd_hassuffix(log_msg, "(")) + log_msg += "empty)" + else + log_msg = dd_limittext(log_msg, length(log_msg) - 2) + log_msg += ")" + log_msg += ", " do_teleport(ROI, dest) + + if (dd_hassuffix(log_msg, ", ")) + log_msg = dd_limittext(log_msg, length(log_msg) - 2) + else + log_msg += "nothing" + log_msg += " [sending ? "to" : "from"] [trueX], [trueY], [z_co] ([A ? A.name : "null area"])" + investigate_log(log_msg, "telesci") updateDialog() /obj/machinery/computer/telescience/proc/teleport(mob/user) diff --git a/code/world.dm b/code/world.dm index 8a041e7dd11..b620dfeff18 100644 --- a/code/world.dm +++ b/code/world.dm @@ -90,19 +90,11 @@ process_ghost_teleport_locs() //Sets up ghost teleport locations. sleep_offline = 1 - var/list/lines = file2list(file('tgstation.dme')) - for(var/l in lines) - if( dd_hassuffix(l, ".dmm\"") ) - var/firstquote = findtext(l, "\"") - var/lastslash = 0 - for(var/j = 1; j < length(l); j++) - var/lastslashtest = findtext(l, "\\", -j) - if(lastslashtest > 0) - lastslash = lastslashtest - break - map_name = copytext(l, max(firstquote+1,lastslash+1), length(l)-4) - if(!map_name) - map_name = "Unknown" + #ifdef MAP_NAME + map_name = "[MAP_NAME]" + #else + map_name = "Unknown" + #endif spawn(3000) //so we aren't adding to the round-start lag if(config.kick_inactive) diff --git a/config/game_options.txt b/config/game_options.txt index 85fcdbd1ced..9c4818a3df2 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -29,8 +29,8 @@ REVIVAL_BRAIN_LIFE -1 ## To speed things up make the number negative, to slow things down, make the number positive. ## These modify the run/walk speed of all mobs before the mob-specific modifiers are applied. -RUN_DELAY 0 -WALK_DELAY 0 +RUN_DELAY 1 +WALK_DELAY 4 ## The variables below affect the movement of specific mob types. HUMAN_DELAY 0 @@ -162,7 +162,7 @@ GATEWAY_DELAY 18000 ## If you find that your players are abusing the sandbox panel, this option may slow them down ## without preventing people from using it properly. ## Only functions in sandbox game mode. -#SANDBOX_AUTOCLOSE +#SANDBOX_AUTOCLOSE ### ROUNDSTART SILICON LAWS ### ## This controls what the AI's laws are at the start of the round. diff --git a/dm.sh b/dm.sh new file mode 100644 index 00000000000..6e71ec34718 --- /dev/null +++ b/dm.sh @@ -0,0 +1,89 @@ +#!/bin/bash + +dmepath="" +retval=1 + +for var +do + if [[ $var != -* && $var == *.dme ]] + then + dmepath=`echo $var | sed -r 's/.{4}$//'` + break + fi +done + +if [[ $dmepath == "" ]] +then + echo "No .dme file specified, aborting." + exit 1 +fi + +if [[ -a $dmepath.mdme ]] +then + rm $dmepath.mdme +fi + +cp $dmepath.dme $dmepath.mdme +if [[ $? != 0 ]] +then + echo "Failed to make modified dme, aborting." + exit 2 +fi + +for var +do + arg=`echo $var | sed -r 's/^.{2}//'` + if [[ $var == -D* ]] + then + sed -i '1s/^/#define '$arg'\n/' $dmepath.mdme + continue + fi + if [[ $var == -M* ]] + then + sed -i '1s/^/#define MAP_OVERRIDE\n/' $dmepath.mdme + sed -i 's!// BEGIN_INCLUDE!// BEGIN_INCLUDE\n#include "_maps\\'$arg'.dm"!' $dmepath.mdme + continue + fi +done + +#windows +if [[ `uname` == MINGW* ]] +then + dm="" + + if hash dm.exe 2>/dev/null + then + dm='dm.exe' + elif [[ -a '/c/Program Files (x86)/BYOND/bin/dm.exe' ]] + then + dm='/c/Program Files (x86)/BYOND/bin/dm.exe' + elif [[ -a '/c/Program Files/BYOND/bin/dm.exe' ]] + then + dm='/c/Program Files/BYOND/bin/dm.exe' + fi + + if [[ $dm == "" ]] + then + echo "Couldn't find the DreamMaker executable, aborting." + exit 3 + fi + + "$dm" $dmepath.mdme + retval=$? +else + if hash DreamMaker 2>/dev/null + then + DreamMaker $dmepath.mdme + retval=$? + else + echo "Couldn't find the DreamMaker executable, aborting." + exit 3 + fi +fi + +mv $dmepath.mdme.dmb $dmepath.dmb +mv $dmepath.mdme.rsc $dmepath.rsc + +rm $dmepath.mdme + +exit $retval diff --git a/html/changelog.html b/html/changelog.html index 0ec0219ed28..c4fecf62d5c 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -52,7 +52,41 @@ should be listed in the changelog upon commit tho. Thanks. --> - +
+ +
+

21 January 2014

+

MrPerson updated:

+
    +
  • Mobs now lie down via turning icons rather than preturned sprites.
  • +
  • You can lie down facing up or down and the turn can be 90 degrees clockwise or counterclockwise.
  • +
  • Resting will always make you lie to the right so you look good on beds.
  • +
  • Please report any bugs you find with this system.
  • +
+
+ +

20 January 2014

+

Petethegoat updated:

+
    +
  • Increased the walk speed. Legcuffed speed is unaffected, and is still suffering.
  • +
  • Sped up alien drones, they are now the same speed as sentinels.
  • +
+
+ + +
+

19 January 2014

+

Rolan7 updated:

+
    +
  • You can now sell mutant seeds, from hydroponics, to Centcom via the supply shuttle.
  • +
  • Fixes powersinks causing APCs to stop automatically recharging.
  • +
+

KazeEspada updated:

+
    +
  • The water cooler is now stocked with paper cups. You can refill the cups by putting paper in it.
  • +
+
+

17 January 2014

@@ -60,6 +94,16 @@ should be listed in the changelog upon commit tho. Thanks. -->
  • Changed the way the Gygax worked. It now has less defense and shot deflection, but is faster and have less battery drain per step.
  • Nerfed the Carbine's brute damage and renamed it to FNX-99 "Hades" Carbine.
  • +
  • Nerfed the Gygax defense from 300 to 250.
    + Nerfed the Gygax projectile deflection chance from 15 to 5.
    + Buffed the Gygax speed from 3 to 2, making it faster.
    + Reduced the battery use when moving from 5 to 3.
    +
    + The Mech Ion Rifle now has a faster cooldown, from 40 to 20.
    + Nerfed the carbine's Brute Damage from 20 to 5.
    +
    + Please post feedback to these changes on the forums. +
@@ -76,34 +120,34 @@ should be listed in the changelog upon commit tho. Thanks. -->
-

14 January 2014

-

SirBayer updated:

-
    +

    14 January 2014

    +

    SirBayer updated:

    +
    • Armor now reduces damage by the protection percentage, instead of randomly deciding to half or full block damage by those percentages.
    • Shotguns, with buckshot shells, will fire a spread of pellets at your target, like a real shotgun blast.
    -

    ManeaterMildred updated:

    -
      -
    • Updated research designs.
    • -
    • The Protolathe can now build a Ion Rifle.
    • -
    • The Exosuit Fabricator can now build a Mech Ion Rifle, a Mech Carbine and a Mech-Mounted Missile Rack.
    • -
    -

    Fleure updated:

    -
      -
    • Added spider butchery.
    • -
    • Added spider meat, legs, and edible eggs.
    • -
    • Added new spider related meals.
    • -
    -

    Giacom updated:

    -
      -
    • Because of an emagged cyborg's explosion, the MMI will die with it.
    • +

      ManeaterMildred updated:

      +
        +
      • Updated research designs.
      • +
      • The Protolathe can now build a Ion Rifle.
      • +
      • The Exosuit Fabricator can now build a Mech Ion Rifle, a Mech Carbine and a Mech-Mounted Missile Rack.
      • +
      +

      Fleure updated:

      +
        +
      • Added spider butchery.
      • +
      • Added spider meat, legs, and edible eggs.
      • +
      • Added new spider related meals.
      • +
      +

      Giacom updated:

      +
        +
      • Because of an emagged cyborg's explosion, the MMI will die with it.
      • The self-respiration symptom will now properly keep you from dying of oxygen loss.
      • The Stimulant symptom's activation chance was increased so you had a constant flow of hyperzine.
      • -
      -

      Incoming updated:

      -
        -
      • A new training bomb has been added to the armoury, which will allow you to train your wire cutting skills to disarm real syndicate bombs.
      • -
      +
    +

    Incoming updated:

    +
      +
    • A new training bomb has been added to the armoury, which will allow you to train your wire cutting skills to disarm real syndicate bombs.
    • +
diff --git a/icons/effects/chemsmoke.dmi b/icons/effects/chemsmoke.dmi index 5be1b638edd..f829c6bd716 100644 Binary files a/icons/effects/chemsmoke.dmi and b/icons/effects/chemsmoke.dmi differ diff --git a/icons/effects/crayondecal.dmi b/icons/effects/crayondecal.dmi index 3aa781d8d22..11a0e7559e6 100644 Binary files a/icons/effects/crayondecal.dmi and b/icons/effects/crayondecal.dmi differ diff --git a/icons/mob/alien.dmi b/icons/mob/alien.dmi index 36a6aa33682..72e4087be31 100644 Binary files a/icons/mob/alien.dmi and b/icons/mob/alien.dmi differ diff --git a/icons/mob/alienqueen.dmi b/icons/mob/alienqueen.dmi index 15621520237..2453dac2e3d 100644 Binary files a/icons/mob/alienqueen.dmi and b/icons/mob/alienqueen.dmi differ diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index bc7e5f2089e..832cf40074c 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 d3e98458196..32540348373 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index 57cc98ea18c..ba946e3c80f 100644 Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi index fee06bfd232..313b3cde48d 100644 Binary files a/icons/mob/items_lefthand.dmi and b/icons/mob/items_lefthand.dmi differ diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi index 3525101789d..d9b712ace2a 100644 Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi index 37fab2198ae..1a7e9d17360 100644 Binary files a/icons/mob/mask.dmi and b/icons/mob/mask.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index ce3b7c64046..f6a3661f580 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/mob/ties.dmi b/icons/mob/ties.dmi index 49658fbf40c..1214382efa2 100644 Binary files a/icons/mob/ties.dmi and b/icons/mob/ties.dmi differ diff --git a/icons/obj/chempuff.dmi b/icons/obj/chempuff.dmi index 811c5e82142..012aa081a13 100644 Binary files a/icons/obj/chempuff.dmi and b/icons/obj/chempuff.dmi differ diff --git a/icons/obj/cigarettes.dmi b/icons/obj/cigarettes.dmi index 59cab0298aa..d254c6c843d 100644 Binary files a/icons/obj/cigarettes.dmi and b/icons/obj/cigarettes.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index bf76df73b94..4e04bd647be 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index 57359f17ab1..a648c8b2cee 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 3f0f1bd7bf2..b92ff299e46 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/ties.dmi b/icons/obj/clothing/ties.dmi index fff335f88e2..c857e0d39d4 100644 Binary files a/icons/obj/clothing/ties.dmi and b/icons/obj/clothing/ties.dmi differ diff --git a/icons/obj/harvest.dmi b/icons/obj/harvest.dmi index a2743f61c00..719a588495d 100644 Binary files a/icons/obj/harvest.dmi and b/icons/obj/harvest.dmi differ diff --git a/icons/obj/hydroponics.dmi b/icons/obj/hydroponics.dmi index 746e851340b..384408c8610 100644 Binary files a/icons/obj/hydroponics.dmi and b/icons/obj/hydroponics.dmi differ diff --git a/icons/obj/lighting.dmi b/icons/obj/lighting.dmi index 5898debbf06..2e59c8155b4 100644 Binary files a/icons/obj/lighting.dmi and b/icons/obj/lighting.dmi differ diff --git a/icons/obj/reagentfillings.dmi b/icons/obj/reagentfillings.dmi index fbf42ca03d5..04e3a188350 100644 Binary files a/icons/obj/reagentfillings.dmi and b/icons/obj/reagentfillings.dmi differ diff --git a/icons/obj/rune.dmi b/icons/obj/rune.dmi index 6c7bc23ced5..1fb79b1a770 100644 Binary files a/icons/obj/rune.dmi and b/icons/obj/rune.dmi differ diff --git a/icons/obj/seeds.dmi b/icons/obj/seeds.dmi index 94dc2fc5567..89c32b9b727 100644 Binary files a/icons/obj/seeds.dmi and b/icons/obj/seeds.dmi differ diff --git a/icons/obj/toy.dmi b/icons/obj/toy.dmi index 9c50a17391e..1586e0e50f1 100644 Binary files a/icons/obj/toy.dmi and b/icons/obj/toy.dmi differ diff --git a/interface/stylesheet.dm b/interface/stylesheet.dm index bd881f81190..38020dc5bfc 100644 --- a/interface/stylesheet.dm +++ b/interface/stylesheet.dm @@ -53,6 +53,7 @@ h1.alert, h2.alert {color: #000000;} .info {color: #0000CC;} .notice {color: #000099;} .unconscious {color: #0000FF; font-weight: bold;} +.suicide {color: #ff5050; font-style: italic;} .alien {color: #543354;} .newscaster {color: #800000;} diff --git a/tgstation.dme b/tgstation.dme index fc0310a2608..3f71d1d5982 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -13,6 +13,7 @@ // END_PREFERENCES // BEGIN_INCLUDE +#include "_maps\tgstation2.dm" #include "code\_compile_options.dm" #include "code\hub.dm" #include "code\world.dm" @@ -35,6 +36,7 @@ #include "code\__HELPERS\lists.dm" #include "code\__HELPERS\logging.dm" #include "code\__HELPERS\maths.dm" +#include "code\__HELPERS\matrices.dm" #include "code\__HELPERS\mobs.dm" #include "code\__HELPERS\names.dm" #include "code\__HELPERS\sanitize_values.dm" @@ -302,6 +304,7 @@ #include "code\game\machinery\deployable.dm" #include "code\game\machinery\door_control.dm" #include "code\game\machinery\doppler_array.dm" +#include "code\game\machinery\drying_rack.dm" #include "code\game\machinery\flasher.dm" #include "code\game\machinery\Freezer.dm" #include "code\game\machinery\hologram.dm" @@ -730,6 +733,13 @@ #include "code\modules\awaymissions\maploader\reader.dm" #include "code\modules\awaymissions\maploader\swapmaps.dm" #include "code\modules\awaymissions\maploader\writer.dm" +#include "code\modules\awaymissions\mission_code\Academy.dm" +#include "code\modules\awaymissions\mission_code\blackmarketpackers.dm" +#include "code\modules\awaymissions\mission_code\centcomAway.dm" +#include "code\modules\awaymissions\mission_code\challenge.dm" +#include "code\modules\awaymissions\mission_code\spacebattle.dm" +#include "code\modules\awaymissions\mission_code\stationCollision.dm" +#include "code\modules\awaymissions\mission_code\wildwest.dm" #include "code\modules\client\client defines.dm" #include "code\modules\client\client procs.dm" #include "code\modules\client\preferences.dm" @@ -876,6 +886,7 @@ #include "code\modules\mob\living\carbon\carbon_defines.dm" #include "code\modules\mob\living\carbon\emote.dm" #include "code\modules\mob\living\carbon\inventory.dm" +#include "code\modules\mob\living\carbon\update_icons.dm" #include "code\modules\mob\living\carbon\alien\alien.dm" #include "code\modules\mob\living\carbon\alien\alien_defense.dm" #include "code\modules\mob\living\carbon\alien\death.dm" @@ -1200,13 +1211,4 @@ #include "interface\interface.dm" #include "interface\stylesheet.dm" #include "interface\skin.dmf" -#include "maps\tgstation.2.1.2.dmm" -#include "maps\RandomZLevels\Academy.dm" -#include "maps\RandomZLevels\blackmarketpackers.dm" -#include "maps\RandomZLevels\box2550Away.dm" -#include "maps\RandomZLevels\centcomAway.dm" -#include "maps\RandomZLevels\challenge.dm" -#include "maps\RandomZLevels\spacebattle.dm" -#include "maps\RandomZLevels\stationCollision.dm" -#include "maps\RandomZLevels\wildwest.dm" // END_INCLUDE